ISpObjectToken::RemoveStorageFileName (SAPI 5.4)

Speech API 5.4
Microsoft Speech API 5.4


ISpObjectToken::RemoveStorageFileName removes the object token file name.

HRESULT RemoveStorageFileName(
   REFCLSID       clsidCaller,
   LPCWSTR       *pszKeyName,
   BOOL           fDeleteFile


[in] Globally unique identifier (GUID) of the calling object.
[in] Address of a null-terminated string containing the registry key name.
[in] Value specifying if the file should be deleted. TRUE deletes the file afterward; FALSE does not.

Return values

S_OKFunction completed successfully.
E_INVALIDARGpszKeyName is invalid or bad.
SPERR_UNINITIALIZEDEither the data key or token delegate interface is not initialized.
SPERR_TOKEN_DELETEDKey has been deleted.
FAILED(hr)Appropriate error message.


The following code snippet creates a test file, removes it and manually deletes it. It may also have been deleted automatically by setting fDeleteFile to TRUE.

// Declare local identifiers:
HRESULT                   hr = S_OK;
CComPtr<ISpObjectToken>   cpObjectToken;
GUID                      guid0;
WCHAR                     *cpFileName;
ULONG                     CSIDL_LOCAL_APPDATA = 28;
ULONG                     CSIDL_FLAG_CREATE = 32768;

// Get the default text-to-speech engine token.
hr = SpGetDefaultTokenFromCategoryId(SPCAT_VOICES, &cpObjectToken;);

if (SUCCEEDED (hr))
   hr = CoCreateGuid(&guid0;);

if (SUCCEEDED (hr))
   // Create file with default format and store it in folder that
   // contains application-specific data that does not roam.
   hr = cpObjectToken->GetStorageFileName(guid0, L"TestFile", NULL, CSIDL_FLAG_CREATE|CSIDL_LOCAL_APPDATA, &cpFileName;);

if (SUCCEEDED (hr))
   // Remove object token.
   hr = cpObjectToken->RemoveStorageFileName(guid0, L"TestFile", false);

if (SUCCEEDED(hr))
   // Do stuff here.