84 lines
1.7 KiB
C++
84 lines
1.7 KiB
C++
// Copyright (c) 1997-2001 Microsoft Corporation, All Rights Reserved
|
|
#include "precomp.h"
|
|
#include "WbemRegistry.h"
|
|
|
|
typedef struct
|
|
{
|
|
LPTSTR key;
|
|
LPTSTR value;
|
|
} REGMAP;
|
|
|
|
REGMAP RegMap[] =
|
|
{
|
|
{_T("SOFTWARE\\Microsoft\\WBEM"),
|
|
_T("Application Directory")},
|
|
{_T("SOFTWARE\\Microsoft\\WBEM\\CIMOM"),
|
|
_T("Working Directory")},
|
|
{_T("SOFTWARE\\Microsoft\\WBEM"),
|
|
_T("SDK Directory")},
|
|
{_T("SOFTWARE\\Microsoft\\WBEM"),
|
|
_T("SDK Help")}
|
|
};
|
|
|
|
//---------------------------------------------------------
|
|
WBEMUTILS_POLARITY long WbemRegString(RegString req, CString &sStr)
|
|
{
|
|
long lResult;
|
|
ULONG lcbValue = 1024;
|
|
LPTSTR pszWorkingDir = sStr.GetBuffer(lcbValue);
|
|
|
|
if((lResult = WbemRegString(req, pszWorkingDir, &lcbValue)) != ERROR_SUCCESS)
|
|
{
|
|
// sStr.Empty();
|
|
lstrcpy(pszWorkingDir, _T("wmisdk.chm"));
|
|
}
|
|
|
|
sStr.ReleaseBuffer();
|
|
return lResult;
|
|
}
|
|
|
|
//---------------------------------------------------------
|
|
WBEMUTILS_POLARITY long WbemRegString(RegString req,
|
|
LPTSTR sStr, ULONG *strSize)
|
|
{
|
|
HKEY hkeyLocalMachine;
|
|
long lResult;
|
|
|
|
lResult = RegConnectRegistry(NULL, HKEY_LOCAL_MACHINE,
|
|
&hkeyLocalMachine);
|
|
if (lResult != ERROR_SUCCESS)
|
|
{
|
|
return lResult;
|
|
}
|
|
|
|
HKEY hkeyHmomCwd;
|
|
|
|
lResult = RegOpenKeyEx(hkeyLocalMachine,
|
|
RegMap[req].key,
|
|
0,
|
|
KEY_READ | KEY_QUERY_VALUE,
|
|
&hkeyHmomCwd);
|
|
|
|
if (lResult != ERROR_SUCCESS)
|
|
{
|
|
RegCloseKey(hkeyLocalMachine);
|
|
return lResult;
|
|
}
|
|
|
|
unsigned long lType;
|
|
|
|
lResult = RegQueryValueEx(hkeyHmomCwd,
|
|
RegMap[req].value,
|
|
NULL,
|
|
&lType,
|
|
(unsigned char*) (void*) sStr,
|
|
strSize);
|
|
|
|
|
|
RegCloseKey(hkeyHmomCwd);
|
|
RegCloseKey(hkeyLocalMachine);
|
|
|
|
return lResult;
|
|
}
|
|
|