⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 config.cpp

📁 VIS H.323 Library V2.1 Release
💻 CPP
字号:
/*
  VIS H.323 Video Conference System
      --Sample for VIS H.323 DLL Library 2.1 Release

  For more information,visit our homepage 
  
    [http://www.115studio.com]

  or mail to us for tech support and bug report

    [support@115studio.com]

  2000-2004 115Studio
  
  2004-04-05
*/
//Use this class to operate the registry
#include "stdafx.h"
#include "config.h"
#include "stdio.h"
//
CString DefaultKey="Options";

CConfig::CConfig()
{
	CString key;
	//
	key.Format("Software\\%s\\%s\\%s",COMPANY,PRODUCT,DefaultKey);
	//open the key
	if(ERROR_SUCCESS!=RegOpenKeyEx(HKEY_CURRENT_USER,key,0,KEY_READ|KEY_WRITE,&m_key))
	{
		m_key=NULL;
		//if failed to open,let's create the key
		if(ERROR_SUCCESS!=RegCreateKeyEx(HKEY_CURRENT_USER,key,0,NULL,REG_OPTION_NON_VOLATILE,KEY_WRITE|KEY_READ,0,&m_key,NULL))
			m_key=NULL;
	}


}

CConfig::~CConfig()
{
	if(m_key)
		RegCloseKey(m_key);
}

BOOL CConfig::SetInteger(const CString &name, int integer)
{
	BOOL bRet=FALSE;
	if(!m_key)
		goto RET;

	if(ERROR_SUCCESS!=RegSetValueEx(m_key,name,0,REG_DWORD,(BYTE*)&integer,sizeof(DWORD)))
		goto RET;

	bRet=TRUE;
RET:
	return bRet;
}

int CConfig::GetInteger(const CString &name, int def)
{
	int iRet=def;
	DWORD len=sizeof(DWORD);
	if(!m_key)
		goto RET;

	if(ERROR_SUCCESS!=RegQueryValueEx(m_key,name,0,NULL,(BYTE*)&iRet,&len))
		goto RET;
RET:
	return iRet;
}

BOOL CConfig::SetBoolean(const CString &name, BOOL b)
{
	BOOL bRet=FALSE;
	if(!m_key)
		goto RET;
	
	if(ERROR_SUCCESS!=RegSetValueEx(m_key,name,0,REG_DWORD,(BYTE*)&b,sizeof(DWORD)))
		goto RET;

	bRet=TRUE;
RET:
	return bRet;
}

BOOL CConfig::GetBoolean(const CString &name, BOOL def)
{
	BOOL bRet=def;
	DWORD len=sizeof(DWORD);
	if(!m_key)
		goto RET;

	if(ERROR_SUCCESS!=RegQueryValueEx(m_key,name,0,NULL,(BYTE*)&bRet,&len))
		goto RET;
RET:
	return bRet;
}

BOOL CConfig::SetString(const CString &name, const CString &str)
{
	BOOL bRet=FALSE;
	if(!m_key)
		goto RET;

	if(ERROR_SUCCESS!=RegSetValueEx(m_key,name,0,REG_SZ,(BYTE*)(LPCTSTR)str,str.GetLength()+1))
		goto RET;

	bRet=TRUE;
RET:
	return bRet;
}

CString CConfig::GetString(const CString &name, const CString &def)
{
	CString ret=def;
	char str[128]="";
	DWORD len=128;
	if(!m_key)
		goto RET;	

	if(ERROR_SUCCESS!=RegQueryValueEx(m_key,name,0,NULL,(BYTE*)str,&len))
	
		goto RET;
	ret=str;
	
RET:
	
	return ret;
}
//
BOOL CConfig::SetDefaultKey(const CString &key)
{
	BOOL bRet=FALSE;
	CString k;
	HKEY hk=NULL;
	if(!m_key)
		goto RET;
	k.Format("Software\\%s\\%s\\%s",COMPANY,PRODUCT,key);
	//try to open the current key
	if(ERROR_SUCCESS!=RegOpenKeyEx(HKEY_CURRENT_USER,k,0,KEY_READ|KEY_WRITE,&hk))
	{
		if(ERROR_SUCCESS!=RegCreateKeyEx(HKEY_CURRENT_USER,k,0,NULL,REG_OPTION_NON_VOLATILE,KEY_WRITE|KEY_READ,0,&hk,NULL))
			goto RET;
	}
	//success ,so close previous key
	RegCloseKey(m_key);
	m_key=hk;
	DefaultKey=key;
	bRet=TRUE;
RET:
	return bRet;
}

CString CConfig::GetDefaultKey()
{
	return DefaultKey;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -