|
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 |