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
,
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
);