15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
57dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#ifndef CHROME_COMMON_IMPORTER_PSTORE_DECLARATIONS_H_
67dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define CHROME_COMMON_IMPORTER_PSTORE_DECLARATIONS_H_
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef __PSTORE_H__
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#error Should not include pstore.h and this file simultaneously.
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <ole2.h>
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// pstore.h is no longer shipped in the Windows 8 SDK. Define a minimal set
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// here.
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// These types are referenced in interfaces we use, but our code does not use
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// refer to these types, so simply make them opaque.
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class IEnumPStoreTypes;
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct PST_ACCESSRULESET;
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct PST_PROMPTINFO;
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct PST_PROVIDERINFO;
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct PST_TYPEINFO;
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)EXTERN_C const IID IID_IPStore;
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)EXTERN_C const IID IID_IEnumPStoreItems;
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef DWORD PST_KEY;
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef DWORD PST_ACCESSMODE;
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PST_E_OK _HRESULT_TYPEDEF_(0x00000000L)
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)interface IEnumPStoreItems : public IUnknown
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public:
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual HRESULT STDMETHODCALLTYPE Next(
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      DWORD celt,
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      LPWSTR __RPC_FAR *rgelt,
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      DWORD __RPC_FAR *pceltFetched) = 0;
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual HRESULT STDMETHODCALLTYPE Skip(DWORD celt) = 0;
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual HRESULT STDMETHODCALLTYPE Reset(void) = 0;
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual HRESULT STDMETHODCALLTYPE Clone(
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      IEnumPStoreItems __RPC_FAR *__RPC_FAR *ppenum) = 0;
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)interface IPStore : public IUnknown
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public:
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual HRESULT STDMETHODCALLTYPE GetInfo(
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      PST_PROVIDERINFO* __RPC_FAR *ppProperties) = 0;
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual HRESULT STDMETHODCALLTYPE GetProvParam(
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      DWORD dwParam,
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      DWORD __RPC_FAR *pcbData,
575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      BYTE __RPC_FAR *__RPC_FAR *ppbData,
585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      DWORD dwFlags) = 0;
595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual HRESULT STDMETHODCALLTYPE SetProvParam(
615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      DWORD dwParam,
625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      DWORD cbData,
635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      BYTE __RPC_FAR *pbData,
645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      DWORD dwFlags) = 0;
655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual HRESULT STDMETHODCALLTYPE CreateType(
675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      PST_KEY Key,
685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      const GUID __RPC_FAR *pType,
695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      PST_TYPEINFO* pInfo,
705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      DWORD dwFlags) = 0;
715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual HRESULT STDMETHODCALLTYPE GetTypeInfo(
735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      PST_KEY Key,
745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      const GUID __RPC_FAR *pType,
755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      PST_TYPEINFO* __RPC_FAR *ppInfo,
765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      DWORD dwFlags) = 0;
775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual HRESULT STDMETHODCALLTYPE DeleteType(
795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      PST_KEY Key,
805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      const GUID __RPC_FAR *pType,
815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      DWORD dwFlags) = 0;
825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual HRESULT STDMETHODCALLTYPE CreateSubtype(
845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      PST_KEY Key,
855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      const GUID __RPC_FAR *pType,
865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      const GUID __RPC_FAR *pSubtype,
875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      PST_TYPEINFO* pInfo,
885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      PST_ACCESSRULESET* pRules,
895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      DWORD dwFlags) = 0;
905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual HRESULT STDMETHODCALLTYPE GetSubtypeInfo(
925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      PST_KEY Key,
935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      const GUID __RPC_FAR *pType,
945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      const GUID __RPC_FAR *pSubtype,
955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      PST_TYPEINFO* __RPC_FAR *ppInfo,
965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      DWORD dwFlags) = 0;
975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual HRESULT STDMETHODCALLTYPE DeleteSubtype(
995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      PST_KEY Key,
1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      const GUID __RPC_FAR *pType,
1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      const GUID __RPC_FAR *pSubtype,
1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      DWORD dwFlags) = 0;
1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual HRESULT STDMETHODCALLTYPE ReadAccessRuleset(
1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      PST_KEY Key,
1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      const GUID __RPC_FAR *pType,
1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      const GUID __RPC_FAR *pSubtype,
1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      PST_ACCESSRULESET* __RPC_FAR *ppRules,
1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      DWORD dwFlags) = 0;
1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual HRESULT STDMETHODCALLTYPE WriteAccessRuleset(
1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      PST_KEY Key,
1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      const GUID __RPC_FAR *pType,
1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      const GUID __RPC_FAR *pSubtype,
1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      PST_ACCESSRULESET* pRules,
1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      DWORD dwFlags) = 0;
1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual HRESULT STDMETHODCALLTYPE EnumTypes(
1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      PST_KEY Key,
1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      DWORD dwFlags,
1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      IEnumPStoreTypes __RPC_FAR *__RPC_FAR *ppenum) = 0;
1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual HRESULT STDMETHODCALLTYPE EnumSubtypes(
1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      PST_KEY Key,
1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      const GUID __RPC_FAR *pType,
1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      DWORD dwFlags,
1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      IEnumPStoreTypes __RPC_FAR *__RPC_FAR *ppenum) = 0;
1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual HRESULT STDMETHODCALLTYPE DeleteItem(
1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      PST_KEY Key,
1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      const GUID __RPC_FAR *pItemType,
1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      const GUID __RPC_FAR *pItemSubtype,
1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      LPCWSTR szItemName,
1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      PST_PROMPTINFO* pPromptInfo,
1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      DWORD dwFlags) = 0;
1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual HRESULT STDMETHODCALLTYPE ReadItem(
1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      PST_KEY Key,
1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      const GUID __RPC_FAR *pItemType,
1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      const GUID __RPC_FAR *pItemSubtype,
1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      LPCWSTR szItemName,
1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      DWORD __RPC_FAR *pcbData,
1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      BYTE __RPC_FAR *__RPC_FAR *ppbData,
1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      PST_PROMPTINFO* pPromptInfo,
1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      DWORD dwFlags) = 0;
1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual HRESULT STDMETHODCALLTYPE WriteItem(
1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      PST_KEY Key,
1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      const GUID __RPC_FAR *pItemType,
1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      const GUID __RPC_FAR *pItemSubtype,
1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      LPCWSTR szItemName,
1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      DWORD cbData,
1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      BYTE __RPC_FAR *pbData,
1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      PST_PROMPTINFO* pPromptInfo,
1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      DWORD dwDefaultConfirmationStyle,
1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      DWORD dwFlags) = 0;
1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual HRESULT STDMETHODCALLTYPE OpenItem(
1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      PST_KEY Key,
1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      const GUID __RPC_FAR *pItemType,
1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      const GUID __RPC_FAR *pItemSubtype,
1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      LPCWSTR szItemName,
1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      PST_ACCESSMODE ModeFlags,
1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      PST_PROMPTINFO* pPromptInfo,
1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      DWORD dwFlags) = 0;
1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual HRESULT STDMETHODCALLTYPE CloseItem(
1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      PST_KEY Key,
1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      const GUID __RPC_FAR *pItemType,
1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      const GUID __RPC_FAR *pItemSubtype,
1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      LPCWSTR szItemName,
1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      DWORD dwFlags) = 0;
1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual HRESULT STDMETHODCALLTYPE EnumItems(
1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      PST_KEY Key,
1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      const GUID __RPC_FAR *pItemType,
1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      const GUID __RPC_FAR *pItemSubtype,
1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      DWORD dwFlags,
1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      IEnumPStoreItems __RPC_FAR *__RPC_FAR *ppenum) = 0;
1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1827dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#endif  // CHROME_COMMON_IMPORTER_PSTORE_DECLARATIONS_H_
183