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