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
91475415
Commit
91475415
authored
Mar 15, 2022
by
Eric Pouech
Committed by
Alexandre Julliard
Mar 15, 2022
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
oleaut32/tests: Use correct integral type.
Signed-off-by:
Eric Pouech
<
eric.pouech@gmail.com
>
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
5cc3167b
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
49 additions
and
48 deletions
+49
-48
tmarshal.c
dlls/oleaut32/tests/tmarshal.c
+43
-42
tmarshal.idl
dlls/oleaut32/tests/tmarshal.idl
+6
-6
No files found.
dlls/oleaut32/tests/tmarshal.c
View file @
91475415
...
...
@@ -1104,17 +1104,17 @@ static HRESULT WINAPI Widget_VarArg_Ref_Run(
return
S_OK
;
}
static
HRESULT
WINAPI
Widget_basetypes_in
(
IWidget
*
iface
,
signed
char
c
,
short
s
,
int
i
,
hyper
h
,
unsigned
char
uc
,
unsigned
short
us
,
unsigned
int
ui
,
MIDL_uhyper
uh
,
static
HRESULT
WINAPI
Widget_basetypes_in
(
IWidget
*
iface
,
signed
char
c
,
short
s
,
LONG
l
,
hyper
h
,
unsigned
char
uc
,
unsigned
short
us
,
ULONG
ul
,
MIDL_uhyper
uh
,
float
f
,
double
d
,
STATE
st
)
{
ok
(
c
==
5
,
"Got char %d.
\n
"
,
c
);
ok
(
s
==
-
123
,
"Got short %d.
\n
"
,
s
);
ok
(
i
==
-
100000
,
"Got int %d.
\n
"
,
i
);
ok
(
l
==
-
100000
,
"Got int %d.
\n
"
,
l
);
ok
(
h
==
(
LONGLONG
)
-
100000
*
1000000
,
"Got hyper %s.
\n
"
,
wine_dbgstr_longlong
(
h
));
ok
(
uc
==
0
,
"Got unsigned char %u.
\n
"
,
uc
);
ok
(
us
==
456
,
"Got unsigned short %u.
\n
"
,
us
);
ok
(
u
i
==
0xdeadbeef
,
"Got unsigned int %i.
\n
"
,
ui
);
ok
(
u
l
==
0xdeadbeef
,
"Got unsigned int %u.
\n
"
,
ul
);
ok
(
uh
==
(
ULONGLONG
)
1234567890
*
9876543210
,
"Got unsigned hyper %s.
\n
"
,
wine_dbgstr_longlong
(
uh
));
ok
(
f
==
(
float
)
M_PI
,
"Got float %f.
\n
"
,
f
);
ok
(
d
==
M_E
,
"Got double %f.
\n
"
,
d
);
...
...
@@ -1123,17 +1123,17 @@ static HRESULT WINAPI Widget_basetypes_in(IWidget *iface, signed char c, short s
return
S_OK
;
}
static
HRESULT
WINAPI
Widget_basetypes_out
(
IWidget
*
iface
,
signed
char
*
c
,
short
*
s
,
int
*
i
,
hyper
*
h
,
unsigned
char
*
uc
,
unsigned
short
*
us
,
unsigned
int
*
ui
,
MIDL_uhyper
*
uh
,
static
HRESULT
WINAPI
Widget_basetypes_out
(
IWidget
*
iface
,
signed
char
*
c
,
short
*
s
,
LONG
*
l
,
hyper
*
h
,
unsigned
char
*
uc
,
unsigned
short
*
us
,
ULONG
*
ul
,
MIDL_uhyper
*
uh
,
float
*
f
,
double
*
d
,
STATE
*
st
)
{
*
c
=
10
;
*
s
=
-
321
;
*
i
=
-
200000
;
*
l
=
-
200000
;
*
h
=
(
LONGLONG
)
-
200000
*
1000000
;
*
uc
=
254
;
*
us
=
256
;
*
u
i
=
0xf00dfade
;
*
u
l
=
0xf00dfade
;
*
uh
=
(((
ULONGLONG
)
0xabcdef01
)
<<
32
)
|
(
ULONGLONG
)
0x23456789
;
*
f
=
M_LN2
;
*
d
=
M_LN10
;
...
...
@@ -1153,7 +1153,7 @@ static HRESULT WINAPI Widget_float_abi(IWidget *iface, float f, double d, int i,
return
S_OK
;
}
static
HRESULT
WINAPI
Widget_
int_ptr
(
IWidget
*
iface
,
int
*
in
,
int
*
out
,
int
*
in_out
)
static
HRESULT
WINAPI
Widget_
long_ptr
(
IWidget
*
iface
,
LONG
*
in
,
LONG
*
out
,
LONG
*
in_out
)
{
ok
(
*
in
==
123
,
"Got [in] %d.
\n
"
,
*
in
);
if
(
testmode
==
0
)
/* Invoke() */
...
...
@@ -1169,7 +1169,7 @@ static HRESULT WINAPI Widget_int_ptr(IWidget *iface, int *in, int *out, int *in_
return
S_OK
;
}
static
HRESULT
WINAPI
Widget_
int_ptr_ptr
(
IWidget
*
iface
,
int
**
in
,
int
**
out
,
int
**
in_out
)
static
HRESULT
WINAPI
Widget_
long_ptr_ptr
(
IWidget
*
iface
,
LONG
**
in
,
LONG
**
out
,
LONG
**
in_out
)
{
ok
(
!*
out
,
"Got [out] %p.
\n
"
,
*
out
);
if
(
testmode
==
0
)
...
...
@@ -1637,8 +1637,8 @@ static const struct IWidgetVtbl Widget_VTable =
Widget_basetypes_in
,
Widget_basetypes_out
,
Widget_float_abi
,
Widget_
int
_ptr
,
Widget_
int
_ptr_ptr
,
Widget_
long
_ptr
,
Widget_
long
_ptr_ptr
,
Widget_iface_in
,
Widget_iface_out
,
Widget_iface_ptr
,
...
...
@@ -1980,11 +1980,12 @@ static void test_marshal_basetypes(IWidget *widget, IDispatch *disp)
signed
char
c
;
short
s
;
LONG
l
;
int
i
,
i2
,
*
pi
;
hyper
h
;
unsigned
char
uc
;
unsigned
short
us
;
unsigned
int
ui
;
ULONG
ul
;
MIDL_uhyper
uh
;
float
f
;
double
d
;
...
...
@@ -2009,46 +2010,46 @@ static void test_marshal_basetypes(IWidget *widget, IDispatch *disp)
0xdeadbeef
,
(
ULONGLONG
)
1234567890
*
9876543210
,
M_PI
,
M_E
,
STATE_WIDGETIFIED
);
ok
(
hr
==
S_OK
,
"Got hr %#x.
\n
"
,
hr
);
c
=
s
=
i
=
h
=
uc
=
us
=
ui
=
uh
=
f
=
d
=
st
=
0
;
c
=
s
=
l
=
h
=
uc
=
us
=
ul
=
uh
=
f
=
d
=
st
=
0
;
V_VT
(
&
arg
[
10
])
=
VT_BYREF
|
VT_I1
;
V_I1REF
(
&
arg
[
10
])
=
&
c
;
V_VT
(
&
arg
[
9
])
=
VT_BYREF
|
VT_I2
;
V_I2REF
(
&
arg
[
9
])
=
&
s
;
V_VT
(
&
arg
[
8
])
=
VT_BYREF
|
VT_I4
;
V_I4REF
(
&
arg
[
8
])
=
&
i
;
V_VT
(
&
arg
[
8
])
=
VT_BYREF
|
VT_I4
;
V_I4REF
(
&
arg
[
8
])
=
&
l
;
V_VT
(
&
arg
[
7
])
=
VT_BYREF
|
VT_I8
;
V_I8REF
(
&
arg
[
7
])
=
&
h
;
V_VT
(
&
arg
[
6
])
=
VT_BYREF
|
VT_UI1
;
V_UI1REF
(
&
arg
[
6
])
=
&
uc
;
V_VT
(
&
arg
[
5
])
=
VT_BYREF
|
VT_UI2
;
V_UI2REF
(
&
arg
[
5
])
=
&
us
;
V_VT
(
&
arg
[
4
])
=
VT_BYREF
|
VT_UI4
;
V_UI4REF
(
&
arg
[
4
])
=
&
u
i
;
V_VT
(
&
arg
[
4
])
=
VT_BYREF
|
VT_UI4
;
V_UI4REF
(
&
arg
[
4
])
=
&
u
l
;
V_VT
(
&
arg
[
3
])
=
VT_BYREF
|
VT_UI8
;
V_UI8REF
(
&
arg
[
3
])
=
&
uh
;
V_VT
(
&
arg
[
2
])
=
VT_BYREF
|
VT_R4
;
V_R4REF
(
&
arg
[
2
])
=
&
f
;
V_VT
(
&
arg
[
1
])
=
VT_BYREF
|
VT_R8
;
V_R8REF
(
&
arg
[
1
])
=
&
d
;
V_VT
(
&
arg
[
0
])
=
VT_BYREF
|
VT_I4
;
V_I4REF
(
&
arg
[
0
])
=
(
int
*
)
&
st
;
V_VT
(
&
arg
[
0
])
=
VT_BYREF
|
VT_I4
;
V_I4REF
(
&
arg
[
0
])
=
(
LONG
*
)
&
st
;
hr
=
IDispatch_Invoke
(
disp
,
DISPID_TM_BASETYPES_OUT
,
&
IID_NULL
,
LOCALE_NEUTRAL
,
DISPATCH_METHOD
,
&
dispparams
,
NULL
,
NULL
,
NULL
);
ok
(
hr
==
S_OK
,
"Got hr %#x.
\n
"
,
hr
);
ok
(
c
==
10
,
"Got char %d.
\n
"
,
c
);
ok
(
s
==
-
321
,
"Got short %d.
\n
"
,
s
);
ok
(
i
==
-
200000
,
"Got int %d.
\n
"
,
i
);
ok
(
l
==
-
200000
,
"Got int %d.
\n
"
,
l
);
ok
(
h
==
(
LONGLONG
)
-
200000
*
1000000L
,
"Got hyper %s.
\n
"
,
wine_dbgstr_longlong
(
h
));
ok
(
uc
==
254
,
"Got unsigned char %u.
\n
"
,
uc
);
ok
(
us
==
256
,
"Got unsigned short %u.
\n
"
,
us
);
ok
(
u
i
==
0xf00dfade
,
"Got unsigned int %i.
\n
"
,
ui
);
ok
(
u
l
==
0xf00dfade
,
"Got unsigned int %i.
\n
"
,
ul
);
ok
(
uh
==
((((
ULONGLONG
)
0xabcdef01
)
<<
32
)
|
(
ULONGLONG
)
0x23456789
),
"Got unsigned hyper %s.
\n
"
,
wine_dbgstr_longlong
(
uh
));
ok
(
f
==
(
float
)
M_LN2
,
"Got float %f.
\n
"
,
f
);
ok
(
d
==
M_LN10
,
"Got double %f.
\n
"
,
d
);
ok
(
st
==
STATE_UNWIDGETIFIED
,
"Got state %u.
\n
"
,
st
);
c
=
s
=
i
=
h
=
uc
=
us
=
ui
=
uh
=
f
=
d
=
st
=
0
;
c
=
s
=
l
=
h
=
uc
=
us
=
ul
=
uh
=
f
=
d
=
st
=
0
;
hr
=
IWidget_basetypes_out
(
widget
,
&
c
,
&
s
,
&
i
,
&
h
,
&
uc
,
&
us
,
&
ui
,
&
uh
,
&
f
,
&
d
,
&
st
);
hr
=
IWidget_basetypes_out
(
widget
,
&
c
,
&
s
,
&
l
,
&
h
,
&
uc
,
&
us
,
&
ul
,
&
uh
,
&
f
,
&
d
,
&
st
);
ok
(
hr
==
S_OK
,
"Got hr %#x.
\n
"
,
hr
);
ok
(
c
==
10
,
"Got char %d.
\n
"
,
c
);
ok
(
s
==
-
321
,
"Got short %d.
\n
"
,
s
);
ok
(
i
==
-
200000
,
"Got int %d.
\n
"
,
i
);
ok
(
l
==
-
200000
,
"Got int %d.
\n
"
,
l
);
ok
(
h
==
(
LONGLONG
)
-
200000
*
1000000L
,
"Got hyper %s.
\n
"
,
wine_dbgstr_longlong
(
h
));
ok
(
uc
==
254
,
"Got unsigned char %u.
\n
"
,
uc
);
ok
(
us
==
256
,
"Got unsigned short %u.
\n
"
,
us
);
ok
(
u
i
==
0xf00dfade
,
"Got unsigned int %i.
\n
"
,
ui
);
ok
(
u
l
==
0xf00dfade
,
"Got unsigned int %i.
\n
"
,
ul
);
ok
(
uh
==
((((
ULONGLONG
)
0xabcdef01
)
<<
32
)
|
(
ULONGLONG
)
0x23456789
),
"Got unsigned hyper %s.
\n
"
,
wine_dbgstr_longlong
(
uh
));
ok
(
f
==
(
float
)
M_LN2
,
"Got float %f.
\n
"
,
f
);
...
...
@@ -2073,7 +2074,7 @@ static void test_marshal_pointer(IWidget *widget, IDispatch *disp)
{
VARIANTARG
arg
[
3
];
DISPPARAMS
dispparams
=
{
arg
,
NULL
,
ARRAY_SIZE
(
arg
),
0
};
int
in
,
out
,
in_out
,
*
in_ptr
,
*
out_ptr
,
*
in_out_ptr
;
LONG
in
,
out
,
in_out
,
*
in_ptr
,
*
out_ptr
,
*
in_out_ptr
;
HRESULT
hr
;
testmode
=
0
;
...
...
@@ -2096,26 +2097,26 @@ static void test_marshal_pointer(IWidget *widget, IDispatch *disp)
in
=
123
;
out
=
456
;
in_out
=
789
;
hr
=
IWidget_
int
_ptr
(
widget
,
&
in
,
&
out
,
&
in_out
);
hr
=
IWidget_
long
_ptr
(
widget
,
&
in
,
&
out
,
&
in_out
);
ok
(
hr
==
S_OK
,
"Got hr %#x.
\n
"
,
hr
);
ok
(
in
==
123
,
"Got [in] %d.
\n
"
,
in
);
ok
(
out
==
654
,
"Got [out] %d.
\n
"
,
out
);
ok
(
in_out
==
321
,
"Got [in, out] %d.
\n
"
,
in_out
);
out
=
in_out
=
-
1
;
hr
=
IWidget_
int
_ptr
(
widget
,
NULL
,
&
out
,
&
in_out
);
hr
=
IWidget_
long
_ptr
(
widget
,
NULL
,
&
out
,
&
in_out
);
ok
(
hr
==
HRESULT_FROM_WIN32
(
RPC_X_NULL_REF_POINTER
),
"Got hr %#x.
\n
"
,
hr
);
ok
(
!
out
,
"[out] parameter should have been cleared.
\n
"
);
ok
(
in_out
==
-
1
,
"[in, out] parameter should not have been cleared.
\n
"
);
in
=
in_out
=
-
1
;
hr
=
IWidget_
int
_ptr
(
widget
,
&
in
,
NULL
,
&
in_out
);
hr
=
IWidget_
long
_ptr
(
widget
,
&
in
,
NULL
,
&
in_out
);
ok
(
hr
==
HRESULT_FROM_WIN32
(
RPC_X_NULL_REF_POINTER
),
"Got hr %#x.
\n
"
,
hr
);
ok
(
in
==
-
1
,
"[in] parameter should not have been cleared.
\n
"
);
ok
(
in_out
==
-
1
,
"[in, out] parameter should not have been cleared.
\n
"
);
in
=
out
=
-
1
;
hr
=
IWidget_
int
_ptr
(
widget
,
&
in
,
&
out
,
NULL
);
hr
=
IWidget_
long
_ptr
(
widget
,
&
in
,
&
out
,
NULL
);
ok
(
hr
==
HRESULT_FROM_WIN32
(
RPC_X_NULL_REF_POINTER
),
"Got hr %#x.
\n
"
,
hr
);
ok
(
in
==
-
1
,
"[in] parameter should not have been cleared.
\n
"
);
ok
(
!
out
,
"[out] parameter should have been cleared.
\n
"
);
...
...
@@ -2125,14 +2126,14 @@ static void test_marshal_pointer(IWidget *widget, IDispatch *disp)
testmode
=
0
;
in_ptr
=
out_ptr
=
in_out_ptr
=
NULL
;
hr
=
IWidget_
int
_ptr_ptr
(
widget
,
&
in_ptr
,
&
out_ptr
,
&
in_out_ptr
);
hr
=
IWidget_
long
_ptr_ptr
(
widget
,
&
in_ptr
,
&
out_ptr
,
&
in_out_ptr
);
ok
(
hr
==
S_OK
,
"Got hr %#x
\n
"
,
hr
);
ok
(
!
in_ptr
,
"Got [in] %p.
\n
"
,
in_ptr
);
ok
(
!
out_ptr
,
"Got [out] %p.
\n
"
,
out_ptr
);
ok
(
!
in_out_ptr
,
"Got [in, out] %p.
\n
"
,
in_out_ptr
);
testmode
=
1
;
hr
=
IWidget_
int
_ptr_ptr
(
widget
,
&
in_ptr
,
&
out_ptr
,
&
in_out_ptr
);
hr
=
IWidget_
long
_ptr_ptr
(
widget
,
&
in_ptr
,
&
out_ptr
,
&
in_out_ptr
);
ok
(
hr
==
S_OK
,
"Got hr %#x
\n
"
,
hr
);
ok
(
*
out_ptr
==
654
,
"Got [out] %d.
\n
"
,
*
out_ptr
);
ok
(
*
in_out_ptr
==
321
,
"Got [in, out] %d.
\n
"
,
*
in_out_ptr
);
...
...
@@ -2146,7 +2147,7 @@ static void test_marshal_pointer(IWidget *widget, IDispatch *disp)
in_ptr
=
&
in
;
out_ptr
=
&
out
;
in_out_ptr
=
&
in_out
;
hr
=
IWidget_
int
_ptr_ptr
(
widget
,
&
in_ptr
,
&
out_ptr
,
&
in_out_ptr
);
hr
=
IWidget_
long
_ptr_ptr
(
widget
,
&
in_ptr
,
&
out_ptr
,
&
in_out_ptr
);
ok
(
hr
==
S_OK
,
"Got hr %#x.
\n
"
,
hr
);
ok
(
out_ptr
!=
&
out
,
"[out] ptr should have changed.
\n
"
);
ok
(
in_out_ptr
==
&
in_out
,
"[in, out] ptr should not have changed.
\n
"
);
...
...
@@ -2157,27 +2158,27 @@ static void test_marshal_pointer(IWidget *widget, IDispatch *disp)
in_ptr
=
out_ptr
=
NULL
;
in_out
=
789
;
in_out_ptr
=
&
in_out
;
hr
=
IWidget_
int
_ptr_ptr
(
widget
,
&
in_ptr
,
&
out_ptr
,
&
in_out_ptr
);
hr
=
IWidget_
long
_ptr_ptr
(
widget
,
&
in_ptr
,
&
out_ptr
,
&
in_out_ptr
);
ok
(
hr
==
S_OK
,
"Got hr %#x.
\n
"
,
hr
);
ok
(
!
in_out_ptr
,
"Got [in, out] %p.
\n
"
,
in_out_ptr
);
out_ptr
=
&
out
;
in_out_ptr
=
&
in_out
;
hr
=
IWidget_
int
_ptr_ptr
(
widget
,
NULL
,
&
out_ptr
,
&
in_out_ptr
);
hr
=
IWidget_
long
_ptr_ptr
(
widget
,
NULL
,
&
out_ptr
,
&
in_out_ptr
);
ok
(
hr
==
HRESULT_FROM_WIN32
(
RPC_X_NULL_REF_POINTER
),
"Got hr %#x.
\n
"
,
hr
);
ok
(
!
out_ptr
,
"[out] parameter should have been cleared.
\n
"
);
ok
(
in_out_ptr
==
&
in_out
,
"[in, out] parameter should not have been cleared.
\n
"
);
in_ptr
=
&
in
;
in_out_ptr
=
&
in_out
;
hr
=
IWidget_
int
_ptr_ptr
(
widget
,
&
in_ptr
,
NULL
,
&
in_out_ptr
);
hr
=
IWidget_
long
_ptr_ptr
(
widget
,
&
in_ptr
,
NULL
,
&
in_out_ptr
);
ok
(
hr
==
HRESULT_FROM_WIN32
(
RPC_X_NULL_REF_POINTER
),
"Got hr %#x.
\n
"
,
hr
);
ok
(
in_ptr
==
&
in
,
"[in] parameter should not have been cleared.
\n
"
);
ok
(
in_out_ptr
==
&
in_out
,
"[in, out] parameter should not have been cleared.
\n
"
);
in_ptr
=
&
in
;
out_ptr
=
&
out
;
hr
=
IWidget_
int
_ptr_ptr
(
widget
,
&
in_ptr
,
&
out_ptr
,
NULL
);
hr
=
IWidget_
long
_ptr_ptr
(
widget
,
&
in_ptr
,
&
out_ptr
,
NULL
);
ok
(
hr
==
HRESULT_FROM_WIN32
(
RPC_X_NULL_REF_POINTER
),
"Got hr %#x.
\n
"
,
hr
);
ok
(
in_ptr
==
&
in
,
"[in] parameter should not have been cleared.
\n
"
);
ok
(
!
out_ptr
,
"[out] parameter should have been cleared.
\n
"
);
...
...
@@ -2634,7 +2635,7 @@ static void test_marshal_array(IWidget *widget, IDispatch *disp)
array_t
in
,
out
,
in_out
;
MYSTRUCT
struct_in
[
2
];
HRESULT
hr
;
int
i
=
2
;
LONG
l
=
2
;
memcpy
(
in
,
test_array1
,
sizeof
(
array_t
));
memcpy
(
out
,
test_array2
,
sizeof
(
array_t
));
...
...
@@ -2646,7 +2647,7 @@ static void test_marshal_array(IWidget *widget, IDispatch *disp)
ok
(
!
memcmp
(
&
in_out
,
&
test_array6
,
sizeof
(
array_t
)),
"Arrays didn't match.
\n
"
);
V_VT
(
&
var_in
[
0
])
=
VT_I4
;
V_I4
(
&
var_in
[
0
])
=
1
;
V_VT
(
&
var_in
[
1
])
=
VT_BYREF
|
VT_I4
;
V_I4REF
(
&
var_in
[
1
])
=
&
i
;
V_VT
(
&
var_in
[
1
])
=
VT_BYREF
|
VT_I4
;
V_I4REF
(
&
var_in
[
1
])
=
&
l
;
V_VT
(
&
var_out
[
0
])
=
VT_I4
;
V_I4
(
&
var_out
[
0
])
=
3
;
V_VT
(
&
var_out
[
1
])
=
VT_I4
;
V_I4
(
&
var_out
[
1
])
=
4
;
V_VT
(
&
var_in_out
[
0
])
=
VT_I4
;
V_I4
(
&
var_in_out
[
0
])
=
5
;
...
...
@@ -2656,8 +2657,8 @@ static void test_marshal_array(IWidget *widget, IDispatch *disp)
ok
(
V_VT
(
&
var_in
[
0
])
==
VT_I4
,
"Got wrong type %u.
\n
"
,
V_VT
(
&
var_in
[
0
]));
ok
(
V_I4
(
&
var_in
[
0
])
==
1
,
"Got wrong value %d.
\n
"
,
V_I4
(
&
var_in
[
0
]));
ok
(
V_VT
(
&
var_in
[
1
])
==
(
VT_BYREF
|
VT_I4
),
"Got wrong type %u.
\n
"
,
V_VT
(
&
var_in
[
1
]));
ok
(
V_I4REF
(
&
var_in
[
1
])
==
&
i
,
"Got wrong value %p.
\n
"
,
V_I4REF
(
&
var_in
[
1
]));
ok
(
i
==
2
,
"Got wrong value %d.
\n
"
,
i
);
ok
(
V_I4REF
(
&
var_in
[
1
])
==
&
l
,
"Got wrong value %p.
\n
"
,
V_I4REF
(
&
var_in
[
1
]));
ok
(
l
==
2
,
"Got wrong value %d.
\n
"
,
l
);
ok
(
V_VT
(
&
var_out
[
0
])
==
VT_I1
,
"Got wrong type %u.
\n
"
,
V_VT
(
&
var_out
[
0
]));
ok
(
V_I1
(
&
var_out
[
0
])
==
9
,
"Got wrong value %u.
\n
"
,
V_VT
(
&
var_out
[
0
]));
ok
(
V_VT
(
&
var_out
[
1
])
==
VT_BSTR
,
"Got wrong type %u.
\n
"
,
V_VT
(
&
var_out
[
1
]));
...
...
@@ -3054,7 +3055,7 @@ static void test_typelibmarshal(void)
the_state
=
STATE_WIDGETIFIED
;
VariantInit
(
&
vararg
[
0
]);
V_VT
(
&
vararg
[
0
])
=
VT_BYREF
|
VT_I4
;
V_I4REF
(
&
vararg
[
0
])
=
(
int
*
)
&
the_state
;
V_I4REF
(
&
vararg
[
0
])
=
(
LONG
*
)
&
the_state
;
dispparams
.
cNamedArgs
=
1
;
dispparams
.
cArgs
=
1
;
dispparams
.
rgdispidNamedArgs
=
&
dispidNamed
;
...
...
@@ -3416,7 +3417,7 @@ static void test_typelibmarshal(void)
uval
=
666
;
VariantInit
(
&
vararg
[
0
]);
V_VT
(
&
vararg
[
0
])
=
VT_UI4
|
VT_BYREF
;
V_UI4REF
(
&
vararg
[
0
])
=
&
uval
;
V_UI4REF
(
&
vararg
[
0
])
=
(
ULONG
*
)
&
uval
;
dispparams
.
cNamedArgs
=
0
;
dispparams
.
cArgs
=
1
;
dispparams
.
rgvarg
=
vararg
;
...
...
@@ -3425,7 +3426,7 @@ static void test_typelibmarshal(void)
ok_ole_success
(
hr
,
ITypeInfo_Invoke
);
ok
(
V_VT
(
&
varresult
)
==
VT_EMPTY
,
"varresult should be VT_EMPTY
\n
"
);
ok
(
V_VT
(
&
vararg
[
0
])
==
(
VT_UI4
|
VT_BYREF
),
"arg VT not unmarshalled correctly: %x
\n
"
,
V_VT
(
&
vararg
[
0
]));
ok
(
V_UI4REF
(
&
vararg
[
0
])
==
&
uval
,
"Byref pointer not preserved: %p/%p
\n
"
,
&
uval
,
V_UI4REF
(
&
vararg
[
0
]));
ok
(
V_UI4REF
(
&
vararg
[
0
])
==
(
ULONG
*
)
&
uval
,
"Byref pointer not preserved: %p/%p
\n
"
,
&
uval
,
V_UI4REF
(
&
vararg
[
0
]));
ok
(
*
V_UI4REF
(
&
vararg
[
0
])
==
42
,
"Expected 42 to be returned instead of %u
\n
"
,
*
V_UI4REF
(
&
vararg
[
0
]));
VariantClear
(
&
varresult
);
VariantClear
(
&
vararg
[
0
]);
...
...
dlls/oleaut32/tests/tmarshal.idl
View file @
91475415
...
...
@@ -291,23 +291,23 @@ cpp_quote("struct Coclass3 { ICoclass1 *iface; };")
HRESULT
VarArg_Ref_Run
(
[
in
]
BSTR
name
,
[
in
]
SAFEARRAY
(
VARIANT
)
*
params
,
[
out
,
retval
]
VARIANT
*
result
)
;
[
id
(
DISPID_TM_BASETYPES_IN
)
]
HRESULT
basetypes_in
(
[
in
]
signed
char
c
,
[
in
]
short
s
,
[
in
]
int
i
,
[
in
]
hyper
h
,
[
in
]
unsigned
char
uc
,
[
in
]
unsigned
short
us
,
[
in
]
unsigned
int
ui
,
HRESULT
basetypes_in
(
[
in
]
signed
char
c
,
[
in
]
short
s
,
[
in
]
long
l
,
[
in
]
hyper
h
,
[
in
]
unsigned
char
uc
,
[
in
]
unsigned
short
us
,
[
in
]
unsigned
long
ul
,
[
in
]
unsigned
hyper
uh
,
[
in
]
float
f
,
[
in
]
double
d
,
[
in
]
STATE
st
)
;
[
id
(
DISPID_TM_BASETYPES_OUT
)
]
HRESULT
basetypes_out
(
[
out
]
signed
char
*
c
,
[
out
]
short
*
s
,
[
out
]
int
*
i
,
[
out
]
hyper
*
h
,
[
out
]
unsigned
char
*
uc
,
[
out
]
unsigned
short
*
us
,
[
out
]
unsigned
int
*
ui
,
HRESULT
basetypes_out
(
[
out
]
signed
char
*
c
,
[
out
]
short
*
s
,
[
out
]
long
*
l
,
[
out
]
hyper
*
h
,
[
out
]
unsigned
char
*
uc
,
[
out
]
unsigned
short
*
us
,
[
out
]
unsigned
long
*
ul
,
[
out
]
unsigned
hyper
*
uh
,
[
out
]
float
*
f
,
[
out
]
double
*
d
,
[
out
]
STATE
*
st
)
;
[
id
(
DISPID_TM_FLOAT_ABI
)
]
HRESULT
float_abi
(
[
in
]
float
f
,
[
in
]
double
d
,
[
in
]
int
i
,
[
in
]
float
f2
,
[
in
]
double
d2
)
;
[
id
(
DISPID_TM_INT_PTR
)
]
HRESULT
int_ptr
(
[
in
]
int
*
in
,
[
out
]
int
*
out
,
[
in
,
out
]
int
*
in_out
)
;
HRESULT
long_ptr
(
[
in
]
long
*
in
,
[
out
]
long
*
out
,
[
in
,
out
]
long
*
in_out
)
;
[
id
(
DISPID_TM_INT_PTR_PTR
)
]
HRESULT
int_ptr_ptr
(
[
in
]
int
**
in
,
[
out
]
int
**
out
,
[
in
,
out
]
int
**
in_out
)
;
HRESULT
long_ptr_ptr
(
[
in
]
long
**
in
,
[
out
]
long
**
out
,
[
in
,
out
]
long
**
in_out
)
;
[
id
(
DISPID_TM_IFACE_IN
)
]
HRESULT
iface_in
(
[
in
]
IUnknown
*
unk
,
[
in
]
IDispatch
*
disp
,
[
in
]
ISomethingFromDispatch
*
sfd
)
;
...
...
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