other-licenses/7zstub/src/Windows/PropVariant.h

Fri, 16 Jan 2015 18:13:44 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Fri, 16 Jan 2015 18:13:44 +0100
branch
TOR_BUG_9701
changeset 14
925c144e1f1f
permissions
-rw-r--r--

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

mercurial