Freigeben über


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"); }

`