Skip to content

Commit

Permalink
sapi: Implement ISpeechObjectTokens::Invoke.
Browse files Browse the repository at this point in the history
  • Loading branch information
shaunren authored and julliard committed Feb 13, 2024
1 parent 6f2a0c4 commit 6e8d450
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 3 deletions.
1 change: 1 addition & 0 deletions dlls/sapi/dispatch.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
1 change: 1 addition & 0 deletions dlls/sapi/sapi_private.h
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ HRESULT token_create( IUnknown *outer, REFIID iid, void **obj );
enum type_id
{
ISpeechObjectToken_tid,
ISpeechObjectTokens_tid,
last_tid
};

Expand Down
11 changes: 10 additions & 1 deletion dlls/sapi/tests/token.c
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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 );

Expand Down
14 changes: 12 additions & 2 deletions dlls/sapi/token.c
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down

0 comments on commit 6e8d450

Please sign in to comment.