バイナリデータの取得について


GOGO  2003-07-20 02:17:23  No: 51808  IP: [192.*.*.*]

はじめて投稿させていただきました。よろしくお願いします。

現在、レジストリの情報をtxtファイルに取得するプログラムをVC++で
作成してます。
しかし、バイナリデータ(例:『12 13 14 15 16』)を取得することができません。
以下にプログラムの一部分と出力結果を抜粋します。(strTXTに格納した後でファイルに
書き出す方法を使っています。)
どなたか良きアドバイスをお願いします。

【ソース】
HKEY     OpenSubKey;
char     EntryName[MAX_PATH_2];    // サブキー名を格納するバッファ
DWORD  dwSize = MAX_PATH_2;      // バッファーサイズ
DWORD    dwType;                   // データ型・バッファー
CString  strMsg;                   // データ値
void  *BIData;
long     lRes;

case REG_BINARY: // バイナリ
  lRes = RegQueryValueEx( OpenSubKey, EntryName, NULL, &dwType, (LPBYTE)&BIData, &dwSize  );
  if ( lRes== ERROR_SUCCESS ){
    strMsg.Format("%u", (LPBYTE)&BIData);
                  CString strTXT = strMsg;
    break;
  }

【出力結果】
1243016

編集 削除
fuku  2003-07-20 12:21:52  No: 51809  IP: [192.*.*.*]

レジストリは使った事無いんで間違ってるかもしれませんが、
MSDNを読む限り、RegQueryValueEx関数はポインタの取得関数ではなく、
データの取得関数のように思います。
なので、BIData変数はポインタ型ではなくBYTE型の配列であるべきでは?
それならキャストしなくてもいいですし。

>strMsg.Format("%u", (LPBYTE)&BIData);
これだと取得される値はBIDataのアドレスになりませんか?

編集 削除