Leaked source code of windows server 2003
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

#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_