+++ /dev/null
-/*
- * 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 "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 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 );
-}
-
-};