Я подмажусь с вашего позволения
![Smile](images/smilies/new/smile.gif)
. У меня этот код работает только под Win98-WinMe в win2000 уже не работает, хотя данные в реестр заносит, и они там правильные
Код:
![Выделить весь код](images/misc/selectcode.png)
DWORD dwDisposition,dwType=REG_DWORD;
LPBYTE lpData;
DWORD *cbData=NULL;
DWORD *xExtensionSet=0xFFFFF;
HKEY hNewKey;
LPDWORD lpdwData;
lpdwData=(DWORD*)GlobalAlloc(GPTR,sizeof(DWORD));
*lpdwData=xExtensionSet;
lpData=(BYTE*)lpdwData;
try{
::RegCreateKeyEx(HKEY_CURRENT_USER,
"Software\\Flash-Tmp-Eraser",
0,
"",
REG_OPTION_NON_VOLATILE,
KEY_WRITE,
NULL,
&hNewKey,
&dwDisposition);
if(dwDisposition==REG_CREATED_NEW_KEY){
::RegSetValueEx(hNewKey, *// handle of key to set value for
"Extension", *// address of value to set
0, *// reserved
REG_DWORD, *// flag for value type
lpData, *// address of value data
sizeof(DWORD) *// size of value data
);
}
cbData=sizeof(DWORD);
if (dwDisposition==REG_OPENED_EXISTING_KEY){
::RegQueryValueEx(hNewKey,
"Extension",
0,
&dwType,
lpData,
&cbData);
}
::RegCloseKey(hNewKey);
}
catch(CException *e)
{
MessageBox("Error");
e->Delete();
}
.........
GlobalFree(lpData);
возвращает всегда то число, которое было, т.е. никогда его не меняет