Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
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-winehq
Commits
751c4544
Commit
751c4544
authored
Jul 20, 2002
by
Dominik Strasser
Committed by
Alexandre Julliard
Jul 20, 2002
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Implemented RegQueryMultipleValues.
parent
1af79892
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
91 additions
and
2 deletions
+91
-2
advapi32.spec
dlls/advapi32/advapi32.spec
+2
-2
registry.c
dlls/advapi32/registry.c
+86
-0
winreg.h
include/winreg.h
+3
-0
No files found.
dlls/advapi32/advapi32.spec
View file @
751c4544
...
@@ -201,8 +201,8 @@
...
@@ -201,8 +201,8 @@
@ stub RegOpenUserClassesRoot
@ stub RegOpenUserClassesRoot
@ stdcall RegQueryInfoKeyA(long ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr) RegQueryInfoKeyA
@ stdcall RegQueryInfoKeyA(long ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr) RegQueryInfoKeyA
@ stdcall RegQueryInfoKeyW(long ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr) RegQueryInfoKeyW
@ stdcall RegQueryInfoKeyW(long ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr) RegQueryInfoKeyW
@ st
ub
RegQueryMultipleValuesA
@ st
dcall RegQueryMultipleValuesA(long ptr long ptr ptr)
RegQueryMultipleValuesA
@ st
ub
RegQueryMultipleValuesW
@ st
dcall RegQueryMultipleValuesW(long ptr long ptr ptr)
RegQueryMultipleValuesW
@ stdcall RegQueryValueA(long str ptr ptr) RegQueryValueA
@ stdcall RegQueryValueA(long str ptr ptr) RegQueryValueA
@ stdcall RegQueryValueExA(long str ptr ptr ptr ptr) RegQueryValueExA
@ stdcall RegQueryValueExA(long str ptr ptr ptr ptr) RegQueryValueExA
@ stdcall RegQueryValueExW(long wstr ptr ptr ptr ptr) RegQueryValueExW
@ stdcall RegQueryValueExW(long wstr ptr ptr ptr ptr) RegQueryValueExW
...
...
dlls/advapi32/registry.c
View file @
751c4544
...
@@ -511,6 +511,92 @@ DWORD WINAPI RegQueryInfoKeyW( HKEY hkey, LPWSTR class, LPDWORD class_len, LPDWO
...
@@ -511,6 +511,92 @@ DWORD WINAPI RegQueryInfoKeyW( HKEY hkey, LPWSTR class, LPDWORD class_len, LPDWO
/******************************************************************************
/******************************************************************************
* RegQueryMultipleValuesA [ADVAPI32.@]
*/
DWORD
WINAPI
RegQueryMultipleValuesA
(
HKEY
hkey
,
PVALENTA
val_list
,
DWORD
num_vals
,
LPSTR
lpValueBuf
,
LPDWORD
ldwTotsize
)
{
int
i
;
DWORD
maxBytes
=
*
ldwTotsize
;
HRESULT
status
;
LPSTR
bufptr
=
lpValueBuf
;
*
ldwTotsize
=
0
;
TRACE
(
"(%x,%p,%ld,%p,%p=%ld)
\n
"
,
hkey
,
val_list
,
num_vals
,
lpValueBuf
,
ldwTotsize
,
*
ldwTotsize
);
for
(
i
=
0
;
i
<
num_vals
;
++
i
)
{
val_list
[
i
].
ve_valuelen
=
0
;
status
=
RegQueryValueExA
(
hkey
,
val_list
[
i
].
ve_valuename
,
NULL
,
NULL
,
NULL
,
&
val_list
[
i
].
ve_valuelen
);
if
(
status
!=
ERROR_SUCCESS
)
{
return
status
;
}
if
(
lpValueBuf
!=
NULL
&&
*
ldwTotsize
+
val_list
[
i
].
ve_valuelen
<=
maxBytes
)
{
status
=
RegQueryValueExA
(
hkey
,
val_list
[
i
].
ve_valuename
,
NULL
,
&
val_list
[
i
].
ve_type
,
bufptr
,
&
val_list
[
i
].
ve_valuelen
);
if
(
status
!=
ERROR_SUCCESS
)
{
return
status
;
}
val_list
[
i
].
ve_valueptr
=
(
DWORD_PTR
)
bufptr
;
bufptr
+=
val_list
[
i
].
ve_valuelen
;
}
*
ldwTotsize
+=
val_list
[
i
].
ve_valuelen
;
}
return
lpValueBuf
!=
NULL
&&
*
ldwTotsize
<=
maxBytes
?
ERROR_SUCCESS
:
ERROR_MORE_DATA
;
}
/******************************************************************************
* RegQueryMultipleValuesW [ADVAPI32.@]
*/
DWORD
WINAPI
RegQueryMultipleValuesW
(
HKEY
hkey
,
PVALENTW
val_list
,
DWORD
num_vals
,
LPWSTR
lpValueBuf
,
LPDWORD
ldwTotsize
)
{
int
i
;
DWORD
maxBytes
=
*
ldwTotsize
;
HRESULT
status
;
LPSTR
bufptr
=
(
LPSTR
)
lpValueBuf
;
*
ldwTotsize
=
0
;
TRACE
(
"(%x,%p,%ld,%p,%p=%ld)
\n
"
,
hkey
,
val_list
,
num_vals
,
lpValueBuf
,
ldwTotsize
,
*
ldwTotsize
);
for
(
i
=
0
;
i
<
num_vals
;
++
i
)
{
val_list
[
i
].
ve_valuelen
=
0
;
status
=
RegQueryValueExW
(
hkey
,
val_list
[
i
].
ve_valuename
,
NULL
,
NULL
,
NULL
,
&
val_list
[
i
].
ve_valuelen
);
if
(
status
!=
ERROR_SUCCESS
)
{
return
status
;
}
if
(
lpValueBuf
!=
NULL
&&
*
ldwTotsize
+
val_list
[
i
].
ve_valuelen
<=
maxBytes
)
{
status
=
RegQueryValueExW
(
hkey
,
val_list
[
i
].
ve_valuename
,
NULL
,
&
val_list
[
i
].
ve_type
,
bufptr
,
&
val_list
[
i
].
ve_valuelen
);
if
(
status
!=
ERROR_SUCCESS
)
{
return
status
;
}
val_list
[
i
].
ve_valueptr
=
(
DWORD_PTR
)
bufptr
;
bufptr
+=
val_list
[
i
].
ve_valuelen
;
}
*
ldwTotsize
+=
val_list
[
i
].
ve_valuelen
;
}
return
lpValueBuf
!=
NULL
&&
*
ldwTotsize
<=
maxBytes
?
ERROR_SUCCESS
:
ERROR_MORE_DATA
;
}
/******************************************************************************
* RegQueryInfoKeyA [ADVAPI32.@]
* RegQueryInfoKeyA [ADVAPI32.@]
*/
*/
DWORD
WINAPI
RegQueryInfoKeyA
(
HKEY
hkey
,
LPSTR
class
,
LPDWORD
class_len
,
LPDWORD
reserved
,
DWORD
WINAPI
RegQueryInfoKeyA
(
HKEY
hkey
,
LPSTR
class
,
LPDWORD
class_len
,
LPDWORD
reserved
,
...
...
include/winreg.h
View file @
751c4544
...
@@ -87,6 +87,9 @@ DWORD WINAPI RegQueryInfoKeyA(HKEY,LPSTR,LPDWORD,LPDWORD,LPDWORD,
...
@@ -87,6 +87,9 @@ DWORD WINAPI RegQueryInfoKeyA(HKEY,LPSTR,LPDWORD,LPDWORD,LPDWORD,
LPDWORD
,
LPDWORD
,
LPDWORD
,
LPDWORD
,
LPDWORD
,
LPDWORD
,
LPDWORD
,
LPDWORD
,
LPDWORD
,
LPDWORD
,
LPDWORD
,
LPFILETIME
);
LPDWORD
,
LPFILETIME
);
#define RegQueryInfoKey WINELIB_NAME_AW(RegQueryInfoKey)
#define RegQueryInfoKey WINELIB_NAME_AW(RegQueryInfoKey)
DWORD
WINAPI
RegQueryMultipleValuesA
(
HKEY
,
PVALENTA
,
DWORD
,
LPSTR
,
LPDWORD
);
DWORD
WINAPI
RegQueryMultipleValuesW
(
HKEY
,
PVALENTW
,
DWORD
,
LPWSTR
,
LPDWORD
);
#define RegQueryMultipleValues WINELIB_NAME_AW(RegQueryMultipleValues)
LONG
WINAPI
RegReplaceKeyA
(
HKEY
,
LPCSTR
,
LPCSTR
,
LPCSTR
);
LONG
WINAPI
RegReplaceKeyA
(
HKEY
,
LPCSTR
,
LPCSTR
,
LPCSTR
);
LONG
WINAPI
RegReplaceKeyW
(
HKEY
,
LPCWSTR
,
LPCWSTR
,
LPCWSTR
);
LONG
WINAPI
RegReplaceKeyW
(
HKEY
,
LPCWSTR
,
LPCWSTR
,
LPCWSTR
);
#define RegReplaceKey WINELIB_NAME_AW(RegReplaceKey)
#define RegReplaceKey WINELIB_NAME_AW(RegReplaceKey)
...
...
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