您的位置:首页 > 其它

WINCE 读写注册表操作

2008-11-27 18:18 477 查看
#include <Winreg.h>
HKEY g_hKey = NULL;
//xxx.h 文件
void OpenFile(WCHAR *pFilePath,BOOL nFlag = 0);
long ReadFile(WCHAR *pRegKey,BYTE *pReadBuf,DWORD nReadLen,DWORD dwType);
long WriteFile(WCHAR *pRegKey,BYTE *pWriteBuf,DWORD nWriteLen,DWORD dwType);
void CloseFile(BOOL nCloseFlag);

//xxx.cpp文件
void OpenFile(WCHAR *pFilePath,BOOL nOpenFlag)
{
long ret=::RegOpenKeyEx(HKEY_CURRENT_USER,pFilePath, 0, KEY_ALL_ACCESS, &g_hKEY);
if(ERROR_SUCCESS != ret)
{
DWORD dwPos = 0;
long ret1=RegCreateKeyEx(HKEY_CURRENT_USER,pFilePath,0,0,REG_OPTION_NON_VOLATILE,0,NULL, &g_hKEY,&dwPos);
if(ERROR_SUCCESS != ret1)
{
g_hKEY = NULL;
RETAILMSG(true,(L"RegCreateKeyEx failed. /r/n"));
}
else
{
RETAILMSG(true,(L"OK .g_hKEY = %x/r/n",g_hKEY));
}
}
}

long ReadFile(WCHAR *pRegKey,BYTE *pReadBuf,DWORD nReadLen,DWORD dwType)
{
long ret = 0;
if(NULL == g_hKEY)
{
ret = -1;
RETAILMSG(true,(L" failed NULL == g_hKEY./r/n"));
return ret;
}
ret=RegQueryValueEx(g_hKEY,pRegKey,NULL,&dwType,pReadBuf,&nReadLen);
if(ERROR_SUCCESS != ret)
{
ret = -1;
RETAILMSG(true,(L"RegQueryValueEx failed./r/n"));
}
return ret;
}

long WriteFile(WCHAR *pRegKey,BYTE *pWriteBuf,DWORD nWriteLen,DWORD dwType)
{
long ret = 0;
if(NULL == g_hKEY)
{
ret = -1;
RETAILMSG(true,(L"g_hKEY == NULL./r/n"));
return ret;
}
ret=::RegSetValueEx(g_hKEY,pRegKey,0,dwType,(LPBYTE) pWriteBuf,nWriteLen);
if(ERROR_SUCCESS != ret)
{
ret = -1;
RETAILMSG(true,(L"RegSetValueEx failed./r/n"));
}
return ret;
}

void CloseFile(BOOL nCloseFlag)
{
if(g_hKEY)
{
long ret=::RegCloseKey(g_hKEY);
g_hKEY = NULL;
RETAILMSG(true,(L"RegCloseKey OK./r/n"));
}
else
{
RETAILMSG(true,(L"RegCloseKey failed/r/n"));
}
}

#define REGMAXLEN 200

OpenFile(REGPATH,0);
BYTE buf[REGMAXLEN];

memset(buf,0,REGMAXLEN);
ReadFile(TEXT("XXX"),buf,REGMAXLEN,REG_DWORD);
memcpy(&commInfo->XXX,buf,sizeof(commInfo->XXX));
CloseFile(0);

OpenFile(REGPATH,0);
BYTE buf[REGMAXLEN];

memset(buf,0,REGMAXLEN);
memcpy(buf,&commInfo->XXX,sizeof(commInfo->XXX));
WriteFile(TEXT("XXX"),buf,sizeof(commInfo->XXX),REG_DWORD);
CloseFile(0);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: