mshtml: Better timer handling.
[wine/wine-jacek.git] / include / pstore.idl
blobee184d4503ff295186ddec9ad5ac10775e48abd6
1 /*
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
19 import "oaidl.idl";
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
39 DWORD cbSize;
40 PST_PROVIDERID ID;
41 PST_PROVIDERCAPABILITIES Capabilities;
42 LPWSTR szProviderName;
43 } PST_PROVIDERINFO, *PPST_PROVIDERINFO;
45 typedef struct _PST_PROMPTINFO
47 DWORD cbSize;
48 DWORD dwPromptFlags;
49 HWND hwndApp;
50 LPCWSTR szPrompt;
51 } PST_PROMPTINFO, *PPST_PROMPTINFO;
53 typedef struct {
54 DWORD cbSize;
55 PST_ACCESSCLAUSETYPE ClauseType;
56 DWORD cbClauseData;
57 BYTE* pbClauseData;
58 } PST_ACCESSCLAUSE, *PPST_ACCESSCLAUSE;
60 typedef struct {
61 DWORD cbSize;
62 PST_ACCESSMODE AccessModeFlags;
63 DWORD cClauses;
64 PST_ACCESSCLAUSE* rgClauses;
65 } PST_ACCESSRULE, *PPST_ACCESSRULE;
67 typedef struct {
68 DWORD cbSize;
69 DWORD cClause;
70 PST_ACCESSRULE* rgRules;
71 } PST_ACCESSRULESET, *PPST_ACCESSRULESET;
73 typedef struct {
74 DWORD cbSize;
75 LPWSTR szDisplayName;
76 } PST_TYPEINFO, *PPST_TYPEINFO;
79 object,
80 pointer_default(unique)
82 interface IEnumPStoreItems : IUnknown
84 HRESULT Clone(
85 [in] IEnumPStoreItems** ppenum );
87 HRESULT Next(
88 [in] DWORD celt,
89 [in] LPWSTR* rgelt,
90 [in] DWORD* pceltFetched );
92 HRESULT Reset();
94 HRESULT Skip(
95 [in] DWORD celt );
99 object,
100 pointer_default(unique)
102 interface IEnumPStoreTypes : IUnknown
104 HRESULT Clone(
105 [in] IEnumPStoreTypes** ppenum );
107 HRESULT Next(
108 [in] DWORD celt,
109 [in] LPWSTR* rgelt,
110 [in] DWORD* pceltFetched );
112 HRESULT Reset();
114 HRESULT Skip(
115 [in] DWORD celt );
118 /*****************************************************************************
119 * IPStore interface
122 object,
123 pointer_default(unique)
125 interface IPStore : IUnknown
127 HRESULT GetInfo(
128 [in] PPST_PROVIDERINFO* ppProperties );
130 HRESULT GetProvParam(
131 [in] DWORD dwParam,
132 [out] DWORD* pcbData,
133 [out] BYTE** ppbData,
134 [in] DWORD dwFlags );
136 HRESULT SetProvParam(
137 [in] DWORD dwParam,
138 [in] DWORD cbData,
139 [in] BYTE* pbData,
140 [in] DWORD* dwFlags );
142 HRESULT CreateType(
143 [in] PST_KEY Key,
144 [in] const GUID* pType,
145 [in] PPST_TYPEINFO pInfo,
146 [in] DWORD dwFlags );
148 HRESULT GetTypeInfo(
149 [in] PST_KEY Key,
150 [in] const GUID* pType,
151 [in] PPST_TYPEINFO** ppInfo,
152 [in] DWORD dwFlags );
154 HRESULT DeleteType(
155 [in] PST_KEY Key,
156 [in] const GUID* pType,
157 [in] DWORD dwFlags );
159 HRESULT CreateSubtype(
160 [in] PST_KEY Key,
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(
168 [in] PST_KEY Key,
169 [in] const GUID* pType,
170 [in] const GUID* pSubtype,
171 [in] PPST_TYPEINFO** ppInfo,
172 [in] DWORD dwFlags );
174 HRESULT DeleteSubtype(
175 [in] PST_KEY Key,
176 [in] const GUID* pType,
177 [in] const GUID* pSubtype,
178 [in] DWORD dwFlags );
180 HRESULT ReadAccessRuleset(
181 [in] PST_KEY Key,
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(
189 [in] PST_KEY Key,
190 [in] const GUID* pType,
191 [in] const GUID* pSubtype,
192 [in] PPST_TYPEINFO pInfo,
193 [in] PPST_ACCESSRULESET pRules,
194 [in] DWORD dwFlags );
196 HRESULT EnumTypes(
197 [in] PST_KEY Key,
198 [in] DWORD dwFlags,
199 [in] IEnumPStoreTypes** ppenum );
201 HRESULT EnumSubtypes(
202 [in] PST_KEY Key,
203 [in] const GUID* pType,
204 [in] DWORD dwFlags,
205 [in] IEnumPStoreTypes** ppenum );
207 HRESULT DeleteItem(
208 [in] PST_KEY Key,
209 [in] const GUID* pItemType,
210 [in] const GUID* pItemSubType,
211 [in] LPCWSTR szItemName,
212 [in] PPST_PROMPTINFO pPromptInfo,
213 [in] DWORD dwFlags );
215 HRESULT ReadItem(
216 [in] PST_KEY Key,
217 [in] const GUID* pItemType,
218 [in] const GUID* pItemSubtype,
219 [in] LPCWSTR szItemName,
220 [in] DWORD *cbData,
221 [in] BYTE** pbData,
222 [in] PPST_PROMPTINFO pPromptInfo,
223 [in] DWORD dwFlags );
225 HRESULT WriteItem(
226 [in] PST_KEY Key,
227 [in] const GUID* pItemType,
228 [in] const GUID* pItemSubtype,
229 [in] LPCWSTR szItemName,
230 [in] DWORD cbData,
231 [in,size_is(cbData)] BYTE *ppbData,
232 [in] PPST_PROMPTINFO pPromptInfo,
233 [in] DWORD dwDefaultConfirmationStyle,
234 [in] DWORD dwFlags);
236 HRESULT OpenItem(
237 [in] PST_KEY Key,
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 );
245 HRESULT CloseItem(
246 [in] PST_KEY Key,
247 [in] const GUID* pItemType,
248 [in] const GUID* pItemSubtype,
249 [in] LPCWSTR* szItemName,
250 [in] DWORD dwFlags );
252 HRESULT EnumItems(
253 [in] PST_KEY Key,
254 [in] const GUID* pItemType,
255 [in] const GUID* pItemSubtype,
256 [in] DWORD dwFlags,
257 [in] IEnumPStoreItems** ppenum );