Add new certificateProvider extension API.
[chromium-blink-merge.git] / chrome / common / importer / pstore_declarations.h
blobe06ab6c776f53a4fb1506614ab1e11a121cf3bde
1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CHROME_COMMON_IMPORTER_PSTORE_DECLARATIONS_H_
6 #define CHROME_COMMON_IMPORTER_PSTORE_DECLARATIONS_H_
8 #ifdef __PSTORE_H__
9 #error Should not include pstore.h and this file simultaneously.
10 #endif
12 #include <ole2.h>
14 // pstore.h is no longer shipped in the Windows 8 SDK. Define a minimal set
15 // here.
17 // These types are referenced in interfaces we use, but our code does not use
18 // refer to these types, so simply make them opaque.
19 class IEnumPStoreTypes;
20 struct PST_ACCESSRULESET;
21 struct PST_PROMPTINFO;
22 struct PST_PROVIDERINFO;
23 struct PST_TYPEINFO;
25 EXTERN_C const IID IID_IPStore;
26 EXTERN_C const IID IID_IEnumPStoreItems;
28 typedef DWORD PST_KEY;
29 typedef DWORD PST_ACCESSMODE;
30 #define PST_E_OK _HRESULT_TYPEDEF_(0x00000000L)
32 interface IEnumPStoreItems : public IUnknown
34 public:
35 virtual HRESULT STDMETHODCALLTYPE Next(
36 DWORD celt,
37 LPWSTR __RPC_FAR *rgelt,
38 DWORD __RPC_FAR *pceltFetched) = 0;
40 virtual HRESULT STDMETHODCALLTYPE Skip(DWORD celt) = 0;
42 virtual HRESULT STDMETHODCALLTYPE Reset(void) = 0;
44 virtual HRESULT STDMETHODCALLTYPE Clone(
45 IEnumPStoreItems __RPC_FAR *__RPC_FAR *ppenum) = 0;
48 interface IPStore : public IUnknown
50 public:
51 virtual HRESULT STDMETHODCALLTYPE GetInfo(
52 PST_PROVIDERINFO* __RPC_FAR *ppProperties) = 0;
54 virtual HRESULT STDMETHODCALLTYPE GetProvParam(
55 DWORD dwParam,
56 DWORD __RPC_FAR *pcbData,
57 BYTE __RPC_FAR *__RPC_FAR *ppbData,
58 DWORD dwFlags) = 0;
60 virtual HRESULT STDMETHODCALLTYPE SetProvParam(
61 DWORD dwParam,
62 DWORD cbData,
63 BYTE __RPC_FAR *pbData,
64 DWORD dwFlags) = 0;
66 virtual HRESULT STDMETHODCALLTYPE CreateType(
67 PST_KEY Key,
68 const GUID __RPC_FAR *pType,
69 PST_TYPEINFO* pInfo,
70 DWORD dwFlags) = 0;
72 virtual HRESULT STDMETHODCALLTYPE GetTypeInfo(
73 PST_KEY Key,
74 const GUID __RPC_FAR *pType,
75 PST_TYPEINFO* __RPC_FAR *ppInfo,
76 DWORD dwFlags) = 0;
78 virtual HRESULT STDMETHODCALLTYPE DeleteType(
79 PST_KEY Key,
80 const GUID __RPC_FAR *pType,
81 DWORD dwFlags) = 0;
83 virtual HRESULT STDMETHODCALLTYPE CreateSubtype(
84 PST_KEY Key,
85 const GUID __RPC_FAR *pType,
86 const GUID __RPC_FAR *pSubtype,
87 PST_TYPEINFO* pInfo,
88 PST_ACCESSRULESET* pRules,
89 DWORD dwFlags) = 0;
91 virtual HRESULT STDMETHODCALLTYPE GetSubtypeInfo(
92 PST_KEY Key,
93 const GUID __RPC_FAR *pType,
94 const GUID __RPC_FAR *pSubtype,
95 PST_TYPEINFO* __RPC_FAR *ppInfo,
96 DWORD dwFlags) = 0;
98 virtual HRESULT STDMETHODCALLTYPE DeleteSubtype(
99 PST_KEY Key,
100 const GUID __RPC_FAR *pType,
101 const GUID __RPC_FAR *pSubtype,
102 DWORD dwFlags) = 0;
104 virtual HRESULT STDMETHODCALLTYPE ReadAccessRuleset(
105 PST_KEY Key,
106 const GUID __RPC_FAR *pType,
107 const GUID __RPC_FAR *pSubtype,
108 PST_ACCESSRULESET* __RPC_FAR *ppRules,
109 DWORD dwFlags) = 0;
111 virtual HRESULT STDMETHODCALLTYPE WriteAccessRuleset(
112 PST_KEY Key,
113 const GUID __RPC_FAR *pType,
114 const GUID __RPC_FAR *pSubtype,
115 PST_ACCESSRULESET* pRules,
116 DWORD dwFlags) = 0;
118 virtual HRESULT STDMETHODCALLTYPE EnumTypes(
119 PST_KEY Key,
120 DWORD dwFlags,
121 IEnumPStoreTypes __RPC_FAR *__RPC_FAR *ppenum) = 0;
123 virtual HRESULT STDMETHODCALLTYPE EnumSubtypes(
124 PST_KEY Key,
125 const GUID __RPC_FAR *pType,
126 DWORD dwFlags,
127 IEnumPStoreTypes __RPC_FAR *__RPC_FAR *ppenum) = 0;
129 virtual HRESULT STDMETHODCALLTYPE DeleteItem(
130 PST_KEY Key,
131 const GUID __RPC_FAR *pItemType,
132 const GUID __RPC_FAR *pItemSubtype,
133 LPCWSTR szItemName,
134 PST_PROMPTINFO* pPromptInfo,
135 DWORD dwFlags) = 0;
137 virtual HRESULT STDMETHODCALLTYPE ReadItem(
138 PST_KEY Key,
139 const GUID __RPC_FAR *pItemType,
140 const GUID __RPC_FAR *pItemSubtype,
141 LPCWSTR szItemName,
142 DWORD __RPC_FAR *pcbData,
143 BYTE __RPC_FAR *__RPC_FAR *ppbData,
144 PST_PROMPTINFO* pPromptInfo,
145 DWORD dwFlags) = 0;
147 virtual HRESULT STDMETHODCALLTYPE WriteItem(
148 PST_KEY Key,
149 const GUID __RPC_FAR *pItemType,
150 const GUID __RPC_FAR *pItemSubtype,
151 LPCWSTR szItemName,
152 DWORD cbData,
153 BYTE __RPC_FAR *pbData,
154 PST_PROMPTINFO* pPromptInfo,
155 DWORD dwDefaultConfirmationStyle,
156 DWORD dwFlags) = 0;
158 virtual HRESULT STDMETHODCALLTYPE OpenItem(
159 PST_KEY Key,
160 const GUID __RPC_FAR *pItemType,
161 const GUID __RPC_FAR *pItemSubtype,
162 LPCWSTR szItemName,
163 PST_ACCESSMODE ModeFlags,
164 PST_PROMPTINFO* pPromptInfo,
165 DWORD dwFlags) = 0;
167 virtual HRESULT STDMETHODCALLTYPE CloseItem(
168 PST_KEY Key,
169 const GUID __RPC_FAR *pItemType,
170 const GUID __RPC_FAR *pItemSubtype,
171 LPCWSTR szItemName,
172 DWORD dwFlags) = 0;
174 virtual HRESULT STDMETHODCALLTYPE EnumItems(
175 PST_KEY Key,
176 const GUID __RPC_FAR *pItemType,
177 const GUID __RPC_FAR *pItemSubtype,
178 DWORD dwFlags,
179 IEnumPStoreItems __RPC_FAR *__RPC_FAR *ppenum) = 0;
182 #endif // CHROME_COMMON_IMPORTER_PSTORE_DECLARATIONS_H_