From fe3053f849a2fe08c5f0dfc2e7ac8f768a7b0924 Mon Sep 17 00:00:00 2001 From: "Reece H. Dunn" Date: Sun, 24 Jan 2016 15:24:38 +0000 Subject: [PATCH] SAPI - Implement Get/SetObjectToken. --- src/windows/com/ttsengine.cpp | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/windows/com/ttsengine.cpp b/src/windows/com/ttsengine.cpp index 13d5a080..9682f72f 100644 --- a/src/windows/com/ttsengine.cpp +++ b/src/windows/com/ttsengine.cpp @@ -59,10 +59,12 @@ struct TtsEngine WAVEFORMATEX **format); private: ULONG refCount; + ISpObjectToken *objectToken; }; TtsEngine::TtsEngine() : refCount(1) + , objectToken(NULL) { InterlockedIncrement(&ObjectCount); } @@ -70,6 +72,8 @@ TtsEngine::TtsEngine() TtsEngine::~TtsEngine() { InterlockedDecrement(&ObjectCount); + if (objectToken) + objectToken->Release(); } ULONG __stdcall TtsEngine::AddRef() @@ -101,12 +105,23 @@ HRESULT __stdcall TtsEngine::QueryInterface(REFIID iid, void **object) HRESULT __stdcall TtsEngine::GetObjectToken(ISpObjectToken **token) { - return E_NOTIMPL; + if (!token) + return E_POINTER; + + *token = objectToken; + if (objectToken) + objectToken->AddRef(); + return S_OK; } HRESULT __stdcall TtsEngine::SetObjectToken(ISpObjectToken *token) { - return E_NOTIMPL; + if (objectToken) + objectToken->Release(); + objectToken = token; + if (objectToken) + objectToken->AddRef(); + return S_OK; } HRESULT __stdcall