Move the PROPVARIANT declaration from objidl.idl to propidl.idl.
[wine/multimedia.git] / include / propidl.h
blob3c77c2ad5a1fd460908763ef9c8e6a86c76b6d87
1 /*** Autogenerated by WIDL 0.1 from propidl.idl - Do not edit ***/
2 #include <rpc.h>
3 #include <rpcndr.h>
5 #ifndef __WIDL_PROPIDL_H
6 #define __WIDL_PROPIDL_H
7 #ifdef __cplusplus
8 extern "C" {
9 #endif
10 #include <objidl.h>
11 #include <oaidl.h>
12 #ifndef __IEnumSTATPROPSTG_FWD_DEFINED__
13 #define __IEnumSTATPROPSTG_FWD_DEFINED__
14 typedef struct IEnumSTATPROPSTG IEnumSTATPROPSTG;
15 #endif
17 #ifndef __IEnumSTATPROPSETSTG_FWD_DEFINED__
18 #define __IEnumSTATPROPSETSTG_FWD_DEFINED__
19 typedef struct IEnumSTATPROPSETSTG IEnumSTATPROPSETSTG;
20 #endif
22 #ifndef __IPropertyStorage_FWD_DEFINED__
23 #define __IPropertyStorage_FWD_DEFINED__
24 typedef struct IPropertyStorage IPropertyStorage;
25 #endif
27 typedef IPropertyStorage *LPPROPERTYSTORAGE;
29 #define PROPSETFLAG_DEFAULT (0)
31 #define PROPSETFLAG_NONSIMPLE (1)
33 #define PROPSETFLAG_ANSI (2)
35 #define PROPSETFLAG_UNBUFFERED (4)
37 typedef struct tagPROPVARIANT PROPVARIANT;
39 typedef struct tagCAUB {
40 ULONG cElems;
41 unsigned char *pElems;
42 } CAUB;
44 typedef struct tagCAI {
45 ULONG cElems;
46 short *pElems;
47 } CAI;
49 typedef struct tagCAUI {
50 ULONG cElems;
51 USHORT *pElems;
52 } CAUI;
54 typedef struct tagCAL {
55 ULONG cElems;
56 long *pElems;
57 } CAL;
59 typedef struct tagCAUL {
60 ULONG cElems;
61 ULONG *pElems;
62 } CAUL;
64 typedef struct tagCAFLT {
65 ULONG cElems;
66 float *pElems;
67 } CAFLT;
69 typedef struct tagCADBL {
70 ULONG cElems;
71 double *pElems;
72 } CADBL;
74 typedef struct tagCACY {
75 ULONG cElems;
76 CY *pElems;
77 } CACY;
79 typedef struct tagCADATE {
80 ULONG cElems;
81 DATE *pElems;
82 } CADATE;
84 typedef struct tagCABSTR {
85 ULONG cElems;
86 BSTR *pElems;
87 } CABSTR;
89 typedef struct tagCABSTRBLOB {
90 ULONG cElems;
91 BSTRBLOB *pElems;
92 } CABSTRBLOB;
94 typedef struct tagCABOOL {
95 ULONG cElems;
96 VARIANT_BOOL *pElems;
97 } CABOOL;
99 typedef struct tagCASCODE {
100 ULONG cElems;
101 SCODE *pElems;
102 } CASCODE;
104 typedef struct tagCAPROPVARIANT {
105 ULONG cElems;
106 PROPVARIANT *pElems;
107 } CAPROPVARIANT;
109 typedef struct tagCAH {
110 ULONG cElems;
111 LARGE_INTEGER *pElems;
112 } CAH;
114 typedef struct tagCAUH {
115 ULONG cElems;
116 ULARGE_INTEGER *pElems;
117 } CAUH;
119 typedef struct tagCALPSTR {
120 ULONG cElems;
121 LPSTR *pElems;
122 } CALPSTR;
124 typedef struct tagCALPWSTR {
125 ULONG cElems;
126 LPWSTR *pElems;
127 } CALPWSTR;
129 typedef struct tagCAFILETIME {
130 ULONG cElems;
131 FILETIME *pElems;
132 } CAFILETIME;
134 typedef struct tagCACLIPDATA {
135 ULONG cElems;
136 CLIPDATA *pElems;
137 } CACLIPDATA;
139 typedef struct tagCACLSID {
140 ULONG cElems;
141 CLSID *pElems;
142 } CACLSID;
144 struct tagPROPVARIANT {
145 VARTYPE vt;
146 WORD wReserved1;
147 WORD wReserved2;
148 WORD wReserved3;
149 union {
150 char cVal;
151 UCHAR bVal;
152 short iVal;
153 USHORT uiVal;
154 VARIANT_BOOL boolVal;
155 long lVal;
156 ULONG ulVal;
157 float fltVal;
158 SCODE scode;
159 LARGE_INTEGER hVal;
160 ULARGE_INTEGER uhVal;
161 double dblVal;
162 CY cyVal;
163 DATE date;
164 FILETIME filetime;
165 CLSID *puuid;
166 BLOB blob;
167 CLIPDATA *pclipdata;
168 IStream *pStream;
169 IStorage *pStorage;
170 BSTR bstrVal;
171 BSTRBLOB bstrblobVal;
172 LPSTR pszVal;
173 LPWSTR pwszVal;
174 CAUB caub;
175 CAI cai;
176 CAUI caui;
177 CABOOL cabool;
178 CAL cal;
179 CAUL caul;
180 CAFLT caflt;
181 CASCODE cascode;
182 CAH cah;
183 CAUH cauh;
184 CADBL cadbl;
185 CACY cacy;
186 CADATE cadate;
187 CAFILETIME cafiletime;
188 CACLSID cauuid;
189 CACLIPDATA caclipdata;
190 CABSTR cabstr;
191 CABSTRBLOB cabstrblob;
192 CALPSTR calpstr;
193 CALPWSTR calpwstr;
194 CAPROPVARIANT capropvar;
195 } DUMMYUNIONNAME;
198 typedef struct tagPROPVARIANT *LPPROPVARIANT;
200 #define PRSPEC_INVALID (0xffffffff)
202 #define PRSPEC_LPWSTR (0)
204 #define PRSPEC_PROPID (1)
206 typedef struct tagPROPSPEC {
207 ULONG ulKind;
208 union {
209 PROPID propid;
210 LPOLESTR lpwstr;
211 } DUMMYUNIONNAME;
212 } PROPSPEC;
214 typedef struct tagSTATPROPSTG {
215 LPOLESTR lpwstrName;
216 PROPID propid;
217 VARTYPE vt;
218 } STATPROPSTG;
220 typedef struct tagSTATPROPSETSTG {
221 FMTID fmtid;
222 CLSID clsid;
223 DWORD grfFlags;
224 FILETIME mtime;
225 FILETIME ctime;
226 FILETIME atime;
227 DWORD dwOSVersion;
228 } STATPROPSETSTG;
230 /*****************************************************************************
231 * IPropertyStorage interface
233 #ifndef __IPropertyStorage_INTERFACE_DEFINED__
234 #define __IPropertyStorage_INTERFACE_DEFINED__
236 DEFINE_GUID(IID_IPropertyStorage, 0x00000138, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
237 #if defined(__cplusplus) && !defined(CINTERFACE)
238 struct IPropertyStorage : public IUnknown
240 virtual HRESULT STDMETHODCALLTYPE ReadMultiple(
241 ULONG cpspec,
242 const PROPSPEC rgpspec[],
243 PROPVARIANT rgpropvar[]) = 0;
245 virtual HRESULT STDMETHODCALLTYPE WriteMultiple(
246 ULONG cpspec,
247 const PROPSPEC rgpspec[],
248 const PROPVARIANT rgpropvar[],
249 PROPID propidNameFirst) = 0;
251 virtual HRESULT STDMETHODCALLTYPE DeleteMultiple(
252 ULONG cpspec,
253 const PROPSPEC rgpspec[]) = 0;
255 virtual HRESULT STDMETHODCALLTYPE ReadPropertyNames(
256 ULONG cpropid,
257 const PROPID rgpropid[],
258 LPOLESTR rglpwstrName[]) = 0;
260 virtual HRESULT STDMETHODCALLTYPE WritePropertyNames(
261 ULONG cpropid,
262 const PROPID rgpropid[],
263 const LPOLESTR rglpwstrName[]) = 0;
265 virtual HRESULT STDMETHODCALLTYPE DeletePropertyNames(
266 ULONG cpropid,
267 const PROPID rgpropid[]) = 0;
269 virtual HRESULT STDMETHODCALLTYPE Commit(
270 DWORD grfCommitFlags) = 0;
272 virtual HRESULT STDMETHODCALLTYPE Revert(
273 ) = 0;
275 virtual HRESULT STDMETHODCALLTYPE Enum(
276 IEnumSTATPROPSTG** ppenum) = 0;
278 virtual HRESULT STDMETHODCALLTYPE SetTimes(
279 const FILETIME* pctime,
280 const FILETIME* patime,
281 const FILETIME* pmtime) = 0;
283 virtual HRESULT STDMETHODCALLTYPE SetClass(
284 REFCLSID clsid) = 0;
286 virtual HRESULT STDMETHODCALLTYPE Stat(
287 STATPROPSETSTG* statpsstg) = 0;
290 #else
291 typedef struct IPropertyStorageVtbl IPropertyStorageVtbl;
292 struct IPropertyStorage {
293 const IPropertyStorageVtbl* lpVtbl;
295 struct IPropertyStorageVtbl {
296 BEGIN_INTERFACE
298 /*** IUnknown methods ***/
299 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
300 IPropertyStorage* This,
301 REFIID riid,
302 void** ppvObject);
304 ULONG (STDMETHODCALLTYPE *AddRef)(
305 IPropertyStorage* This);
307 ULONG (STDMETHODCALLTYPE *Release)(
308 IPropertyStorage* This);
310 /*** IPropertyStorage methods ***/
311 HRESULT (STDMETHODCALLTYPE *ReadMultiple)(
312 IPropertyStorage* This,
313 ULONG cpspec,
314 const PROPSPEC rgpspec[],
315 PROPVARIANT rgpropvar[]);
317 HRESULT (STDMETHODCALLTYPE *WriteMultiple)(
318 IPropertyStorage* This,
319 ULONG cpspec,
320 const PROPSPEC rgpspec[],
321 const PROPVARIANT rgpropvar[],
322 PROPID propidNameFirst);
324 HRESULT (STDMETHODCALLTYPE *DeleteMultiple)(
325 IPropertyStorage* This,
326 ULONG cpspec,
327 const PROPSPEC rgpspec[]);
329 HRESULT (STDMETHODCALLTYPE *ReadPropertyNames)(
330 IPropertyStorage* This,
331 ULONG cpropid,
332 const PROPID rgpropid[],
333 LPOLESTR rglpwstrName[]);
335 HRESULT (STDMETHODCALLTYPE *WritePropertyNames)(
336 IPropertyStorage* This,
337 ULONG cpropid,
338 const PROPID rgpropid[],
339 const LPOLESTR rglpwstrName[]);
341 HRESULT (STDMETHODCALLTYPE *DeletePropertyNames)(
342 IPropertyStorage* This,
343 ULONG cpropid,
344 const PROPID rgpropid[]);
346 HRESULT (STDMETHODCALLTYPE *Commit)(
347 IPropertyStorage* This,
348 DWORD grfCommitFlags);
350 HRESULT (STDMETHODCALLTYPE *Revert)(
351 IPropertyStorage* This);
353 HRESULT (STDMETHODCALLTYPE *Enum)(
354 IPropertyStorage* This,
355 IEnumSTATPROPSTG** ppenum);
357 HRESULT (STDMETHODCALLTYPE *SetTimes)(
358 IPropertyStorage* This,
359 const FILETIME* pctime,
360 const FILETIME* patime,
361 const FILETIME* pmtime);
363 HRESULT (STDMETHODCALLTYPE *SetClass)(
364 IPropertyStorage* This,
365 REFCLSID clsid);
367 HRESULT (STDMETHODCALLTYPE *Stat)(
368 IPropertyStorage* This,
369 STATPROPSETSTG* statpsstg);
371 END_INTERFACE
374 #ifdef COBJMACROS
375 /*** IUnknown methods ***/
376 #define IPropertyStorage_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
377 #define IPropertyStorage_AddRef(p) (p)->lpVtbl->AddRef(p)
378 #define IPropertyStorage_Release(p) (p)->lpVtbl->Release(p)
379 /*** IPropertyStorage methods ***/
380 #define IPropertyStorage_ReadMultiple(p,a,b,c) (p)->lpVtbl->ReadMultiple(p,a,b,c)
381 #define IPropertyStorage_WriteMultiple(p,a,b,c,d) (p)->lpVtbl->WriteMultiple(p,a,b,c,d)
382 #define IPropertyStorage_DeleteMultiple(p,a,b) (p)->lpVtbl->DeleteMultiple(p,a,b)
383 #define IPropertyStorage_ReadPropertyNames(p,a,b,c) (p)->lpVtbl->ReadPropertyNames(p,a,b,c)
384 #define IPropertyStorage_WritePropertyNames(p,a,b,c) (p)->lpVtbl->WritePropertyNames(p,a,b,c)
385 #define IPropertyStorage_DeletePropertyNames(p,a,b) (p)->lpVtbl->DeletePropertyNames(p,a,b)
386 #define IPropertyStorage_Commit(p,a) (p)->lpVtbl->Commit(p,a)
387 #define IPropertyStorage_Revert(p) (p)->lpVtbl->Revert(p)
388 #define IPropertyStorage_Enum(p,a) (p)->lpVtbl->Enum(p,a)
389 #define IPropertyStorage_SetTimes(p,a,b,c) (p)->lpVtbl->SetTimes(p,a,b,c)
390 #define IPropertyStorage_SetClass(p,a) (p)->lpVtbl->SetClass(p,a)
391 #define IPropertyStorage_Stat(p,a) (p)->lpVtbl->Stat(p,a)
392 #endif
394 #endif
396 #define IPropertyStorage_METHODS \
397 /*** IUnknown methods ***/ \
398 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
399 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
400 STDMETHOD_(ULONG,Release)(THIS) PURE; \
401 /*** IPropertyStorage methods ***/ \
402 STDMETHOD_(HRESULT,ReadMultiple)(THIS_ ULONG cpspec, const PROPSPEC rgpspec[], PROPVARIANT rgpropvar[]) PURE; \
403 STDMETHOD_(HRESULT,WriteMultiple)(THIS_ ULONG cpspec, const PROPSPEC rgpspec[], const PROPVARIANT rgpropvar[], PROPID propidNameFirst) PURE; \
404 STDMETHOD_(HRESULT,DeleteMultiple)(THIS_ ULONG cpspec, const PROPSPEC rgpspec[]) PURE; \
405 STDMETHOD_(HRESULT,ReadPropertyNames)(THIS_ ULONG cpropid, const PROPID rgpropid[], LPOLESTR rglpwstrName[]) PURE; \
406 STDMETHOD_(HRESULT,WritePropertyNames)(THIS_ ULONG cpropid, const PROPID rgpropid[], const LPOLESTR rglpwstrName[]) PURE; \
407 STDMETHOD_(HRESULT,DeletePropertyNames)(THIS_ ULONG cpropid, const PROPID rgpropid[]) PURE; \
408 STDMETHOD_(HRESULT,Commit)(THIS_ DWORD grfCommitFlags) PURE; \
409 STDMETHOD_(HRESULT,Revert)(THIS) PURE; \
410 STDMETHOD_(HRESULT,Enum)(THIS_ IEnumSTATPROPSTG** ppenum) PURE; \
411 STDMETHOD_(HRESULT,SetTimes)(THIS_ const FILETIME* pctime, const FILETIME* patime, const FILETIME* pmtime) PURE; \
412 STDMETHOD_(HRESULT,SetClass)(THIS_ REFCLSID clsid) PURE; \
413 STDMETHOD_(HRESULT,Stat)(THIS_ STATPROPSETSTG* statpsstg) PURE;
415 HRESULT CALLBACK IPropertyStorage_ReadMultiple_Proxy(
416 IPropertyStorage* This,
417 ULONG cpspec,
418 const PROPSPEC rgpspec[],
419 PROPVARIANT rgpropvar[]);
420 void __RPC_STUB IPropertyStorage_ReadMultiple_Stub(
421 struct IRpcStubBuffer* This,
422 struct IRpcChannelBuffer* pRpcChannelBuffer,
423 PRPC_MESSAGE pRpcMessage,
424 DWORD* pdwStubPhase);
425 HRESULT CALLBACK IPropertyStorage_WriteMultiple_Proxy(
426 IPropertyStorage* This,
427 ULONG cpspec,
428 const PROPSPEC rgpspec[],
429 const PROPVARIANT rgpropvar[],
430 PROPID propidNameFirst);
431 void __RPC_STUB IPropertyStorage_WriteMultiple_Stub(
432 struct IRpcStubBuffer* This,
433 struct IRpcChannelBuffer* pRpcChannelBuffer,
434 PRPC_MESSAGE pRpcMessage,
435 DWORD* pdwStubPhase);
436 HRESULT CALLBACK IPropertyStorage_DeleteMultiple_Proxy(
437 IPropertyStorage* This,
438 ULONG cpspec,
439 const PROPSPEC rgpspec[]);
440 void __RPC_STUB IPropertyStorage_DeleteMultiple_Stub(
441 struct IRpcStubBuffer* This,
442 struct IRpcChannelBuffer* pRpcChannelBuffer,
443 PRPC_MESSAGE pRpcMessage,
444 DWORD* pdwStubPhase);
445 HRESULT CALLBACK IPropertyStorage_ReadPropertyNames_Proxy(
446 IPropertyStorage* This,
447 ULONG cpropid,
448 const PROPID rgpropid[],
449 LPOLESTR rglpwstrName[]);
450 void __RPC_STUB IPropertyStorage_ReadPropertyNames_Stub(
451 struct IRpcStubBuffer* This,
452 struct IRpcChannelBuffer* pRpcChannelBuffer,
453 PRPC_MESSAGE pRpcMessage,
454 DWORD* pdwStubPhase);
455 HRESULT CALLBACK IPropertyStorage_WritePropertyNames_Proxy(
456 IPropertyStorage* This,
457 ULONG cpropid,
458 const PROPID rgpropid[],
459 const LPOLESTR rglpwstrName[]);
460 void __RPC_STUB IPropertyStorage_WritePropertyNames_Stub(
461 struct IRpcStubBuffer* This,
462 struct IRpcChannelBuffer* pRpcChannelBuffer,
463 PRPC_MESSAGE pRpcMessage,
464 DWORD* pdwStubPhase);
465 HRESULT CALLBACK IPropertyStorage_DeletePropertyNames_Proxy(
466 IPropertyStorage* This,
467 ULONG cpropid,
468 const PROPID rgpropid[]);
469 void __RPC_STUB IPropertyStorage_DeletePropertyNames_Stub(
470 struct IRpcStubBuffer* This,
471 struct IRpcChannelBuffer* pRpcChannelBuffer,
472 PRPC_MESSAGE pRpcMessage,
473 DWORD* pdwStubPhase);
474 HRESULT CALLBACK IPropertyStorage_Commit_Proxy(
475 IPropertyStorage* This,
476 DWORD grfCommitFlags);
477 void __RPC_STUB IPropertyStorage_Commit_Stub(
478 struct IRpcStubBuffer* This,
479 struct IRpcChannelBuffer* pRpcChannelBuffer,
480 PRPC_MESSAGE pRpcMessage,
481 DWORD* pdwStubPhase);
482 HRESULT CALLBACK IPropertyStorage_Revert_Proxy(
483 IPropertyStorage* This);
484 void __RPC_STUB IPropertyStorage_Revert_Stub(
485 struct IRpcStubBuffer* This,
486 struct IRpcChannelBuffer* pRpcChannelBuffer,
487 PRPC_MESSAGE pRpcMessage,
488 DWORD* pdwStubPhase);
489 HRESULT CALLBACK IPropertyStorage_Enum_Proxy(
490 IPropertyStorage* This,
491 IEnumSTATPROPSTG** ppenum);
492 void __RPC_STUB IPropertyStorage_Enum_Stub(
493 struct IRpcStubBuffer* This,
494 struct IRpcChannelBuffer* pRpcChannelBuffer,
495 PRPC_MESSAGE pRpcMessage,
496 DWORD* pdwStubPhase);
497 HRESULT CALLBACK IPropertyStorage_SetTimes_Proxy(
498 IPropertyStorage* This,
499 const FILETIME* pctime,
500 const FILETIME* patime,
501 const FILETIME* pmtime);
502 void __RPC_STUB IPropertyStorage_SetTimes_Stub(
503 struct IRpcStubBuffer* This,
504 struct IRpcChannelBuffer* pRpcChannelBuffer,
505 PRPC_MESSAGE pRpcMessage,
506 DWORD* pdwStubPhase);
507 HRESULT CALLBACK IPropertyStorage_SetClass_Proxy(
508 IPropertyStorage* This,
509 REFCLSID clsid);
510 void __RPC_STUB IPropertyStorage_SetClass_Stub(
511 struct IRpcStubBuffer* This,
512 struct IRpcChannelBuffer* pRpcChannelBuffer,
513 PRPC_MESSAGE pRpcMessage,
514 DWORD* pdwStubPhase);
515 HRESULT CALLBACK IPropertyStorage_Stat_Proxy(
516 IPropertyStorage* This,
517 STATPROPSETSTG* statpsstg);
518 void __RPC_STUB IPropertyStorage_Stat_Stub(
519 struct IRpcStubBuffer* This,
520 struct IRpcChannelBuffer* pRpcChannelBuffer,
521 PRPC_MESSAGE pRpcMessage,
522 DWORD* pdwStubPhase);
524 #endif /* __IPropertyStorage_INTERFACE_DEFINED__ */
526 #ifndef __IPropertySetStorage_FWD_DEFINED__
527 #define __IPropertySetStorage_FWD_DEFINED__
528 typedef struct IPropertySetStorage IPropertySetStorage;
529 #endif
531 typedef IPropertySetStorage *LPPROPERTYSETSTORAGE;
533 /*****************************************************************************
534 * IPropertySetStorage interface
536 #ifndef __IPropertySetStorage_INTERFACE_DEFINED__
537 #define __IPropertySetStorage_INTERFACE_DEFINED__
539 DEFINE_GUID(IID_IPropertySetStorage, 0x0000013a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
540 #if defined(__cplusplus) && !defined(CINTERFACE)
541 struct IPropertySetStorage : public IUnknown
543 virtual HRESULT STDMETHODCALLTYPE Create(
544 REFFMTID rfmtid,
545 const CLSID* pclsid,
546 DWORD grfFlags,
547 DWORD grfMode,
548 IPropertyStorage** ppprstg) = 0;
550 virtual HRESULT STDMETHODCALLTYPE Open(
551 REFFMTID rfmtid,
552 DWORD grfMode,
553 IPropertyStorage** ppprstg) = 0;
555 virtual HRESULT STDMETHODCALLTYPE Delete(
556 REFFMTID rfmtid) = 0;
558 virtual HRESULT STDMETHODCALLTYPE Enum(
559 IEnumSTATPROPSETSTG** ppenum) = 0;
562 #else
563 typedef struct IPropertySetStorageVtbl IPropertySetStorageVtbl;
564 struct IPropertySetStorage {
565 const IPropertySetStorageVtbl* lpVtbl;
567 struct IPropertySetStorageVtbl {
568 BEGIN_INTERFACE
570 /*** IUnknown methods ***/
571 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
572 IPropertySetStorage* This,
573 REFIID riid,
574 void** ppvObject);
576 ULONG (STDMETHODCALLTYPE *AddRef)(
577 IPropertySetStorage* This);
579 ULONG (STDMETHODCALLTYPE *Release)(
580 IPropertySetStorage* This);
582 /*** IPropertySetStorage methods ***/
583 HRESULT (STDMETHODCALLTYPE *Create)(
584 IPropertySetStorage* This,
585 REFFMTID rfmtid,
586 const CLSID* pclsid,
587 DWORD grfFlags,
588 DWORD grfMode,
589 IPropertyStorage** ppprstg);
591 HRESULT (STDMETHODCALLTYPE *Open)(
592 IPropertySetStorage* This,
593 REFFMTID rfmtid,
594 DWORD grfMode,
595 IPropertyStorage** ppprstg);
597 HRESULT (STDMETHODCALLTYPE *Delete)(
598 IPropertySetStorage* This,
599 REFFMTID rfmtid);
601 HRESULT (STDMETHODCALLTYPE *Enum)(
602 IPropertySetStorage* This,
603 IEnumSTATPROPSETSTG** ppenum);
605 END_INTERFACE
608 #ifdef COBJMACROS
609 /*** IUnknown methods ***/
610 #define IPropertySetStorage_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
611 #define IPropertySetStorage_AddRef(p) (p)->lpVtbl->AddRef(p)
612 #define IPropertySetStorage_Release(p) (p)->lpVtbl->Release(p)
613 /*** IPropertySetStorage methods ***/
614 #define IPropertySetStorage_Create(p,a,b,c,d,e) (p)->lpVtbl->Create(p,a,b,c,d,e)
615 #define IPropertySetStorage_Open(p,a,b,c) (p)->lpVtbl->Open(p,a,b,c)
616 #define IPropertySetStorage_Delete(p,a) (p)->lpVtbl->Delete(p,a)
617 #define IPropertySetStorage_Enum(p,a) (p)->lpVtbl->Enum(p,a)
618 #endif
620 #endif
622 #define IPropertySetStorage_METHODS \
623 /*** IUnknown methods ***/ \
624 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
625 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
626 STDMETHOD_(ULONG,Release)(THIS) PURE; \
627 /*** IPropertySetStorage methods ***/ \
628 STDMETHOD_(HRESULT,Create)(THIS_ REFFMTID rfmtid, const CLSID* pclsid, DWORD grfFlags, DWORD grfMode, IPropertyStorage** ppprstg) PURE; \
629 STDMETHOD_(HRESULT,Open)(THIS_ REFFMTID rfmtid, DWORD grfMode, IPropertyStorage** ppprstg) PURE; \
630 STDMETHOD_(HRESULT,Delete)(THIS_ REFFMTID rfmtid) PURE; \
631 STDMETHOD_(HRESULT,Enum)(THIS_ IEnumSTATPROPSETSTG** ppenum) PURE;
633 HRESULT CALLBACK IPropertySetStorage_Create_Proxy(
634 IPropertySetStorage* This,
635 REFFMTID rfmtid,
636 const CLSID* pclsid,
637 DWORD grfFlags,
638 DWORD grfMode,
639 IPropertyStorage** ppprstg);
640 void __RPC_STUB IPropertySetStorage_Create_Stub(
641 struct IRpcStubBuffer* This,
642 struct IRpcChannelBuffer* pRpcChannelBuffer,
643 PRPC_MESSAGE pRpcMessage,
644 DWORD* pdwStubPhase);
645 HRESULT CALLBACK IPropertySetStorage_Open_Proxy(
646 IPropertySetStorage* This,
647 REFFMTID rfmtid,
648 DWORD grfMode,
649 IPropertyStorage** ppprstg);
650 void __RPC_STUB IPropertySetStorage_Open_Stub(
651 struct IRpcStubBuffer* This,
652 struct IRpcChannelBuffer* pRpcChannelBuffer,
653 PRPC_MESSAGE pRpcMessage,
654 DWORD* pdwStubPhase);
655 HRESULT CALLBACK IPropertySetStorage_Delete_Proxy(
656 IPropertySetStorage* This,
657 REFFMTID rfmtid);
658 void __RPC_STUB IPropertySetStorage_Delete_Stub(
659 struct IRpcStubBuffer* This,
660 struct IRpcChannelBuffer* pRpcChannelBuffer,
661 PRPC_MESSAGE pRpcMessage,
662 DWORD* pdwStubPhase);
663 HRESULT CALLBACK IPropertySetStorage_Enum_Proxy(
664 IPropertySetStorage* This,
665 IEnumSTATPROPSETSTG** ppenum);
666 void __RPC_STUB IPropertySetStorage_Enum_Stub(
667 struct IRpcStubBuffer* This,
668 struct IRpcChannelBuffer* pRpcChannelBuffer,
669 PRPC_MESSAGE pRpcMessage,
670 DWORD* pdwStubPhase);
672 #endif /* __IPropertySetStorage_INTERFACE_DEFINED__ */
674 typedef IEnumSTATPROPSTG *LPENUMSTATPROPSTG;
676 /*****************************************************************************
677 * IEnumSTATPROPSTG interface
679 #ifndef __IEnumSTATPROPSTG_INTERFACE_DEFINED__
680 #define __IEnumSTATPROPSTG_INTERFACE_DEFINED__
682 DEFINE_GUID(IID_IEnumSTATPROPSTG, 0x00000139, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
683 #if defined(__cplusplus) && !defined(CINTERFACE)
684 struct IEnumSTATPROPSTG : public IUnknown
686 virtual HRESULT STDMETHODCALLTYPE Next(
687 ULONG celt,
688 STATPROPSTG* rgelt,
689 ULONG* pceltFetched) = 0;
691 virtual HRESULT STDMETHODCALLTYPE Skip(
692 ULONG celt) = 0;
694 virtual HRESULT STDMETHODCALLTYPE Reset(
695 ) = 0;
697 virtual HRESULT STDMETHODCALLTYPE Clone(
698 IEnumSTATPROPSTG** ppenum) = 0;
701 #else
702 typedef struct IEnumSTATPROPSTGVtbl IEnumSTATPROPSTGVtbl;
703 struct IEnumSTATPROPSTG {
704 const IEnumSTATPROPSTGVtbl* lpVtbl;
706 struct IEnumSTATPROPSTGVtbl {
707 BEGIN_INTERFACE
709 /*** IUnknown methods ***/
710 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
711 IEnumSTATPROPSTG* This,
712 REFIID riid,
713 void** ppvObject);
715 ULONG (STDMETHODCALLTYPE *AddRef)(
716 IEnumSTATPROPSTG* This);
718 ULONG (STDMETHODCALLTYPE *Release)(
719 IEnumSTATPROPSTG* This);
721 /*** IEnumSTATPROPSTG methods ***/
722 HRESULT (STDMETHODCALLTYPE *Next)(
723 IEnumSTATPROPSTG* This,
724 ULONG celt,
725 STATPROPSTG* rgelt,
726 ULONG* pceltFetched);
728 HRESULT (STDMETHODCALLTYPE *Skip)(
729 IEnumSTATPROPSTG* This,
730 ULONG celt);
732 HRESULT (STDMETHODCALLTYPE *Reset)(
733 IEnumSTATPROPSTG* This);
735 HRESULT (STDMETHODCALLTYPE *Clone)(
736 IEnumSTATPROPSTG* This,
737 IEnumSTATPROPSTG** ppenum);
739 END_INTERFACE
742 #ifdef COBJMACROS
743 /*** IUnknown methods ***/
744 #define IEnumSTATPROPSTG_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
745 #define IEnumSTATPROPSTG_AddRef(p) (p)->lpVtbl->AddRef(p)
746 #define IEnumSTATPROPSTG_Release(p) (p)->lpVtbl->Release(p)
747 /*** IEnumSTATPROPSTG methods ***/
748 #define IEnumSTATPROPSTG_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
749 #define IEnumSTATPROPSTG_Skip(p,a) (p)->lpVtbl->Skip(p,a)
750 #define IEnumSTATPROPSTG_Reset(p) (p)->lpVtbl->Reset(p)
751 #define IEnumSTATPROPSTG_Clone(p,a) (p)->lpVtbl->Clone(p,a)
752 #endif
754 #endif
756 #define IEnumSTATPROPSTG_METHODS \
757 /*** IUnknown methods ***/ \
758 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
759 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
760 STDMETHOD_(ULONG,Release)(THIS) PURE; \
761 /*** IEnumSTATPROPSTG methods ***/ \
762 STDMETHOD_(HRESULT,Next)(THIS_ ULONG celt, STATPROPSTG* rgelt, ULONG* pceltFetched) PURE; \
763 STDMETHOD_(HRESULT,Skip)(THIS_ ULONG celt) PURE; \
764 STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
765 STDMETHOD_(HRESULT,Clone)(THIS_ IEnumSTATPROPSTG** ppenum) PURE;
767 HRESULT CALLBACK IEnumSTATPROPSTG_RemoteNext_Proxy(
768 IEnumSTATPROPSTG* This,
769 ULONG celt,
770 STATPROPSTG* rgelt,
771 ULONG* pceltFetched);
772 void __RPC_STUB IEnumSTATPROPSTG_RemoteNext_Stub(
773 struct IRpcStubBuffer* This,
774 struct IRpcChannelBuffer* pRpcChannelBuffer,
775 PRPC_MESSAGE pRpcMessage,
776 DWORD* pdwStubPhase);
777 HRESULT CALLBACK IEnumSTATPROPSTG_Next_Proxy(
778 IEnumSTATPROPSTG* This,
779 ULONG celt,
780 STATPROPSTG* rgelt,
781 ULONG* pceltFetched);
782 HRESULT __RPC_STUB IEnumSTATPROPSTG_Next_Stub(
783 IEnumSTATPROPSTG* This,
784 ULONG celt,
785 STATPROPSTG* rgelt,
786 ULONG* pceltFetched);
787 HRESULT CALLBACK IEnumSTATPROPSTG_Skip_Proxy(
788 IEnumSTATPROPSTG* This,
789 ULONG celt);
790 void __RPC_STUB IEnumSTATPROPSTG_Skip_Stub(
791 struct IRpcStubBuffer* This,
792 struct IRpcChannelBuffer* pRpcChannelBuffer,
793 PRPC_MESSAGE pRpcMessage,
794 DWORD* pdwStubPhase);
795 HRESULT CALLBACK IEnumSTATPROPSTG_Reset_Proxy(
796 IEnumSTATPROPSTG* This);
797 void __RPC_STUB IEnumSTATPROPSTG_Reset_Stub(
798 struct IRpcStubBuffer* This,
799 struct IRpcChannelBuffer* pRpcChannelBuffer,
800 PRPC_MESSAGE pRpcMessage,
801 DWORD* pdwStubPhase);
802 HRESULT CALLBACK IEnumSTATPROPSTG_Clone_Proxy(
803 IEnumSTATPROPSTG* This,
804 IEnumSTATPROPSTG** ppenum);
805 void __RPC_STUB IEnumSTATPROPSTG_Clone_Stub(
806 struct IRpcStubBuffer* This,
807 struct IRpcChannelBuffer* pRpcChannelBuffer,
808 PRPC_MESSAGE pRpcMessage,
809 DWORD* pdwStubPhase);
811 #endif /* __IEnumSTATPROPSTG_INTERFACE_DEFINED__ */
813 typedef IEnumSTATPROPSETSTG *LPENUMSTATPROPSETSTG;
815 /*****************************************************************************
816 * IEnumSTATPROPSETSTG interface
818 #ifndef __IEnumSTATPROPSETSTG_INTERFACE_DEFINED__
819 #define __IEnumSTATPROPSETSTG_INTERFACE_DEFINED__
821 DEFINE_GUID(IID_IEnumSTATPROPSETSTG, 0x0000013b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
822 #if defined(__cplusplus) && !defined(CINTERFACE)
823 struct IEnumSTATPROPSETSTG : public IUnknown
825 virtual HRESULT STDMETHODCALLTYPE Next(
826 ULONG celt,
827 STATPROPSETSTG* rgelt,
828 ULONG* pceltFetched) = 0;
830 virtual HRESULT STDMETHODCALLTYPE Skip(
831 ULONG celt) = 0;
833 virtual HRESULT STDMETHODCALLTYPE Reset(
834 ) = 0;
836 virtual HRESULT STDMETHODCALLTYPE Clone(
837 IEnumSTATPROPSETSTG** ppenum) = 0;
840 #else
841 typedef struct IEnumSTATPROPSETSTGVtbl IEnumSTATPROPSETSTGVtbl;
842 struct IEnumSTATPROPSETSTG {
843 const IEnumSTATPROPSETSTGVtbl* lpVtbl;
845 struct IEnumSTATPROPSETSTGVtbl {
846 BEGIN_INTERFACE
848 /*** IUnknown methods ***/
849 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
850 IEnumSTATPROPSETSTG* This,
851 REFIID riid,
852 void** ppvObject);
854 ULONG (STDMETHODCALLTYPE *AddRef)(
855 IEnumSTATPROPSETSTG* This);
857 ULONG (STDMETHODCALLTYPE *Release)(
858 IEnumSTATPROPSETSTG* This);
860 /*** IEnumSTATPROPSETSTG methods ***/
861 HRESULT (STDMETHODCALLTYPE *Next)(
862 IEnumSTATPROPSETSTG* This,
863 ULONG celt,
864 STATPROPSETSTG* rgelt,
865 ULONG* pceltFetched);
867 HRESULT (STDMETHODCALLTYPE *Skip)(
868 IEnumSTATPROPSETSTG* This,
869 ULONG celt);
871 HRESULT (STDMETHODCALLTYPE *Reset)(
872 IEnumSTATPROPSETSTG* This);
874 HRESULT (STDMETHODCALLTYPE *Clone)(
875 IEnumSTATPROPSETSTG* This,
876 IEnumSTATPROPSETSTG** ppenum);
878 END_INTERFACE
881 #ifdef COBJMACROS
882 /*** IUnknown methods ***/
883 #define IEnumSTATPROPSETSTG_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
884 #define IEnumSTATPROPSETSTG_AddRef(p) (p)->lpVtbl->AddRef(p)
885 #define IEnumSTATPROPSETSTG_Release(p) (p)->lpVtbl->Release(p)
886 /*** IEnumSTATPROPSETSTG methods ***/
887 #define IEnumSTATPROPSETSTG_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
888 #define IEnumSTATPROPSETSTG_Skip(p,a) (p)->lpVtbl->Skip(p,a)
889 #define IEnumSTATPROPSETSTG_Reset(p) (p)->lpVtbl->Reset(p)
890 #define IEnumSTATPROPSETSTG_Clone(p,a) (p)->lpVtbl->Clone(p,a)
891 #endif
893 #endif
895 #define IEnumSTATPROPSETSTG_METHODS \
896 /*** IUnknown methods ***/ \
897 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
898 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
899 STDMETHOD_(ULONG,Release)(THIS) PURE; \
900 /*** IEnumSTATPROPSETSTG methods ***/ \
901 STDMETHOD_(HRESULT,Next)(THIS_ ULONG celt, STATPROPSETSTG* rgelt, ULONG* pceltFetched) PURE; \
902 STDMETHOD_(HRESULT,Skip)(THIS_ ULONG celt) PURE; \
903 STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
904 STDMETHOD_(HRESULT,Clone)(THIS_ IEnumSTATPROPSETSTG** ppenum) PURE;
906 HRESULT CALLBACK IEnumSTATPROPSETSTG_RemoteNext_Proxy(
907 IEnumSTATPROPSETSTG* This,
908 ULONG celt,
909 STATPROPSETSTG* rgelt,
910 ULONG* pceltFetched);
911 void __RPC_STUB IEnumSTATPROPSETSTG_RemoteNext_Stub(
912 struct IRpcStubBuffer* This,
913 struct IRpcChannelBuffer* pRpcChannelBuffer,
914 PRPC_MESSAGE pRpcMessage,
915 DWORD* pdwStubPhase);
916 HRESULT CALLBACK IEnumSTATPROPSETSTG_Next_Proxy(
917 IEnumSTATPROPSETSTG* This,
918 ULONG celt,
919 STATPROPSETSTG* rgelt,
920 ULONG* pceltFetched);
921 HRESULT __RPC_STUB IEnumSTATPROPSETSTG_Next_Stub(
922 IEnumSTATPROPSETSTG* This,
923 ULONG celt,
924 STATPROPSETSTG* rgelt,
925 ULONG* pceltFetched);
926 HRESULT CALLBACK IEnumSTATPROPSETSTG_Skip_Proxy(
927 IEnumSTATPROPSETSTG* This,
928 ULONG celt);
929 void __RPC_STUB IEnumSTATPROPSETSTG_Skip_Stub(
930 struct IRpcStubBuffer* This,
931 struct IRpcChannelBuffer* pRpcChannelBuffer,
932 PRPC_MESSAGE pRpcMessage,
933 DWORD* pdwStubPhase);
934 HRESULT CALLBACK IEnumSTATPROPSETSTG_Reset_Proxy(
935 IEnumSTATPROPSETSTG* This);
936 void __RPC_STUB IEnumSTATPROPSETSTG_Reset_Stub(
937 struct IRpcStubBuffer* This,
938 struct IRpcChannelBuffer* pRpcChannelBuffer,
939 PRPC_MESSAGE pRpcMessage,
940 DWORD* pdwStubPhase);
941 HRESULT CALLBACK IEnumSTATPROPSETSTG_Clone_Proxy(
942 IEnumSTATPROPSETSTG* This,
943 IEnumSTATPROPSETSTG** ppenum);
944 void __RPC_STUB IEnumSTATPROPSETSTG_Clone_Stub(
945 struct IRpcStubBuffer* This,
946 struct IRpcChannelBuffer* pRpcChannelBuffer,
947 PRPC_MESSAGE pRpcMessage,
948 DWORD* pdwStubPhase);
950 #endif /* __IEnumSTATPROPSETSTG_INTERFACE_DEFINED__ */
952 HRESULT WINAPI FreePropVariantArray(ULONG,PROPVARIANT*);
953 HRESULT WINAPI PropVariantClear(PROPVARIANT*);
954 HRESULT WINAPI PropVariantCopy(PROPVARIANT*,const PROPVARIANT*);
955 #ifdef __cplusplus
957 #endif
958 #endif /* __WIDL_PROPIDL_H */