レジストリから値の取得

まず、レジストリは3層構造みたいになっている。
ちょうどドライブ、ディレクトリ、ファイルみたいな感じだ。
キー HKEY_LOCAL_MACHINE
サブ・キー "SOFTWARE\\Microsoft\\DirectX"
エントリ名 "Version"

    TCHAR* entry = "SOFTWARE\\Microsoft\\DirectX";
    HKEY hKey = NULL;
    LONG rc = RegOpenKeyEx(HKEY_LOCAL_MACHINE, entry, 0, KEY_ALL_ACCESS, &hKey);
    if (rc != ERROR_SUCCESS) {
        printf("RegOpenKeyEx() rc=%d\n", rc); // winerror.h
        return -1;
    }

    TCHAR buf[256];
    ULONG len = 256;
    rc = RegQueryValueEx(hKey, "Version", NULL, NULL, (LPBYTE)buf, &len);
    RegCloseKey(hKey);
    if (rc != ERROR_SUCCESS) {
        printf("RegOpenKeyEx() rc=%d\n", rc); // winerror.h
        return -1;
    }
    printf("value=[%s]\n", buf);

そういえばレジストリのAPIを使うのは初めてだ。
今までずっと避けてきたからなぁ〜。