ISpRegDataKey::SetKey

Microsoft Speech SDK

The Microsoft.com Speech website Microsoft Speech SDK SAPI 5.1

ISpRegDataKey::SetKey

ISpRegDataKey::SetKey sets the hive registry key (HKEY) to use for subsequent token operations.


HRESULT SetKey(
   HKEY   hkey, 
   BOOL   fReadOnly
);

Parameters

hkey
[in] The registry key to use.
fReadOnly
[in] Boolean flag setting the keys to read/write status. If TRUE, the registry is read only; FALSE sets it to read and write.

Return values

Value Description
S_OK Function completed successfully.
SPERR_ALREADY_INITIALIZED Interface is already initialized.

Example

The following code snippet adds, tests and deletes a superfluous key from the speech registry.

HRESULT hr;

CComPtr<ISpRegDataKey> cpSpRegDataKey;
CComPtr<ISpDataKey> cpSpCreatedDataKey;
CComPtr<ISpDataKey> cpSpDataKey;
CComPtr<ISpObjectTokenCategory> cpSpCategory;
HKEY hkey;

//create a bogus key under Voices
hr = g_Unicode.RegCreateKeyEx(HKEY_LOCAL_MACHINE, L"SOFTWARE\\Microsoft\\Speech\\Voices\\bogus", 0, NULL, 0, KEY_READ | KEY_WRITE, NULL, &hkey, NULL);
//Check error

hr = cpSpRegDataKey.CoCreateInstance(CLSID_SpDataKey);
//Check error

hr = cpSpRegDataKey->SetKey(hkey, false);
//Check error

hkey = NULL;
//Do not need to do RegCloseKey on this hkey, the handle gets released inside SetKey().

hr = cpSpRegDataKey->QueryInterface(&cpSpCreatedDataKey);
//Check error
	
//delete this bogus key
hr = SpGetCategoryFromId(SPCAT_VOICES, &cpSpCategory);
//Check error

hr = cpSpCategory->GetDataKey(SPDKL_LocalMachine, &cpSpDataKey);
//Check error

hr = cpSpDataKey->DeleteKey(L"bogus");
//Check error