7 #ifndef _INC_cStructElem_H
8 #define _INC_cStructElem_H
13 #include "../GrayLibBase.h"
14 #include "../Variant/cVariantType.h"
39 inline void*
GetValPtr(
const void* pBaseInst)
const noexcept
42 return(((BYTE*)
const_cast<void*
>(pBaseInst)) + m_offset);
45 size_t get_TypeLength()
const;
46 size_t GetDataLength(
const void* pBaseInst)
const;
47 COMPARE_t CompareVal(
const void* pBase1,
const void* pBase2)
const;
50 int GetValInt(
const void* pBaseInst)
const;
51 cString GetValStr(
const void* pBaseInst)
const;
52 bool GetValVar(
const void* pBaseInst,
cVariant& vVal)
const;
54 bool SetValInt(
void* pBaseInst,
int iVal)
const;
55 bool SetValStr(
void* pBaseInst,
cString sVal)
const;
56 bool SetValVar(
void* pBaseInst,
const cVariant& vVal)
const;
68 return SerializeOutput(file, pBaseInst);
70 return SerializeInput(file, pBaseInst);
75 return SerializeOutput(a.
ref_Out(), pBaseInst);
77 return SerializeInput(a.
ref_Inp(), pBaseInst);
115 return(m_elem.
GetValVar(pBaseInst, vVal));
119 return(m_elem.
SetValVar(pBaseInst, vVal));
129 return m_elem.
Serialize(file, bModeWrite, pBaseInst);
141 return m_elem.
ScriptWrite(pScript, pBaseInst, m_pszKey);
146 return m_elem.
ScriptRead(pScript, pBaseInst, m_pszKey);
155 COMPARE_t CompareArray(
const void* pBase1,
const void* pBase2,
size_t iSizeElem)
const;
#define GRAYLIB_LINK
Definition: GrayLibBase.h:35
INT32 HRESULT
_WIN32 style error codes. INT32
Definition: SysTypes.h:465
Definition: cStructElem.h:27
HRESULT Serialize(cStream &file, bool bModeWrite, void *pBaseInst) const
Definition: cStructElem.h:63
HRESULT ScriptRead(IScriptableGetter *pScript, void *pBaseInst, const ATOMCHAR_t *pszPropName) const
Definition: cStructElem.cpp:405
UINT m_extra
m_extra for VARTYPE_StringConst = max size.
Definition: cStructElem.h:35
bool SetValVar(void *pBaseInst, const cVariant &vVal) const
Definition: cStructElem.cpp:95
size_t m_offset
The offset into the struct/class instance for this item.
Definition: cStructElem.h:34
VARTYPE_TYPE m_eVarType
effective type of the data in the mapped structure.
Definition: cStructElem.h:33
void * GetValPtr(const void *pBaseInst) const noexcept
Definition: cStructElem.h:39
UNITTEST_FRIEND(cStructElem)
HRESULT SetValCheck(void *pBaseInst, const cVariant &vVal) const
Definition: cStructElem.cpp:236
HRESULT ScriptWrite(IScriptableSetter *pScript, const void *pBaseInst, const ATOMCHAR_t *pszPropName) const
Definition: cStructElem.cpp:391
HRESULT Serialize(cArchive &a, void *pBaseInst) const
Definition: cStructElem.h:72
COMPARE_t CompareVal(const void *pBase1, const void *pBase2) const
Definition: cStructElem.cpp:77
bool GetValVar(const void *pBaseInst, cVariant &vVal) const
Definition: cStructElem.cpp:251
Definition: cStructElem.h:87
HRESULT Serialize(cStream &file, bool bModeWrite, void *pBaseInst)
Definition: cStructElem.h:127
bool GetValVar(const void *pBaseInst, cVariant &vVal) const
Definition: cStructElem.h:113
const ATOMCHAR_t * get_Name() const noexcept
Definition: cStructElem.h:103
void * GetValPtr(const void *pBaseInst) const
Definition: cStructElem.h:109
HRESULT ScriptWrite(IScriptableSetter *pScript, const void *pBaseInst) const
Definition: cStructElem.h:138
COMPARE_t Compare(const void *pBase1, const void *pBase2) const
Definition: cStructElem.h:131
const ATOMCHAR_t * m_pszKey
the key identifier for the data field. nullptr=last, May be cAtomRef?
Definition: cStructElem.h:95
bool SetValVar(void *pBaseInst, const cVariant &vVal) const
Definition: cStructElem.h:117
HRESULT SetValCheck(void *pBaseInst, const cVariant &vVal) const
Definition: cStructElem.h:121
HRESULT ScriptRead(IScriptableGetter *pScript, void *pBaseInst) const
Definition: cStructElem.h:143
cStructElem m_elem
(type,offset,extra)
Definition: cStructElem.h:96
Definition: cVariant.h:26
Definition: cArchive.h:20
cStreamOutput & ref_Out()
Definition: cArchive.h:62
bool IsStoring() const noexcept
Definition: cArchive.h:49
cStreamInput & ref_Inp()
Definition: cArchive.h:67
Definition: cStream.h:126
Definition: cStream.h:456
Definition: IScriptableObj.h:51
Definition: IScriptableObj.h:62
VARTYPE_TYPE
< define types of structure/record elements. (COM uses VARTYPE=VARENUM for this) stored as BYTE
Definition: cVariantType.h:19
UNITTEST2_PREDEF(cQuadtree)
DECLARE_INTERFACE(IScriptableSetter)
int COMPARE_t
result of compare. 0=same, 1=a>b, -1=a<b
Definition: cValT.h:17
char ATOMCHAR_t
the char form (UNICODE or not) for an atom. (for symbolic names)
Definition: StrConst.h:15