ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

pstore.idl
Go to the documentation of this file.
00001 /*
00002  * Copyright (C) 2004 Mike McCormack
00003  *
00004  * This library is free software; you can redistribute it and/or
00005  * modify it under the terms of the GNU Lesser General Public
00006  * License as published by the Free Software Foundation; either
00007  * version 2.1 of the License, or (at your option) any later version.
00008  *
00009  * This library is distributed in the hope that it will be useful,
00010  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00011  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012  * Lesser General Public License for more details.
00013  *
00014  * You should have received a copy of the GNU Lesser General Public
00015  * License along with this library; if not, write to the Free Software
00016  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
00017  */
00018 
00019 import "oaidl.idl";
00020 
00021 cpp_quote("#define PST_KEY_CURRENT_USER    0")
00022 cpp_quote("#define PST_KEY_LOCAL_MACHINE   1")
00023 
00024 cpp_quote("#define PST_E_OK          0x00000000L")
00025 cpp_quote("#define PST_E_TYPE_EXISTS 0x800C0004L")
00026 
00027 cpp_quote("#define PST_AUTHENTICODE        1")
00028 cpp_quote("#define PST_BINARY_CHECK        2")
00029 cpp_quote("#define PST_SECURITY_DESCRIPTOR 4")
00030 
00031 typedef DWORD PST_ACCESSMODE;
00032 typedef DWORD PST_ACCESSCLAUSETYPE;
00033 typedef DWORD PST_KEY;
00034 typedef DWORD PST_PROVIDERCAPABILITIES;
00035 typedef GUID PST_PROVIDERID, *PPST_PROVIDERID;
00036 
00037 /*****************************************************************************
00038  * PSTOREC library
00039  */
00040 [
00041     uuid(5a6f1ebd-2db1-11d0-8c39-00c04fd9126b),
00042     version(1.0),
00043     helpstring("PStore 1.0 Type Library")
00044 ]
00045 library PSTORECLib
00046 {
00047     importlib("stdole2.tlb");
00048 
00049 typedef struct _PST_PROVIDERINFO
00050 {
00051     DWORD cbSize;
00052     PST_PROVIDERID ID;
00053     PST_PROVIDERCAPABILITIES Capabilities;
00054     LPWSTR szProviderName;
00055 } PST_PROVIDERINFO, *PPST_PROVIDERINFO;
00056 
00057 typedef struct _PST_PROMPTINFO
00058 {
00059     DWORD cbSize;
00060     DWORD dwPromptFlags;
00061     HWND hwndApp;
00062     LPCWSTR szPrompt;
00063 } PST_PROMPTINFO, *PPST_PROMPTINFO;
00064 
00065 typedef struct _PST_ACCESSCLAUSE {
00066     DWORD cbSize;
00067     PST_ACCESSCLAUSETYPE ClauseType;
00068     DWORD cbClauseData;
00069     BYTE* pbClauseData;
00070 } PST_ACCESSCLAUSE, *PPST_ACCESSCLAUSE;
00071 
00072 typedef struct _PST_ACCESSRULE {
00073     DWORD cbSize;
00074     PST_ACCESSMODE AccessModeFlags;
00075     DWORD cClauses;
00076     PST_ACCESSCLAUSE* rgClauses;
00077 } PST_ACCESSRULE, *PPST_ACCESSRULE;
00078 
00079 typedef struct _PST_ACCESSRULESET {
00080     DWORD cbSize;
00081     DWORD cClause;
00082     PST_ACCESSRULE* rgRules;
00083 } PST_ACCESSRULESET, *PPST_ACCESSRULESET;
00084 
00085 typedef struct _PST_TYPEINFO {
00086     DWORD cbSize;
00087     LPWSTR szDisplayName;
00088 } PST_TYPEINFO, *PPST_TYPEINFO;
00089 
00090 [
00091   object,
00092   uuid(5a6f1ec1-2db1-11d0-8c39-00c04fd9126b),
00093   pointer_default(unique)
00094 ]
00095 interface IEnumPStoreItems : IUnknown
00096 {
00097     HRESULT Clone(
00098         [in] IEnumPStoreItems** ppenum );
00099 
00100     HRESULT Next(
00101         [in] DWORD celt,
00102         [in] LPWSTR* rgelt,
00103         [in] DWORD* pceltFetched );
00104 
00105     HRESULT Reset();
00106 
00107     HRESULT Skip(
00108         [in] DWORD celt );
00109 }
00110 
00111 [
00112   object,
00113   uuid(789c1cbf-31ee-11d0-8c39-00c04fd9126b),
00114   pointer_default(unique)
00115 ]
00116 interface IEnumPStoreTypes : IUnknown
00117 {
00118     HRESULT Clone(
00119         [in] IEnumPStoreTypes** ppenum );
00120 
00121     HRESULT Next(
00122         [in] DWORD celt,
00123         [in] LPWSTR* rgelt,
00124         [in] DWORD* pceltFetched );
00125 
00126     HRESULT Reset();
00127 
00128     HRESULT Skip(
00129         [in] DWORD celt );
00130 }
00131 
00132 /*****************************************************************************
00133  * IPStore interface
00134  */
00135 [
00136   object,
00137   uuid(5a6f1ec0-2db1-11d0-8c39-00c04fd9126b),
00138   pointer_default(unique)
00139 ]
00140 interface IPStore : IUnknown
00141 {
00142     HRESULT GetInfo(
00143         [in] PPST_PROVIDERINFO* ppProperties );
00144 
00145     HRESULT GetProvParam(
00146         [in] DWORD dwParam,
00147         [out] DWORD* pcbData,
00148         [out] BYTE** ppbData,
00149         [in] DWORD dwFlags );
00150 
00151     HRESULT SetProvParam(
00152         [in] DWORD dwParam,
00153         [in] DWORD cbData,
00154         [in] BYTE* pbData,
00155         [in] DWORD* dwFlags );
00156 
00157     HRESULT CreateType(
00158         [in] PST_KEY Key,
00159         [in] const GUID* pType,
00160         [in] PPST_TYPEINFO pInfo,
00161         [in] DWORD dwFlags );
00162 
00163     HRESULT GetTypeInfo(
00164         [in] PST_KEY Key,
00165         [in] const GUID* pType,
00166         [in] PPST_TYPEINFO** ppInfo,
00167         [in] DWORD dwFlags );
00168 
00169     HRESULT DeleteType(
00170         [in] PST_KEY Key,
00171         [in] const GUID* pType,
00172         [in] DWORD dwFlags );
00173 
00174     HRESULT CreateSubtype(
00175         [in] PST_KEY Key,
00176         [in] const GUID* pType,
00177         [in] const GUID* pSubtype,
00178         [in] PPST_TYPEINFO pInfo,
00179         [in] PPST_ACCESSRULESET pRules,
00180         [in] DWORD dwFlags );
00181 
00182     HRESULT GetSubtypeInfo(
00183         [in] PST_KEY Key,
00184         [in] const GUID* pType,
00185         [in] const GUID* pSubtype,
00186         [in] PPST_TYPEINFO** ppInfo,
00187         [in] DWORD dwFlags );
00188 
00189     HRESULT DeleteSubtype(
00190         [in] PST_KEY Key,
00191         [in] const GUID* pType,
00192         [in] const GUID* pSubtype,
00193         [in] DWORD dwFlags );
00194 
00195     HRESULT ReadAccessRuleset(
00196         [in] PST_KEY Key,
00197         [in] const GUID* pType,
00198         [in] const GUID* pSubtype,
00199         [in] PPST_TYPEINFO pInfo,
00200         [in] PPST_ACCESSRULESET** ppRules,
00201         [in] DWORD dwFlags );
00202 
00203     HRESULT WriteAccessRuleset(
00204         [in] PST_KEY Key,
00205         [in] const GUID* pType,
00206         [in] const GUID* pSubtype,
00207         [in] PPST_TYPEINFO pInfo,
00208         [in] PPST_ACCESSRULESET pRules,
00209         [in] DWORD dwFlags );
00210 
00211     HRESULT EnumTypes(
00212         [in] PST_KEY Key,
00213         [in] DWORD dwFlags,
00214         [in] IEnumPStoreTypes** ppenum );
00215 
00216     HRESULT EnumSubtypes(
00217         [in] PST_KEY Key,
00218         [in] const GUID* pType,
00219         [in] DWORD dwFlags,
00220         [in] IEnumPStoreTypes** ppenum );
00221 
00222     HRESULT DeleteItem(
00223         [in] PST_KEY Key,
00224         [in] const GUID* pItemType,
00225         [in] const GUID* pItemSubType,
00226         [in] LPCWSTR szItemName,
00227         [in] PPST_PROMPTINFO pPromptInfo,
00228         [in] DWORD dwFlags );
00229 
00230     HRESULT ReadItem(
00231         [in] PST_KEY Key,
00232         [in] const GUID* pItemType,
00233         [in] const GUID* pItemSubtype,
00234         [in] LPCWSTR szItemName,
00235         [in] DWORD *cbData,
00236         [in] BYTE** pbData,
00237         [in] PPST_PROMPTINFO pPromptInfo,
00238         [in] DWORD dwFlags );
00239 
00240     HRESULT WriteItem(
00241         [in] PST_KEY Key,
00242         [in] const GUID* pItemType,
00243         [in] const GUID* pItemSubtype,
00244         [in] LPCWSTR szItemName,
00245         [in] DWORD cbData,
00246         [in,size_is(cbData)] BYTE *ppbData,
00247         [in] PPST_PROMPTINFO pPromptInfo,
00248         [in] DWORD dwDefaultConfirmationStyle,
00249         [in] DWORD dwFlags);
00250 
00251     HRESULT OpenItem(
00252         [in] PST_KEY Key,
00253         [in] const GUID* pItemType,
00254         [in] const GUID* pItemSubtype,
00255         [in] LPCWSTR szItemName,
00256         [in] PST_ACCESSMODE ModeFlags,
00257         [in] PPST_PROMPTINFO pProomptInfo,
00258         [in] DWORD dwFlags );
00259 
00260     HRESULT CloseItem( 
00261         [in] PST_KEY Key, 
00262         [in] const GUID* pItemType, 
00263         [in] const GUID* pItemSubtype,
00264         [in] LPCWSTR* szItemName,
00265         [in] DWORD dwFlags );
00266 
00267     HRESULT EnumItems(
00268         [in] PST_KEY Key,
00269         [in] const GUID* pItemType,
00270         [in] const GUID* pItemSubtype,
00271         [in] DWORD dwFlags,
00272         [in] IEnumPStoreItems** ppenum );
00273 }
00274 
00275 };

Generated on Mon May 28 2012 04:32:02 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.