windows-nt/Source/XPSP1/NT/net/mmc/mprinc/reg.h

137 lines
4.9 KiB
C
Raw Normal View History

2020-09-26 03:20:57 -05:00
/**********************************************************************/
/** Microsoft Windows/NT **/
/** Copyright(c) Microsoft Corp., 1997 **/
/**********************************************************************/
/*
reg.h
FILE HISTORY:
*/
#ifndef _REG_H
#define _REG_H
//----------------------------------------------------------------------------
// Function: ConnectRegistry
//
// Connects to HKEY_LOCAL_MACHINE on machine 'pszMachine', which is expected
// to be of the form "\\MACHINE", and saves the key in 'phkeyMachine'.
// If 'pszMachine' is NULL or empty, saves HKEY_LOCAL_MACHINE in 'phkeyMachine'
//
// If you are connecting to the server for the very FIRST time, use the
// InitiateServerConnection() call instead. This does the exact same
// thing as this call (except that it brings up UI and prompts for
// username/password if needed).
//
//----------------------------------------------------------------------------
TFSCORE_API(DWORD) ConnectRegistry(LPCTSTR pszMachine, HKEY *phkeyMachine);
//----------------------------------------------------------------------------
// Function: DisconnectRegistry
//
// Disconnects from the registry connected to be 'ConnectRegistry'.
//----------------------------------------------------------------------------
TFSCORE_API(VOID) DisconnectRegistry(HKEY hkeyMachine);
//----------------------------------------------------------------------------
// Function: QueryRouterType
//
// Retrieves the value of HKLM\Software\Microsoft\RAS\Protocols\RouterType
// This is used by the individual UIConfigDlls to determine if they should
// load or not.
//
// If the pVerInfo parameter is NULL, then the QueryRouterType() function
// wil gather that information itself.
//----------------------------------------------------------------------------
enum {
ROUTER_TYPE_RAS = 1,
ROUTER_TYPE_LAN = 2,
ROUTER_TYPE_WAN = 4
};
TFSCORE_API(HRESULT) QueryRouterType(HKEY hkMachine, DWORD *pdwRouterType,
RouterVersionInfo *pVerInfo);
TFSCORE_API(HRESULT) QueryRouterVersionInfo(HKEY hkeyMachine,
RouterVersionInfo *pVerInfo);
//----------------------------------------------------------------------------
// Function: QueryLinkageList
//
// Loads a list of strings with the adapters to which 'pszService' is bound;
// the list is built by examining the 'Linkage' and 'Disabled' subkeys
// of the service under HKLM\System\CurrentControlSet\Services.
//----------------------------------------------------------------------------
HRESULT LoadLinkageList(LPCTSTR pszMachine,
HKEY hkeyMachine,
LPCTSTR pszService,
CStringList* pLinkageList);
TFSCORE_API(DWORD) GetNTVersion(HKEY hkeyMachine, DWORD *pdwMajor, DWORD *pdwMinor, DWORD* pdwCurrentBuildNumber);
TFSCORE_API(DWORD) IsNT4Machine(HKEY hkeyMachine, BOOL *pfNt4);
//----------------------------------------------------------------------------
// Function: FindRmSoftwareKey
//
// Finds the key for a router-manager in the Software section of the registry.
//----------------------------------------------------------------------------
HRESULT FindRmSoftwareKey(
HKEY hkeyMachine,
DWORD dwTransportId,
HKEY* phkrm,
LPTSTR* lplpszRm
);
//----------------------------------------------------------------------------
// Function: RegFindInterfaceTitle
// RegFindRtrMgrTitle
// RegFindRtrMgrProtocolTitle
//
// These functions read the key HKLM\Software\Router to load the title of
// a given interface, RtrMgr, and RtrMgrProtocol respectively. The string
// will be allocated using 'new' and returned as an out parameter. Free
// up the memory using 'delete'.
//
// Function: SetupFindInterfaceTitle
// This is similar to the RegFindInterfaceTitle, however this uses
// the setup APIs.
//----------------------------------------------------------------------------
HRESULT RegFindInterfaceTitle(LPCTSTR pszMachine, LPCTSTR pszInterface,
LPTSTR *ppszTitle);
HRESULT SetupFindInterfaceTitle(LPCTSTR pszMachine, LPCTSTR pszInterface,
LPTSTR *ppszTitle);
HRESULT RegFindRtrMgrTitle(LPCTSTR pszMachine, DWORD dwProtocolId,
LPTSTR *ppszTitle);
HRESULT RegFindRtrMgrProtocolTitle(LPCTSTR pszMachine, DWORD dwTransportId,
DWORD dwProtocolId, LPTSTR *ppszTitle);
#ifdef _DEBUG
#define CheckRegOpenError(d,p1,p2) CheckRegOpenErrorEx(d,p1,p2,_T(__FILE__), __LINE__)
#define CheckRegQueryValueError(d,p1,p2,p3) CheckRegQueryValueErrorEx(d,p1,p2,p3,_T(__FILE__), __LINE__)
void CheckRegOpenErrorEx(DWORD dwError, LPCTSTR pszSubKey,
LPCTSTR pszDesc, LPCTSTR szFile, int iLineNo);
void CheckRegQueryValueErrorEx(DWORD dwError, LPCTSTR pszSubKey,
LPCTSTR pszValue, LPCTSTR pszDesc,
LPCTSTR szFile, int iLineNo);
#else
#define CheckRegOpenError(d,p1,p2)
#define CheckRegQueryValueError(d,p1,p2,p3)
#endif
#endif _REG_H