Problem polega na tym, że otwieram (jak nie istnieje to go tworzę) sobie klucz aby z niego odczytywać wartości. I nawet gdy dana wartość istnieje w rejestrze to funkcja zwraca błąd o kodzie 87. Po rozszyfrowaniu go przy pomocy FormatMessage otrzymuję "Paramter jest nieprawidłowy"
Oto ten kod:
case WM_CREATE:
if (RegOpenKeyEx(HKEY_CURRENT_USER,regkey,0,KEY_ALL_ACCESS,&result)!=ERROR_SUCCESS)
RegCreateKey(HKEY_CURRENT_USER,regkey,&result);
ZeroMemory(valvedir,MAX_PATH);
opres = RegQueryValueEx(result,"PakPath",0,NULL,(unsigned char *)&valvedir,NULL);//tu pobieram
if (opres!=ERROR_SUCCESS)
{
LPVOID lpMsgBuf;
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
NULL,opres,MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
(LPTSTR) &lpMsgBuf,0,NULL );
// Display the string.
MessageBox( NULL, (char *)lpMsgBuf, "GetLastError", MB_OK|MB_ICONINFORMATION );
// Free the buffer.
LocalFree( lpMsgBuf );
Co robię nie tak jak trzeba