[PATCH 3/5] windows.media.speech: Explicitly check for available activation factory.
Rémi Bernon
rbernon at codeweavers.com
Sun Mar 6 03:52:04 CST 2022
Hi Bernhard,
On 3/5/22 20:54, Bernhard Kölbl wrote:
> Signed-off-by: Bernhard Kölbl <besentv at gmail.com>
> ---
> dlls/windows.media.speech/main.c | 13 +++++++------
> dlls/windows.media.speech/private.h | 2 ++
> 2 files changed, 9 insertions(+), 6 deletions(-)
>
> diff --git a/dlls/windows.media.speech/main.c b/dlls/windows.media.speech/main.c
> index d11a0e6c6e1..db0840f9fdd 100644
> --- a/dlls/windows.media.speech/main.c
> +++ b/dlls/windows.media.speech/main.c
> @@ -32,13 +32,14 @@ HRESULT WINAPI DllGetActivationFactory(HSTRING classid, IActivationFactory **fac
> {
> TRACE("classid %s, factory %p.\n", debugstr_hstring(classid), factory);
>
> - if (wcscmp(WindowsGetStringRawBuffer(classid, NULL), L"Windows.Media.SpeechSynthesis.SpeechSynthesizer"))
> + if (IsEqualClassID(WindowsGetStringRawBuffer(classid, NULL),
> + L"Windows.Media.SpeechSynthesis.SpeechSynthesizer"))
> {
> - ERR("Unknown classid %s.\n", debugstr_hstring(classid));
> - return CLASS_E_CLASSNOTAVAILABLE;
> + speech_synthesizer_get_activation_factory(factory);
> + IUnknown_AddRef(*factory);
> + return S_OK;
> }
>
> - speech_synthesizer_get_activation_factory(factory);
> - IUnknown_AddRef(*factory);
> - return S_OK;
> + ERR("Unknown classid %s.\n", debugstr_hstring(classid));
> + return CLASS_E_CLASSNOTAVAILABLE;
> }
> diff --git a/dlls/windows.media.speech/private.h b/dlls/windows.media.speech/private.h
> index df464c369bf..26a832b5db7 100644
> --- a/dlls/windows.media.speech/private.h
> +++ b/dlls/windows.media.speech/private.h
> @@ -40,6 +40,8 @@
>
> #include "wine/debug.h"
>
> +#define IsEqualClassID(classid1, classid2) (!wcscmp(classid1, classid2))
> +
> static inline const char *debugstr_hstring(HSTRING hstr)
> {
> const WCHAR *str;
I'm not sure this helper is really useful, it only adds an indirection imho.
--
Rémi Bernon <rbernon at codeweavers.com>
More information about the wine-devel
mailing list