Note
Please see Azure Cognitive Services for Speech documentation for the latest supported speech solutions.
Microsoft Speech Platform
ISpRegDataKey::SetKey
ISpRegDataKey::SetKey sets the hive registry key (HKEY) to use for subsequent token operations.
<pre IsFakePre="true" xmlns="http://www.w3.org/1999/xhtml"> <strong>HRESULT SetKey(</strong> <strong> HKEY</strong> <em>hkey</em>, <strong> BOOL</strong> <em>fReadOnly</em> <strong>);</strong> </pre>
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.
`
// 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"); }