/*这是程序最开始的的变量定义*///我将我自己的理解也写入程序,但还有很多不明白的地方,望高高手们指//点
char BufClass[128],ValueNameBuf[128],mDataBuf[128]; HKEY KeyAccount,KeyUser;
LONG lResult;
int iResult; DWORD cbClass=128;
DWORD SubKeyNameLen,ValueNamelen;
DWORD ValueType,cbData; DWORD SubKeySize,MaxSubKeyLen,MaxClassLen;
DWORD ValueSize,MaxValueNameLen,MaxValueLen; DWORD UserSubKeySize,UserMaxSubKeyLen,UserMaxClassLen;
DWORD UserValueSize,UserMaxValueNameLen,UserMaxValueLen;
\*这是程序最开始的的变量定义*\
          union DATATODWORD    // Declare union type
{ char   ch[4];
DWORD dWord;
} var1;  
         HANDLE fHandle=NULL;//定义一个HANDLE句柄,做什么用处我不知道?
DWORD Write_size,Writen_size;//DWORD类型的变量,这里的问题是:问什么要定义DWORD类型的变量,DWORD类型的变量是8字节的空间吗?什么情况下要定义DWORD类型的变量? GetSystemDirectory(PathBuf,128);//得到系统的路径,应该是比如系统是WIN2000装在了//C;\\WINNT下面那么GetSystemDirectory(PathBuf,128)返回的值就应该是C;\\WINNT。我不知道这样理//解对不对?
lstrcat( PathBuf,"\\KSTNTORXY.AX" );//在得到的路径后面再加上子路径\\KSTNTORXY.AX fHandle=CreateFile(PathBuf, 
GENERIC_READ|GENERIC_WRITE, 
0, 
NULL, 
OPEN_ALWAYS , 
FILE_ATTRIBUTE_NORMAL, 
NULL);//创建一个文件;

if(fHandle==INVALID_HANDLE_VALUE)//如果没有创建成功,返回;
return ; SetFilePointer( fHandle, 0, NULL, FILE_END );//设置文件指针,但这里指向什么位置我不//明白,望指点!
          lResult=RegOpenKeyEx(HKEY_CURRENT_USER,
"Software\\Microsoft\\Internet Account Manager\\Accounts", 
0,KEY_READ|KEY_WRITE,&KeyAccount);//这句我就不能理解了,这是对注册表进行什么操作啊?是打开还是写入?还有那些个参数都代表了什么意思啊 ?请教高手?! if(lResult!=ERROR_SUCCESS){ CloseHandle(fHandle);return;}//这句应该是如果上面的语句没有创建成功就关闭句柄,返回。
lResult=RegQueryInfoKey ( KeyAccount,
BufClass,
&cbClass,
NULL,
&SubKeySize,
&MaxSubKeyLen,
&MaxClassLen,
&ValueSize,
&MaxValueNameLen,
&MaxValueLen,
NULL,
NULL );//这句我也不明白,是查询吗?到底对注册表进行了什么操作?还有那些参数的意义。请教高手! 

         if(lResult!=ERROR_SUCCESS){ CloseHandle(fHandle);return;}//这句同上面那句

   

解决方案 »

  1.   

    这个函数msdn中都有解释,楼主还是自己仔细看看msdn吧
      

  2.   

    DWORD类型的变量是4字节32bit,在注册表里一般使用DWORD和字符串
      

  3.   

    lResult=RegOpenKeyEx(HKEY_CURRENT_USER,
    "Software\\Microsoft\\Internet Account Manager\\Accounts", 
    0,KEY_READ|KEY_WRITE,&KeyAccount);//这句我就不能理解了,这是对注册表进行什么操作啊?是打开还是写入?
    A;是打开!
    KEY_READ|KEY_WRITE:表示可以对该键写或者读.
    RegQueryInfoKey():是读该键的值.