IStream *SHOpenRegStream( HKEY hKey, LPCTSTR SubKeyName, LPCTSTR ValueName, DWORD Mode);
引数の意味は以下の通り。
hKey | レジストリキーのハンドル。 |
SubKeyName | サブキーの名前。 |
ValueName | レジストリ値の名前。 |
Mode | IStreamを取得する際のアクセスモード。後述の表を参照。 |
Modeに指定可能な値は以下のいずれかのフラグである。
STGM_READ | 読み込みアクセスでオープンする。 |
STGM_WRITE | 書き込みアクセスでオープンする。 |
STGM_READWRITE | 読み書きアクセスでオープンする。 |
戻り値は、IStreamへのポインタである。関数の実行に失敗した場合、NULLが返される。
void TestRegStream(void) { HKEY hKey; HRESULT hr; IStream *pStream = NULL; char *StreamData = "hello world"; // 初期化 OleInitialize(NULL); // レジストリキーのオープン RegOpenKeyEx( HKEY_CURRENT_USER, "Software\\masapico", 0, KEY_ALL_ACCESS, &hKey); pStream = SHOpenRegStream( hKey, "test", "stream", STGM_READWRITE); if(pStream == NULL) printf("err: %d\n", GetLastError()); // データの書き込み hr = pStream->Write(StreamData, lstrlen(StreamData) + 1, NULL); printf("%08x\n", hr); // 終了 if(pStream != NULL) pStream->Release(); RegCloseKey(hKey); OleUninitialize(); }