自動回転が現在有効になっているか、C++ アプリケーションから無効になっているかを判断しようとしています。次のコードは、同じキーの regedit が 0 を示していても、常に 1 の値を返します。アプリケーションが標準ユーザーまたは管理者として実行されている場合は、同じ値を返します。
HKEY hkMain;
LONG lRes = RegOpenKeyEx(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\AutoRotation",0,KEY_QUERY_VALUE,&hkMain);
if (lRes==ERROR_SUCCESS) {
DWORD dwRegValue=0,dwSize=0,dwType=0;
dwSize = sizeof(DWORD);
lRes = RegQueryValueEx(hkMain,TEXT("Enable"),NULL,&dwType,(LPBYTE)&dwRegValue,&dwSize);
if (lRes==ERROR_SUCCESS) {
// dwRegValue value is always 1
}
RegCloseKey(hkMain);
}