
最終更新日: 1998年 08月 13日 木曜日
 レジストリに登録されている文字列を修得するサンプルコードを作成しました。レジストリキーの 
参照には以下の変数を指定し、szPath,wszPath 
で格納バッファを指定します。修得に成功した場合TRUE、失敗した場合 
FALSEを帰します。 
 アプリケーションを作成したときなどにレジストリーを利用して登録を行ったり、レジストリを参照して 
現在の環境を知るなどいろいろなことが可能になります。 
| HKEY | 
  | 
    |||||
| subKey1 | HKEYで指定したキーからの相対位置(フォルダー)を指定 | |||||
| subKey2 | HKEY・subKey1で指定した 位置にあるキーの名前を指定します。 | 

#ifndef _MAX_PATH
  #include <stdlib.h>
  #endif
  BOOL GetRegKeyValue(HKEY hKey,LPSTR subKey1,LPSTR subKey2,CHAR szPath[_MAX_PATH]);
  BOOL GetRegKeyValue(LPSTR subKey1,LPSTR subKey2,CHAR szPath[_MAX_PATH]);
  BOOL GetRegKeyValue(HKEY hKey,LPSTR subKey1,LPSTR subKey2,WCHAR wszPath[_MAX_PATH]);
  BOOL GetRegKeyValue(LPSTR subKey1,LPSTR subKey2,WCHAR wszPath[_MAX_PATH]);
  

  BOOL GetRegKeyValue(LPSTR subKey1,LPSTR subKey2,CHAR szPath[_MAX_PATH]){
      return(GetRegKeyValue(HKEY_LOCAL_MACHINE,subKey1,subKey2,szPath));
  }
  
  
  BOOL GetRegKeyValue(LPSTR subKey1,LPSTR subKey2,WCHAR wszPath[_MAX_PATH]){
      return(GetRegKeyValue(HKEY_LOCAL_MACHINE,subKey1,subKey2,wszPath));
  }
  BOOL GetRegKeyValue(HKEY hKey,LPSTR subKey1,LPSTR subKey2,WCHAR wszPath[_MAX_PATH]){
      CHAR szPath[_MAX_PATH];
      BOOL bReg;
      bReg = GetRegKeyValue(hKey,subKey1,subKey2,szPath);
      mbstowcs(wszPath, szPath,_MAX_PATH);
      return bReg;
  }
  
  BOOL GetRegKeyValue(HKEY hKey,LPSTR subKey1,LPSTR subKey2,CHAR szPath[_MAX_PATH])
  {
      HKEY hk;
      BOOL bRet = FALSE;
      DWORD cbPath = _MAX_PATH;
      szPath[0]=0;
      if(RegOpenKeyEx(HKEY_LOCAL_MACHINE,subKey1,0,KEY_READ,&hk)) return 
  FALSE;
      
  if(RegQueryValueEx(hk,subKey2,NULL,NULL,(LPBYTE)szPath,&cbPath)==ERROR_SUCCESS)bRet=TRUE;
      else bRet=FALSE;
      RegCloseKey(hk);
      return bRet;
  }
  

Copyright (C) Kitaro 1998