| WAVEFORMATEX **format); | WAVEFORMATEX **format); | ||||
| private: | private: | ||||
| ULONG refCount; | ULONG refCount; | ||||
| ISpObjectToken *objectToken; | |||||
| }; | }; | ||||
| TtsEngine::TtsEngine() | TtsEngine::TtsEngine() | ||||
| : refCount(1) | : refCount(1) | ||||
| , objectToken(NULL) | |||||
| { | { | ||||
| InterlockedIncrement(&ObjectCount); | InterlockedIncrement(&ObjectCount); | ||||
| } | } | ||||
| TtsEngine::~TtsEngine() | TtsEngine::~TtsEngine() | ||||
| { | { | ||||
| InterlockedDecrement(&ObjectCount); | InterlockedDecrement(&ObjectCount); | ||||
| if (objectToken) | |||||
| objectToken->Release(); | |||||
| } | } | ||||
| ULONG __stdcall TtsEngine::AddRef() | ULONG __stdcall TtsEngine::AddRef() | ||||
| HRESULT __stdcall TtsEngine::GetObjectToken(ISpObjectToken **token) | 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) | HRESULT __stdcall TtsEngine::SetObjectToken(ISpObjectToken *token) | ||||
| { | { | ||||
| return E_NOTIMPL; | |||||
| if (objectToken) | |||||
| objectToken->Release(); | |||||
| objectToken = token; | |||||
| if (objectToken) | |||||
| objectToken->AddRef(); | |||||
| return S_OK; | |||||
| } | } | ||||
| HRESULT __stdcall | HRESULT __stdcall |