// Copyright 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CHROME_COMMON_IMPORTER_PSTORE_DECLARATIONS_H_ #define CHROME_COMMON_IMPORTER_PSTORE_DECLARATIONS_H_ #ifdef __PSTORE_H__ #error Should not include pstore.h and this file simultaneously. #endif #include // pstore.h is no longer shipped in the Windows 8 SDK. Define a minimal set // here. // These types are referenced in interfaces we use, but our code does not use // refer to these types, so simply make them opaque. class IEnumPStoreTypes; struct PST_ACCESSRULESET; struct PST_PROMPTINFO; struct PST_PROVIDERINFO; struct PST_TYPEINFO; EXTERN_C const IID IID_IPStore; EXTERN_C const IID IID_IEnumPStoreItems; typedef DWORD PST_KEY; typedef DWORD PST_ACCESSMODE; #define PST_E_OK _HRESULT_TYPEDEF_(0x00000000L) interface IEnumPStoreItems : public IUnknown { public: virtual HRESULT STDMETHODCALLTYPE Next( DWORD celt, LPWSTR __RPC_FAR *rgelt, DWORD __RPC_FAR *pceltFetched) = 0; virtual HRESULT STDMETHODCALLTYPE Skip(DWORD celt) = 0; virtual HRESULT STDMETHODCALLTYPE Reset(void) = 0; virtual HRESULT STDMETHODCALLTYPE Clone( IEnumPStoreItems __RPC_FAR *__RPC_FAR *ppenum) = 0; }; interface IPStore : public IUnknown { public: virtual HRESULT STDMETHODCALLTYPE GetInfo( PST_PROVIDERINFO* __RPC_FAR *ppProperties) = 0; virtual HRESULT STDMETHODCALLTYPE GetProvParam( DWORD dwParam, DWORD __RPC_FAR *pcbData, BYTE __RPC_FAR *__RPC_FAR *ppbData, DWORD dwFlags) = 0; virtual HRESULT STDMETHODCALLTYPE SetProvParam( DWORD dwParam, DWORD cbData, BYTE __RPC_FAR *pbData, DWORD dwFlags) = 0; virtual HRESULT STDMETHODCALLTYPE CreateType( PST_KEY Key, const GUID __RPC_FAR *pType, PST_TYPEINFO* pInfo, DWORD dwFlags) = 0; virtual HRESULT STDMETHODCALLTYPE GetTypeInfo( PST_KEY Key, const GUID __RPC_FAR *pType, PST_TYPEINFO* __RPC_FAR *ppInfo, DWORD dwFlags) = 0; virtual HRESULT STDMETHODCALLTYPE DeleteType( PST_KEY Key, const GUID __RPC_FAR *pType, DWORD dwFlags) = 0; virtual HRESULT STDMETHODCALLTYPE CreateSubtype( PST_KEY Key, const GUID __RPC_FAR *pType, const GUID __RPC_FAR *pSubtype, PST_TYPEINFO* pInfo, PST_ACCESSRULESET* pRules, DWORD dwFlags) = 0; virtual HRESULT STDMETHODCALLTYPE GetSubtypeInfo( PST_KEY Key, const GUID __RPC_FAR *pType, const GUID __RPC_FAR *pSubtype, PST_TYPEINFO* __RPC_FAR *ppInfo, DWORD dwFlags) = 0; virtual HRESULT STDMETHODCALLTYPE DeleteSubtype( PST_KEY Key, const GUID __RPC_FAR *pType, const GUID __RPC_FAR *pSubtype, DWORD dwFlags) = 0; virtual HRESULT STDMETHODCALLTYPE ReadAccessRuleset( PST_KEY Key, const GUID __RPC_FAR *pType, const GUID __RPC_FAR *pSubtype, PST_ACCESSRULESET* __RPC_FAR *ppRules, DWORD dwFlags) = 0; virtual HRESULT STDMETHODCALLTYPE WriteAccessRuleset( PST_KEY Key, const GUID __RPC_FAR *pType, const GUID __RPC_FAR *pSubtype, PST_ACCESSRULESET* pRules, DWORD dwFlags) = 0; virtual HRESULT STDMETHODCALLTYPE EnumTypes( PST_KEY Key, DWORD dwFlags, IEnumPStoreTypes __RPC_FAR *__RPC_FAR *ppenum) = 0; virtual HRESULT STDMETHODCALLTYPE EnumSubtypes( PST_KEY Key, const GUID __RPC_FAR *pType, DWORD dwFlags, IEnumPStoreTypes __RPC_FAR *__RPC_FAR *ppenum) = 0; virtual HRESULT STDMETHODCALLTYPE DeleteItem( PST_KEY Key, const GUID __RPC_FAR *pItemType, const GUID __RPC_FAR *pItemSubtype, LPCWSTR szItemName, PST_PROMPTINFO* pPromptInfo, DWORD dwFlags) = 0; virtual HRESULT STDMETHODCALLTYPE ReadItem( PST_KEY Key, const GUID __RPC_FAR *pItemType, const GUID __RPC_FAR *pItemSubtype, LPCWSTR szItemName, DWORD __RPC_FAR *pcbData, BYTE __RPC_FAR *__RPC_FAR *ppbData, PST_PROMPTINFO* pPromptInfo, DWORD dwFlags) = 0; virtual HRESULT STDMETHODCALLTYPE WriteItem( PST_KEY Key, const GUID __RPC_FAR *pItemType, const GUID __RPC_FAR *pItemSubtype, LPCWSTR szItemName, DWORD cbData, BYTE __RPC_FAR *pbData, PST_PROMPTINFO* pPromptInfo, DWORD dwDefaultConfirmationStyle, DWORD dwFlags) = 0; virtual HRESULT STDMETHODCALLTYPE OpenItem( PST_KEY Key, const GUID __RPC_FAR *pItemType, const GUID __RPC_FAR *pItemSubtype, LPCWSTR szItemName, PST_ACCESSMODE ModeFlags, PST_PROMPTINFO* pPromptInfo, DWORD dwFlags) = 0; virtual HRESULT STDMETHODCALLTYPE CloseItem( PST_KEY Key, const GUID __RPC_FAR *pItemType, const GUID __RPC_FAR *pItemSubtype, LPCWSTR szItemName, DWORD dwFlags) = 0; virtual HRESULT STDMETHODCALLTYPE EnumItems( PST_KEY Key, const GUID __RPC_FAR *pItemType, const GUID __RPC_FAR *pItemSubtype, DWORD dwFlags, IEnumPStoreItems __RPC_FAR *__RPC_FAR *ppenum) = 0; }; #endif // CHROME_COMMON_IMPORTER_PSTORE_DECLARATIONS_H_