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
60db1221
Commit
60db1221
authored
Oct 15, 2012
by
Hans Leidekker
Committed by
Alexandre Julliard
Oct 15, 2012
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
wbemprox: Implement StdRegProv.GetStringValue.
parent
e27801e9
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
149 additions
and
12 deletions
+149
-12
builtin.c
dlls/wbemprox/builtin.c
+10
-3
reg.c
dlls/wbemprox/reg.c
+78
-6
query.c
dlls/wbemprox/tests/query.c
+55
-1
wbemprox_private.h
dlls/wbemprox/wbemprox_private.h
+6
-2
No files found.
dlls/wbemprox/builtin.c
View file @
60db1221
...
@@ -304,7 +304,8 @@ static const struct column col_sounddevice[] =
...
@@ -304,7 +304,8 @@ static const struct column col_sounddevice[] =
static
const
struct
column
col_stdregprov
[]
=
static
const
struct
column
col_stdregprov
[]
=
{
{
{
method_enumkeyW
,
CIM_FLAG_ARRAY
|
COL_FLAG_METHOD
},
{
method_enumkeyW
,
CIM_FLAG_ARRAY
|
COL_FLAG_METHOD
},
{
method_enumvaluesW
,
CIM_FLAG_ARRAY
|
COL_FLAG_METHOD
}
{
method_enumvaluesW
,
CIM_FLAG_ARRAY
|
COL_FLAG_METHOD
},
{
method_getstringvalueW
,
CIM_FLAG_ARRAY
|
COL_FLAG_METHOD
}
};
};
static
const
struct
column
col_videocontroller
[]
=
static
const
struct
column
col_videocontroller
[]
=
{
{
...
@@ -481,6 +482,7 @@ struct record_stdregprov
...
@@ -481,6 +482,7 @@ struct record_stdregprov
{
{
class_method
*
enumkey
;
class_method
*
enumkey
;
class_method
*
enumvalues
;
class_method
*
enumvalues
;
class_method
*
getstringvalue
;
};
};
struct
record_videocontroller
struct
record_videocontroller
{
{
...
@@ -520,7 +522,12 @@ static const struct record_params data_params[] =
...
@@ -520,7 +522,12 @@ static const struct record_params data_params[] =
{
class_stdregprovW
,
method_enumvaluesW
,
1
,
param_subkeynameW
,
CIM_STRING
},
{
class_stdregprovW
,
method_enumvaluesW
,
1
,
param_subkeynameW
,
CIM_STRING
},
{
class_stdregprovW
,
method_enumvaluesW
,
-
1
,
param_returnvalueW
,
CIM_UINT32
,
VT_I4
},
{
class_stdregprovW
,
method_enumvaluesW
,
-
1
,
param_returnvalueW
,
CIM_UINT32
,
VT_I4
},
{
class_stdregprovW
,
method_enumvaluesW
,
-
1
,
param_namesW
,
CIM_STRING
|
CIM_FLAG_ARRAY
},
{
class_stdregprovW
,
method_enumvaluesW
,
-
1
,
param_namesW
,
CIM_STRING
|
CIM_FLAG_ARRAY
},
{
class_stdregprovW
,
method_enumvaluesW
,
-
1
,
param_typesW
,
CIM_SINT32
|
CIM_FLAG_ARRAY
}
{
class_stdregprovW
,
method_enumvaluesW
,
-
1
,
param_typesW
,
CIM_SINT32
|
CIM_FLAG_ARRAY
},
{
class_stdregprovW
,
method_getstringvalueW
,
1
,
param_defkeyW
,
CIM_SINT32
,
0
,
0x80000002
},
{
class_stdregprovW
,
method_getstringvalueW
,
1
,
param_subkeynameW
,
CIM_STRING
},
{
class_stdregprovW
,
method_getstringvalueW
,
1
,
param_valuenameW
,
CIM_STRING
},
{
class_stdregprovW
,
method_getstringvalueW
,
-
1
,
param_returnvalueW
,
CIM_UINT32
,
VT_I4
},
{
class_stdregprovW
,
method_getstringvalueW
,
-
1
,
param_valueW
,
CIM_STRING
}
};
};
static
const
struct
record_sounddevice
data_sounddevice
[]
=
static
const
struct
record_sounddevice
data_sounddevice
[]
=
{
{
...
@@ -528,7 +535,7 @@ static const struct record_sounddevice data_sounddevice[] =
...
@@ -528,7 +535,7 @@ static const struct record_sounddevice data_sounddevice[] =
};
};
static
const
struct
record_stdregprov
data_stdregprov
[]
=
static
const
struct
record_stdregprov
data_stdregprov
[]
=
{
{
{
reg_enum
key
,
reg_enumvalues
}
{
reg_enum
_key
,
reg_enum_values
,
reg_get_stringvalue
}
};
};
static
UINT
get_processor_count
(
void
)
static
UINT
get_processor_count
(
void
)
...
...
dlls/wbemprox/reg.c
View file @
60db1221
...
@@ -70,7 +70,7 @@ static HRESULT to_i4_array( DWORD *values, DWORD count, VARIANT *var )
...
@@ -70,7 +70,7 @@ static HRESULT to_i4_array( DWORD *values, DWORD count, VARIANT *var )
return
S_OK
;
return
S_OK
;
}
}
static
HRESULT
enumkey
(
HKEY
root
,
const
WCHAR
*
subkey
,
VARIANT
*
names
,
VARIANT
*
retval
)
static
HRESULT
enum
_
key
(
HKEY
root
,
const
WCHAR
*
subkey
,
VARIANT
*
names
,
VARIANT
*
retval
)
{
{
HKEY
hkey
;
HKEY
hkey
;
HRESULT
hr
=
S_OK
;
HRESULT
hr
=
S_OK
;
...
@@ -121,7 +121,7 @@ static HRESULT enumkey( HKEY root, const WCHAR *subkey, VARIANT *names, VARIANT
...
@@ -121,7 +121,7 @@ static HRESULT enumkey( HKEY root, const WCHAR *subkey, VARIANT *names, VARIANT
return
hr
;
return
hr
;
}
}
HRESULT
reg_enumkey
(
IWbemClassObject
*
in
,
IWbemClassObject
**
out
)
HRESULT
reg_enum
_
key
(
IWbemClassObject
*
in
,
IWbemClassObject
**
out
)
{
{
VARIANT
defkey
,
subkey
,
names
,
retval
;
VARIANT
defkey
,
subkey
,
names
,
retval
;
IWbemClassObject
*
sig
;
IWbemClassObject
*
sig
;
...
@@ -148,7 +148,7 @@ HRESULT reg_enumkey( IWbemClassObject *in, IWbemClassObject **out )
...
@@ -148,7 +148,7 @@ HRESULT reg_enumkey( IWbemClassObject *in, IWbemClassObject **out )
return
hr
;
return
hr
;
}
}
VariantInit
(
&
names
);
VariantInit
(
&
names
);
hr
=
enum
key
(
(
HKEY
)
V_I4
(
&
defkey
),
V_BSTR
(
&
subkey
),
&
names
,
&
retval
);
hr
=
enum
_key
(
(
HKEY
)(
INT_PTR
)
V_I4
(
&
defkey
),
V_BSTR
(
&
subkey
),
&
names
,
&
retval
);
if
(
hr
!=
S_OK
)
goto
done
;
if
(
hr
!=
S_OK
)
goto
done
;
if
(
!
V_UI4
(
&
retval
))
if
(
!
V_UI4
(
&
retval
))
{
{
...
@@ -165,7 +165,7 @@ done:
...
@@ -165,7 +165,7 @@ done:
return
hr
;
return
hr
;
}
}
static
HRESULT
enumvalues
(
HKEY
root
,
const
WCHAR
*
subkey
,
VARIANT
*
names
,
VARIANT
*
types
,
VARIANT
*
retval
)
static
HRESULT
enum
_
values
(
HKEY
root
,
const
WCHAR
*
subkey
,
VARIANT
*
names
,
VARIANT
*
types
,
VARIANT
*
retval
)
{
{
HKEY
hkey
=
NULL
;
HKEY
hkey
=
NULL
;
HRESULT
hr
=
S_OK
;
HRESULT
hr
=
S_OK
;
...
@@ -219,7 +219,7 @@ done:
...
@@ -219,7 +219,7 @@ done:
return
hr
;
return
hr
;
}
}
HRESULT
reg_enumvalues
(
IWbemClassObject
*
in
,
IWbemClassObject
**
out
)
HRESULT
reg_enum
_
values
(
IWbemClassObject
*
in
,
IWbemClassObject
**
out
)
{
{
VARIANT
defkey
,
subkey
,
names
,
types
,
retval
;
VARIANT
defkey
,
subkey
,
names
,
types
,
retval
;
IWbemClassObject
*
sig
;
IWbemClassObject
*
sig
;
...
@@ -247,7 +247,7 @@ HRESULT reg_enumvalues( IWbemClassObject *in, IWbemClassObject **out )
...
@@ -247,7 +247,7 @@ HRESULT reg_enumvalues( IWbemClassObject *in, IWbemClassObject **out )
}
}
VariantInit
(
&
names
);
VariantInit
(
&
names
);
VariantInit
(
&
types
);
VariantInit
(
&
types
);
hr
=
enum
values
(
(
HKEY
)
V_I4
(
&
defkey
),
V_BSTR
(
&
subkey
),
&
names
,
&
types
,
&
retval
);
hr
=
enum
_values
(
(
HKEY
)(
INT_PTR
)
V_I4
(
&
defkey
),
V_BSTR
(
&
subkey
),
&
names
,
&
types
,
&
retval
);
if
(
hr
!=
S_OK
)
goto
done
;
if
(
hr
!=
S_OK
)
goto
done
;
if
(
!
V_UI4
(
&
retval
))
if
(
!
V_UI4
(
&
retval
))
{
{
...
@@ -266,3 +266,75 @@ done:
...
@@ -266,3 +266,75 @@ done:
if
(
hr
!=
S_OK
)
IWbemClassObject_Release
(
*
out
);
if
(
hr
!=
S_OK
)
IWbemClassObject_Release
(
*
out
);
return
hr
;
return
hr
;
}
}
static
HRESULT
get_stringvalue
(
HKEY
root
,
const
WCHAR
*
subkey
,
const
WCHAR
*
name
,
VARIANT
*
value
,
VARIANT
*
retval
)
{
HRESULT
hr
=
S_OK
;
WCHAR
*
buf
=
NULL
;
DWORD
size
;
LONG
res
;
TRACE
(
"%p, %s, %s
\n
"
,
root
,
debugstr_w
(
subkey
),
debugstr_w
(
name
));
if
((
res
=
RegGetValueW
(
root
,
subkey
,
name
,
RRF_RT_REG_SZ
,
NULL
,
NULL
,
&
size
)))
goto
done
;
if
(
!
(
buf
=
heap_alloc
(
size
)))
{
hr
=
E_OUTOFMEMORY
;
goto
done
;
}
if
(
!
(
res
=
RegGetValueW
(
root
,
subkey
,
name
,
RRF_RT_REG_SZ
,
NULL
,
buf
,
&
size
)))
set_variant
(
VT_BSTR
,
0
,
buf
,
value
);
done:
set_variant
(
VT_UI4
,
res
,
NULL
,
retval
);
heap_free
(
buf
);
return
hr
;
}
HRESULT
reg_get_stringvalue
(
IWbemClassObject
*
in
,
IWbemClassObject
**
out
)
{
VARIANT
defkey
,
subkey
,
name
,
value
,
retval
;
IWbemClassObject
*
sig
;
HRESULT
hr
;
TRACE
(
"%p, %p
\n
"
,
in
,
out
);
hr
=
IWbemClassObject_Get
(
in
,
param_defkeyW
,
0
,
&
defkey
,
NULL
,
NULL
);
if
(
hr
!=
S_OK
)
return
hr
;
hr
=
IWbemClassObject_Get
(
in
,
param_subkeynameW
,
0
,
&
subkey
,
NULL
,
NULL
);
if
(
hr
!=
S_OK
)
return
hr
;
hr
=
IWbemClassObject_Get
(
in
,
param_valuenameW
,
0
,
&
name
,
NULL
,
NULL
);
if
(
hr
!=
S_OK
)
return
hr
;
hr
=
create_signature
(
class_stdregprovW
,
method_getstringvalueW
,
PARAM_OUT
,
&
sig
);
if
(
hr
!=
S_OK
)
{
VariantClear
(
&
name
);
VariantClear
(
&
subkey
);
return
hr
;
}
hr
=
IWbemClassObject_SpawnInstance
(
sig
,
0
,
out
);
if
(
hr
!=
S_OK
)
{
VariantClear
(
&
name
);
VariantClear
(
&
subkey
);
IWbemClassObject_Release
(
sig
);
return
hr
;
}
VariantInit
(
&
value
);
hr
=
get_stringvalue
(
(
HKEY
)(
INT_PTR
)
V_I4
(
&
defkey
),
V_BSTR
(
&
subkey
),
V_BSTR
(
&
name
),
&
value
,
&
retval
);
if
(
hr
!=
S_OK
)
goto
done
;
if
(
!
V_UI4
(
&
retval
))
{
hr
=
IWbemClassObject_Put
(
*
out
,
param_valueW
,
0
,
&
value
,
CIM_STRING
);
if
(
hr
!=
S_OK
)
goto
done
;
}
hr
=
IWbemClassObject_Put
(
*
out
,
param_returnvalueW
,
0
,
&
retval
,
CIM_UINT32
);
done:
VariantClear
(
&
name
);
VariantClear
(
&
subkey
);
IWbemClassObject_Release
(
sig
);
if
(
hr
!=
S_OK
)
IWbemClassObject_Release
(
*
out
);
return
hr
;
}
dlls/wbemprox/tests/query.c
View file @
60db1221
...
@@ -129,18 +129,22 @@ static void test_StdRegProv( IWbemServices *services )
...
@@ -129,18 +129,22 @@ static void test_StdRegProv( IWbemServices *services )
{
{
static
const
WCHAR
enumkeyW
[]
=
{
'E'
,
'n'
,
'u'
,
'm'
,
'K'
,
'e'
,
'y'
,
0
};
static
const
WCHAR
enumkeyW
[]
=
{
'E'
,
'n'
,
'u'
,
'm'
,
'K'
,
'e'
,
'y'
,
0
};
static
const
WCHAR
enumvaluesW
[]
=
{
'E'
,
'n'
,
'u'
,
'm'
,
'V'
,
'a'
,
'l'
,
'u'
,
'e'
,
's'
,
0
};
static
const
WCHAR
enumvaluesW
[]
=
{
'E'
,
'n'
,
'u'
,
'm'
,
'V'
,
'a'
,
'l'
,
'u'
,
'e'
,
's'
,
0
};
static
const
WCHAR
getstringvalueW
[]
=
{
'G'
,
'e'
,
't'
,
'S'
,
't'
,
'r'
,
'i'
,
'n'
,
'g'
,
'V'
,
'a'
,
'l'
,
'u'
,
'e'
,
0
};
static
const
WCHAR
stdregprovW
[]
=
{
'S'
,
't'
,
'd'
,
'R'
,
'e'
,
'g'
,
'P'
,
'r'
,
'o'
,
'v'
,
0
};
static
const
WCHAR
stdregprovW
[]
=
{
'S'
,
't'
,
'd'
,
'R'
,
'e'
,
'g'
,
'P'
,
'r'
,
'o'
,
'v'
,
0
};
static
const
WCHAR
defkeyW
[]
=
{
'h'
,
'D'
,
'e'
,
'f'
,
'K'
,
'e'
,
'y'
,
0
};
static
const
WCHAR
defkeyW
[]
=
{
'h'
,
'D'
,
'e'
,
'f'
,
'K'
,
'e'
,
'y'
,
0
};
static
const
WCHAR
subkeynameW
[]
=
{
's'
,
'S'
,
'u'
,
'b'
,
'K'
,
'e'
,
'y'
,
'N'
,
'a'
,
'm'
,
'e'
,
0
};
static
const
WCHAR
subkeynameW
[]
=
{
's'
,
'S'
,
'u'
,
'b'
,
'K'
,
'e'
,
'y'
,
'N'
,
'a'
,
'm'
,
'e'
,
0
};
static
const
WCHAR
returnvalueW
[]
=
{
'R'
,
'e'
,
't'
,
'u'
,
'r'
,
'n'
,
'V'
,
'a'
,
'l'
,
'u'
,
'e'
,
0
};
static
const
WCHAR
returnvalueW
[]
=
{
'R'
,
'e'
,
't'
,
'u'
,
'r'
,
'n'
,
'V'
,
'a'
,
'l'
,
'u'
,
'e'
,
0
};
static
const
WCHAR
namesW
[]
=
{
's'
,
'N'
,
'a'
,
'm'
,
'e'
,
's'
,
0
};
static
const
WCHAR
namesW
[]
=
{
's'
,
'N'
,
'a'
,
'm'
,
'e'
,
's'
,
0
};
static
const
WCHAR
typesW
[]
=
{
'T'
,
'y'
,
'p'
,
'e'
,
's'
,
0
};
static
const
WCHAR
typesW
[]
=
{
'T'
,
'y'
,
'p'
,
'e'
,
's'
,
0
};
static
const
WCHAR
valueW
[]
=
{
's'
,
'V'
,
'a'
,
'l'
,
'u'
,
'e'
,
0
};
static
const
WCHAR
valuenameW
[]
=
{
's'
,
'V'
,
'a'
,
'l'
,
'u'
,
'e'
,
'N'
,
'a'
,
'm'
,
'e'
,
0
};
static
const
WCHAR
programfilesW
[]
=
{
'P'
,
'r'
,
'o'
,
'g'
,
'r'
,
'a'
,
'm'
,
'F'
,
'i'
,
'l'
,
'e'
,
's'
,
'D'
,
'i'
,
'r'
,
0
};
static
const
WCHAR
windowsW
[]
=
static
const
WCHAR
windowsW
[]
=
{
'S'
,
'o'
,
'f'
,
't'
,
'w'
,
'a'
,
'r'
,
'e'
,
'\\'
,
'M'
,
'i'
,
'c'
,
'r'
,
'o'
,
's'
,
'o'
,
'f'
,
't'
,
'\\'
,
{
'S'
,
'o'
,
'f'
,
't'
,
'w'
,
'a'
,
'r'
,
'e'
,
'\\'
,
'M'
,
'i'
,
'c'
,
'r'
,
'o'
,
's'
,
'o'
,
'f'
,
't'
,
'\\'
,
'W'
,
'i'
,
'n'
,
'd'
,
'o'
,
'w'
,
's'
,
'\\'
,
'C'
,
'u'
,
'r'
,
'r'
,
'e'
,
'n'
,
't'
,
'V'
,
'e'
,
'r'
,
's'
,
'i'
,
'o'
,
'n'
,
0
};
'W'
,
'i'
,
'n'
,
'd'
,
'o'
,
'w'
,
's'
,
'\\'
,
'C'
,
'u'
,
'r'
,
'r'
,
'e'
,
'n'
,
't'
,
'V'
,
'e'
,
'r'
,
's'
,
'i'
,
'o'
,
'n'
,
0
};
BSTR
class
=
SysAllocString
(
stdregprovW
),
method
;
BSTR
class
=
SysAllocString
(
stdregprovW
),
method
;
IWbemClassObject
*
reg
,
*
sig_in
,
*
sig_out
,
*
in
,
*
out
;
IWbemClassObject
*
reg
,
*
sig_in
,
*
sig_out
,
*
in
,
*
out
;
VARIANT
defkey
,
subkey
,
retval
,
names
,
types
;
VARIANT
defkey
,
subkey
,
retval
,
names
,
types
,
value
,
valuename
;
CIMTYPE
type
;
CIMTYPE
type
;
HRESULT
hr
;
HRESULT
hr
;
...
@@ -246,6 +250,56 @@ static void test_StdRegProv( IWbemServices *services )
...
@@ -246,6 +250,56 @@ static void test_StdRegProv( IWbemServices *services )
IWbemClassObject_Release
(
sig_in
);
IWbemClassObject_Release
(
sig_in
);
IWbemClassObject_Release
(
sig_out
);
IWbemClassObject_Release
(
sig_out
);
hr
=
IWbemClassObject_GetMethod
(
reg
,
getstringvalueW
,
0
,
&
sig_in
,
&
sig_out
);
ok
(
hr
==
S_OK
,
"failed to get GetStringValue method %08x
\n
"
,
hr
);
hr
=
IWbemClassObject_SpawnInstance
(
sig_in
,
0
,
&
in
);
ok
(
hr
==
S_OK
,
"failed to spawn instance %08x
\n
"
,
hr
);
V_VT
(
&
defkey
)
=
VT_I4
;
V_I4
(
&
defkey
)
=
0x80000002
;
hr
=
IWbemClassObject_Put
(
in
,
defkeyW
,
0
,
&
defkey
,
0
);
ok
(
hr
==
S_OK
,
"failed to set root %08x
\n
"
,
hr
);
V_VT
(
&
subkey
)
=
VT_BSTR
;
V_BSTR
(
&
subkey
)
=
SysAllocString
(
windowsW
);
hr
=
IWbemClassObject_Put
(
in
,
subkeynameW
,
0
,
&
subkey
,
0
);
ok
(
hr
==
S_OK
,
"failed to set subkey %08x
\n
"
,
hr
);
V_VT
(
&
valuename
)
=
VT_BSTR
;
V_BSTR
(
&
valuename
)
=
SysAllocString
(
programfilesW
);
hr
=
IWbemClassObject_Put
(
in
,
valuenameW
,
0
,
&
valuename
,
0
);
ok
(
hr
==
S_OK
,
"failed to set value name %08x
\n
"
,
hr
);
out
=
NULL
;
method
=
SysAllocString
(
getstringvalueW
);
hr
=
IWbemServices_ExecMethod
(
services
,
class
,
method
,
0
,
NULL
,
in
,
&
out
,
NULL
);
ok
(
hr
==
S_OK
,
"failed to execute method %08x
\n
"
,
hr
);
SysFreeString
(
method
);
type
=
0xdeadbeef
;
VariantInit
(
&
retval
);
hr
=
IWbemClassObject_Get
(
out
,
returnvalueW
,
0
,
&
retval
,
&
type
,
NULL
);
ok
(
hr
==
S_OK
,
"failed to get return value %08x
\n
"
,
hr
);
ok
(
V_VT
(
&
retval
)
==
VT_I4
,
"unexpected variant type 0x%x
\n
"
,
V_VT
(
&
retval
)
);
ok
(
!
V_I4
(
&
retval
),
"unexpected error %u
\n
"
,
V_I4
(
&
retval
)
);
ok
(
type
==
CIM_UINT32
,
"unexpected type 0x%x
\n
"
,
type
);
type
=
0xdeadbeef
;
VariantInit
(
&
value
);
hr
=
IWbemClassObject_Get
(
out
,
valueW
,
0
,
&
value
,
&
type
,
NULL
);
ok
(
hr
==
S_OK
,
"failed to get value %08x
\n
"
,
hr
);
ok
(
V_VT
(
&
value
)
==
VT_BSTR
,
"unexpected variant type 0x%x
\n
"
,
V_VT
(
&
value
)
);
ok
(
type
==
CIM_STRING
,
"unexpected type 0x%x
\n
"
,
type
);
VariantClear
(
&
value
);
VariantClear
(
&
valuename
);
VariantClear
(
&
subkey
);
IWbemClassObject_Release
(
in
);
IWbemClassObject_Release
(
out
);
IWbemClassObject_Release
(
sig_in
);
IWbemClassObject_Release
(
sig_out
);
IWbemClassObject_Release
(
reg
);
IWbemClassObject_Release
(
reg
);
SysFreeString
(
class
);
SysFreeString
(
class
);
}
}
...
...
dlls/wbemprox/wbemprox_private.h
View file @
60db1221
...
@@ -196,8 +196,9 @@ HRESULT create_class_object(const WCHAR *, IEnumWbemClassObject *, UINT,
...
@@ -196,8 +196,9 @@ HRESULT create_class_object(const WCHAR *, IEnumWbemClassObject *, UINT,
struct
record
*
,
IWbemClassObject
**
)
DECLSPEC_HIDDEN
;
struct
record
*
,
IWbemClassObject
**
)
DECLSPEC_HIDDEN
;
HRESULT
EnumWbemClassObject_create
(
IUnknown
*
,
struct
query
*
,
LPVOID
*
)
DECLSPEC_HIDDEN
;
HRESULT
EnumWbemClassObject_create
(
IUnknown
*
,
struct
query
*
,
LPVOID
*
)
DECLSPEC_HIDDEN
;
HRESULT
reg_enumkey
(
IWbemClassObject
*
,
IWbemClassObject
**
)
DECLSPEC_HIDDEN
;
HRESULT
reg_enum_key
(
IWbemClassObject
*
,
IWbemClassObject
**
)
DECLSPEC_HIDDEN
;
HRESULT
reg_enumvalues
(
IWbemClassObject
*
,
IWbemClassObject
**
)
DECLSPEC_HIDDEN
;
HRESULT
reg_enum_values
(
IWbemClassObject
*
,
IWbemClassObject
**
)
DECLSPEC_HIDDEN
;
HRESULT
reg_get_stringvalue
(
IWbemClassObject
*
,
IWbemClassObject
**
)
DECLSPEC_HIDDEN
;
static
void
*
heap_alloc
(
size_t
len
)
__WINE_ALLOC_SIZE
(
1
);
static
void
*
heap_alloc
(
size_t
len
)
__WINE_ALLOC_SIZE
(
1
);
static
inline
void
*
heap_alloc
(
size_t
len
)
static
inline
void
*
heap_alloc
(
size_t
len
)
...
@@ -234,9 +235,12 @@ static const WCHAR class_stdregprovW[] = {'S','t','d','R','e','g','P','r','o','v
...
@@ -234,9 +235,12 @@ static const WCHAR class_stdregprovW[] = {'S','t','d','R','e','g','P','r','o','v
static
const
WCHAR
method_enumkeyW
[]
=
{
'E'
,
'n'
,
'u'
,
'm'
,
'K'
,
'e'
,
'y'
,
0
};
static
const
WCHAR
method_enumkeyW
[]
=
{
'E'
,
'n'
,
'u'
,
'm'
,
'K'
,
'e'
,
'y'
,
0
};
static
const
WCHAR
method_enumvaluesW
[]
=
{
'E'
,
'n'
,
'u'
,
'm'
,
'V'
,
'a'
,
'l'
,
'u'
,
'e'
,
's'
,
0
};
static
const
WCHAR
method_enumvaluesW
[]
=
{
'E'
,
'n'
,
'u'
,
'm'
,
'V'
,
'a'
,
'l'
,
'u'
,
'e'
,
's'
,
0
};
static
const
WCHAR
method_getstringvalueW
[]
=
{
'G'
,
'e'
,
't'
,
'S'
,
't'
,
'r'
,
'i'
,
'n'
,
'g'
,
'V'
,
'a'
,
'l'
,
'u'
,
'e'
,
0
};
static
const
WCHAR
param_defkeyW
[]
=
{
'h'
,
'D'
,
'e'
,
'f'
,
'K'
,
'e'
,
'y'
,
0
};
static
const
WCHAR
param_defkeyW
[]
=
{
'h'
,
'D'
,
'e'
,
'f'
,
'K'
,
'e'
,
'y'
,
0
};
static
const
WCHAR
param_namesW
[]
=
{
's'
,
'N'
,
'a'
,
'm'
,
'e'
,
's'
,
0
};
static
const
WCHAR
param_namesW
[]
=
{
's'
,
'N'
,
'a'
,
'm'
,
'e'
,
's'
,
0
};
static
const
WCHAR
param_returnvalueW
[]
=
{
'R'
,
'e'
,
't'
,
'u'
,
'r'
,
'n'
,
'V'
,
'a'
,
'l'
,
'u'
,
'e'
,
0
};
static
const
WCHAR
param_returnvalueW
[]
=
{
'R'
,
'e'
,
't'
,
'u'
,
'r'
,
'n'
,
'V'
,
'a'
,
'l'
,
'u'
,
'e'
,
0
};
static
const
WCHAR
param_subkeynameW
[]
=
{
's'
,
'S'
,
'u'
,
'b'
,
'K'
,
'e'
,
'y'
,
'N'
,
'a'
,
'm'
,
'e'
,
0
};
static
const
WCHAR
param_subkeynameW
[]
=
{
's'
,
'S'
,
'u'
,
'b'
,
'K'
,
'e'
,
'y'
,
'N'
,
'a'
,
'm'
,
'e'
,
0
};
static
const
WCHAR
param_typesW
[]
=
{
'T'
,
'y'
,
'p'
,
'e'
,
's'
,
0
};
static
const
WCHAR
param_typesW
[]
=
{
'T'
,
'y'
,
'p'
,
'e'
,
's'
,
0
};
static
const
WCHAR
param_valueW
[]
=
{
's'
,
'V'
,
'a'
,
'l'
,
'u'
,
'e'
,
0
};
static
const
WCHAR
param_valuenameW
[]
=
{
's'
,
'V'
,
'a'
,
'l'
,
'u'
,
'e'
,
'N'
,
'a'
,
'm'
,
'e'
,
0
};
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