37cpp_quote("#ifdef PID_CODEPAGE")
38cpp_quote("#undef PID_CODEPAGE")
41cpp_quote("#ifdef PID_SECURITY")
42cpp_quote("#undef PID_SECURITY")
45/******************** Property Storage ********************/
47interface IEnumSTATPROPSTG;
48interface IEnumSTATPROPSETSTG;
52 uuid(00000138-0000-0000-C000-000000000046),
53 pointer_default(unique)
55interface IPropertyStorage : IUnknown
57 typedef [unique] IPropertyStorage *LPPROPERTYSTORAGE;
59 const DWORD PROPSETFLAG_DEFAULT = 0;
60 const DWORD PROPSETFLAG_NONSIMPLE = 1;
61 const DWORD PROPSETFLAG_ANSI = 2;
62 const DWORD PROPSETFLAG_UNBUFFERED = 4;
63 const DWORD PROPSETFLAG_CASE_SENSITIVE = 8;
65 const DWORD PROPSET_BEHAVIOR_CASE_SENSITIVE = 1;
67 const PROPID PID_DICTIONARY = 0x00000000;
68 const PROPID PID_CODEPAGE = 0x00000001;
69 const PROPID PID_FIRST_USABLE = 0x00000002;
70 const PROPID PID_FIRST_NAME_DEFAULT = 0x00000fff;
71 const PROPID PID_LOCALE = 0x80000000;
72 const PROPID PID_MODIFY_TIME = 0x80000001;
73 const PROPID PID_SECURITY = 0x80000002;
74 const PROPID PID_BEHAVIOR = 0x80000003;
75 const PROPID PID_ILLEGAL = 0xffffffff;
76 const PROPID PID_MIN_READONLY = 0x80000000;
77 const PROPID PID_MAX_READONLY = 0xbfffffff;
79 typedef struct tagPROPVARIANT PROPVARIANT;
81#define TYPEDEF_CA(type, name) \
82 typedef struct tag##name { \
88 TYPEDEF_CA(char, CAC);
89 TYPEDEF_CA(unsigned char, CAUB);
90 TYPEDEF_CA(short, CAI);
91 TYPEDEF_CA(USHORT, CAUI);
92 TYPEDEF_CA(long, CAL);
93 TYPEDEF_CA(ULONG, CAUL);
94 TYPEDEF_CA(float, CAFLT);
95 TYPEDEF_CA(double, CADBL);
97 TYPEDEF_CA(DATE, CADATE);
98 TYPEDEF_CA(BSTR, CABSTR);
99 TYPEDEF_CA(BSTRBLOB, CABSTRBLOB);
100 TYPEDEF_CA(VARIANT_BOOL, CABOOL);
101 TYPEDEF_CA(SCODE, CASCODE);
102 TYPEDEF_CA(PROPVARIANT, CAPROPVARIANT);
103 TYPEDEF_CA(LARGE_INTEGER, CAH);
104 TYPEDEF_CA(ULARGE_INTEGER, CAUH);
105 TYPEDEF_CA(LPSTR, CALPSTR);
106 TYPEDEF_CA(LPWSTR, CALPWSTR);
107 TYPEDEF_CA(FILETIME, CAFILETIME);
108 TYPEDEF_CA(CLIPDATA, CACLIPDATA);
109 TYPEDEF_CA(CLSID, CACLSID);
111 struct tagPROPVARIANT {
116 [switch_is(vt & 0x1fff)] union {
117 [case(VT_EMPTY, VT_NULL)] ;
118 [case(VT_I1)] char cVal;
119 [case(VT_UI1)] UCHAR bVal;
120 [case(VT_I2)] short iVal;
121 [case(VT_UI2)] USHORT uiVal;
122 [case(VT_BOOL)] VARIANT_BOOL boolVal;
123#if 0 /* illegal in C++ */
124 [case(VT_ILLEGAL)] _VARIANT_BOOL bool;
126 [case(VT_I4)] long lVal;
127 [case(VT_UI4)] ULONG ulVal;
128 [case(VT_R4)] float fltVal;
129 [case(VT_ERROR)] SCODE scode;
130 [case(VT_I8)] LARGE_INTEGER hVal;
131 [case(VT_UI8)] ULARGE_INTEGER uhVal;
132 [case(VT_R8)] double dblVal;
133 [case(VT_CY)] CY cyVal;
134 [case(VT_DATE)] DATE date;
135 [case(VT_FILETIME)] FILETIME filetime;
136 [case(VT_CLSID)] CLSID *puuid;
137 [case(VT_BLOB, VT_BLOB_OBJECT)] BLOB blob;
138 [case(VT_CF)] CLIPDATA *pclipdata;
139 [case(VT_STREAM, VT_STREAMED_OBJECT)] IStream *pStream;
140 [case(VT_STORAGE, VT_STORED_OBJECT)] IStorage *pStorage;
141 [case(VT_BSTR)] BSTR bstrVal;
142 [case(VT_BSTR_BLOB)] BSTRBLOB bstrblobVal;
143 [case(VT_LPSTR)] LPSTR pszVal;
144 [case(VT_LPWSTR)] LPWSTR pwszVal;
145 [case(VT_UNKNOWN)] IUnknown *punkVal;
146 [case(VT_DISPATCH)] IDispatch *pdispVal;
147 [case(VT_I1|VT_VECTOR)] CAC cac;
148 [case(VT_UI1|VT_VECTOR)] CAUB caub;
149 [case(VT_I2|VT_VECTOR)] CAI cai;
150 [case(VT_UI2|VT_VECTOR)] CAUI caui;
151 [case(VT_BOOL|VT_VECTOR)] CABOOL cabool;
152 [case(VT_I4|VT_VECTOR)] CAL cal;
153 [case(VT_UI4|VT_VECTOR)] CAUL caul;
154 [case(VT_R4|VT_VECTOR)] CAFLT caflt;
155 [case(VT_ERROR|VT_VECTOR)] CASCODE cascode;
156 [case(VT_I8|VT_VECTOR)] CAH cah;
157 [case(VT_UI8|VT_VECTOR)] CAUH cauh;
158 [case(VT_R8|VT_VECTOR)] CADBL cadbl;
159 [case(VT_CY|VT_VECTOR)] CACY cacy;
160 [case(VT_DATE|VT_VECTOR)] CADATE cadate;
161 [case(VT_FILETIME|VT_VECTOR)] CAFILETIME cafiletime;
162 [case(VT_CLSID|VT_VECTOR)] CACLSID cauuid;
163 [case(VT_CF|VT_VECTOR)] CACLIPDATA caclipdata;
164 [case(VT_BSTR|VT_VECTOR)] CABSTR cabstr;
165 [case(VT_BSTR_BLOB|VT_VECTOR)] CABSTRBLOB cabstrblob;
166 [case(VT_LPSTR|VT_VECTOR)] CALPSTR calpstr;
167 [case(VT_LPWSTR|VT_VECTOR)] CALPWSTR calpwstr;
168 [case(VT_VARIANT|VT_VECTOR)] CAPROPVARIANT capropvar;
169 [case(VT_ARRAY|VT_I1,
184 VT_ARRAY|VT_DISPATCH,
187 VT_ARRAY|VT_VARIANT)] LPSAFEARRAY parray;
188 [case(VT_BYREF|VT_I1)] CHAR *pcVal;
189 [case(VT_BYREF|VT_UI1)] UCHAR *pbVal;
190 [case(VT_BYREF|VT_I2)] SHORT *piVal;
191 [case(VT_BYREF|VT_UI2)] USHORT *puiVal;
192 [case(VT_BYREF|VT_I4)] LONG *plVal;
193 [case(VT_BYREF|VT_UI4)] ULONG *pulVal;
194 [case(VT_BYREF|VT_INT)] INT *pintVal;
195 [case(VT_BYREF|VT_UINT)] UINT *puintVal;
196 [case(VT_BYREF|VT_R4)] FLOAT *pfltVal;
197 [case(VT_BYREF|VT_R8)] DOUBLE *pdblVal;
198 [case(VT_BYREF|VT_BOOL)] VARIANT_BOOL *pboolVal;
199 [case(VT_BYREF|VT_DECIMAL)] DECIMAL *pdecVal;
200 [case(VT_BYREF|VT_ERROR)] SCODE *pscode;
201 [case(VT_BYREF|VT_CY)] CY *pcyVal;
202 [case(VT_BYREF|VT_DATE)] DATE *pdate;
203 [case(VT_BYREF|VT_BSTR)] BSTR *pbstrVal;
204 [case(VT_BYREF|VT_UNKNOWN)] IUnknown **ppunkVal;
205 [case(VT_BYREF|VT_DISPATCH)] IDispatch **ppdispVal;
206 [case(VT_BYREF|VT_ARRAY)] LPSAFEARRAY *pparray;
207 [case(VT_BYREF|VT_VARIANT)] PROPVARIANT *pvarVal;
211 typedef struct tagPROPVARIANT *LPPROPVARIANT;
214 typedef const PROPVARIANT * REFPROPVARIANT;
216 cpp_quote("#ifndef _REFPROPVARIANT_DEFINED")
217 cpp_quote("#define _REFPROPVARIANT_DEFINED")
218 cpp_quote("#ifdef __cplusplus")
219 cpp_quote("#define REFPROPVARIANT const PROPVARIANT &")
221 cpp_quote("#define REFPROPVARIANT const PROPVARIANT * __MIDL_CONST")
225 cpp_quote("#define PIDDI_THUMBNAIL 0x00000002L
")
227 cpp_quote("#define PIDSI_TITLE 0x00000002L
")
228 cpp_quote("#define PIDSI_SUBJECT 0x00000003L
")
229 cpp_quote("#define PIDSI_AUTHOR 0x00000004L
")
230 cpp_quote("#define PIDSI_KEYWORDS 0x00000005L
")
231 cpp_quote("#define PIDSI_COMMENTS 0x00000006L
")
232 cpp_quote("#define PIDSI_TEMPLATE 0x00000007L
")
233 cpp_quote("#define PIDSI_LASTAUTHOR 0x00000008L
")
234 cpp_quote("#define PIDSI_REVNUMBER 0x00000009L
")
235 cpp_quote("#define PIDSI_EDITTIME 0x0000000AL
")
236 cpp_quote("#define PIDSI_LASTPRINTED 0x0000000BL
")
237 cpp_quote("#define PIDSI_CREATE_DTM 0x0000000CL
")
238 cpp_quote("#define PIDSI_LASTSAVE_DTM 0x0000000DL
")
239 cpp_quote("#define PIDSI_PAGECOUNT 0x0000000EL
")
240 cpp_quote("#define PIDSI_WORDCOUNT 0x0000000FL
")
241 cpp_quote("#define PIDSI_CHARCOUNT 0x00000010L
")
242 cpp_quote("#define PIDSI_THUMBNAIL 0x00000011L
")
243 cpp_quote("#define PIDSI_APPNAME 0x00000012L
")
244 cpp_quote("#define PIDSI_DOC_SECURITY 0x00000013L
")
246 cpp_quote("#define PIDDSI_CATEGORY 0x00000002L
")
247 cpp_quote("#define PIDDSI_PRESFORMAT 0x00000003L
")
248 cpp_quote("#define PIDDSI_BYTECOUNT 0x00000004L
")
249 cpp_quote("#define PIDDSI_LINECOUNT 0x00000005L
")
250 cpp_quote("#define PIDDSI_PARCOUNT 0x00000006L
")
251 cpp_quote("#define PIDDSI_SLIDECOUNT 0x00000007L
")
252 cpp_quote("#define PIDDSI_NOTECOUNT 0x00000008L
")
253 cpp_quote("#define PIDDSI_HIDDENCOUNT 0x00000009L
")
254 cpp_quote("#define PIDDSI_MMCLIPCOUNT 0x0000000AL
")
255 cpp_quote("#define PIDDSI_SCALE 0x0000000BL
")
256 cpp_quote("#define PIDDSI_HEADINGPAIR 0x0000000CL
")
257 cpp_quote("#define PIDDSI_DOCPARTS 0x0000000DL
")
258 cpp_quote("#define PIDDSI_MANAGER 0x0000000EL
")
259 cpp_quote("#define PIDDSI_COMPANY 0x0000000FL
")
260 cpp_quote("#define PIDDSI_LINKSDIRTY 0x00000010L
")
262 const ULONG PRSPEC_INVALID = 0xffffffff;
263 const ULONG PRSPEC_LPWSTR = 0;
264 const ULONG PRSPEC_PROPID = 1;
266 typedef struct tagPROPSPEC {
268 [switch_is(ulKind)] union {
269 [case(PRSPEC_PROPID)] PROPID propid;
270 [case(PRSPEC_LPWSTR)] LPOLESTR lpwstr;
275 typedef struct tagSTATPROPSTG {
282 cpp_quote("#define PROPSETHDR_OSVER_KIND(dwOSVer) HIWORD((dwOSVer))")
283 cpp_quote("#define PROPSETHDR_OSVER_MAJOR(dwOSVer) LOBYTE(LOWORD((dwOSVer)))")
284 cpp_quote("#define PROPSETHDR_OSVER_MINOR(dwOSVer) HIBYTE(LOWORD((dwOSVer)))")
285 cpp_quote("#define PROPSETHDR_OSVERSION_UNKNOWN 0xffffffff")
287 typedef struct tagSTATPROPSETSTG {
297 HRESULT ReadMultiple(
299 [in, size_is(cpspec)] const PROPSPEC rgpspec[],
300 [out, size_is(cpspec)] PROPVARIANT rgpropvar[]);
302 HRESULT WriteMultiple(
304 [in, size_is(cpspec)] const PROPSPEC rgpspec[],
305 [in, size_is(cpspec)] const PROPVARIANT rgpropvar[],
306 [in] PROPID propidNameFirst);
308 HRESULT DeleteMultiple(
310 [in, size_is(cpspec)] const PROPSPEC rgpspec[]);
312 HRESULT ReadPropertyNames(
314 [in, size_is(cpropid)] const PROPID rgpropid[],
315 [out, size_is(cpropid)] LPOLESTR rglpwstrName[]);
317 HRESULT WritePropertyNames(
319 [in, size_is(cpropid)] const PROPID rgpropid[],
320 [in, size_is(cpropid)] const LPOLESTR rglpwstrName[]);
322 HRESULT DeletePropertyNames(
324 [in, size_is(cpropid)] const PROPID rgpropid[]);
327 [in] DWORD grfCommitFlags);
332 [out] IEnumSTATPROPSTG **ppenum);
335 [in] const FILETIME *pctime,
336 [in] const FILETIME *patime,
337 [in] const FILETIME *pmtime);
340 [in] REFCLSID clsid);
343 [out] STATPROPSETSTG *statpsstg);
348 uuid(0000013A-0000-0000-C000-000000000046),
349 pointer_default(unique)
351interface IPropertySetStorage : IUnknown
353 typedef [unique] IPropertySetStorage *LPPROPERTYSETSTORAGE;
356 [in] REFFMTID rfmtid,
357 [in, unique] const CLSID *pclsid,
360 [out] IPropertyStorage **ppprstg);
363 [in] REFFMTID rfmtid,
365 [out] IPropertyStorage **ppprstg);
368 [in] REFFMTID rfmtid);
371 [out] IEnumSTATPROPSETSTG **ppenum);
376 uuid(00000139-0000-0000-C000-000000000046),
377 pointer_default(unique)
379interface IEnumSTATPROPSTG : IUnknown
381 typedef [unique] IEnumSTATPROPSTG *LPENUMSTATPROPSTG;
386 [out, size_is(celt), length_is(*pceltFetched)]
388 [out] ULONG *pceltFetched);
393 [out, size_is(celt), length_is(*pceltFetched)]
395 [out] ULONG *pceltFetched);
403 [out] IEnumSTATPROPSTG **ppenum);
408 uuid(0000013B-0000-0000-C000-000000000046),
409 pointer_default(unique)
411interface IEnumSTATPROPSETSTG : IUnknown
413 typedef [unique] IEnumSTATPROPSETSTG *LPENUMSTATPROPSETSTG;
418 [out, size_is(celt), length_is(*pceltFetched)]
419 STATPROPSETSTG *rgelt,
420 [out] ULONG *pceltFetched);
425 [out, size_is(celt), length_is(*pceltFetched)]
426 STATPROPSETSTG *rgelt,
427 [out] ULONG *pceltFetched);
435 [out] IEnumSTATPROPSETSTG **ppenum);
438typedef struct SERIALIZEDPROPERTYVALUE {
441} SERIALIZEDPROPERTYVALUE;
443cpp_quote("HRESULT WINAPI FreePropVariantArray(ULONG,PROPVARIANT*);")
444cpp_quote("HRESULT WINAPI PropVariantClear(PROPVARIANT*);")
445cpp_quote("HRESULT WINAPI PropVariantCopy(PROPVARIANT*,const PROPVARIANT*);")
447cpp_quote("#define _PROPVARIANT_INIT_DEFINED_")
448cpp_quote("#define PropVariantInit(p) memset((p), 0, sizeof(PROPVARIANT))")
450cpp_quote("#ifndef _STGCREATEPROPSTG_DEFINED_")
451cpp_quote("#define _STGCREATEPROPSTG_DEFINED_")
452cpp_quote("HRESULT WINAPI StgCreatePropStg(IUnknown *, REFFMTID, const CLSID *, DWORD, DWORD, IPropertyStorage **);")
453cpp_quote("HRESULT WINAPI StgOpenPropStg(IUnknown *, REFFMTID, DWORD, DWORD, IPropertyStorage **);")
454cpp_quote("HRESULT WINAPI StgCreatePropSetStg(IStorage *, DWORD, IPropertySetStorage **);")
455cpp_quote("#define CCH_MAX_PROPSTG_NAME 31")
456cpp_quote("HRESULT WINAPI FmtIdToPropStgName(const FMTID *, LPOLESTR);")
457cpp_quote("HRESULT WINAPI PropStgNameToFmtId(const LPOLESTR, FMTID *);")
CD3D10_BUFFER_DESC D3D10_BUFFER_DESC cpp_quote(" ~CD3D10_BUFFER_DESC() {}") operator const D3D10_BUFFER_DESC &() const