Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Microsoft Speech API 5.4
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 |
| S_OK |
| SPERR_ALREADY_INITIALIZED |
Example
The following code snippet adds, tests and deletes a superfluous key from the speech registry.
// Declare local identifiers:
HRESULT hr = S_OK;
CComPtr<ISpRegDataKey> cpSpRegDataKey;
CComPtr<ISpDataKey> cpSpCreatedDataKey;
CComPtr<ISpDataKey> cpSpDataKey;
CComPtr<ISpObjectTokenCategory> cpSpCategory;
HKEY hkey;
// Create a bogus key under Voices.
hr = RegCreateKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Speech\\Voices\\bogus", 0, NULL, 0, KEY_READ | KEY_WRITE, NULL, &hkey;, NULL);
if (SUCCEEDED(hr))
{
hr = cpSpRegDataKey.CoCreateInstance(CLSID_SpDataKey);
}
if (SUCCEEDED(hr))
{
hr = cpSpRegDataKey->SetKey(hkey, false);
}
if (SUCCEEDED(hr))
{
// Do not need to do RegCloseKey on this hkey;
// the handle gets released inside SetKey().
hkey = NULL;
hr = cpSpRegDataKey->QueryInterface(&cpSpCreatedDataKey;);
}
if (SUCCEEDED(hr))
{
// Delete this bogus key.
hr = SpGetCategoryFromId(SPCAT_VOICES, &cpSpCategory;);
}
if (SUCCEEDED(hr))
{
hr = cpSpCategory->GetDataKey(SPDKL_LocalMachine, &cpSpDataKey;);
}
if (SUCCEEDED(hr))
{
hr = cpSpDataKey->DeleteKey(L"bogus");
}