ISpVoice::IsUISupported (SAPI 5.4)

Speech API 5.4
Microsoft Speech API 5.4


ISpVoice::IsUISupported checks if the underlying text-to-speech engine's object token supports the requested UI.

[local] HRESULT IsUISupported(
    const WCHAR   *pszTypeOfUI,
    void          *pvExtraData,
    ULONG          cbExtraData,
    BOOL          *pfSupported


[in] Address of the null-terminated string containing the UI type that is being queried.
[in] Pointer to additional information needed for the object. The TTS Engine implementer dictates the format and usage of the data provided.
[in] Size, in bytes, of the ExtraData. The TTS Engine implementer dictates the format and usage of the data provided.
[out] Flag specifying whether the specified UI is supported. TRUE indicates the UI is supported, and FALSE indicates the UI is not supported. If this value is TRUE, but the return code is S_FALSE, the UI type (pszTypeOfUI) is supported, but not with the current parameters or run-time environment. Check with the engine implementer to verify run-time requirements.

Return values

S_OKFunction completed successfully.
S_FALSEThe UI is supported but not with the current run-time environment or parameters.
E_INVALIDARGOne or more parameters are invalid.
FAILED(hr)Appropriate error message.


See the TTS Engine White Paper for further information on how a TTS Engine should implement UI.


The following code snippet illustrates the use of ISpVoice::IsUISupported using SPDUI_EngineProperties.

// Declare local identifiers:
HRESULT	             hr = S_OK;
CComPtr<ISpVoice>    cpVoice;
BOOL                 fSupported;

// Display properties UI for the current TTS engine.
hr = cpVoice->IsUISupported(SPDUI_EngineProperties, NULL, NULL, &fSupported;);

if (SUCCEEDED (hr))
   // if fSupported == TRUE, then current TTS engine supports properties UI.