示例#1
0
long RegistryRW::CreateRegistryValue(const std::string& path,const std::string& valueName,const std::string& value) const
{
	long ret= 0;
	if (!KeyExist(path,ret)) return ret;
	HKEY key ;
	TCHAR valueBuf[MAX_VALUE_NAME] ={0};
	strncpy(valueBuf, value.c_str(),value.length());
	valueBuf[value.length()]='\0';
	ret = RegOpenKeyExA(m_root , path.c_str(),0, KEY_WRITE, &key);
	if (ret != ERROR_SUCCESS ) 
	{
		CreateErrorMsg(ret,true);
		return ret;
	}
	if (key!=NULL)
	{
		ret = RegSetValueEx(key,valueName.c_str(),0,REG_SZ,(LPBYTE)valueBuf,MAX_VALUE_NAME);
	}
	if (ret != ERROR_SUCCESS)
	{
		CreateErrorMsg(ret,true);
	}
	RegCloseKey(key);

	return ret;
}
示例#2
0
long RegistryRW::CreateRegistryKeyLibrary(const std::string& path,const std::string& keyName) const
{
	long ret ;
	if (!KeyExist(path,ret)) 
	{
		CreateErrorMsg(ret,true);
		return ret;
	}
	std::string  NewKeyPath = (path.size()==0)? keyName : path + "\\" + keyName;
	if (KeyExist(NewKeyPath,ret)) return -2;
	HKEY key ;
	
	//need to omit 
	ret = OpenRegKey(path,key);
	if (ret != ERROR_SUCCESS)
	{
			CreateErrorMsg(ret,true);
			return ret;
	}
		
	ret= RegCreateKeyEx(m_root, NewKeyPath.c_str(), 0L, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &key, NULL );
	if (ret != ERROR_SUCCESS ) CreateErrorMsg(ret,false);
	RegCloseKey(key);
	return 0;
}
示例#3
0
std::string RegistryRW::ReadValueFromReg(const std::string& path,const std::string& valueName) const
{
	std::string value;
	DWORD bufLen = MAX_VALUE_NAME*sizeof(TCHAR);
	TCHAR valueStr[MAX_VALUE_NAME]; 

	long ret = GetValueFromKey(path,valueName,(LPBYTE)valueStr);
	if  (ret!= ERROR_SUCCESS) return CreateErrorMsg(ret,false);
    std::string stringValue = std::string(valueStr, (size_t)bufLen - 1);
    size_t i = stringValue.length();
    while( i > 0 && stringValue[i-1] == '\0' ){
        --i;
    }
    return stringValue.substr(0,i); 
}
示例#4
0
int RegistryRW::Get_numKeyItems(const std::string& path) const
{
	HKEY hkey;
	DWORD numItems = 0;
	DWORD biggest;
	long ret ;
	ret = OpenRegKey(path,hkey);
	if (ret != ERROR_SUCCESS)
	{
		CreateErrorMsg(ret,true);
		return -1; //error 
	}
	GetInfoKey(hkey,numItems,biggest);
	return numItems;
}
示例#5
0
文件: errhnd.cpp 项目: 089git/calibre
void ErrorHandler::CreateErrorMsg(const char *FileName,const wchar *FileNameW)
{
  CreateErrorMsg(NULL,NULL,FileName,FileNameW);
}
示例#6
0
文件: errhnd.cpp 项目: alown/iViewer
void ErrorHandler::CreateErrorMsg(const char *FileName)
{
  CreateErrorMsg(NULL,FileName);
}
示例#7
0
文件: errhnd.cpp 项目: GDXN/Par-N-Rar
void ErrorHandler::CreateErrorMsg(string sParfileName, const char *FileName)
{
    CreateErrorMsg(sParfileName,NULL,FileName);
}