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
90722418
Commit
90722418
authored
Nov 13, 2017
by
Jacek Caban
Committed by
Alexandre Julliard
Nov 14, 2017
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
urlmon: Added user marshaling implementation for GetBindInfo[Ex].
Signed-off-by:
Jacek Caban
<
jacek@codeweavers.com
>
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
185b235d
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
99 additions
and
14 deletions
+99
-14
usrmarshal.c
dlls/urlmon/usrmarshal.c
+99
-14
No files found.
dlls/urlmon/usrmarshal.c
View file @
90722418
...
@@ -195,35 +195,120 @@ static HRESULT unmarshal_stgmed(RemSTGMEDIUM *rem_stgmed, STGMEDIUM *stgmed)
...
@@ -195,35 +195,120 @@ static HRESULT unmarshal_stgmed(RemSTGMEDIUM *rem_stgmed, STGMEDIUM *stgmed)
return
hres
;
return
hres
;
}
}
static
void
proxy_marshal_bindinfo
(
BINDINFO
*
bindinfo
,
RemBINDINFO
*
rem_bindinfo
)
{
rem_bindinfo
->
szExtraInfo
=
bindinfo
->
szExtraInfo
;
rem_bindinfo
->
grfBindInfoF
=
bindinfo
->
grfBindInfoF
;
rem_bindinfo
->
dwBindVerb
=
bindinfo
->
dwBindVerb
;
rem_bindinfo
->
szCustomVerb
=
bindinfo
->
szCustomVerb
;
rem_bindinfo
->
cbstgmedData
=
bindinfo
->
cbstgmedData
;
}
static
void
proxy_unmarshal_bindinfo
(
RemBINDINFO
*
rem_bindinfo
,
BINDINFO
*
bindinfo
)
{
bindinfo
->
szExtraInfo
=
rem_bindinfo
->
szExtraInfo
;
bindinfo
->
grfBindInfoF
=
rem_bindinfo
->
grfBindInfoF
;
bindinfo
->
dwBindVerb
=
rem_bindinfo
->
dwBindVerb
;
bindinfo
->
szCustomVerb
=
rem_bindinfo
->
szCustomVerb
;
bindinfo
->
cbstgmedData
=
rem_bindinfo
->
cbstgmedData
;
bindinfo
->
dwOptions
=
rem_bindinfo
->
dwOptions
;
bindinfo
->
dwOptionsFlags
=
rem_bindinfo
->
dwOptionsFlags
;
bindinfo
->
dwCodePage
=
rem_bindinfo
->
dwCodePage
;
bindinfo
->
iid
=
IID_NULL
;
bindinfo
->
pUnk
=
NULL
;
}
static
void
stub_unmarshal_bindinfo
(
RemBINDINFO
*
rem_bindinfo
,
BINDINFO
*
bindinfo
)
{
bindinfo
->
szExtraInfo
=
rem_bindinfo
->
szExtraInfo
;
bindinfo
->
grfBindInfoF
=
rem_bindinfo
->
grfBindInfoF
;
bindinfo
->
dwBindVerb
=
rem_bindinfo
->
dwBindVerb
;
bindinfo
->
szCustomVerb
=
rem_bindinfo
->
szCustomVerb
;
bindinfo
->
cbstgmedData
=
rem_bindinfo
->
cbstgmedData
;
if
(
bindinfo
->
stgmedData
.
tymed
!=
TYMED_NULL
)
WARN
(
"stgmed data (tymed %u) will be lost!
\n
"
,
bindinfo
->
stgmedData
.
tymed
);
}
static
void
stub_marshal_bindinfo
(
BINDINFO
*
bindinfo
,
RemBINDINFO
*
rem_bindinfo
)
{
rem_bindinfo
->
cbSize
=
sizeof
(
*
rem_bindinfo
);
rem_bindinfo
->
szExtraInfo
=
bindinfo
->
szExtraInfo
;
rem_bindinfo
->
grfBindInfoF
=
bindinfo
->
grfBindInfoF
;
rem_bindinfo
->
dwBindVerb
=
bindinfo
->
dwBindVerb
;
rem_bindinfo
->
szCustomVerb
=
bindinfo
->
szCustomVerb
;
rem_bindinfo
->
cbstgmedData
=
bindinfo
->
cbstgmedData
;
rem_bindinfo
->
dwOptions
=
bindinfo
->
dwOptions
;
rem_bindinfo
->
dwOptionsFlags
=
bindinfo
->
dwOptionsFlags
;
rem_bindinfo
->
dwCodePage
=
bindinfo
->
dwCodePage
;
rem_bindinfo
->
pUnk
=
NULL
;
rem_bindinfo
->
dwReserved
=
bindinfo
->
dwReserved
;
}
HRESULT
CALLBACK
IBindStatusCallbackEx_GetBindInfoEx_Proxy
(
HRESULT
CALLBACK
IBindStatusCallbackEx_GetBindInfoEx_Proxy
(
IBindStatusCallbackEx
*
This
,
DWORD
*
grfBINDF
,
BINDINFO
*
p
bindinfo
,
IBindStatusCallbackEx
*
This
,
DWORD
*
grfBINDF
,
BINDINFO
*
bindinfo
,
DWORD
*
grfBINDF2
,
DWORD
*
pdwReserved
)
DWORD
*
grfBINDF2
,
DWORD
*
pdwReserved
)
{
{
FIXME
(
"stub
\n
"
);
RemBINDINFO
rem_bindinfo
=
{
sizeof
(
rem_bindinfo
)};
return
E_NOTIMPL
;
RemSTGMEDIUM
rem_stgmed
=
{
0
};
HRESULT
hres
;
TRACE
(
"(%p)->(%p %p %p %p)
\n
"
,
This
,
grfBINDF
,
bindinfo
,
grfBINDF2
,
pdwReserved
);
proxy_marshal_bindinfo
(
bindinfo
,
&
rem_bindinfo
);
hres
=
IBindStatusCallbackEx_RemoteGetBindInfoEx_Proxy
(
This
,
grfBINDF
,
&
rem_bindinfo
,
&
rem_stgmed
,
grfBINDF2
,
pdwReserved
);
proxy_unmarshal_bindinfo
(
&
rem_bindinfo
,
bindinfo
);
return
hres
;
}
}
HRESULT
__RPC_STUB
IBindStatusCallbackEx_GetBindInfoEx_Stub
(
HRESULT
__RPC_STUB
IBindStatusCallbackEx_GetBindInfoEx_Stub
(
IBindStatusCallbackEx
*
This
,
DWORD
*
grfBINDF
,
RemBINDINFO
*
p
bindinfo
,
IBindStatusCallbackEx
*
This
,
DWORD
*
grfBINDF
,
RemBINDINFO
*
rem_
bindinfo
,
RemSTGMEDIUM
*
p
stgmed
,
DWORD
*
grfBINDF2
,
DWORD
*
pdwReserved
)
RemSTGMEDIUM
*
rem_
stgmed
,
DWORD
*
grfBINDF2
,
DWORD
*
pdwReserved
)
{
{
FIXME
(
"stub
\n
"
);
BINDINFO
bindinfo
=
{
sizeof
(
bindinfo
)};
return
E_NOTIMPL
;
HRESULT
hres
;
}
TRACE
(
"(%p)->(%p %p %p %p %p)
\n
"
,
This
,
grfBINDF
,
rem_bindinfo
,
rem_stgmed
,
grfBINDF2
,
pdwReserved
);
/*
* Although arguments suggest support for STGMEDIUM from BINDINFO, tests show
* that it's not supported and returned data is lost.
*/
stub_unmarshal_bindinfo
(
rem_bindinfo
,
&
bindinfo
);
hres
=
IBindStatusCallbackEx_GetBindInfoEx
(
This
,
grfBINDF
,
&
bindinfo
,
grfBINDF2
,
pdwReserved
);
stub_marshal_bindinfo
(
&
bindinfo
,
rem_bindinfo
);
return
hres
;
}
HRESULT
CALLBACK
IBindStatusCallback_GetBindInfo_Proxy
(
HRESULT
CALLBACK
IBindStatusCallback_GetBindInfo_Proxy
(
IBindStatusCallback
*
This
,
DWORD
*
grfBINDF
,
BINDINFO
*
p
bindinfo
)
IBindStatusCallback
*
This
,
DWORD
*
grfBINDF
,
BINDINFO
*
bindinfo
)
{
{
FIXME
(
"stub
\n
"
);
RemBINDINFO
rem_bindinfo
=
{
sizeof
(
rem_bindinfo
)};
return
E_NOTIMPL
;
RemSTGMEDIUM
rem_stgmed
=
{
0
};
HRESULT
hres
;
TRACE
(
"(%p)->(%p %p)
\n
"
,
This
,
grfBINDF
,
bindinfo
);
proxy_marshal_bindinfo
(
bindinfo
,
&
rem_bindinfo
);
hres
=
IBindStatusCallback_RemoteGetBindInfo_Proxy
(
This
,
grfBINDF
,
&
rem_bindinfo
,
&
rem_stgmed
);
proxy_unmarshal_bindinfo
(
&
rem_bindinfo
,
bindinfo
);
return
hres
;
}
}
HRESULT
__RPC_STUB
IBindStatusCallback_GetBindInfo_Stub
(
HRESULT
__RPC_STUB
IBindStatusCallback_GetBindInfo_Stub
(
IBindStatusCallback
*
This
,
DWORD
*
grfBINDF
,
IBindStatusCallback
*
This
,
DWORD
*
grfBINDF
,
RemBINDINFO
*
pbindinfo
,
RemSTGMEDIUM
*
p
stgmed
)
RemBINDINFO
*
rem_bindinfo
,
RemSTGMEDIUM
*
rem_
stgmed
)
{
{
FIXME
(
"stub
\n
"
);
BINDINFO
bindinfo
=
{
sizeof
(
bindinfo
)};
return
E_NOTIMPL
;
HRESULT
hres
;
TRACE
(
"(%p)->(%p %p %p)
\n
"
,
This
,
grfBINDF
,
rem_bindinfo
,
rem_stgmed
);
stub_unmarshal_bindinfo
(
rem_bindinfo
,
&
bindinfo
);
hres
=
IBindStatusCallback_GetBindInfo
(
This
,
grfBINDF
,
&
bindinfo
);
stub_marshal_bindinfo
(
&
bindinfo
,
rem_bindinfo
);
return
hres
;
}
}
HRESULT
CALLBACK
IBindStatusCallback_OnDataAvailable_Proxy
(
HRESULT
CALLBACK
IBindStatusCallback_OnDataAvailable_Proxy
(
...
...
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