| /* | |
| * Copyright (C) 2004 Mike McCormack | |
| * | |
| * This library is free software; you can redistribute it and/or | |
| * modify it under the terms of the GNU Lesser General Public | |
| * License as published by the Free Software Foundation; either | |
| * version 2.1 of the License, or (at your option) any later version. | |
| * | |
| * This library is distributed in the hope that it will be useful, | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| * Lesser General Public License for more details. | |
| * | |
| * You should have received a copy of the GNU Lesser General Public | |
| * License along with this library; if not, write to the Free Software | |
| * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
| */ | |
| import "oaidl.idl"; | |
| cpp_quote("#define PST_KEY_CURRENT_USER 0"); | |
| cpp_quote("#define PST_KEY_LOCAL_MACHINE 1"); | |
| cpp_quote("#define PST_E_OK 0x00000000L"); | |
| cpp_quote("#define PST_E_TYPE_EXISTS 0x800C0004L"); | |
| cpp_quote("#define PST_AUTHENTICODE 1"); | |
| cpp_quote("#define PST_BINARY_CHECK 2"); | |
| cpp_quote("#define PST_SECURITY_DESCRIPTOR 4"); | |
| typedef DWORD PST_ACCESSMODE; | |
| typedef DWORD PST_ACCESSCLAUSETYPE; | |
| typedef DWORD PST_KEY; | |
| typedef DWORD PST_PROVIDERCAPABILITIES; | |
| typedef GUID PST_PROVIDERID, *PPST_PROVIDERID; | |
| typedef struct _PST_PROVIDERINFO | |
| { | |
| DWORD cbSize; | |
| PST_PROVIDERID ID; | |
| PST_PROVIDERCAPABILITIES Capabilities; | |
| LPWSTR szProviderName; | |
| } PST_PROVIDERINFO, *PPST_PROVIDERINFO; | |
| typedef void *PPST_PROMPTIFO; | |
| typedef struct { | |
| DWORD cbSize; | |
| PST_ACCESSCLAUSETYPE ClauseType; | |
| DWORD cbClauseData; | |
| BYTE* pbClauseData; | |
| } PST_ACCESSCLAUSE, *PPST_ACCESSCLAUSE; | |
| typedef struct { | |
| DWORD cbSize; | |
| PST_ACCESSMODE AccessModeFlags; | |
| DWORD cClauses; | |
| PST_ACCESSCLAUSE* rgClauses; | |
| } PST_ACCESSRULE, *PPST_ACCESSRULE; | |
| typedef struct { | |
| DWORD cbSize; | |
| DWORD cClause; | |
| PST_ACCESSRULE* rgRules; | |
| } PST_ACCESSRULESET, *PPST_ACCESSRULESET; | |
| typedef struct { | |
| DWORD cbSize; | |
| LPWSTR szDisplayName; | |
| } PST_TYPEINFO, *PPST_TYPEINFO; | |
| typedef struct { | |
| DWORD cbSize; | |
| DWORD dwPromptFlags; | |
| DWORD_PTR hwndApp; | |
| LPCWSTR szPrompt; | |
| } PST_PROMPTINFO, *PPST_PROMPTINFO; | |
| [ | |
| object, | |
| pointer_default(unique) | |
| ] | |
| interface IEnumPStoreItems : IUnknown | |
| { | |
| HRESULT Clone( | |
| [in] IEnumPStoreItems** ppenum ); | |
| HRESULT Next( | |
| [in] DWORD celt, | |
| [in] LPWSTR* rgelt, | |
| [in] DWORD* pceltFetched ); | |
| HRESULT Reset(); | |
| HRESULT Skip( | |
| [in] DWORD celt ); | |
| } | |
| [ | |
| object, | |
| pointer_default(unique) | |
| ] | |
| interface IEnumPStoreTypes : IUnknown | |
| { | |
| HRESULT Clone( | |
| [in] IEnumPStoreTypes** ppenum ); | |
| HRESULT Next( | |
| [in] DWORD celt, | |
| [in] LPWSTR* rgelt, | |
| [in] DWORD* pceltFetched ); | |
| HRESULT Reset(); | |
| HRESULT Skip( | |
| [in] DWORD celt ); | |
| } | |
| /***************************************************************************** | |
| * IPStore interface | |
| */ | |
| [ | |
| object, | |
| pointer_default(unique) | |
| ] | |
| interface IPStore : IUnknown | |
| { | |
| HRESULT GetInfo( | |
| [in] PPST_PROVIDERINFO* ppProperties ); | |
| HRESULT GetProvParam( | |
| [in] DWORD dwParam, | |
| [out] DWORD* pcbData, | |
| [out] BYTE** ppbData, | |
| [in] DWORD dwFlags ); | |
| HRESULT SetProvParam( | |
| [in] DWORD dwParam, | |
| [in] DWORD cbData, | |
| [in] BYTE* pbData, | |
| [in] DWORD* dwFlags ); | |
| HRESULT CreateType( | |
| [in] PST_KEY Key, | |
| [in] const GUID* pType, | |
| [in] PPST_TYPEINFO pInfo, | |
| [in] DWORD dwFlags ); | |
| HRESULT GetTypeInfo( | |
| [in] PST_KEY Key, | |
| [in] const GUID* pType, | |
| [in] PPST_TYPEINFO** ppInfo, | |
| [in] DWORD dwFlags ); | |
| HRESULT DeleteType( | |
| [in] PST_KEY Key, | |
| [in] const GUID* pType, | |
| [in] DWORD dwFlags ); | |
| HRESULT CreateSubtype( | |
| [in] PST_KEY Key, | |
| [in] const GUID* pType, | |
| [in] const GUID* pSubtype, | |
| [in] PPST_TYPEINFO pInfo, | |
| [in] PPST_ACCESSRULESET pRules, | |
| [in] DWORD dwFlags ); | |
| HRESULT GetSubtypeInfo( | |
| [in] PST_KEY Key, | |
| [in] const GUID* pType, | |
| [in] const GUID* pSubtype, | |
| [in] PPST_TYPEINFO** ppInfo, | |
| [in] DWORD dwFlags ); | |
| HRESULT DeleteSubtype( | |
| [in] PST_KEY Key, | |
| [in] const GUID* pType, | |
| [in] const GUID* pSubtype, | |
| [in] DWORD dwFlags ); | |
| HRESULT ReadAccessRuleset( | |
| [in] PST_KEY Key, | |
| [in] const GUID* pType, | |
| [in] const GUID* pSubtype, | |
| [in] PPST_TYPEINFO pInfo, | |
| [in] PPST_ACCESSRULESET** ppRules, | |
| [in] DWORD dwFlags ); | |
| HRESULT WriteAccessRuleset( | |
| [in] PST_KEY Key, | |
| [in] const GUID* pType, | |
| [in] const GUID* pSubtype, | |
| [in] PPST_TYPEINFO pInfo, | |
| [in] PPST_ACCESSRULESET pRules, | |
| [in] DWORD dwFlags ); | |
| HRESULT EnumTypes( | |
| [in] PST_KEY Key, | |
| [in] DWORD dwFlags, | |
| [in] IEnumPStoreTypes** ppenum ); | |
| HRESULT EnumSubtypes( | |
| [in] PST_KEY Key, | |
| [in] const GUID* pType, | |
| [in] DWORD dwFlags, | |
| [in] IEnumPStoreTypes** ppenum ); | |
| HRESULT DeleteItem( | |
| [in] PST_KEY Key, | |
| [in] const GUID* pItemType, | |
| [in] const GUID* pItemSubType, | |
| [in] LPCWSTR szItemName, | |
| [in] PPST_PROMPTINFO pPromptInfo, | |
| [in] DWORD dwFlags ); | |
| HRESULT ReadItem( | |
| [in] PST_KEY Key, | |
| [in] const GUID* pItemType, | |
| [in] const GUID* pItemSubtype, | |
| [in] LPCWSTR szItemName, | |
| [in] DWORD *cbData, | |
| [in] BYTE** pbData, | |
| [in] PPST_PROMPTIFO pPromptInfo, | |
| [in] DWORD dwFlags ); | |
| HRESULT WriteItem( | |
| [in] PST_KEY Key, | |
| [in] const GUID* pItemType, | |
| [in] const GUID* pItemSubtype, | |
| [in] LPCWSTR szItemName, | |
| [in] DWORD cbData, | |
| [in,size_is(cbData)] BYTE *ppbData, | |
| [in] PPST_PROMPTIFO pPromptInfo, | |
| [in] DWORD dwDefaultConfirmationStyle, | |
| [in] DWORD dwFlags); | |
| HRESULT OpenItem( | |
| [in] PST_KEY Key, | |
| [in] const GUID* pItemType, | |
| [in] const GUID* pItemSubtype, | |
| [in] LPCWSTR szItemName, | |
| [in] PST_ACCESSMODE ModeFlags, | |
| [in] PPST_PROMPTIFO pProomptInfo, | |
| [in] DWORD dwFlags ); | |
| HRESULT CloseItem( | |
| [in] PST_KEY Key, | |
| [in] const GUID* pItemType, | |
| [in] const GUID* pItemSubtype, | |
| [in] LPCWSTR* szItemName, | |
| [in] DWORD dwFlags ); | |
| HRESULT EnumItems( | |
| [in] PST_KEY Key, | |
| [in] const GUID* pItemType, | |
| [in] const GUID* pItemSubtype, | |
| [in] DWORD dwFlags, | |
| [in] IEnumPStoreItems** ppenum ); | |
| } |