「HKEY_LOCAL_MACHINE\SOFTWARE\blah\SetupPath」で始まるレジストリ キーを検出し、可能であれば CString を読み取りたいと考えています。
RegOpenKeyEx 関数に関する MSDN が表示されます
LONG WINAPI RegOpenKeyEx(
_In_ HKEY hKey,
_In_opt_ LPCTSTR lpSubKey,
_Reserved_ DWORD ulOptions,
_In_ REGSAM samDesired,
_Out_ PHKEY phkResult
);
そのため、いくつかの設定を行う必要があるようです。
HKEY hKey = HKEY_LOCAL_MACHINE;
LPCTSTR lpSubKey = "SOFTWARE\blah\SetupPath";
そして、キーが存在するかどうかを確認するには、
LONG res = RegOpenKeyEx(hKey, lpSubKey, 0, 0, 0);
if(res == ERROR_SUCCESS)
// The key exists
キーが存在する場合は、そこにあるものを CString に読み取りたいと思います。RegQueryValueEx も表示されます
LONG WINAPI RegQueryValueEx(
_In_ HKEY hKey,
_In_opt_ LPCTSTR lpValueName,
_Reserved_ LPDWORD lpReserved,
_Out_opt_ LPDWORD lpType,
_Out_opt_ LPBYTE lpData,
_Inout_opt_ LPDWORD lpcbData
);
また、この関数を呼び出す前にセットアップが必要なようです。
HKEY hKey = HKEY_LOCAL_MACHINE;
lpSubKey = "SOFTWARE\blah\SetupPath";
LPDWORD type = null;
LPDWORD data = null;
今、私はそれを呼び出すことができます
LONG res2 = RegValueQueryEX(hKey, lpSubKey, 0, type, data,0);
次に、型を確認してから文字列にキャストできると思いますか?
CString regVal;
if(res2 == ERROR_SUCCESS)
if(type == REG_SZ)
if(data != null)
regVal = new CString((LPSTR)data);
これはすべて正しいですか?何が欠けているか、または何をする必要がありますか?