sapi: Implement ISpeechObjectTokens::Invoke.

This commit is contained in:
Shaun Ren 2024-02-11 00:29:46 -05:00 committed by Alexandre Julliard
parent 6f2a0c412f
commit 6e8d450804
4 changed files with 24 additions and 3 deletions

View file

@ -35,6 +35,7 @@ static ITypeInfo *typeinfos[last_tid];
static REFIID tid_id[] =
{
&IID_ISpeechObjectToken,
&IID_ISpeechObjectTokens,
};
HRESULT get_typeinfo(enum type_id tid, ITypeInfo **ret)

View file

@ -56,6 +56,7 @@ HRESULT token_create( IUnknown *outer, REFIID iid, void **obj );
enum type_id
{
ISpeechObjectToken_tid,
ISpeechObjectTokens_tid,
last_tid
};

View file

@ -256,7 +256,8 @@ static void test_token_enum(void)
ISpObjectToken *out_tokens[5];
WCHAR token_id[MAX_PATH];
ULONG count;
VARIANT vars[3];
VARIANT vars[3], ret;
DISPPARAMS params;
int i;
hr = CoCreateInstance( &CLSID_SpObjectTokenEnum, NULL, CLSCTX_INPROC_SERVER,
@ -402,6 +403,14 @@ static void test_token_enum(void)
IEnumVARIANT_Release( enumvar );
memset( &params, 0, sizeof(params) );
VariantInit( &ret );
hr = ISpeechObjectTokens_Invoke( speech_tokens, DISPID_SOTsCount, &IID_NULL, 0,
DISPATCH_PROPERTYGET, &params, &ret, NULL, NULL );
ok( hr == S_OK, "got %08lx\n", hr );
ok( V_VT( &ret ) == VT_I4, "got %#x\n", V_VT( &ret ) );
ok( V_I4( &ret ) == 3, "got %ld\n", V_I4( &ret ) );
ISpeechObjectTokens_Release( speech_tokens );
ISpObjectTokenEnumBuilder_Release( token_enum );

View file

@ -1339,8 +1339,18 @@ static HRESULT WINAPI speech_tokens_Invoke( ISpeechObjectTokens *iface,
EXCEPINFO *excepinfo,
UINT *argerr )
{
FIXME( "stub\n" );
return E_NOTIMPL;
ITypeInfo *ti;
HRESULT hr;
TRACE( "(%p)->(%ld %s %#lx %#x %p %p %p %p)\n", iface, dispid,
debugstr_guid( iid ), lcid, flags, params, result, excepinfo, argerr );
if (FAILED(hr = get_typeinfo( ISpeechObjectTokens_tid, &ti )))
return hr;
hr = ITypeInfo_Invoke( ti, iface, dispid, flags, params, result, excepinfo, argerr );
ITypeInfo_Release( ti );
return hr;
}
static HRESULT WINAPI speech_tokens_get_Count( ISpeechObjectTokens *iface,