mirror of
git://source.winehq.org/git/wine.git
synced 2024-10-07 10:14:06 +00:00
sapi: Add a partial implementation of SpObjectTokenCategory::EnumTokens().
Signed-off-by: Huw Davies <huw@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
6a7259d8d1
commit
682c1b9532
|
@ -49,6 +49,40 @@ static void test_data_key(void)
|
||||||
ISpRegDataKey_Release( data_key );
|
ISpRegDataKey_Release( data_key );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void test_token_category(void)
|
||||||
|
{
|
||||||
|
ISpObjectTokenCategory *cat;
|
||||||
|
IEnumSpObjectTokens *enum_tokens;
|
||||||
|
HRESULT hr;
|
||||||
|
WCHAR bogus[] = {'b','o','g','u','s',0};
|
||||||
|
ULONG count;
|
||||||
|
|
||||||
|
hr = CoCreateInstance( &CLSID_SpObjectTokenCategory, NULL, CLSCTX_INPROC_SERVER,
|
||||||
|
&IID_ISpObjectTokenCategory, (void **)&cat );
|
||||||
|
ok( hr == S_OK, "got %08x\n", hr );
|
||||||
|
|
||||||
|
hr = ISpObjectTokenCategory_EnumTokens( cat, NULL, NULL, &enum_tokens );
|
||||||
|
ok( hr == SPERR_UNINITIALIZED, "got %08x\n", hr );
|
||||||
|
|
||||||
|
hr = ISpObjectTokenCategory_SetId( cat, bogus, FALSE );
|
||||||
|
ok( hr == SPERR_INVALID_REGISTRY_KEY, "got %08x\n", hr );
|
||||||
|
|
||||||
|
hr = ISpObjectTokenCategory_SetId( cat, SPCAT_VOICES, FALSE );
|
||||||
|
ok( hr == S_OK, "got %08x\n", hr );
|
||||||
|
|
||||||
|
hr = ISpObjectTokenCategory_SetId( cat, SPCAT_VOICES, FALSE );
|
||||||
|
ok( hr == SPERR_ALREADY_INITIALIZED, "got %08x\n", hr );
|
||||||
|
|
||||||
|
hr = ISpObjectTokenCategory_EnumTokens( cat, NULL, NULL, &enum_tokens );
|
||||||
|
ok( hr == S_OK, "got %08x\n", hr );
|
||||||
|
|
||||||
|
hr = IEnumSpObjectTokens_GetCount( enum_tokens, &count );
|
||||||
|
ok( hr == S_OK, "got %08x\n", hr );
|
||||||
|
|
||||||
|
IEnumSpObjectTokens_Release( enum_tokens );
|
||||||
|
ISpObjectTokenCategory_Release( cat );
|
||||||
|
}
|
||||||
|
|
||||||
static void test_token_enum(void)
|
static void test_token_enum(void)
|
||||||
{
|
{
|
||||||
ISpObjectTokenEnumBuilder *token_enum;
|
ISpObjectTokenEnumBuilder *token_enum;
|
||||||
|
@ -86,6 +120,7 @@ START_TEST(token)
|
||||||
{
|
{
|
||||||
CoInitialize( NULL );
|
CoInitialize( NULL );
|
||||||
test_data_key();
|
test_data_key();
|
||||||
|
test_token_category();
|
||||||
test_token_enum();
|
test_token_enum();
|
||||||
CoUninitialize();
|
CoUninitialize();
|
||||||
}
|
}
|
||||||
|
|
|
@ -455,8 +455,29 @@ static HRESULT WINAPI token_category_EnumTokens( ISpObjectTokenCategory *iface,
|
||||||
LPCWSTR req, LPCWSTR opt,
|
LPCWSTR req, LPCWSTR opt,
|
||||||
IEnumSpObjectTokens **enum_tokens )
|
IEnumSpObjectTokens **enum_tokens )
|
||||||
{
|
{
|
||||||
FIXME( "stub\n" );
|
struct token_category *This = impl_from_ISpObjectTokenCategory( iface );
|
||||||
return E_NOTIMPL;
|
ISpObjectTokenEnumBuilder *builder;
|
||||||
|
HRESULT hr;
|
||||||
|
|
||||||
|
FIXME( "(%p)->(%s %s %p): semi-stub\n", This, debugstr_w( req ), debugstr_w( opt ), enum_tokens );
|
||||||
|
|
||||||
|
if (!This->data_key) return SPERR_UNINITIALIZED;
|
||||||
|
|
||||||
|
hr = CoCreateInstance( &CLSID_SpObjectTokenEnum, NULL, CLSCTX_ALL,
|
||||||
|
&IID_ISpObjectTokenEnumBuilder, (void **)&builder );
|
||||||
|
if (FAILED(hr)) return hr;
|
||||||
|
|
||||||
|
hr = ISpObjectTokenEnumBuilder_SetAttribs( builder, req, opt );
|
||||||
|
if (FAILED(hr)) goto fail;
|
||||||
|
|
||||||
|
/* FIXME: Build the enumerator */
|
||||||
|
|
||||||
|
hr = ISpObjectTokenEnumBuilder_QueryInterface( builder, &IID_IEnumSpObjectTokens,
|
||||||
|
(void **)enum_tokens );
|
||||||
|
|
||||||
|
fail:
|
||||||
|
ISpObjectTokenEnumBuilder_Release( builder );
|
||||||
|
return hr;
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI token_category_SetDefaultTokenId( ISpObjectTokenCategory *iface,
|
static HRESULT WINAPI token_category_SetDefaultTokenId( ISpObjectTokenCategory *iface,
|
||||||
|
|
Loading…
Reference in a new issue