[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