| /* |
| * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA |
| */ |
| |
| import "wtypes.idl"; |
| 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; |
| |
| /***************************************************************************** |
| * PSTOREC library |
| */ |
| [ |
| uuid(5a6f1ebd-2db1-11d0-8c39-00c04fd9126b), |
| version(1.0), |
| helpstring("PStore 1.0 Type Library") |
| ] |
| library PSTORECLib |
| { |
| importlib("stdole2.tlb"); |
| |
| typedef struct _PST_PROVIDERINFO |
| { |
| DWORD cbSize; |
| PST_PROVIDERID ID; |
| PST_PROVIDERCAPABILITIES Capabilities; |
| LPWSTR szProviderName; |
| } PST_PROVIDERINFO, *PPST_PROVIDERINFO; |
| |
| typedef struct _PST_PROMPTINFO |
| { |
| DWORD cbSize; |
| DWORD dwPromptFlags; |
| HWND hwndApp; |
| LPCWSTR szPrompt; |
| } PST_PROMPTINFO, *PPST_PROMPTINFO; |
| |
| typedef struct _PST_ACCESSCLAUSE { |
| DWORD cbSize; |
| PST_ACCESSCLAUSETYPE ClauseType; |
| DWORD cbClauseData; |
| BYTE* pbClauseData; |
| } PST_ACCESSCLAUSE, *PPST_ACCESSCLAUSE; |
| |
| typedef struct _PST_ACCESSRULE { |
| DWORD cbSize; |
| PST_ACCESSMODE AccessModeFlags; |
| DWORD cClauses; |
| PST_ACCESSCLAUSE* rgClauses; |
| } PST_ACCESSRULE, *PPST_ACCESSRULE; |
| |
| typedef struct _PST_ACCESSRULESET { |
| DWORD cbSize; |
| DWORD cClause; |
| PST_ACCESSRULE* rgRules; |
| } PST_ACCESSRULESET, *PPST_ACCESSRULESET; |
| |
| typedef struct _PST_TYPEINFO { |
| DWORD cbSize; |
| LPWSTR szDisplayName; |
| } PST_TYPEINFO, *PPST_TYPEINFO; |
| |
| [ |
| object, |
| uuid(5a6f1ec1-2db1-11d0-8c39-00c04fd9126b), |
| 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, |
| uuid(789c1cbf-31ee-11d0-8c39-00c04fd9126b), |
| 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, |
| uuid(5a6f1ec0-2db1-11d0-8c39-00c04fd9126b), |
| 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_PROMPTINFO 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_PROMPTINFO 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_PROMPTINFO pPromptInfo, |
| [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 ); |
| } |
| |
| }; |