Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-cw
Commits
ff1c9633
Commit
ff1c9633
authored
Oct 13, 2022
by
Alistair Leslie-Hughes
Committed by
Alexandre Julliard
Oct 24, 2022
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
sapi: Store registry key to Enum builder.
parent
2e9d3515
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
16 additions
and
2 deletions
+16
-2
token.c
dlls/sapi/token.c
+16
-2
No files found.
dlls/sapi/token.c
View file @
ff1c9633
...
...
@@ -504,6 +504,7 @@ struct token_enum
BOOL
init
;
WCHAR
*
req
,
*
opt
;
ULONG
count
;
HKEY
key
;
};
static
struct
token_enum
*
impl_from_ISpObjectTokenEnumBuilder
(
ISpObjectTokenEnumBuilder
*
iface
)
...
...
@@ -517,9 +518,11 @@ static HRESULT WINAPI token_category_EnumTokens( ISpObjectTokenCategory *iface,
{
struct
token_category
*
This
=
impl_from_ISpObjectTokenCategory
(
iface
);
ISpObjectTokenEnumBuilder
*
builder
;
struct
token_enum
*
tokenenum
;
struct
data_key
*
this_data_key
;
HRESULT
hr
;
FIXME
(
"(%p)->(%s %s %p): semi-stub
\n
"
,
This
,
debugstr_w
(
req
),
debugstr_w
(
opt
),
enum_tokens
);
TRACE
(
"(%p)->(%s %s %p)
\n
"
,
This
,
debugstr_w
(
req
),
debugstr_w
(
opt
),
enum_tokens
);
if
(
!
This
->
data_key
)
return
SPERR_UNINITIALIZED
;
...
...
@@ -530,7 +533,15 @@ static HRESULT WINAPI token_category_EnumTokens( ISpObjectTokenCategory *iface,
hr
=
ISpObjectTokenEnumBuilder_SetAttribs
(
builder
,
req
,
opt
);
if
(
FAILED
(
hr
))
goto
fail
;
/* FIXME: Build the enumerator */
this_data_key
=
impl_from_ISpRegDataKey
(
This
->
data_key
);
tokenenum
=
impl_from_ISpObjectTokenEnumBuilder
(
builder
);
if
(
!
RegOpenKeyExW
(
this_data_key
->
key
,
L"Tokens"
,
0
,
KEY_ALL_ACCESS
,
&
tokenenum
->
key
))
{
RegQueryInfoKeyW
(
tokenenum
->
key
,
NULL
,
NULL
,
NULL
,
&
tokenenum
->
count
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
);
}
hr
=
ISpObjectTokenEnumBuilder_QueryInterface
(
builder
,
&
IID_IEnumSpObjectTokens
,
(
void
**
)
enum_tokens
);
...
...
@@ -664,6 +675,8 @@ static ULONG WINAPI token_enum_Release( ISpObjectTokenEnumBuilder *iface )
if
(
!
ref
)
{
if
(
This
->
key
)
RegCloseKey
(
This
->
key
);
heap_free
(
This
->
req
);
heap_free
(
This
->
opt
);
heap_free
(
This
);
...
...
@@ -816,6 +829,7 @@ HRESULT token_enum_create( IUnknown *outer, REFIID iid, void **obj )
This
->
opt
=
NULL
;
This
->
init
=
FALSE
;
This
->
count
=
0
;
This
->
key
=
NULL
;
hr
=
ISpObjectTokenEnumBuilder_QueryInterface
(
&
This
->
ISpObjectTokenEnumBuilder_iface
,
iid
,
obj
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment