|
|
#ifndef _REGIDL_ #define _REGIDL_
import "objidl.idl"; import "oleidl.idl";
interface IRegistryW; interface IRegistryA;
//+--------------------------------------------------------------------------- // // Copyright (C) Microsoft Corporation, 1995 - 1996. // // Contents: IRegistry interface definition // // Description: // //---------------------------------------------------------------------------- cpp_quote("#ifndef _LPREGISTRY_DEFINED") cpp_quote("#define _LPREGISTRY_DEFINED")
[ local, object, uuid(c733e4b0-576e-11d0-b28c-00c04fd7cd22), pointer_default(unique) ]
interface IRegistryW : IUnknown { typedef [unique] IRegistryW *LPREGISTRYW;
typedef DWORD ACCESS_MASK; typedef ACCESS_MASK REGSAM; //typedef DWORD HKEY; typedef HKEY *PHKEY; typedef BYTE *LPBYTE; typedef DWORD SECURITY_INFORMATION, *PSECURITY_INFORMATION; typedef PVOID PSECURITY_DESCRIPTOR;
typedef struct value_entXW { LPWSTR ve_valuename; DWORD ve_valuelen; DWORD ve_valueptr; DWORD ve_type; } VALENTXW, *PVALENTXW;
// can this method be supported LONG ConnectRegistry ( [in] LPWSTR lpMachineName, [in] HKEY hKey, [out] IRegistryW **ppReg );
LONG CloseKey ( [in] HKEY hKey );
LONG CreateKey ( [in] HKEY hKey, [in] LPCWSTR lpSubKey, [out] PHKEY phkResult );
LONG CreateKeyEx ( [in] HKEY hKey, [in] LPCWSTR lpSubKey, [in] DWORD Reserved, [in] LPWSTR lpClass, [in] DWORD dwOptions, [in] REGSAM samDesired, [in] LPSECURITY_ATTRIBUTES lpSecurityAttributes, [out] PHKEY phkResult, [out] LPDWORD lpdwDisposition );
LONG DeleteKey ( [in] HKEY hKey, [in] LPCWSTR lpSubKey );
LONG DeleteValue ( [in] HKEY hKey, [in] LPCWSTR lpValueName );
LONG EnumKey ( [in] HKEY hKey, [in] DWORD dwIndex, [in] LPWSTR lpName, [in] DWORD cbName );
LONG EnumKeyEx ( [in] HKEY hKey, [in] DWORD dwIndex, [in] LPWSTR lpName, [out] LPDWORD lpcbName, [out] LPDWORD lpReserved, [in] LPWSTR lpClass, [out] LPDWORD lpcbClass, [out] PFILETIME lpftLastWriteTime );
LONG EnumValue ( [in] HKEY hKey, [in] DWORD dwIndex, [in] LPWSTR lpValueName, [out] LPDWORD lpcbValueName, [out] LPDWORD lpReserved, [out] LPDWORD lpType, [out] LPBYTE lpData, [in,out] LPDWORD lpcbData );
LONG FlushKey ( HKEY hKey );
LONG GetKeySecurity ( [in] HKEY hKey, [in] SECURITY_INFORMATION SecurityInformation, [out] PSECURITY_DESCRIPTOR pSecurityDescriptor, [in, out] LPDWORD lpcbSecurityDescriptor );
LONG LoadKey ( [in] HKEY hKey, [in] LPCWSTR lpSubKey, [in] LPCWSTR lpFile );
LONG NotifyChangeKeyValue ( [in] HKEY hKey, [in] BOOL bWatchSubtree, [in] DWORD dwNotifyFilter, [in] HANDLE hEvent, [in] BOOL fAsynchronus );
LONG OpenKey ( [in] HKEY hKey, [in] LPCWSTR lpSubKey, [out] PHKEY phkResult );
LONG OpenKeyEx ( [in] HKEY hKey, [in] LPCWSTR lpSubKey, [in] DWORD ulOptions, [in] REGSAM samDesired, [out] PHKEY phkResult );
LONG QueryInfoKey ( [in] HKEY hKey, [in] LPWSTR lpClass, [out] LPDWORD lpcbClass, [out] LPDWORD lpReserved, [out] LPDWORD lpcSubKeys, [out] LPDWORD lpcbMaxSubKeyLen, [out] LPDWORD lpcbMaxClassLen, [out] LPDWORD lpcValues, [out] LPDWORD lpcbMaxValueNameLen, [out] LPDWORD lpcbMaxValueLen, [out] LPDWORD lpcbSecurityDescriptor, [out] PFILETIME lpftLastWriteTime );
LONG QueryValue ( [in] HKEY hKey, [in] LPCWSTR lpSubKey, [in] LPWSTR lpValue, [in, out] LONG *lpcbValue );
LONG QueryMultipleValues ( [in] HKEY hKey, [in] PVALENTXW val_list, [in] DWORD num_vals, [in] LPWSTR lpValueBuf, [in,out] LPDWORD ldwTotsize );
LONG QueryValueEx ( [in] HKEY hKey, [in] LPCWSTR lpValueName, [out] LPDWORD lpReserved, [out] LPDWORD lpType, [in,out] LPBYTE lpData, [in,out] LPDWORD lpcbData );
LONG ReplaceKey ( [in] HKEY hKey, [in] LPCWSTR lpSubKey, [in] LPCWSTR lpNewFile, [in] LPCWSTR lpOldFile );
LONG RestoreKey ( [in] HKEY hKey, [in] LPCWSTR lpFile, [in] DWORD dwFlags );
LONG SaveKey ( [in] HKEY hKey, [in] LPCWSTR lpFile, [out] LPSECURITY_ATTRIBUTES lpSecurityAttributes );
LONG SetKeySecurity ( [in] HKEY hKey, [in] SECURITY_INFORMATION SecurityInformation, [out] PSECURITY_DESCRIPTOR pSecurityDescriptor );
LONG SetValue ( [in] HKEY hKey, [in] LPCWSTR lpSubKey, [in] DWORD dwType, [in] LPCWSTR lpData, [in] DWORD cbData );
LONG SetValueEx ( [in] HKEY hKey, [in] LPCWSTR lpValueName, [in] DWORD Reserved, [in] DWORD dwType, [in] const BYTE* lpData, [in] DWORD cbData );
LONG UnLoadKey ( [in] HKEY hKey, [in] LPCWSTR lpSubKey );
}
[ local, object, uuid(c733e4b1-576e-11d0-b28c-00c04fd7cd22), pointer_default(unique) ]
interface IRegistryA : IUnknown { typedef [unique] IRegistryA *LPREGISTRYA;
typedef struct value_entXA { LPSTR ve_valuename; DWORD ve_valuelen; DWORD ve_valueptr; DWORD ve_type; } VALENTXA, *PVALENTXA;
// can this method be supported LONG ConnectRegistry ( [in] LPSTR lpMachineName, [in] HKEY hKey, [out] IRegistryA **ppReg );
LONG CloseKey ( [in] HKEY hKey );
LONG CreateKey ( [in] HKEY hKey, [in] LPCSTR lpSubKey, [out] PHKEY phkResult );
LONG CreateKeyEx ( [in] HKEY hKey, [in] LPCSTR lpSubKey, [in] DWORD Reserved, [in] LPSTR lpClass, [in] DWORD dwOptions, [in] REGSAM samDesired, [in] LPSECURITY_ATTRIBUTES lpSecurityAttributes, [out] PHKEY phkResult, [out] LPDWORD lpdwDisposition );
LONG DeleteKey ( [in] HKEY hKey, [in] LPCSTR lpSubKey );
LONG DeleteValue ( [in] HKEY hKey, [in] LPCSTR lpValueName );
LONG EnumKey ( [in] HKEY hKey, [in] DWORD dwIndex, [in] LPSTR lpName, [in] DWORD cbName );
LONG EnumKeyEx ( [in] HKEY hKey, [in] DWORD dwIndex, [in] LPSTR lpName, [out] LPDWORD lpcbName, [out] LPDWORD lpReserved, [in] LPSTR lpClass, [out] LPDWORD lpcbClass, [out] PFILETIME lpftLastWriteTime );
LONG EnumValue ( [in] HKEY hKey, [in] DWORD dwIndex, [in] LPSTR lpValueName, [out] LPDWORD lpcbValueName, [out] LPDWORD lpReserved, [out] LPDWORD lpType, [out] LPBYTE lpData, [in,out] LPDWORD lpcbData );
LONG FlushKey ( HKEY hKey );
LONG GetKeySecurity ( [in] HKEY hKey, [in] SECURITY_INFORMATION SecurityInformation, [out] PSECURITY_DESCRIPTOR pSecurityDescriptor, [in, out] LPDWORD lpcbSecurityDescriptor );
LONG LoadKey ( [in] HKEY hKey, [in] LPCSTR lpSubKey, [in] LPCSTR lpFile );
LONG NotifyChangeKeyValue ( [in] HKEY hKey, [in] BOOL bWatchSubtree, [in] DWORD dwNotifyFilter, [in] HANDLE hEvent, [in] BOOL fAsynchronus );
LONG OpenKey ( [in] HKEY hKey, [in] LPCSTR lpSubKey, [out] PHKEY phkResult );
LONG OpenKeyEx ( [in] HKEY hKey, [in] LPCSTR lpSubKey, [in] DWORD ulOptions, [in] REGSAM samDesired, [out] PHKEY phkResult );
LONG QueryInfoKey ( [in] HKEY hKey, [in] LPSTR lpClass, [out] LPDWORD lpcbClass, [out] LPDWORD lpReserved, [out] LPDWORD lpcSubKeys, [out] LPDWORD lpcbMaxSubKeyLen, [out] LPDWORD lpcbMaxClassLen, [out] LPDWORD lpcValues, [out] LPDWORD lpcbMaxValueNameLen, [out] LPDWORD lpcbMaxValueLen, [out] LPDWORD lpcbSecurityDescriptor, [out] PFILETIME lpftLastWriteTime );
LONG QueryValue ( [in] HKEY hKey, [in] LPCSTR lpSubKey, [in] LPSTR lpValue, [in, out] LONG *lpcbValue );
LONG QueryMultipleValues ( [in] HKEY hKey, [in] PVALENTXA val_list, [in] DWORD num_vals, [in] LPSTR lpValueBuf, [in,out] LPDWORD ldwTotsize );
LONG QueryValueEx ( [in] HKEY hKey, [in] LPCSTR lpValueName, [out] LPDWORD lpReserved, [out] LPDWORD lpType, [in,out] LPBYTE lpData, [in,out] LPDWORD lpcbData );
LONG ReplaceKey ( [in] HKEY hKey, [in] LPCSTR lpSubKey, [in] LPCSTR lpNewFile, [in] LPCSTR lpOldFile );
LONG RestoreKey ( [in] HKEY hKey, [in] LPCSTR lpFile, [in] DWORD dwFlags );
LONG SaveKey ( [in] HKEY hKey, [in] LPCSTR lpFile, [out] LPSECURITY_ATTRIBUTES lpSecurityAttributes );
LONG SetKeySecurity ( [in] HKEY hKey, [in] SECURITY_INFORMATION SecurityInformation, [out] PSECURITY_DESCRIPTOR pSecurityDescriptor );
LONG SetValue ( [in] HKEY hKey, [in] LPCSTR lpSubKey, [in] DWORD dwType, [in] LPCSTR lpData, [in] DWORD cbData );
LONG SetValueEx ( [in] HKEY hKey, [in] LPCSTR lpValueName, [in] DWORD Reserved, [in] DWORD dwType, [in] const BYTE* lpData, [in] DWORD cbData );
LONG UnLoadKey ( [in] HKEY hKey, [in] LPCSTR lpSubKey );
}
cpp_quote("#endif")
#endif // _REGIDL_
|