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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 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 void *PPST_PROMPTIFO;
51 PST_ACCESSCLAUSETYPE ClauseType;
54 } PST_ACCESSCLAUSE, *PPST_ACCESSCLAUSE;
58 PST_ACCESSMODE AccessModeFlags;
60 PST_ACCESSCLAUSE* rgClauses;
61 } PST_ACCESSRULE, *PPST_ACCESSRULE;
66 PST_ACCESSRULE* rgRules;
67 } PST_ACCESSRULESET, *PPST_ACCESSRULESET;
72 } PST_TYPEINFO, *PPST_TYPEINFO;
79 } PST_PROMPTINFO, *PPST_PROMPTINFO;
83 pointer_default(unique)
85 interface IEnumPStoreItems : IUnknown
88 [in] IEnumPStoreItems** ppenum );
93 [in] DWORD* pceltFetched );
103 pointer_default(unique)
105 interface IEnumPStoreTypes : IUnknown
108 [in] IEnumPStoreTypes** ppenum );
113 [in] DWORD* pceltFetched );
121 /*****************************************************************************
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_PROMPTIFO 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_PROMPTIFO 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_PROMPTIFO 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 );