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