📄 config.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 + -