Add a test case for scroll APIs, fix a few bugs spotted by it.
[wine.git] / include / pstore.h
blob245767b99cbc7ec6309699f2ba8f80ea2efdae90
1 /*** Autogenerated by WIDL 0.1 from pstore.idl - Do not edit ***/
2 #include <rpc.h>
3 #include <rpcndr.h>
5 #ifndef __WIDL_PSTORE_H
6 #define __WIDL_PSTORE_H
7 #ifdef __cplusplus
8 extern "C" {
9 #endif
10 #include <oaidl.h>
11 #define PST_KEY_CURRENT_USER 0
12 #define PST_KEY_LOCAL_MACHINE 1
13 #define PST_E_OK 0x00000000L
14 #define PST_E_TYPE_EXISTS 0x800C0004L
15 #define PST_AUTHENTICODE 1
16 #define PST_BINARY_CHECK 2
17 #define PST_SECURITY_DESCRIPTOR 4
18 typedef DWORD PST_ACCESSMODE;
20 typedef DWORD PST_ACCESSCLAUSETYPE;
22 typedef DWORD PST_KEY;
24 typedef DWORD PST_PROVIDERCAPABILITIES;
26 typedef GUID PST_PROVIDERID, *PPST_PROVIDERID;
28 typedef struct _PST_PROVIDERINFO {
29 DWORD cbSize;
30 PST_PROVIDERID ID;
31 PST_PROVIDERCAPABILITIES Capabilities;
32 LPWSTR szProviderName;
33 } PST_PROVIDERINFO, *PPST_PROVIDERINFO;
35 typedef void *PPST_PROMPTIFO;
37 typedef struct {
38 DWORD cbSize;
39 PST_ACCESSCLAUSETYPE ClauseType;
40 DWORD cbClauseData;
41 BYTE *pbClauseData;
42 } PST_ACCESSCLAUSE, *PPST_ACCESSCLAUSE;
44 typedef struct {
45 DWORD cbSize;
46 PST_ACCESSMODE AccessModeFlags;
47 DWORD cClauses;
48 PST_ACCESSCLAUSE *rgClauses;
49 } PST_ACCESSRULE, *PPST_ACCESSRULE;
51 typedef struct {
52 DWORD cbSize;
53 DWORD cClause;
54 PST_ACCESSRULE *rgRules;
55 } PST_ACCESSRULESET, *PPST_ACCESSRULESET;
57 typedef struct {
58 DWORD cbSize;
59 LPWSTR szDisplayName;
60 } PST_TYPEINFO, *PPST_TYPEINFO;
62 typedef struct {
63 DWORD cbSize;
64 DWORD dwPromptFlags;
65 DWORD_PTR hwndApp;
66 LPCWSTR szPrompt;
67 } PST_PROMPTINFO, *PPST_PROMPTINFO;
69 #ifndef __IEnumPStoreItems_FWD_DEFINED__
70 #define __IEnumPStoreItems_FWD_DEFINED__
71 typedef struct IEnumPStoreItems IEnumPStoreItems;
72 #endif
74 /*****************************************************************************
75 * IEnumPStoreItems interface
77 #ifndef __IEnumPStoreItems_INTERFACE_DEFINED__
78 #define __IEnumPStoreItems_INTERFACE_DEFINED__
80 #if defined(__cplusplus) && !defined(CINTERFACE)
81 struct IEnumPStoreItems : public IUnknown
83 virtual HRESULT STDMETHODCALLTYPE Clone(
84 IEnumPStoreItems** ppenum) = 0;
86 virtual HRESULT STDMETHODCALLTYPE Next(
87 DWORD celt,
88 LPWSTR* rgelt,
89 DWORD* pceltFetched) = 0;
91 virtual HRESULT STDMETHODCALLTYPE Reset(
92 ) = 0;
94 virtual HRESULT STDMETHODCALLTYPE Skip(
95 DWORD celt) = 0;
98 #else
99 typedef struct IEnumPStoreItemsVtbl IEnumPStoreItemsVtbl;
100 struct IEnumPStoreItems {
101 const IEnumPStoreItemsVtbl* lpVtbl;
103 struct IEnumPStoreItemsVtbl {
104 ICOM_MSVTABLE_COMPAT_FIELDS
106 /*** IUnknown methods ***/
107 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
108 IEnumPStoreItems* This,
109 REFIID riid,
110 void** ppvObject);
112 ULONG (STDMETHODCALLTYPE *AddRef)(
113 IEnumPStoreItems* This);
115 ULONG (STDMETHODCALLTYPE *Release)(
116 IEnumPStoreItems* This);
118 /*** IEnumPStoreItems methods ***/
119 HRESULT (STDMETHODCALLTYPE *Clone)(
120 IEnumPStoreItems* This,
121 IEnumPStoreItems** ppenum);
123 HRESULT (STDMETHODCALLTYPE *Next)(
124 IEnumPStoreItems* This,
125 DWORD celt,
126 LPWSTR* rgelt,
127 DWORD* pceltFetched);
129 HRESULT (STDMETHODCALLTYPE *Reset)(
130 IEnumPStoreItems* This);
132 HRESULT (STDMETHODCALLTYPE *Skip)(
133 IEnumPStoreItems* This,
134 DWORD celt);
138 /*** IUnknown methods ***/
139 #define IEnumPStoreItems_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
140 #define IEnumPStoreItems_AddRef(p) (p)->lpVtbl->AddRef(p)
141 #define IEnumPStoreItems_Release(p) (p)->lpVtbl->Release(p)
142 /*** IEnumPStoreItems methods ***/
143 #define IEnumPStoreItems_Clone(p,a) (p)->lpVtbl->Clone(p,a)
144 #define IEnumPStoreItems_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
145 #define IEnumPStoreItems_Reset(p) (p)->lpVtbl->Reset(p)
146 #define IEnumPStoreItems_Skip(p,a) (p)->lpVtbl->Skip(p,a)
148 #endif
150 #define IEnumPStoreItems_METHODS \
151 ICOM_MSVTABLE_COMPAT_FIELDS \
152 /*** IUnknown methods ***/ \
153 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
154 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
155 STDMETHOD_(ULONG,Release)(THIS) PURE; \
156 /*** IEnumPStoreItems methods ***/ \
157 STDMETHOD_(HRESULT,Clone)(THIS_ IEnumPStoreItems** ppenum) PURE; \
158 STDMETHOD_(HRESULT,Next)(THIS_ DWORD celt, LPWSTR* rgelt, DWORD* pceltFetched) PURE; \
159 STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
160 STDMETHOD_(HRESULT,Skip)(THIS_ DWORD celt) PURE;
162 HRESULT CALLBACK IEnumPStoreItems_Clone_Proxy(
163 IEnumPStoreItems* This,
164 IEnumPStoreItems** ppenum);
165 void __RPC_STUB IEnumPStoreItems_Clone_Stub(
166 struct IRpcStubBuffer* This,
167 struct IRpcChannelBuffer* pRpcChannelBuffer,
168 PRPC_MESSAGE pRpcMessage,
169 DWORD* pdwStubPhase);
170 HRESULT CALLBACK IEnumPStoreItems_Next_Proxy(
171 IEnumPStoreItems* This,
172 DWORD celt,
173 LPWSTR* rgelt,
174 DWORD* pceltFetched);
175 void __RPC_STUB IEnumPStoreItems_Next_Stub(
176 struct IRpcStubBuffer* This,
177 struct IRpcChannelBuffer* pRpcChannelBuffer,
178 PRPC_MESSAGE pRpcMessage,
179 DWORD* pdwStubPhase);
180 HRESULT CALLBACK IEnumPStoreItems_Reset_Proxy(
181 IEnumPStoreItems* This);
182 void __RPC_STUB IEnumPStoreItems_Reset_Stub(
183 struct IRpcStubBuffer* This,
184 struct IRpcChannelBuffer* pRpcChannelBuffer,
185 PRPC_MESSAGE pRpcMessage,
186 DWORD* pdwStubPhase);
187 HRESULT CALLBACK IEnumPStoreItems_Skip_Proxy(
188 IEnumPStoreItems* This,
189 DWORD celt);
190 void __RPC_STUB IEnumPStoreItems_Skip_Stub(
191 struct IRpcStubBuffer* This,
192 struct IRpcChannelBuffer* pRpcChannelBuffer,
193 PRPC_MESSAGE pRpcMessage,
194 DWORD* pdwStubPhase);
196 #endif /* __IEnumPStoreItems_INTERFACE_DEFINED__ */
198 #ifndef __IEnumPStoreTypes_FWD_DEFINED__
199 #define __IEnumPStoreTypes_FWD_DEFINED__
200 typedef struct IEnumPStoreTypes IEnumPStoreTypes;
201 #endif
203 /*****************************************************************************
204 * IEnumPStoreTypes interface
206 #ifndef __IEnumPStoreTypes_INTERFACE_DEFINED__
207 #define __IEnumPStoreTypes_INTERFACE_DEFINED__
209 #if defined(__cplusplus) && !defined(CINTERFACE)
210 struct IEnumPStoreTypes : public IUnknown
212 virtual HRESULT STDMETHODCALLTYPE Clone(
213 IEnumPStoreTypes** ppenum) = 0;
215 virtual HRESULT STDMETHODCALLTYPE Next(
216 DWORD celt,
217 LPWSTR* rgelt,
218 DWORD* pceltFetched) = 0;
220 virtual HRESULT STDMETHODCALLTYPE Reset(
221 ) = 0;
223 virtual HRESULT STDMETHODCALLTYPE Skip(
224 DWORD celt) = 0;
227 #else
228 typedef struct IEnumPStoreTypesVtbl IEnumPStoreTypesVtbl;
229 struct IEnumPStoreTypes {
230 const IEnumPStoreTypesVtbl* lpVtbl;
232 struct IEnumPStoreTypesVtbl {
233 ICOM_MSVTABLE_COMPAT_FIELDS
235 /*** IUnknown methods ***/
236 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
237 IEnumPStoreTypes* This,
238 REFIID riid,
239 void** ppvObject);
241 ULONG (STDMETHODCALLTYPE *AddRef)(
242 IEnumPStoreTypes* This);
244 ULONG (STDMETHODCALLTYPE *Release)(
245 IEnumPStoreTypes* This);
247 /*** IEnumPStoreTypes methods ***/
248 HRESULT (STDMETHODCALLTYPE *Clone)(
249 IEnumPStoreTypes* This,
250 IEnumPStoreTypes** ppenum);
252 HRESULT (STDMETHODCALLTYPE *Next)(
253 IEnumPStoreTypes* This,
254 DWORD celt,
255 LPWSTR* rgelt,
256 DWORD* pceltFetched);
258 HRESULT (STDMETHODCALLTYPE *Reset)(
259 IEnumPStoreTypes* This);
261 HRESULT (STDMETHODCALLTYPE *Skip)(
262 IEnumPStoreTypes* This,
263 DWORD celt);
267 /*** IUnknown methods ***/
268 #define IEnumPStoreTypes_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
269 #define IEnumPStoreTypes_AddRef(p) (p)->lpVtbl->AddRef(p)
270 #define IEnumPStoreTypes_Release(p) (p)->lpVtbl->Release(p)
271 /*** IEnumPStoreTypes methods ***/
272 #define IEnumPStoreTypes_Clone(p,a) (p)->lpVtbl->Clone(p,a)
273 #define IEnumPStoreTypes_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
274 #define IEnumPStoreTypes_Reset(p) (p)->lpVtbl->Reset(p)
275 #define IEnumPStoreTypes_Skip(p,a) (p)->lpVtbl->Skip(p,a)
277 #endif
279 #define IEnumPStoreTypes_METHODS \
280 ICOM_MSVTABLE_COMPAT_FIELDS \
281 /*** IUnknown methods ***/ \
282 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
283 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
284 STDMETHOD_(ULONG,Release)(THIS) PURE; \
285 /*** IEnumPStoreTypes methods ***/ \
286 STDMETHOD_(HRESULT,Clone)(THIS_ IEnumPStoreTypes** ppenum) PURE; \
287 STDMETHOD_(HRESULT,Next)(THIS_ DWORD celt, LPWSTR* rgelt, DWORD* pceltFetched) PURE; \
288 STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
289 STDMETHOD_(HRESULT,Skip)(THIS_ DWORD celt) PURE;
291 HRESULT CALLBACK IEnumPStoreTypes_Clone_Proxy(
292 IEnumPStoreTypes* This,
293 IEnumPStoreTypes** ppenum);
294 void __RPC_STUB IEnumPStoreTypes_Clone_Stub(
295 struct IRpcStubBuffer* This,
296 struct IRpcChannelBuffer* pRpcChannelBuffer,
297 PRPC_MESSAGE pRpcMessage,
298 DWORD* pdwStubPhase);
299 HRESULT CALLBACK IEnumPStoreTypes_Next_Proxy(
300 IEnumPStoreTypes* This,
301 DWORD celt,
302 LPWSTR* rgelt,
303 DWORD* pceltFetched);
304 void __RPC_STUB IEnumPStoreTypes_Next_Stub(
305 struct IRpcStubBuffer* This,
306 struct IRpcChannelBuffer* pRpcChannelBuffer,
307 PRPC_MESSAGE pRpcMessage,
308 DWORD* pdwStubPhase);
309 HRESULT CALLBACK IEnumPStoreTypes_Reset_Proxy(
310 IEnumPStoreTypes* This);
311 void __RPC_STUB IEnumPStoreTypes_Reset_Stub(
312 struct IRpcStubBuffer* This,
313 struct IRpcChannelBuffer* pRpcChannelBuffer,
314 PRPC_MESSAGE pRpcMessage,
315 DWORD* pdwStubPhase);
316 HRESULT CALLBACK IEnumPStoreTypes_Skip_Proxy(
317 IEnumPStoreTypes* This,
318 DWORD celt);
319 void __RPC_STUB IEnumPStoreTypes_Skip_Stub(
320 struct IRpcStubBuffer* This,
321 struct IRpcChannelBuffer* pRpcChannelBuffer,
322 PRPC_MESSAGE pRpcMessage,
323 DWORD* pdwStubPhase);
325 #endif /* __IEnumPStoreTypes_INTERFACE_DEFINED__ */
327 #ifndef __IPStore_FWD_DEFINED__
328 #define __IPStore_FWD_DEFINED__
329 typedef struct IPStore IPStore;
330 #endif
332 /*****************************************************************************
333 * IPStore interface
335 #ifndef __IPStore_INTERFACE_DEFINED__
336 #define __IPStore_INTERFACE_DEFINED__
338 #if defined(__cplusplus) && !defined(CINTERFACE)
339 struct IPStore : public IUnknown
341 virtual HRESULT STDMETHODCALLTYPE GetInfo(
342 PPST_PROVIDERINFO* ppProperties) = 0;
344 virtual HRESULT STDMETHODCALLTYPE GetProvParam(
345 DWORD dwParam,
346 DWORD* pcbData,
347 BYTE** ppbData,
348 DWORD dwFlags) = 0;
350 virtual HRESULT STDMETHODCALLTYPE SetProvParam(
351 DWORD dwParam,
352 DWORD cbData,
353 BYTE* pbData,
354 DWORD* dwFlags) = 0;
356 virtual HRESULT STDMETHODCALLTYPE CreateType(
357 PST_KEY Key,
358 const GUID* pType,
359 PPST_TYPEINFO pInfo,
360 DWORD dwFlags) = 0;
362 virtual HRESULT STDMETHODCALLTYPE GetTypeInfo(
363 PST_KEY Key,
364 const GUID* pType,
365 PPST_TYPEINFO** ppInfo,
366 DWORD dwFlags) = 0;
368 virtual HRESULT STDMETHODCALLTYPE DeleteType(
369 PST_KEY Key,
370 const GUID* pType,
371 DWORD dwFlags) = 0;
373 virtual HRESULT STDMETHODCALLTYPE CreateSubtype(
374 PST_KEY Key,
375 const GUID* pType,
376 const GUID* pSubtype,
377 PPST_TYPEINFO pInfo,
378 PPST_ACCESSRULESET pRules,
379 DWORD dwFlags) = 0;
381 virtual HRESULT STDMETHODCALLTYPE GetSubtypeInfo(
382 PST_KEY Key,
383 const GUID* pType,
384 const GUID* pSubtype,
385 PPST_TYPEINFO** ppInfo,
386 DWORD dwFlags) = 0;
388 virtual HRESULT STDMETHODCALLTYPE DeleteSubtype(
389 PST_KEY Key,
390 const GUID* pType,
391 const GUID* pSubtype,
392 DWORD dwFlags) = 0;
394 virtual HRESULT STDMETHODCALLTYPE ReadAccessRuleset(
395 PST_KEY Key,
396 const GUID* pType,
397 const GUID* pSubtype,
398 PPST_TYPEINFO pInfo,
399 PPST_ACCESSRULESET** ppRules,
400 DWORD dwFlags) = 0;
402 virtual HRESULT STDMETHODCALLTYPE WriteAccessRuleset(
403 PST_KEY Key,
404 const GUID* pType,
405 const GUID* pSubtype,
406 PPST_TYPEINFO pInfo,
407 PPST_ACCESSRULESET pRules,
408 DWORD dwFlags) = 0;
410 virtual HRESULT STDMETHODCALLTYPE EnumTypes(
411 PST_KEY Key,
412 DWORD dwFlags,
413 IEnumPStoreTypes** ppenum) = 0;
415 virtual HRESULT STDMETHODCALLTYPE EnumSubtypes(
416 PST_KEY Key,
417 const GUID* pType,
418 DWORD dwFlags,
419 IEnumPStoreTypes** ppenum) = 0;
421 virtual HRESULT STDMETHODCALLTYPE DeleteItem(
422 PST_KEY Key,
423 const GUID* pItemType,
424 const GUID* pItemSubType,
425 LPCWSTR szItemName,
426 PPST_PROMPTINFO pPromptInfo,
427 DWORD dwFlags) = 0;
429 virtual HRESULT STDMETHODCALLTYPE ReadItem(
430 PST_KEY Key,
431 const GUID* pItemType,
432 const GUID* pItemSubtype,
433 LPCWSTR szItemName,
434 DWORD* cbData,
435 BYTE** pbData,
436 PPST_PROMPTIFO pPromptInfo,
437 DWORD dwFlags) = 0;
439 virtual HRESULT STDMETHODCALLTYPE WriteItem(
440 PST_KEY Key,
441 const GUID* pItemType,
442 const GUID* pItemSubtype,
443 LPCWSTR szItemName,
444 DWORD cbData,
445 BYTE* ppbData,
446 PPST_PROMPTIFO pPromptInfo,
447 DWORD dwDefaultConfirmationStyle,
448 DWORD dwFlags) = 0;
450 virtual HRESULT STDMETHODCALLTYPE OpenItem(
451 PST_KEY Key,
452 const GUID* pItemType,
453 const GUID* pItemSubtype,
454 LPCWSTR* szItemName,
455 PST_ACCESSMODE ModeFlags,
456 PPST_PROMPTIFO pProomptInfo,
457 DWORD dwFlags) = 0;
459 virtual HRESULT STDMETHODCALLTYPE CloseItem(
460 PST_KEY Key,
461 const GUID* pItemType,
462 const GUID* pItemSubtype,
463 LPCWSTR* szItemName,
464 DWORD dwFlags) = 0;
466 virtual HRESULT STDMETHODCALLTYPE EnumItems(
467 PST_KEY Key,
468 const GUID* pItemType,
469 const GUID* pItemSubtype,
470 DWORD dwFlags,
471 IEnumPStoreItems** ppenum) = 0;
474 #else
475 typedef struct IPStoreVtbl IPStoreVtbl;
476 struct IPStore {
477 const IPStoreVtbl* lpVtbl;
479 struct IPStoreVtbl {
480 ICOM_MSVTABLE_COMPAT_FIELDS
482 /*** IUnknown methods ***/
483 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
484 IPStore* This,
485 REFIID riid,
486 void** ppvObject);
488 ULONG (STDMETHODCALLTYPE *AddRef)(
489 IPStore* This);
491 ULONG (STDMETHODCALLTYPE *Release)(
492 IPStore* This);
494 /*** IPStore methods ***/
495 HRESULT (STDMETHODCALLTYPE *GetInfo)(
496 IPStore* This,
497 PPST_PROVIDERINFO* ppProperties);
499 HRESULT (STDMETHODCALLTYPE *GetProvParam)(
500 IPStore* This,
501 DWORD dwParam,
502 DWORD* pcbData,
503 BYTE** ppbData,
504 DWORD dwFlags);
506 HRESULT (STDMETHODCALLTYPE *SetProvParam)(
507 IPStore* This,
508 DWORD dwParam,
509 DWORD cbData,
510 BYTE* pbData,
511 DWORD* dwFlags);
513 HRESULT (STDMETHODCALLTYPE *CreateType)(
514 IPStore* This,
515 PST_KEY Key,
516 const GUID* pType,
517 PPST_TYPEINFO pInfo,
518 DWORD dwFlags);
520 HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
521 IPStore* This,
522 PST_KEY Key,
523 const GUID* pType,
524 PPST_TYPEINFO** ppInfo,
525 DWORD dwFlags);
527 HRESULT (STDMETHODCALLTYPE *DeleteType)(
528 IPStore* This,
529 PST_KEY Key,
530 const GUID* pType,
531 DWORD dwFlags);
533 HRESULT (STDMETHODCALLTYPE *CreateSubtype)(
534 IPStore* This,
535 PST_KEY Key,
536 const GUID* pType,
537 const GUID* pSubtype,
538 PPST_TYPEINFO pInfo,
539 PPST_ACCESSRULESET pRules,
540 DWORD dwFlags);
542 HRESULT (STDMETHODCALLTYPE *GetSubtypeInfo)(
543 IPStore* This,
544 PST_KEY Key,
545 const GUID* pType,
546 const GUID* pSubtype,
547 PPST_TYPEINFO** ppInfo,
548 DWORD dwFlags);
550 HRESULT (STDMETHODCALLTYPE *DeleteSubtype)(
551 IPStore* This,
552 PST_KEY Key,
553 const GUID* pType,
554 const GUID* pSubtype,
555 DWORD dwFlags);
557 HRESULT (STDMETHODCALLTYPE *ReadAccessRuleset)(
558 IPStore* This,
559 PST_KEY Key,
560 const GUID* pType,
561 const GUID* pSubtype,
562 PPST_TYPEINFO pInfo,
563 PPST_ACCESSRULESET** ppRules,
564 DWORD dwFlags);
566 HRESULT (STDMETHODCALLTYPE *WriteAccessRuleset)(
567 IPStore* This,
568 PST_KEY Key,
569 const GUID* pType,
570 const GUID* pSubtype,
571 PPST_TYPEINFO pInfo,
572 PPST_ACCESSRULESET pRules,
573 DWORD dwFlags);
575 HRESULT (STDMETHODCALLTYPE *EnumTypes)(
576 IPStore* This,
577 PST_KEY Key,
578 DWORD dwFlags,
579 IEnumPStoreTypes** ppenum);
581 HRESULT (STDMETHODCALLTYPE *EnumSubtypes)(
582 IPStore* This,
583 PST_KEY Key,
584 const GUID* pType,
585 DWORD dwFlags,
586 IEnumPStoreTypes** ppenum);
588 HRESULT (STDMETHODCALLTYPE *DeleteItem)(
589 IPStore* This,
590 PST_KEY Key,
591 const GUID* pItemType,
592 const GUID* pItemSubType,
593 LPCWSTR szItemName,
594 PPST_PROMPTINFO pPromptInfo,
595 DWORD dwFlags);
597 HRESULT (STDMETHODCALLTYPE *ReadItem)(
598 IPStore* This,
599 PST_KEY Key,
600 const GUID* pItemType,
601 const GUID* pItemSubtype,
602 LPCWSTR szItemName,
603 DWORD* cbData,
604 BYTE** pbData,
605 PPST_PROMPTIFO pPromptInfo,
606 DWORD dwFlags);
608 HRESULT (STDMETHODCALLTYPE *WriteItem)(
609 IPStore* This,
610 PST_KEY Key,
611 const GUID* pItemType,
612 const GUID* pItemSubtype,
613 LPCWSTR szItemName,
614 DWORD cbData,
615 BYTE* ppbData,
616 PPST_PROMPTIFO pPromptInfo,
617 DWORD dwDefaultConfirmationStyle,
618 DWORD dwFlags);
620 HRESULT (STDMETHODCALLTYPE *OpenItem)(
621 IPStore* This,
622 PST_KEY Key,
623 const GUID* pItemType,
624 const GUID* pItemSubtype,
625 LPCWSTR* szItemName,
626 PST_ACCESSMODE ModeFlags,
627 PPST_PROMPTIFO pProomptInfo,
628 DWORD dwFlags);
630 HRESULT (STDMETHODCALLTYPE *CloseItem)(
631 IPStore* This,
632 PST_KEY Key,
633 const GUID* pItemType,
634 const GUID* pItemSubtype,
635 LPCWSTR* szItemName,
636 DWORD dwFlags);
638 HRESULT (STDMETHODCALLTYPE *EnumItems)(
639 IPStore* This,
640 PST_KEY Key,
641 const GUID* pItemType,
642 const GUID* pItemSubtype,
643 DWORD dwFlags,
644 IEnumPStoreItems** ppenum);
648 /*** IUnknown methods ***/
649 #define IPStore_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
650 #define IPStore_AddRef(p) (p)->lpVtbl->AddRef(p)
651 #define IPStore_Release(p) (p)->lpVtbl->Release(p)
652 /*** IPStore methods ***/
653 #define IPStore_GetInfo(p,a) (p)->lpVtbl->GetInfo(p,a)
654 #define IPStore_GetProvParam(p,a,b,c,d) (p)->lpVtbl->GetProvParam(p,a,b,c,d)
655 #define IPStore_SetProvParam(p,a,b,c,d) (p)->lpVtbl->SetProvParam(p,a,b,c,d)
656 #define IPStore_CreateType(p,a,b,c,d) (p)->lpVtbl->CreateType(p,a,b,c,d)
657 #define IPStore_GetTypeInfo(p,a,b,c,d) (p)->lpVtbl->GetTypeInfo(p,a,b,c,d)
658 #define IPStore_DeleteType(p,a,b,c) (p)->lpVtbl->DeleteType(p,a,b,c)
659 #define IPStore_CreateSubtype(p,a,b,c,d,e,f) (p)->lpVtbl->CreateSubtype(p,a,b,c,d,e,f)
660 #define IPStore_GetSubtypeInfo(p,a,b,c,d,e) (p)->lpVtbl->GetSubtypeInfo(p,a,b,c,d,e)
661 #define IPStore_DeleteSubtype(p,a,b,c,d) (p)->lpVtbl->DeleteSubtype(p,a,b,c,d)
662 #define IPStore_ReadAccessRuleset(p,a,b,c,d,e,f) (p)->lpVtbl->ReadAccessRuleset(p,a,b,c,d,e,f)
663 #define IPStore_WriteAccessRuleset(p,a,b,c,d,e,f) (p)->lpVtbl->WriteAccessRuleset(p,a,b,c,d,e,f)
664 #define IPStore_EnumTypes(p,a,b,c) (p)->lpVtbl->EnumTypes(p,a,b,c)
665 #define IPStore_EnumSubtypes(p,a,b,c,d) (p)->lpVtbl->EnumSubtypes(p,a,b,c,d)
666 #define IPStore_DeleteItem(p,a,b,c,d,e,f) (p)->lpVtbl->DeleteItem(p,a,b,c,d,e,f)
667 #define IPStore_ReadItem(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->ReadItem(p,a,b,c,d,e,f,g,h)
668 #define IPStore_WriteItem(p,a,b,c,d,e,f,g,h,i) (p)->lpVtbl->WriteItem(p,a,b,c,d,e,f,g,h,i)
669 #define IPStore_OpenItem(p,a,b,c,d,e,f,g) (p)->lpVtbl->OpenItem(p,a,b,c,d,e,f,g)
670 #define IPStore_CloseItem(p,a,b,c,d,e) (p)->lpVtbl->CloseItem(p,a,b,c,d,e)
671 #define IPStore_EnumItems(p,a,b,c,d,e) (p)->lpVtbl->EnumItems(p,a,b,c,d,e)
673 #endif
675 #define IPStore_METHODS \
676 ICOM_MSVTABLE_COMPAT_FIELDS \
677 /*** IUnknown methods ***/ \
678 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
679 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
680 STDMETHOD_(ULONG,Release)(THIS) PURE; \
681 /*** IPStore methods ***/ \
682 STDMETHOD_(HRESULT,GetInfo)(THIS_ PPST_PROVIDERINFO* ppProperties) PURE; \
683 STDMETHOD_(HRESULT,GetProvParam)(THIS_ DWORD dwParam, DWORD* pcbData, BYTE** ppbData, DWORD dwFlags) PURE; \
684 STDMETHOD_(HRESULT,SetProvParam)(THIS_ DWORD dwParam, DWORD cbData, BYTE* pbData, DWORD* dwFlags) PURE; \
685 STDMETHOD_(HRESULT,CreateType)(THIS_ PST_KEY Key, const GUID* pType, PPST_TYPEINFO pInfo, DWORD dwFlags) PURE; \
686 STDMETHOD_(HRESULT,GetTypeInfo)(THIS_ PST_KEY Key, const GUID* pType, PPST_TYPEINFO** ppInfo, DWORD dwFlags) PURE; \
687 STDMETHOD_(HRESULT,DeleteType)(THIS_ PST_KEY Key, const GUID* pType, DWORD dwFlags) PURE; \
688 STDMETHOD_(HRESULT,CreateSubtype)(THIS_ PST_KEY Key, const GUID* pType, const GUID* pSubtype, PPST_TYPEINFO pInfo, PPST_ACCESSRULESET pRules, DWORD dwFlags) PURE; \
689 STDMETHOD_(HRESULT,GetSubtypeInfo)(THIS_ PST_KEY Key, const GUID* pType, const GUID* pSubtype, PPST_TYPEINFO** ppInfo, DWORD dwFlags) PURE; \
690 STDMETHOD_(HRESULT,DeleteSubtype)(THIS_ PST_KEY Key, const GUID* pType, const GUID* pSubtype, DWORD dwFlags) PURE; \
691 STDMETHOD_(HRESULT,ReadAccessRuleset)(THIS_ PST_KEY Key, const GUID* pType, const GUID* pSubtype, PPST_TYPEINFO pInfo, PPST_ACCESSRULESET** ppRules, DWORD dwFlags) PURE; \
692 STDMETHOD_(HRESULT,WriteAccessRuleset)(THIS_ PST_KEY Key, const GUID* pType, const GUID* pSubtype, PPST_TYPEINFO pInfo, PPST_ACCESSRULESET pRules, DWORD dwFlags) PURE; \
693 STDMETHOD_(HRESULT,EnumTypes)(THIS_ PST_KEY Key, DWORD dwFlags, IEnumPStoreTypes** ppenum) PURE; \
694 STDMETHOD_(HRESULT,EnumSubtypes)(THIS_ PST_KEY Key, const GUID* pType, DWORD dwFlags, IEnumPStoreTypes** ppenum) PURE; \
695 STDMETHOD_(HRESULT,DeleteItem)(THIS_ PST_KEY Key, const GUID* pItemType, const GUID* pItemSubType, LPCWSTR szItemName, PPST_PROMPTINFO pPromptInfo, DWORD dwFlags) PURE; \
696 STDMETHOD_(HRESULT,ReadItem)(THIS_ PST_KEY Key, const GUID* pItemType, const GUID* pItemSubtype, LPCWSTR szItemName, DWORD* cbData, BYTE** pbData, PPST_PROMPTIFO pPromptInfo, DWORD dwFlags) PURE; \
697 STDMETHOD_(HRESULT,WriteItem)(THIS_ PST_KEY Key, const GUID* pItemType, const GUID* pItemSubtype, LPCWSTR szItemName, DWORD cbData, BYTE* ppbData, PPST_PROMPTIFO pPromptInfo, DWORD dwDefaultConfirmationStyle, DWORD dwFlags) PURE; \
698 STDMETHOD_(HRESULT,OpenItem)(THIS_ PST_KEY Key, const GUID* pItemType, const GUID* pItemSubtype, LPCWSTR* szItemName, PST_ACCESSMODE ModeFlags, PPST_PROMPTIFO pProomptInfo, DWORD dwFlags) PURE; \
699 STDMETHOD_(HRESULT,CloseItem)(THIS_ PST_KEY Key, const GUID* pItemType, const GUID* pItemSubtype, LPCWSTR* szItemName, DWORD dwFlags) PURE; \
700 STDMETHOD_(HRESULT,EnumItems)(THIS_ PST_KEY Key, const GUID* pItemType, const GUID* pItemSubtype, DWORD dwFlags, IEnumPStoreItems** ppenum) PURE;
702 HRESULT CALLBACK IPStore_GetInfo_Proxy(
703 IPStore* This,
704 PPST_PROVIDERINFO* ppProperties);
705 void __RPC_STUB IPStore_GetInfo_Stub(
706 struct IRpcStubBuffer* This,
707 struct IRpcChannelBuffer* pRpcChannelBuffer,
708 PRPC_MESSAGE pRpcMessage,
709 DWORD* pdwStubPhase);
710 HRESULT CALLBACK IPStore_GetProvParam_Proxy(
711 IPStore* This,
712 DWORD dwParam,
713 DWORD* pcbData,
714 BYTE** ppbData,
715 DWORD dwFlags);
716 void __RPC_STUB IPStore_GetProvParam_Stub(
717 struct IRpcStubBuffer* This,
718 struct IRpcChannelBuffer* pRpcChannelBuffer,
719 PRPC_MESSAGE pRpcMessage,
720 DWORD* pdwStubPhase);
721 HRESULT CALLBACK IPStore_SetProvParam_Proxy(
722 IPStore* This,
723 DWORD dwParam,
724 DWORD cbData,
725 BYTE* pbData,
726 DWORD* dwFlags);
727 void __RPC_STUB IPStore_SetProvParam_Stub(
728 struct IRpcStubBuffer* This,
729 struct IRpcChannelBuffer* pRpcChannelBuffer,
730 PRPC_MESSAGE pRpcMessage,
731 DWORD* pdwStubPhase);
732 HRESULT CALLBACK IPStore_CreateType_Proxy(
733 IPStore* This,
734 PST_KEY Key,
735 const GUID* pType,
736 PPST_TYPEINFO pInfo,
737 DWORD dwFlags);
738 void __RPC_STUB IPStore_CreateType_Stub(
739 struct IRpcStubBuffer* This,
740 struct IRpcChannelBuffer* pRpcChannelBuffer,
741 PRPC_MESSAGE pRpcMessage,
742 DWORD* pdwStubPhase);
743 HRESULT CALLBACK IPStore_GetTypeInfo_Proxy(
744 IPStore* This,
745 PST_KEY Key,
746 const GUID* pType,
747 PPST_TYPEINFO** ppInfo,
748 DWORD dwFlags);
749 void __RPC_STUB IPStore_GetTypeInfo_Stub(
750 struct IRpcStubBuffer* This,
751 struct IRpcChannelBuffer* pRpcChannelBuffer,
752 PRPC_MESSAGE pRpcMessage,
753 DWORD* pdwStubPhase);
754 HRESULT CALLBACK IPStore_DeleteType_Proxy(
755 IPStore* This,
756 PST_KEY Key,
757 const GUID* pType,
758 DWORD dwFlags);
759 void __RPC_STUB IPStore_DeleteType_Stub(
760 struct IRpcStubBuffer* This,
761 struct IRpcChannelBuffer* pRpcChannelBuffer,
762 PRPC_MESSAGE pRpcMessage,
763 DWORD* pdwStubPhase);
764 HRESULT CALLBACK IPStore_CreateSubtype_Proxy(
765 IPStore* This,
766 PST_KEY Key,
767 const GUID* pType,
768 const GUID* pSubtype,
769 PPST_TYPEINFO pInfo,
770 PPST_ACCESSRULESET pRules,
771 DWORD dwFlags);
772 void __RPC_STUB IPStore_CreateSubtype_Stub(
773 struct IRpcStubBuffer* This,
774 struct IRpcChannelBuffer* pRpcChannelBuffer,
775 PRPC_MESSAGE pRpcMessage,
776 DWORD* pdwStubPhase);
777 HRESULT CALLBACK IPStore_GetSubtypeInfo_Proxy(
778 IPStore* This,
779 PST_KEY Key,
780 const GUID* pType,
781 const GUID* pSubtype,
782 PPST_TYPEINFO** ppInfo,
783 DWORD dwFlags);
784 void __RPC_STUB IPStore_GetSubtypeInfo_Stub(
785 struct IRpcStubBuffer* This,
786 struct IRpcChannelBuffer* pRpcChannelBuffer,
787 PRPC_MESSAGE pRpcMessage,
788 DWORD* pdwStubPhase);
789 HRESULT CALLBACK IPStore_DeleteSubtype_Proxy(
790 IPStore* This,
791 PST_KEY Key,
792 const GUID* pType,
793 const GUID* pSubtype,
794 DWORD dwFlags);
795 void __RPC_STUB IPStore_DeleteSubtype_Stub(
796 struct IRpcStubBuffer* This,
797 struct IRpcChannelBuffer* pRpcChannelBuffer,
798 PRPC_MESSAGE pRpcMessage,
799 DWORD* pdwStubPhase);
800 HRESULT CALLBACK IPStore_ReadAccessRuleset_Proxy(
801 IPStore* This,
802 PST_KEY Key,
803 const GUID* pType,
804 const GUID* pSubtype,
805 PPST_TYPEINFO pInfo,
806 PPST_ACCESSRULESET** ppRules,
807 DWORD dwFlags);
808 void __RPC_STUB IPStore_ReadAccessRuleset_Stub(
809 struct IRpcStubBuffer* This,
810 struct IRpcChannelBuffer* pRpcChannelBuffer,
811 PRPC_MESSAGE pRpcMessage,
812 DWORD* pdwStubPhase);
813 HRESULT CALLBACK IPStore_WriteAccessRuleset_Proxy(
814 IPStore* This,
815 PST_KEY Key,
816 const GUID* pType,
817 const GUID* pSubtype,
818 PPST_TYPEINFO pInfo,
819 PPST_ACCESSRULESET pRules,
820 DWORD dwFlags);
821 void __RPC_STUB IPStore_WriteAccessRuleset_Stub(
822 struct IRpcStubBuffer* This,
823 struct IRpcChannelBuffer* pRpcChannelBuffer,
824 PRPC_MESSAGE pRpcMessage,
825 DWORD* pdwStubPhase);
826 HRESULT CALLBACK IPStore_EnumTypes_Proxy(
827 IPStore* This,
828 PST_KEY Key,
829 DWORD dwFlags,
830 IEnumPStoreTypes** ppenum);
831 void __RPC_STUB IPStore_EnumTypes_Stub(
832 struct IRpcStubBuffer* This,
833 struct IRpcChannelBuffer* pRpcChannelBuffer,
834 PRPC_MESSAGE pRpcMessage,
835 DWORD* pdwStubPhase);
836 HRESULT CALLBACK IPStore_EnumSubtypes_Proxy(
837 IPStore* This,
838 PST_KEY Key,
839 const GUID* pType,
840 DWORD dwFlags,
841 IEnumPStoreTypes** ppenum);
842 void __RPC_STUB IPStore_EnumSubtypes_Stub(
843 struct IRpcStubBuffer* This,
844 struct IRpcChannelBuffer* pRpcChannelBuffer,
845 PRPC_MESSAGE pRpcMessage,
846 DWORD* pdwStubPhase);
847 HRESULT CALLBACK IPStore_DeleteItem_Proxy(
848 IPStore* This,
849 PST_KEY Key,
850 const GUID* pItemType,
851 const GUID* pItemSubType,
852 LPCWSTR szItemName,
853 PPST_PROMPTINFO pPromptInfo,
854 DWORD dwFlags);
855 void __RPC_STUB IPStore_DeleteItem_Stub(
856 struct IRpcStubBuffer* This,
857 struct IRpcChannelBuffer* pRpcChannelBuffer,
858 PRPC_MESSAGE pRpcMessage,
859 DWORD* pdwStubPhase);
860 HRESULT CALLBACK IPStore_ReadItem_Proxy(
861 IPStore* This,
862 PST_KEY Key,
863 const GUID* pItemType,
864 const GUID* pItemSubtype,
865 LPCWSTR szItemName,
866 DWORD* cbData,
867 BYTE** pbData,
868 PPST_PROMPTIFO pPromptInfo,
869 DWORD dwFlags);
870 void __RPC_STUB IPStore_ReadItem_Stub(
871 struct IRpcStubBuffer* This,
872 struct IRpcChannelBuffer* pRpcChannelBuffer,
873 PRPC_MESSAGE pRpcMessage,
874 DWORD* pdwStubPhase);
875 HRESULT CALLBACK IPStore_WriteItem_Proxy(
876 IPStore* This,
877 PST_KEY Key,
878 const GUID* pItemType,
879 const GUID* pItemSubtype,
880 LPCWSTR szItemName,
881 DWORD cbData,
882 BYTE* ppbData,
883 PPST_PROMPTIFO pPromptInfo,
884 DWORD dwDefaultConfirmationStyle,
885 DWORD dwFlags);
886 void __RPC_STUB IPStore_WriteItem_Stub(
887 struct IRpcStubBuffer* This,
888 struct IRpcChannelBuffer* pRpcChannelBuffer,
889 PRPC_MESSAGE pRpcMessage,
890 DWORD* pdwStubPhase);
891 HRESULT CALLBACK IPStore_OpenItem_Proxy(
892 IPStore* This,
893 PST_KEY Key,
894 const GUID* pItemType,
895 const GUID* pItemSubtype,
896 LPCWSTR* szItemName,
897 PST_ACCESSMODE ModeFlags,
898 PPST_PROMPTIFO pProomptInfo,
899 DWORD dwFlags);
900 void __RPC_STUB IPStore_OpenItem_Stub(
901 struct IRpcStubBuffer* This,
902 struct IRpcChannelBuffer* pRpcChannelBuffer,
903 PRPC_MESSAGE pRpcMessage,
904 DWORD* pdwStubPhase);
905 HRESULT CALLBACK IPStore_CloseItem_Proxy(
906 IPStore* This,
907 PST_KEY Key,
908 const GUID* pItemType,
909 const GUID* pItemSubtype,
910 LPCWSTR* szItemName,
911 DWORD dwFlags);
912 void __RPC_STUB IPStore_CloseItem_Stub(
913 struct IRpcStubBuffer* This,
914 struct IRpcChannelBuffer* pRpcChannelBuffer,
915 PRPC_MESSAGE pRpcMessage,
916 DWORD* pdwStubPhase);
917 HRESULT CALLBACK IPStore_EnumItems_Proxy(
918 IPStore* This,
919 PST_KEY Key,
920 const GUID* pItemType,
921 const GUID* pItemSubtype,
922 DWORD dwFlags,
923 IEnumPStoreItems** ppenum);
924 void __RPC_STUB IPStore_EnumItems_Stub(
925 struct IRpcStubBuffer* This,
926 struct IRpcChannelBuffer* pRpcChannelBuffer,
927 PRPC_MESSAGE pRpcMessage,
928 DWORD* pdwStubPhase);
930 #endif /* __IPStore_INTERFACE_DEFINED__ */
932 #ifdef __cplusplus
934 #endif
935 #endif /* __WIDL_PSTORE_H */