Fri, 16 Jan 2015 18:13:44 +0100
Integrate suggestion from review to improve consistency with existing code.
michael@0 | 1 | // Windows/PropVariant.h |
michael@0 | 2 | |
michael@0 | 3 | #ifndef __WINDOWS_PROPVARIANT_H |
michael@0 | 4 | #define __WINDOWS_PROPVARIANT_H |
michael@0 | 5 | |
michael@0 | 6 | #include "../Common/MyWindows.h" |
michael@0 | 7 | #include "../Common/Types.h" |
michael@0 | 8 | |
michael@0 | 9 | namespace NWindows { |
michael@0 | 10 | namespace NCOM { |
michael@0 | 11 | |
michael@0 | 12 | class CPropVariant : public tagPROPVARIANT |
michael@0 | 13 | { |
michael@0 | 14 | public: |
michael@0 | 15 | CPropVariant() { vt = VT_EMPTY; } |
michael@0 | 16 | ~CPropVariant() { Clear(); } |
michael@0 | 17 | CPropVariant(const PROPVARIANT& varSrc); |
michael@0 | 18 | CPropVariant(const CPropVariant& varSrc); |
michael@0 | 19 | CPropVariant(BSTR bstrSrc); |
michael@0 | 20 | CPropVariant(LPCOLESTR lpszSrc); |
michael@0 | 21 | CPropVariant(bool bSrc) { vt = VT_BOOL; boolVal = (bSrc ? VARIANT_TRUE : VARIANT_FALSE); }; |
michael@0 | 22 | CPropVariant(UInt32 value) { vt = VT_UI4; ulVal = value; } |
michael@0 | 23 | CPropVariant(UInt64 value) { vt = VT_UI8; uhVal = *(ULARGE_INTEGER*)&value; } |
michael@0 | 24 | CPropVariant(const FILETIME &value) { vt = VT_FILETIME; filetime = value; } |
michael@0 | 25 | CPropVariant(Int32 value) { vt = VT_I4; lVal = value; } |
michael@0 | 26 | CPropVariant(Byte value) { vt = VT_UI1; bVal = value; } |
michael@0 | 27 | CPropVariant(Int16 value) { vt = VT_I2; iVal = value; } |
michael@0 | 28 | // CPropVariant(LONG value, VARTYPE vtSrc = VT_I4) { vt = vtSrc; lVal = value; } |
michael@0 | 29 | |
michael@0 | 30 | CPropVariant& operator=(const CPropVariant& varSrc); |
michael@0 | 31 | CPropVariant& operator=(const PROPVARIANT& varSrc); |
michael@0 | 32 | CPropVariant& operator=(BSTR bstrSrc); |
michael@0 | 33 | CPropVariant& operator=(LPCOLESTR lpszSrc); |
michael@0 | 34 | CPropVariant& operator=(bool bSrc); |
michael@0 | 35 | CPropVariant& operator=(UInt32 value); |
michael@0 | 36 | CPropVariant& operator=(UInt64 value); |
michael@0 | 37 | CPropVariant& operator=(const FILETIME &value); |
michael@0 | 38 | |
michael@0 | 39 | CPropVariant& operator=(Int32 value); |
michael@0 | 40 | CPropVariant& operator=(Byte value); |
michael@0 | 41 | CPropVariant& operator=(Int16 value); |
michael@0 | 42 | // CPropVariant& operator=(LONG value); |
michael@0 | 43 | |
michael@0 | 44 | HRESULT Clear(); |
michael@0 | 45 | HRESULT Copy(const PROPVARIANT* pSrc); |
michael@0 | 46 | HRESULT Attach(PROPVARIANT* pSrc); |
michael@0 | 47 | HRESULT Detach(PROPVARIANT* pDest); |
michael@0 | 48 | |
michael@0 | 49 | HRESULT InternalClear(); |
michael@0 | 50 | void InternalCopy(const PROPVARIANT* pSrc); |
michael@0 | 51 | |
michael@0 | 52 | int Compare(const CPropVariant &a1); |
michael@0 | 53 | }; |
michael@0 | 54 | |
michael@0 | 55 | }} |
michael@0 | 56 | |
michael@0 | 57 | #endif |