You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
461 lines
11 KiB
461 lines
11 KiB
#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_
|