本文整理汇总了C++中RegQueryValueExA函数的典型用法代码示例。如果您正苦于以下问题:C++ RegQueryValueExA函数的具体用法?C++ RegQueryValueExA怎么用?C++ RegQueryValueExA使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了RegQueryValueExA函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: RegCloseKey
int CGlobalSettings::_GetUserValue(const char *product, const char *key, const char *value, char *buffer, int buffer_len)
{
HKEY hKey,hSubKey;
DWORD dwType,dwLen,dw;
cvs::string regkey;
if(!product || !strcmp(product,"cvsnt"))
regkey="Software\\Cvsnt";
else
cvs::sprintf(regkey,64,"Software\\March Hare Software Ltd\\%s",product);
if(RegOpenKeyExA(HKEY_CURRENT_USER,regkey.c_str(),0,KEY_READ,&hKey))
return -1; // Couldn't open or create key
if(key)
{
if(RegOpenKeyExA(hKey,key,0,KEY_READ,&hSubKey))
{
RegCloseKey(hKey);
return -1; // Couldn't open or create key
}
RegCloseKey(hKey);
hKey=hSubKey;
}
dwType=REG_SZ;
dwLen=buffer_len;
if((dw=RegQueryValueExA(hKey,value,NULL,&dwType,(LPBYTE)buffer,&dwLen))!=0)
{
RegCloseKey(hKey);
return -1;
}
RegCloseKey(hKey);
if(dwType==REG_DWORD && buffer)
sprintf(buffer,"%u",*(DWORD*)buffer);
return 0;
}
示例2: GetREGSZ
bool GetREGSZ(HKEY hKey, const std::string strLeafKeyName, std::string &strOutValue)
{
bool bResult = false;
int res = 0;
char buffer[257] = {0};
DWORD dwLen = 256;
DWORD dwType = 0;
do
{
res = RegQueryValueExA(hKey, strLeafKeyName.c_str(), 0, &dwType,
(BYTE *)buffer, &dwLen);
if(ERROR_SUCCESS != res)
break;
strOutValue = buffer;
bResult = true;
} while (false);
return bResult;
}
示例3: ReadRegistry
static int ReadRegistry(HKEY hroot,
char * p1, char * p2, char * p3,
char dest[1024])
{
HKEY h1, h2;
DWORD dwType;
unsigned long size;
LONG ret;
if (RegOpenKeyExA(hroot, p1, 0, KEY_QUERY_VALUE, &h1) != ERROR_SUCCESS)
return 0;
if (RegOpenKeyExA(h1, p2, 0, KEY_QUERY_VALUE, &h2) != ERROR_SUCCESS) {
RegCloseKey(h1);
return 0;
}
dwType = REG_SZ;
size = 1024;
ret = RegQueryValueExA(h2, p3, 0, &dwType, dest, &size);
RegCloseKey(h2);
RegCloseKey(h1);
return ret == ERROR_SUCCESS;
}
示例4: UnregisterDriver
void UnregisterDriver() {
HKEY hReg;
if (RegOpenKeyA(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Drivers32", &hReg)) {
MessageBoxA(NULL, "Cannot open registry key", "Registry error", MB_OK | MB_ICONEXCLAMATION);
return;
}
char str[255];
char drvName[] = "MIDI0";
DWORD len, res;
int mt32emuDriver = -1;
for (int i = 0; i < 10; i++) {
len = 255;
if (i) {
drvName[4] = '0' + i;
} else {
drvName[4] = 0;
}
res = RegQueryValueExA(hReg, drvName, NULL, NULL, (LPBYTE)str, &len);
if (res != ERROR_SUCCESS) {
continue;
}
if (!_stricmp(str, mt32emuDriverName)) {
mt32emuDriver = i;
res = RegDeleteValueA(hReg, drvName);
if (res != ERROR_SUCCESS) {
MessageBoxA(NULL, "Cannot uninstall MT32Emu MIDI driver", "Registry error", MB_OK | MB_ICONEXCLAMATION);
RegCloseKey(hReg);
return;
}
}
}
if (mt32emuDriver == -1) {
MessageBoxA(NULL, "Cannot uninstall MT32Emu MIDI driver. There is no driver found.", "Error", MB_OK | MB_ICONEXCLAMATION);
RegCloseKey(hReg);
return;
}
MessageBoxA(NULL, "MT32Emu MIDI Driver successfully uninstalled.", "Information", MB_OK | MB_ICONINFORMATION);
RegCloseKey(hReg);
}
示例5: getTZI
static LONG getTZI(const char *winid, TZI *tzi)
{
DWORD cbData = sizeof(TZI);
LONG result;
HKEY hkey;
result = openTZRegKey(&hkey, winid);
if (result == ERROR_SUCCESS) {
result = RegQueryValueExA(hkey,
TZI_REGKEY,
NULL,
NULL,
(LPBYTE)tzi,
&cbData);
}
RegCloseKey(hkey);
return result;
}
示例6: RandAddSeedPerfmon
static void RandAddSeedPerfmon()
{
RandAddSeed();
#ifdef WIN32
// Don't need this on Linux, OpenSSL automatically uses /dev/urandom
// Seed with the entire set of perfmon data
// This can take up to 2 seconds, so only do it every 10 minutes
static int64_t nLastPerfmon;
if (GetTime() < nLastPerfmon + 10 * 60)
return;
nLastPerfmon = GetTime();
std::vector<unsigned char> vData(250000, 0);
long ret = 0;
unsigned long nSize = 0;
const size_t nMaxSize = 10000000; // Bail out at more than 10MB of performance data
while (true) {
nSize = vData.size();
ret = RegQueryValueExA(HKEY_PERFORMANCE_DATA, "Global", NULL, NULL, begin_ptr(vData), &nSize);
if (ret != ERROR_MORE_DATA || vData.size() >= nMaxSize)
break;
vData.resize(std::max((vData.size() * 3) / 2, nMaxSize)); // Grow size of buffer exponentially
}
RegCloseKey(HKEY_PERFORMANCE_DATA);
if (ret == ERROR_SUCCESS) {
RAND_add(begin_ptr(vData), nSize, nSize / 100.0);
memory_cleanse(begin_ptr(vData), nSize);
LogPrint("rand", "%s: %lu bytes\n", __func__, nSize);
} else {
static bool warned = false; // Warn only once
if (!warned) {
LogPrintf("%s: Warning: RegQueryValueExA(HKEY_PERFORMANCE_DATA) failed with code %i\n", __func__, ret);
warned = true;
}
}
#endif
}
示例7: WNetGetCachedPassword
/*****************************************************************
* WNetGetCachedPassword [[email protected]] Retrieves password from cache
*
* NOTES
* the stub seems to be wrong:
* arg1: ptr 0x40xxxxxx -> (no string)
* arg2: len 36
* arg3: ptr 0x40xxxxxx -> (no string)
* arg4: ptr 0x40xxxxxx -> 0xc8
* arg5: type? 4
*
* ---- everything below this line might be wrong (js) -----
* RETURNS
* Success: WN_SUCCESS
* Failure: WN_ACCESS_DENIED, WN_BAD_PASSWORD, WN_BAD_VALUE,
* WN_NET_ERROR, WN_NOT_SUPPORTED, WN_OUT_OF_MEMORY
*/
DWORD WINAPI WNetGetCachedPassword(
LPSTR pbResource, /* [in] Name of workgroup, computer, or resource */
WORD cbResource, /* [in] Size of name */
LPSTR pbPassword, /* [out] Buffer to receive password */
LPWORD pcbPassword, /* [out] Receives size of password */
BYTE nType) /* [in] Type of password to retrieve */
{
HKEY hkey;
DWORD r, type = 0, sz;
LPSTR valname;
WARN( "(%p(%s), %d, %p, %p, %d): totally insecure\n",
pbResource, debugstr_a(pbResource), cbResource,
pbPassword, pcbPassword, nType );
memset( pbPassword, 0, *pcbPassword);
/* @@ Wine registry key: HKCU\Software\Wine\Wine\Mpr */
r = RegCreateKeyA( HKEY_CURRENT_USER, mpr_key, &hkey );
if( r )
return WN_ACCESS_DENIED;
valname = MPR_GetValueName( pbResource, cbResource, nType );
if( valname )
{
sz = *pcbPassword;
r = RegQueryValueExA( hkey, valname, 0, &type, (LPBYTE)pbPassword, &sz );
*pcbPassword = sz;
if( r )
r = WN_CANCEL;
else
r = WN_SUCCESS;
HeapFree( GetProcessHeap(), 0, valname );
}
else
r = WN_OUT_OF_MEMORY;
return r;
}
示例8: winfrip_confstore_RegQueryValueEx
LONG winfrip_confstore_RegQueryValueEx(HKEY hKey, LPCSTR lpValueName, LPDWORD lpReserved, LPDWORD lpType, LPBYTE lpData, LPDWORD lpcbData)
{
WINFRIPP_CONFSTORE_DEBUG_ASSERT(hKey);
WINFRIPP_CONFSTORE_DEBUG_ASSERT(lpValueName);
/*
* XXX document
*/
switch (winfrip_confstore_backend_get()) {
default:
WINFRIPP_CONFSTORE_DEBUG_FAIL();
return ERROR_INVALID_FUNCTION;
case WINFRIP_GENERAL_STORE_BACKEND_REGISTRY:
return RegQueryValueExA(hKey, lpValueName, lpReserved, lpType, lpData, lpcbData);
case WINFRIP_GENERAL_STORE_BACKEND_EPHEMERAL:
case WINFRIP_GENERAL_STORE_BACKEND_FILE:
/* TODO implement */
return ERROR_INVALID_FUNCTION;
}
}
示例9: RegOpenKeyExA
// 20.11.15 - moved from interop class
bool spoutDirectX::ReadDwordFromRegistry(DWORD *pValue, const char *subkey, const char *valuename)
{
HKEY hRegKey;
LONG regres;
DWORD dwSize, dwKey;
dwSize = MAX_PATH;
// Does the key exist
regres = RegOpenKeyExA(HKEY_CURRENT_USER, subkey, NULL, KEY_READ, &hRegKey);
if(regres == ERROR_SUCCESS) {
// Read the key DWORD value
regres = RegQueryValueExA(hRegKey, valuename, NULL, &dwKey, (BYTE*)pValue, &dwSize);
RegCloseKey(hRegKey);
if(regres == ERROR_SUCCESS)
return true;
}
// Just quit if the key does not exist
return false;
}
示例10: mmGetProfileInt
UINT
mmGetProfileInt(LPCSTR appname, LPCSTR valuename, INT uDefault)
{
DWORD dwType;
INT value = uDefault;
DWORD dwData;
int cbData;
BOOL fCloseKey;
HKEY key = GetKeyA(appname, &fCloseKey, FALSE);
if (key) {
cbData = sizeof(dwData);
if (RegQueryValueExA(
key,
(LPSTR)valuename,
NULL,
&dwType,
(PBYTE) &dwData,
(LPDWORD)&cbData) == ERROR_SUCCESS) {
if (dwType == REG_DWORD || dwType == REG_BINARY) {
value = (INT)dwData;
#ifdef USESTRINGSALSO
} else if (dwType == REG_SZ) {
value = atoi((LPSTR) &dwData);
#endif
}
}
// close open key open if we did not cache it
if (fCloseKey) {
RegCloseKey(key);
}
}
return((UINT)value);
}
示例11: HCR_RegGetIconA
static BOOL HCR_RegGetIconA(HKEY hkey, LPSTR szDest, LPCSTR szName, DWORD len, int* picon_idx)
{
DWORD dwType;
char sTemp[MAX_PATH];
char sNum[5];
if (!RegQueryValueExA(hkey, szName, 0, &dwType, (LPBYTE)szDest, &len))
{
if (dwType == REG_EXPAND_SZ)
{
ExpandEnvironmentStringsA(szDest, sTemp, MAX_PATH);
lstrcpynA(szDest, sTemp, len);
}
if (ParseFieldA (szDest, 2, sNum, 5))
*picon_idx=atoi(sNum);
else
*picon_idx=0; /* sometimes the icon number is missing */
ParseFieldA (szDest, 1, szDest, len);
PathUnquoteSpacesA(szDest);
return TRUE;
}
return FALSE;
}
示例12: getLucidRegValue
CString getLucidRegValue(CString csSectionPath, CString csKey, CString csDefault)
{
HKEY myKey;
DWORD varType = REG_SZ; //the value's a REG_SZ type
DWORD buffSize = 1024;
LPBYTE pszBuf=NULL;
pszBuf = (LPBYTE)malloc(buffSize);
CString retStr = "";
pszBuf[0] = '\0';
RegOpenKeyEx(HKEY_CURRENT_USER,csSectionPath, 0, KEY_READ, &myKey);
RegQueryValueExA(myKey,csKey,NULL,&varType,pszBuf,&buffSize);
if (pszBuf[0] == '\0') {
retStr = csDefault;
}
else {
retStr = (LPCSTR(pszBuf));
}
free(pszBuf);
RegCloseKey(myKey);
return retStr;
}
示例13: IDirectMusic8Impl_GetDefaultPort
static HRESULT WINAPI IDirectMusic8Impl_GetDefaultPort (LPDIRECTMUSIC8 iface, LPGUID pguidPort) {
IDirectMusic8Impl *This = (IDirectMusic8Impl *)iface;
HKEY hkGUID;
DWORD returnTypeGUID, sizeOfReturnBuffer = 50;
char returnBuffer[51];
GUID defaultPortGUID;
WCHAR buff[51];
TRACE("(%p, %p)\n", This, pguidPort);
if ((RegOpenKeyExA(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\DirectMusic\\Defaults" , 0, KEY_READ, &hkGUID) != ERROR_SUCCESS) ||
(RegQueryValueExA(hkGUID, "DefaultOutputPort", NULL, &returnTypeGUID, (LPBYTE)returnBuffer, &sizeOfReturnBuffer) != ERROR_SUCCESS))
{
WARN(": registry entry missing\n" );
*pguidPort = CLSID_DirectMusicSynth;
return S_OK;
}
/* FIXME: Check return types to ensure we're interpreting data right */
MultiByteToWideChar(CP_ACP, 0, returnBuffer, -1, buff, sizeof(buff) / sizeof(WCHAR));
CLSIDFromString(buff, &defaultPortGUID);
*pguidPort = defaultPortGUID;
return S_OK;
}
示例14: getTZKeyName
static LONG getTZKeyName(char* tzKeyName, int32_t length) {
HKEY hkey;
LONG result = FALSE;
DWORD cbData = length;
if(ERROR_SUCCESS == RegOpenKeyExA(
HKEY_LOCAL_MACHINE,
CURRENT_ZONE_REGKEY,
0,
KEY_QUERY_VALUE,
&hkey))
{
result = RegQueryValueExA(
hkey,
"TimeZoneKeyName",
NULL,
NULL,
(LPBYTE)tzKeyName,
&cbData);
}
return result;
}
示例15: defined
bool WinRegistryKey::exists(const std::string& name)
{
bool exists = false;
HKEY hKey;
#if defined(POCO_WIN32_UTF8)
std::wstring usubKey;
Poco::UnicodeConverter::toUTF16(_subKey, usubKey);
if (RegOpenKeyExW(_hRootKey, usubKey.c_str(), 0, KEY_READ | _extraSam, &hKey) == ERROR_SUCCESS)
{
std::wstring uname;
Poco::UnicodeConverter::toUTF16(name, uname);
exists = RegQueryValueExW(hKey, uname.c_str(), NULL, NULL, NULL, NULL) == ERROR_SUCCESS;
RegCloseKey(hKey);
}
#else
if (RegOpenKeyExA(_hRootKey, _subKey.c_str(), 0, KEY_READ | _extraSam, &hKey) == ERROR_SUCCESS)
{
exists = RegQueryValueExA(hKey, name.c_str(), NULL, NULL, NULL, NULL) == ERROR_SUCCESS;
RegCloseKey(hKey);
}
#endif
return exists;
}