diff --git a/src/windows/com/ttsengine.cpp b/src/windows/com/ttsengine.cpp index a2e0a550..809557b9 100644 --- a/src/windows/com/ttsengine.cpp +++ b/src/windows/com/ttsengine.cpp @@ -19,6 +19,7 @@ #include #include +#include #include @@ -109,18 +110,24 @@ HRESULT __stdcall TtsEngine::GetObjectToken(ISpObjectToken **token) return E_POINTER; *token = objectToken; - if (objectToken) + if (objectToken) { objectToken->AddRef(); - return S_OK; + return S_OK; + } + return S_FALSE; } HRESULT __stdcall TtsEngine::SetObjectToken(ISpObjectToken *token) { + if (!token) + return E_INVALIDARG; + if (objectToken) - objectToken->Release(); + return SPERR_ALREADY_INITIALIZED; + objectToken = token; - if (objectToken) - objectToken->AddRef(); + objectToken->AddRef(); + return S_OK; }