Files
envi-code/SourceCode/Code2026/inc/AdsXRx/XPushVar.h
T

86 lines
1.3 KiB
C++
Raw Normal View History

2026-10-04 00:04:20 +08:00
//-----------------------------------------------------------------------------+
2026-09-28 15:28:50 +08:00
// Copyright (C), 1998-2007, SH Software Co. Ltd.
// = FileName : XPushVar.h
// = Version : ver2.0
// = Author : zjq
// = CreateDate : 2002-09-09
2026-10-04 00:04:20 +08:00
// = Description: 类的声明
2026-09-28 15:28:50 +08:00
// = Maintainers:
//
//-----------------------------------------------------------------------------+
#ifndef _XPushVar_H_
#define _XPushVar_H_
#ifndef _XASTRING_H_
#include "XAString.h"
#endif
#ifndef _XWCSTRING_H_
#include "XWString.h"
#endif
#ifndef _XPRIVATE_H_
#include "XPrivateGlobalFunc.h"
#endif
template <class K,bool bLayer = false>
class XPushVar
{
public:
XPushVar(const TCHAR *pszVar, K kVal)
: var(pszVar),value(80)
{
xg_getvar(pszVar, &value);
if (bLayer)
{
if (pszVar)
{
if (_tcsicmp(pszVar, _T("clayer")) == 0)
{
2026-10-04 00:04:20 +08:00
AssureLayer(pszVar, 0); // 确保存在
2026-09-28 15:28:50 +08:00
}
xg_setvar(pszVar, kVal);
}
}
else
{
xg_setvar(pszVar, kVal);
}
}
XPushVar(const TCHAR *pszVar)
: var(pszVar)
{
if (!bLayer)
{
xg_getvar(pszVar, &value);
}
}
virtual ~XPushVar()
{
if (bLayer)
{
xg_setvar((LPCTSTR)var, (LPTSTR)value);
}
else
{
xg_setvar((const TCHAR *)var, value);
}
}
public:
XString var;
K value;
};
#ifndef XPushVarStr
#define XPushVarStr XPushVar<XString,true>
#endif
#endif