2 * Copyright (C) 2004 Mike McCormack
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
21 cpp_quote
("#define PST_KEY_CURRENT_USER 0")
22 cpp_quote
("#define PST_KEY_LOCAL_MACHINE 1")
24 cpp_quote
("#define PST_E_OK 0x00000000L")
25 cpp_quote
("#define PST_E_TYPE_EXISTS 0x800C0004L")
27 cpp_quote
("#define PST_AUTHENTICODE 1")
28 cpp_quote
("#define PST_BINARY_CHECK 2")
29 cpp_quote
("#define PST_SECURITY_DESCRIPTOR 4")
31 typedef DWORD PST_ACCESSMODE
;
32 typedef DWORD PST_ACCESSCLAUSETYPE
;
33 typedef DWORD PST_KEY
;
34 typedef DWORD PST_PROVIDERCAPABILITIES
;
35 typedef GUID PST_PROVIDERID
, *PPST_PROVIDERID
;
37 typedef struct _PST_PROVIDERINFO
41 PST_PROVIDERCAPABILITIES Capabilities
;
42 LPWSTR szProviderName
;
43 } PST_PROVIDERINFO
, *PPST_PROVIDERINFO
;
45 typedef struct _PST_PROMPTINFO
51 } PST_PROMPTINFO
, *PPST_PROMPTINFO
;
55 PST_ACCESSCLAUSETYPE ClauseType
;
58 } PST_ACCESSCLAUSE
, *PPST_ACCESSCLAUSE
;
62 PST_ACCESSMODE AccessModeFlags
;
64 PST_ACCESSCLAUSE
* rgClauses
;
65 } PST_ACCESSRULE
, *PPST_ACCESSRULE
;
70 PST_ACCESSRULE
* rgRules
;
71 } PST_ACCESSRULESET
, *PPST_ACCESSRULESET
;
76 } PST_TYPEINFO
, *PPST_TYPEINFO
;
80 pointer_default(unique)
82 interface IEnumPStoreItems
: IUnknown
85 [in] IEnumPStoreItems
** ppenum
);
90 [in] DWORD
* pceltFetched
);
100 pointer_default(unique)
102 interface IEnumPStoreTypes
: IUnknown
105 [in] IEnumPStoreTypes
** ppenum
);
110 [in] DWORD
* pceltFetched
);
118 /*****************************************************************************
123 pointer_default(unique)
125 interface IPStore
: IUnknown
128 [in] PPST_PROVIDERINFO
* ppProperties
);
130 HRESULT GetProvParam
(
132 [out] DWORD
* pcbData
,
133 [out] BYTE** ppbData
,
134 [in] DWORD dwFlags
);
136 HRESULT SetProvParam
(
140 [in] DWORD
* dwFlags
);
144 [in] const GUID
* pType
,
145 [in] PPST_TYPEINFO pInfo
,
146 [in] DWORD dwFlags
);
150 [in] const GUID
* pType
,
151 [in] PPST_TYPEINFO
** ppInfo
,
152 [in] DWORD dwFlags
);
156 [in] const GUID
* pType
,
157 [in] DWORD dwFlags
);
159 HRESULT CreateSubtype
(
161 [in] const GUID
* pType
,
162 [in] const GUID
* pSubtype
,
163 [in] PPST_TYPEINFO pInfo
,
164 [in] PPST_ACCESSRULESET pRules
,
165 [in] DWORD dwFlags
);
167 HRESULT GetSubtypeInfo
(
169 [in] const GUID
* pType
,
170 [in] const GUID
* pSubtype
,
171 [in] PPST_TYPEINFO
** ppInfo
,
172 [in] DWORD dwFlags
);
174 HRESULT DeleteSubtype
(
176 [in] const GUID
* pType
,
177 [in] const GUID
* pSubtype
,
178 [in] DWORD dwFlags
);
180 HRESULT ReadAccessRuleset
(
182 [in] const GUID
* pType
,
183 [in] const GUID
* pSubtype
,
184 [in] PPST_TYPEINFO pInfo
,
185 [in] PPST_ACCESSRULESET
** ppRules
,
186 [in] DWORD dwFlags
);
188 HRESULT WriteAccessRuleset
(
190 [in] const GUID
* pType
,
191 [in] const GUID
* pSubtype
,
192 [in] PPST_TYPEINFO pInfo
,
193 [in] PPST_ACCESSRULESET pRules
,
194 [in] DWORD dwFlags
);
199 [in] IEnumPStoreTypes
** ppenum
);
201 HRESULT EnumSubtypes
(
203 [in] const GUID
* pType
,
205 [in] IEnumPStoreTypes
** ppenum
);
209 [in] const GUID
* pItemType
,
210 [in] const GUID
* pItemSubType
,
211 [in] LPCWSTR szItemName
,
212 [in] PPST_PROMPTINFO pPromptInfo
,
213 [in] DWORD dwFlags
);
217 [in] const GUID
* pItemType
,
218 [in] const GUID
* pItemSubtype
,
219 [in] LPCWSTR szItemName
,
222 [in] PPST_PROMPTINFO pPromptInfo
,
223 [in] DWORD dwFlags
);
227 [in] const GUID
* pItemType
,
228 [in] const GUID
* pItemSubtype
,
229 [in] LPCWSTR szItemName
,
231 [in,size_is(cbData
)] BYTE *ppbData
,
232 [in] PPST_PROMPTINFO pPromptInfo
,
233 [in] DWORD dwDefaultConfirmationStyle
,
238 [in] const GUID
* pItemType
,
239 [in] const GUID
* pItemSubtype
,
240 [in] LPCWSTR szItemName
,
241 [in] PST_ACCESSMODE ModeFlags
,
242 [in] PPST_PROMPTINFO pProomptInfo
,
243 [in] DWORD dwFlags
);
247 [in] const GUID
* pItemType
,
248 [in] const GUID
* pItemSubtype
,
249 [in] LPCWSTR
* szItemName
,
250 [in] DWORD dwFlags
);
254 [in] const GUID
* pItemType
,
255 [in] const GUID
* pItemSubtype
,
257 [in] IEnumPStoreItems
** ppenum
);