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
3b15bbfd
Commit
3b15bbfd
authored
May 14, 2009
by
Huw Davies
Committed by
Alexandre Julliard
May 18, 2009
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ole32: Implement TYMED_ISTREAM marshalling.
parent
10919f7f
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
9 additions
and
8 deletions
+9
-8
usrmarshal.c
dlls/ole32/tests/usrmarshal.c
+0
-5
usrmarshal.c
dlls/ole32/usrmarshal.c
+9
-3
No files found.
dlls/ole32/tests/usrmarshal.c
View file @
3b15bbfd
...
...
@@ -701,20 +701,16 @@ static void test_marshal_STGMEDIUM(void)
init_user_marshal_cb
(
&
umcb
,
&
stub_msg
,
&
rpc_msg
,
NULL
,
0
,
MSHCTX_DIFFERENTMACHINE
);
size
=
STGMEDIUM_UserSize
(
&
umcb
.
Flags
,
0
,
&
med
);
todo_wine
ok
(
size
==
stm_size
+
unk_size
+
3
*
sizeof
(
DWORD
),
"size %d should be %d bytes
\n
"
,
size
,
stm_size
+
unk_size
+
3
*
sizeof
(
DWORD
));
buffer
=
HeapAlloc
(
GetProcessHeap
(),
0
,
size
);
init_user_marshal_cb
(
&
umcb
,
&
stub_msg
,
&
rpc_msg
,
buffer
,
size
,
MSHCTX_DIFFERENTMACHINE
);
buffer_end
=
STGMEDIUM_UserMarshal
(
&
umcb
.
Flags
,
buffer
,
&
med
);
todo_wine
ok
(
buffer_end
-
buffer
-
3
*
sizeof
(
DWORD
)
==
(
unk_buffer_end
-
unk_buffer
)
+
(
stm_buffer_end
-
stm_buffer
),
"buffer size mismatch
\n
"
);
ok
(
*
(
DWORD
*
)
buffer
==
TYMED_ISTREAM
,
"got %08x
\n
"
,
*
(
DWORD
*
)
buffer
);
ok
(
*
((
DWORD
*
)
buffer
+
1
)
!=
0
,
"got %08x
\n
"
,
*
((
DWORD
*
)
buffer
+
1
));
ok
(
*
((
DWORD
*
)
buffer
+
2
)
!=
0
,
"got %08x
\n
"
,
*
((
DWORD
*
)
buffer
+
2
));
todo_wine
ok
(
!
memcmp
(
buffer
+
12
,
stm_buffer
,
stm_buffer_end
-
stm_buffer
),
"buffer mismatch
\n
"
);
todo_wine
ok
(
!
memcmp
(
buffer
+
12
+
(
stm_buffer_end
-
stm_buffer
),
unk_buffer
,
unk_buffer_end
-
unk_buffer
),
"buffer mismatch
\n
"
);
init_user_marshal_cb
(
&
umcb
,
&
stub_msg
,
&
rpc_msg
,
buffer
,
size
,
MSHCTX_DIFFERENTMACHINE
);
...
...
@@ -728,7 +724,6 @@ static void test_marshal_STGMEDIUM(void)
STGMEDIUM_UserUnmarshal
(
&
umcb
.
Flags
,
buffer
,
&
med2
);
ok
(
med2
.
tymed
==
TYMED_ISTREAM
,
"got tymed %x
\n
"
,
med2
.
tymed
);
todo_wine
ok
(
U
(
med2
).
pstm
!=
NULL
,
"Incorrectly unmarshalled
\n
"
);
ok
(
med2
.
pUnkForRelease
!=
NULL
,
"Incorrectly unmarshalled
\n
"
);
...
...
dlls/ole32/usrmarshal.c
View file @
3b15bbfd
...
...
@@ -1776,7 +1776,10 @@ ULONG __RPC_USER STGMEDIUM_UserSize(ULONG *pFlags, ULONG StartingSize, STGMEDIUM
TRACE
(
"TYMED_ISTREAM
\n
"
);
if
(
pStgMedium
->
u
.
pstm
)
{
FIXME
(
"not implemented for IStream %p
\n
"
,
pStgMedium
->
u
.
pstm
);
IUnknown
*
unk
;
IStream_QueryInterface
(
pStgMedium
->
u
.
pstm
,
&
IID_IUnknown
,
(
void
**
)
&
unk
);
size
=
WdtpInterfacePointer_UserSize
(
pFlags
,
LOWORD
(
*
pFlags
),
size
,
unk
,
&
IID_IStream
);
IUnknown_Release
(
unk
);
}
break
;
case
TYMED_ISTORAGE
:
...
...
@@ -1882,7 +1885,10 @@ unsigned char * __RPC_USER STGMEDIUM_UserMarshal(ULONG *pFlags, unsigned char *p
TRACE
(
"TYMED_ISTREAM
\n
"
);
if
(
pStgMedium
->
u
.
pstm
)
{
FIXME
(
"not implemented for IStream %p
\n
"
,
pStgMedium
->
u
.
pstm
);
IUnknown
*
unk
;
IStream_QueryInterface
(
pStgMedium
->
u
.
pstm
,
&
IID_IUnknown
,
(
void
**
)
&
unk
);
pBuffer
=
WdtpInterfacePointer_UserMarshal
(
pFlags
,
LOWORD
(
*
pFlags
),
pBuffer
,
unk
,
&
IID_IStream
);
IUnknown_Release
(
unk
);
}
break
;
case
TYMED_ISTORAGE
:
...
...
@@ -2010,7 +2016,7 @@ unsigned char * __RPC_USER STGMEDIUM_UserUnmarshal(ULONG *pFlags, unsigned char
TRACE
(
"TYMED_ISTREAM
\n
"
);
if
(
content
)
{
FIXME
(
"not implemented for IStream
\n
"
);
pBuffer
=
WdtpInterfacePointer_UserUnmarshal
(
pFlags
,
pBuffer
,
(
IUnknown
**
)
&
pStgMedium
->
u
.
pstm
,
&
IID_IStream
);
}
else
pStgMedium
->
u
.
pstm
=
NULL
;
...
...
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