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
86d9457c
Commit
86d9457c
authored
May 10, 2006
by
Huw Davies
Committed by
Alexandre Julliard
May 10, 2006
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
oleaut32: Support VT_SAFEARRAY in the typelib marshaler.
Based on a patch by Rob Shearman.
parent
d0bdf685
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
22 additions
and
0 deletions
+22
-0
tmarshal.c
dlls/oleaut32/tmarshal.c
+22
-0
No files found.
dlls/oleaut32/tmarshal.c
View file @
86d9457c
...
...
@@ -42,6 +42,7 @@
#include "winuser.h"
#include "ole2.h"
#include "propidl.h"
/* for LPSAFEARRAY_User* functions */
#include "typelib.h"
#include "variant.h"
#include "wine/debug.h"
...
...
@@ -802,6 +803,17 @@ serialize_param(
if
(
debugout
)
TRACE_
(
olerelay
)(
"]"
);
return
S_OK
;
}
case
VT_SAFEARRAY
:
{
if
(
writeit
)
{
unsigned
long
flags
=
MAKELONG
(
MSHCTX_DIFFERENTMACHINE
,
NDR_LOCAL_DATA_REPRESENTATION
);
unsigned
long
size
=
LPSAFEARRAY_UserSize
(
&
flags
,
buf
->
curoff
,
(
LPSAFEARRAY
*
)
arg
);
xbuf_resize
(
buf
,
size
);
LPSAFEARRAY_UserMarshal
(
&
flags
,
buf
->
base
+
buf
->
curoff
,
(
LPSAFEARRAY
*
)
arg
);
buf
->
curoff
=
size
;
}
return
S_OK
;
}
default:
ERR
(
"Unhandled marshal type %d.
\n
"
,
tdesc
->
vt
);
return
S_OK
;
...
...
@@ -1131,6 +1143,16 @@ deserialize_param(
);
return
S_OK
;
}
case
VT_SAFEARRAY
:
{
if
(
readit
)
{
unsigned
long
flags
=
MAKELONG
(
MSHCTX_DIFFERENTMACHINE
,
NDR_LOCAL_DATA_REPRESENTATION
);
unsigned
char
*
buffer
;
buffer
=
LPSAFEARRAY_UserUnmarshal
(
&
flags
,
buf
->
base
+
buf
->
curoff
,
(
LPSAFEARRAY
*
)
arg
);
buf
->
curoff
=
buffer
-
buf
->
base
;
}
return
S_OK
;
}
default:
ERR
(
"No handler for VT type %d!
\n
"
,
tdesc
->
vt
);
return
S_OK
;
...
...
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