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