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 uuid(5a6f1ec1-2db1-11d0-8c39-00c04fd9126b),
81 pointer_default(unique)
83 interface IEnumPStoreItems : IUnknown
86 [in] IEnumPStoreItems** ppenum );
91 [in] DWORD* pceltFetched );
101 uuid(789c1cbf-31ee-11d0-8c39-00c04fd9126b),
102 pointer_default(unique)
104 interface IEnumPStoreTypes : IUnknown
107 [in] IEnumPStoreTypes** ppenum );
112 [in] DWORD* pceltFetched );
120 /*****************************************************************************
125 uuid(5a6f1ec0-2db1-11d0-8c39-00c04fd9126b),
126 pointer_default(unique)
128 interface IPStore : IUnknown
131 [in] PPST_PROVIDERINFO* ppProperties );
133 HRESULT GetProvParam(
135 [out] DWORD* pcbData,
136 [out] BYTE** ppbData,
137 [in] DWORD dwFlags );
139 HRESULT SetProvParam(
143 [in] DWORD* dwFlags );
147 [in] const GUID* pType,
148 [in] PPST_TYPEINFO pInfo,
149 [in] DWORD dwFlags );
153 [in] const GUID* pType,
154 [in] PPST_TYPEINFO** ppInfo,
155 [in] DWORD dwFlags );
159 [in] const GUID* pType,
160 [in] DWORD dwFlags );
162 HRESULT CreateSubtype(
164 [in] const GUID* pType,
165 [in] const GUID* pSubtype,
166 [in] PPST_TYPEINFO pInfo,
167 [in] PPST_ACCESSRULESET pRules,
168 [in] DWORD dwFlags );
170 HRESULT GetSubtypeInfo(
172 [in] const GUID* pType,
173 [in] const GUID* pSubtype,
174 [in] PPST_TYPEINFO** ppInfo,
175 [in] DWORD dwFlags );
177 HRESULT DeleteSubtype(
179 [in] const GUID* pType,
180 [in] const GUID* pSubtype,
181 [in] DWORD dwFlags );
183 HRESULT ReadAccessRuleset(
185 [in] const GUID* pType,
186 [in] const GUID* pSubtype,
187 [in] PPST_TYPEINFO pInfo,
188 [in] PPST_ACCESSRULESET** ppRules,
189 [in] DWORD dwFlags );
191 HRESULT WriteAccessRuleset(
193 [in] const GUID* pType,
194 [in] const GUID* pSubtype,
195 [in] PPST_TYPEINFO pInfo,
196 [in] PPST_ACCESSRULESET pRules,
197 [in] DWORD dwFlags );
202 [in] IEnumPStoreTypes** ppenum );
204 HRESULT EnumSubtypes(
206 [in] const GUID* pType,
208 [in] IEnumPStoreTypes** ppenum );
212 [in] const GUID* pItemType,
213 [in] const GUID* pItemSubType,
214 [in] LPCWSTR szItemName,
215 [in] PPST_PROMPTINFO pPromptInfo,
216 [in] DWORD dwFlags );
220 [in] const GUID* pItemType,
221 [in] const GUID* pItemSubtype,
222 [in] LPCWSTR szItemName,
225 [in] PPST_PROMPTINFO pPromptInfo,
226 [in] DWORD dwFlags );
230 [in] const GUID* pItemType,
231 [in] const GUID* pItemSubtype,
232 [in] LPCWSTR szItemName,
234 [in,size_is(cbData)] BYTE *ppbData,
235 [in] PPST_PROMPTINFO pPromptInfo,
236 [in] DWORD dwDefaultConfirmationStyle,
241 [in] const GUID* pItemType,
242 [in] const GUID* pItemSubtype,
243 [in] LPCWSTR szItemName,
244 [in] PST_ACCESSMODE ModeFlags,
245 [in] PPST_PROMPTINFO pProomptInfo,
246 [in] DWORD dwFlags );
250 [in] const GUID* pItemType,
251 [in] const GUID* pItemSubtype,
252 [in] LPCWSTR* szItemName,
253 [in] DWORD dwFlags );
257 [in] const GUID* pItemType,
258 [in] const GUID* pItemSubtype,
260 [in] IEnumPStoreItems** ppenum );