ReactOS 0.4.17-dev-573-g8315b8c
usrmarshal.c File Reference
#include "urlmon_main.h"
#include "wine/debug.h"
Include dependency graph for usrmarshal.c:

Go to the source code of this file.

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (urlmon)
 
HRESULT CALLBACK IWinInetHttpInfo_QueryInfo_Proxy (IWinInetHttpInfo *This, DWORD dwOption, LPVOID pBuffer, DWORD *pcbBuf, DWORD *pdwFlags, DWORD *pdwReserved)
 
HRESULT __RPC_STUB IWinInetHttpInfo_QueryInfo_Stub (IWinInetHttpInfo *This, DWORD dwOption, BYTE *pBuffer, DWORD *pcbBuf, DWORD *pdwFlags, DWORD *pdwReserved)
 
HRESULT CALLBACK IWinInetInfo_QueryOption_Proxy (IWinInetInfo *This, DWORD dwOption, LPVOID pBuffer, DWORD *pcbBuf)
 
HRESULT __RPC_STUB IWinInetInfo_QueryOption_Stub (IWinInetInfo *This, DWORD dwOption, BYTE *pBuffer, DWORD *pcbBuf)
 
HRESULT CALLBACK IBindHost_MonikerBindToStorage_Proxy (IBindHost *This, IMoniker *moniker, IBindCtx *bc, IBindStatusCallback *bsc, REFIID riid, void **obj)
 
HRESULT __RPC_STUB IBindHost_MonikerBindToStorage_Stub (IBindHost *This, IMoniker *moniker, IBindCtx *bc, IBindStatusCallback *bsc, REFIID riid, IUnknown **obj)
 
HRESULT CALLBACK IBindHost_MonikerBindToObject_Proxy (IBindHost *This, IMoniker *moniker, IBindCtx *bc, IBindStatusCallback *bsc, REFIID riid, void **obj)
 
HRESULT __RPC_STUB IBindHost_MonikerBindToObject_Stub (IBindHost *This, IMoniker *moniker, IBindCtx *bc, IBindStatusCallback *bsc, REFIID riid, IUnknown **obj)
 
static HRESULT marshal_stgmed (STGMEDIUM *stgmed, RemSTGMEDIUM **ret)
 
static HRESULT unmarshal_stgmed (RemSTGMEDIUM *rem_stgmed, STGMEDIUM *stgmed)
 
static void proxy_marshal_bindinfo (BINDINFO *bindinfo, RemBINDINFO *rem_bindinfo)
 
static void proxy_unmarshal_bindinfo (RemBINDINFO *rem_bindinfo, BINDINFO *bindinfo)
 
static void stub_unmarshal_bindinfo (RemBINDINFO *rem_bindinfo, BINDINFO *bindinfo)
 
static void stub_marshal_bindinfo (BINDINFO *bindinfo, RemBINDINFO *rem_bindinfo)
 
HRESULT CALLBACK IBindStatusCallbackEx_GetBindInfoEx_Proxy (IBindStatusCallbackEx *This, DWORD *grfBINDF, BINDINFO *bindinfo, DWORD *grfBINDF2, DWORD *pdwReserved)
 
HRESULT __RPC_STUB IBindStatusCallbackEx_GetBindInfoEx_Stub (IBindStatusCallbackEx *This, DWORD *grfBINDF, RemBINDINFO *rem_bindinfo, RemSTGMEDIUM *rem_stgmed, DWORD *grfBINDF2, DWORD *pdwReserved)
 
HRESULT CALLBACK IBindStatusCallback_GetBindInfo_Proxy (IBindStatusCallback *This, DWORD *grfBINDF, BINDINFO *bindinfo)
 
HRESULT __RPC_STUB IBindStatusCallback_GetBindInfo_Stub (IBindStatusCallback *This, DWORD *grfBINDF, RemBINDINFO *rem_bindinfo, RemSTGMEDIUM *rem_stgmed)
 
HRESULT CALLBACK IBindStatusCallback_OnDataAvailable_Proxy (IBindStatusCallback *This, DWORD grfBSCF, DWORD dwSize, FORMATETC *pformatetc, STGMEDIUM *pstgmed)
 
HRESULT __RPC_STUB IBindStatusCallback_OnDataAvailable_Stub (IBindStatusCallback *This, DWORD grfBSCF, DWORD dwSize, RemFORMATETC *pformatetc, RemSTGMEDIUM *pstgmed)
 
HRESULT CALLBACK IBinding_GetBindResult_Proxy (IBinding *This, CLSID *pclsidProtocol, DWORD *pdwResult, LPOLESTR *pszResult, DWORD *pdwReserved)
 
HRESULT __RPC_STUB IBinding_GetBindResult_Stub (IBinding *This, CLSID *pclsidProtocol, DWORD *pdwResult, LPOLESTR *pszResult, DWORD dwReserved)
 

Function Documentation

◆ IBindHost_MonikerBindToObject_Proxy()

HRESULT CALLBACK IBindHost_MonikerBindToObject_Proxy ( IBindHost This,
IMoniker moniker,
IBindCtx bc,
IBindStatusCallback bsc,
REFIID  riid,
void **  obj 
)

Definition at line 71 of file usrmarshal.c.

74{
75 TRACE("(%p %p %p %p %s %p)\n", This, moniker, bc, bsc, debugstr_guid(riid), obj);
76 return IBindHost_RemoteMonikerBindToObject_Proxy(This, moniker, bc, bsc, riid, (IUnknown**)obj);
77}
PBATCH_CONTEXT bc
Definition: batch.c:67
REFIID riid
Definition: atlbase.h:39
#define debugstr_guid
Definition: kernel32.h:35
#define TRACE(s)
Definition: solgame.cpp:4
Definition: xmldoc.c:231
Definition: main.c:40

◆ IBindHost_MonikerBindToObject_Stub()

HRESULT __RPC_STUB IBindHost_MonikerBindToObject_Stub ( IBindHost This,
IMoniker moniker,
IBindCtx bc,
IBindStatusCallback bsc,
REFIID  riid,
IUnknown **  obj 
)

Definition at line 79 of file usrmarshal.c.

82{
83 TRACE("(%p %p %p %p %s %p)\n", This, moniker, bc, bsc, debugstr_guid(riid), obj);
84 return IBindHost_MonikerBindToObject(This, moniker, bc, bsc, riid, (void**)obj);
85}

◆ IBindHost_MonikerBindToStorage_Proxy()

HRESULT CALLBACK IBindHost_MonikerBindToStorage_Proxy ( IBindHost This,
IMoniker moniker,
IBindCtx bc,
IBindStatusCallback bsc,
REFIID  riid,
void **  obj 
)

Definition at line 55 of file usrmarshal.c.

58{
59 TRACE("(%p %p %p %p %s %p)\n", This, moniker, bc, bsc, debugstr_guid(riid), obj);
60 return IBindHost_RemoteMonikerBindToStorage_Proxy(This, moniker, bc, bsc, riid, (IUnknown**)obj);
61}

◆ IBindHost_MonikerBindToStorage_Stub()

HRESULT __RPC_STUB IBindHost_MonikerBindToStorage_Stub ( IBindHost This,
IMoniker moniker,
IBindCtx bc,
IBindStatusCallback bsc,
REFIID  riid,
IUnknown **  obj 
)

Definition at line 63 of file usrmarshal.c.

66{
67 TRACE("(%p %p %p %p %s %p)\n", This, moniker, bc, bsc, debugstr_guid(riid), obj);
68 return IBindHost_MonikerBindToStorage(This, moniker, bc, bsc, riid, (void**)obj);
69}

◆ IBinding_GetBindResult_Proxy()

HRESULT CALLBACK IBinding_GetBindResult_Proxy ( IBinding This,
CLSID pclsidProtocol,
DWORD pdwResult,
LPOLESTR *  pszResult,
DWORD pdwReserved 
)

Definition at line 364 of file usrmarshal.c.

367{
368 FIXME("stub\n");
369 return E_NOTIMPL;
370}
#define FIXME(fmt,...)
Definition: precomp.h:53
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ IBinding_GetBindResult_Stub()

HRESULT __RPC_STUB IBinding_GetBindResult_Stub ( IBinding This,
CLSID pclsidProtocol,
DWORD pdwResult,
LPOLESTR *  pszResult,
DWORD  dwReserved 
)

Definition at line 372 of file usrmarshal.c.

375{
376 FIXME("stub\n");
377 return E_NOTIMPL;
378}

◆ IBindStatusCallback_GetBindInfo_Proxy()

HRESULT CALLBACK IBindStatusCallback_GetBindInfo_Proxy ( IBindStatusCallback This,
DWORD grfBINDF,
BINDINFO *  bindinfo 
)

Definition at line 282 of file usrmarshal.c.

284{
285 RemBINDINFO rem_bindinfo = {sizeof(rem_bindinfo)};
286 RemSTGMEDIUM rem_stgmed = {0};
288
289 TRACE("(%p)->(%p %p)\n", This, grfBINDF, bindinfo);
290
292 hres = IBindStatusCallback_RemoteGetBindInfo_Proxy(This, grfBINDF, &rem_bindinfo, &rem_stgmed);
294 return hres;
295}
static void proxy_marshal_bindinfo(BINDINFO *bindinfo, RemBINDINFO *rem_bindinfo)
Definition: usrmarshal.c:196
static void proxy_unmarshal_bindinfo(RemBINDINFO *rem_bindinfo, BINDINFO *bindinfo)
Definition: usrmarshal.c:205
HRESULT hres
Definition: protocol.c:465
static BINDINFO rem_bindinfo
Definition: misc.c:2048
static STGMEDIUM rem_stgmed
Definition: misc.c:2114

◆ IBindStatusCallback_GetBindInfo_Stub()

HRESULT __RPC_STUB IBindStatusCallback_GetBindInfo_Stub ( IBindStatusCallback This,
DWORD grfBINDF,
RemBINDINFO *  rem_bindinfo,
RemSTGMEDIUM *  rem_stgmed 
)

Definition at line 297 of file usrmarshal.c.

300{
301 BINDINFO bindinfo = {sizeof(bindinfo)};
303
304 TRACE("(%p)->(%p %p %p)\n", This, grfBINDF, rem_bindinfo, rem_stgmed);
305
307 hres = IBindStatusCallback_GetBindInfo(This, grfBINDF, &bindinfo);
309 return hres;
310}
static void stub_unmarshal_bindinfo(RemBINDINFO *rem_bindinfo, BINDINFO *bindinfo)
Definition: usrmarshal.c:219
static void stub_marshal_bindinfo(BINDINFO *bindinfo, RemBINDINFO *rem_bindinfo)
Definition: usrmarshal.c:231

◆ IBindStatusCallback_OnDataAvailable_Proxy()

HRESULT CALLBACK IBindStatusCallback_OnDataAvailable_Proxy ( IBindStatusCallback This,
DWORD  grfBSCF,
DWORD  dwSize,
FORMATETC *  pformatetc,
STGMEDIUM *  pstgmed 
)

Definition at line 312 of file usrmarshal.c.

315{
316 RemFORMATETC rem_formatetc;
317 RemSTGMEDIUM *rem_stgmed;
319
320 TRACE("(%p)->(%lx %lu %p %p)\n", This, grfBSCF, dwSize, pformatetc, pstgmed);
321
322 hres = marshal_stgmed(pstgmed, &rem_stgmed);
323 if(FAILED(hres))
324 return hres;
325
326 rem_formatetc.cfFormat = pformatetc->cfFormat;
327 rem_formatetc.ptd = 0;
328 rem_formatetc.dwAspect = pformatetc->dwAspect;
329 rem_formatetc.lindex = pformatetc->lindex;
330 rem_formatetc.tymed = pformatetc->tymed;
331
332 hres = IBindStatusCallback_RemoteOnDataAvailable_Proxy(This, grfBSCF, dwSize, &rem_formatetc, rem_stgmed);
333
335 return hres;
336}
#define free
Definition: debug_ros.c:5
static HRESULT marshal_stgmed(STGMEDIUM *stgmed, RemSTGMEDIUM **ret)
Definition: usrmarshal.c:87
#define FAILED(hr)
Definition: intsafe.h:51
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
Definition: env.c:56

◆ IBindStatusCallback_OnDataAvailable_Stub()

HRESULT __RPC_STUB IBindStatusCallback_OnDataAvailable_Stub ( IBindStatusCallback This,
DWORD  grfBSCF,
DWORD  dwSize,
RemFORMATETC *  pformatetc,
RemSTGMEDIUM *  pstgmed 
)

Definition at line 338 of file usrmarshal.c.

341{
342 STGMEDIUM stgmed = { TYMED_NULL };
343 FORMATETC formatetc;
345
346 TRACE("(%p)->(%lx %lu %p %p)\n", This, grfBSCF, dwSize, pformatetc, pstgmed);
347
348 hres = unmarshal_stgmed(pstgmed, &stgmed);
349 if(FAILED(hres))
350 return hres;
351
352 formatetc.cfFormat = pformatetc->cfFormat;
353 formatetc.ptd = NULL;
354 formatetc.dwAspect = pformatetc->dwAspect;
355 formatetc.lindex = pformatetc->lindex;
356 formatetc.tymed = pformatetc->tymed;
357
358 hres = IBindStatusCallback_OnDataAvailable(This, grfBSCF, dwSize, &formatetc, &stgmed);
359
360 ReleaseStgMedium(&stgmed);
361 return hres;
362}
#define NULL
Definition: types.h:112
void WINAPI ReleaseStgMedium(STGMEDIUM *pmedium)
Definition: ole2.c:2014
static HRESULT unmarshal_stgmed(RemSTGMEDIUM *rem_stgmed, STGMEDIUM *stgmed)
Definition: usrmarshal.c:153

◆ IBindStatusCallbackEx_GetBindInfoEx_Proxy()

HRESULT CALLBACK IBindStatusCallbackEx_GetBindInfoEx_Proxy ( IBindStatusCallbackEx This,
DWORD grfBINDF,
BINDINFO *  bindinfo,
DWORD grfBINDF2,
DWORD pdwReserved 
)

Definition at line 247 of file usrmarshal.c.

250{
251 RemBINDINFO rem_bindinfo = {sizeof(rem_bindinfo)};
252 RemSTGMEDIUM rem_stgmed = {0};
254
255 TRACE("(%p)->(%p %p %p %p)\n", This, grfBINDF, bindinfo, grfBINDF2, pdwReserved);
256
258 hres = IBindStatusCallbackEx_RemoteGetBindInfoEx_Proxy(This, grfBINDF, &rem_bindinfo,
259 &rem_stgmed, grfBINDF2, pdwReserved);
261 return hres;
262}

◆ IBindStatusCallbackEx_GetBindInfoEx_Stub()

HRESULT __RPC_STUB IBindStatusCallbackEx_GetBindInfoEx_Stub ( IBindStatusCallbackEx This,
DWORD grfBINDF,
RemBINDINFO *  rem_bindinfo,
RemSTGMEDIUM *  rem_stgmed,
DWORD grfBINDF2,
DWORD pdwReserved 
)

Definition at line 264 of file usrmarshal.c.

267{
268 BINDINFO bindinfo = {sizeof(bindinfo)};
270
271 TRACE("(%p)->(%p %p %p %p %p)\n", This, grfBINDF, rem_bindinfo, rem_stgmed, grfBINDF2, pdwReserved);
272
273 /*
274 * Although arguments suggest support for STGMEDIUM from BINDINFO, tests show
275 * that it's not supported and returned data is lost.
276 */
278 hres = IBindStatusCallbackEx_GetBindInfoEx(This, grfBINDF, &bindinfo, grfBINDF2, pdwReserved);
280 return hres;
281}

◆ IWinInetHttpInfo_QueryInfo_Proxy()

HRESULT CALLBACK IWinInetHttpInfo_QueryInfo_Proxy ( IWinInetHttpInfo This,
DWORD  dwOption,
LPVOID  pBuffer,
DWORD pcbBuf,
DWORD pdwFlags,
DWORD pdwReserved 
)

Definition at line 25 of file usrmarshal.c.

28{
29 TRACE("(%p %lx %p %p %p %p)\n", This, dwOption, pBuffer, pcbBuf, pdwFlags, pdwReserved);
30 return IWinInetHttpInfo_RemoteQueryInfo_Proxy(This, dwOption, pBuffer, pcbBuf, pdwFlags, pdwReserved);
31}
PVOID pBuffer

◆ IWinInetHttpInfo_QueryInfo_Stub()

HRESULT __RPC_STUB IWinInetHttpInfo_QueryInfo_Stub ( IWinInetHttpInfo This,
DWORD  dwOption,
BYTE pBuffer,
DWORD pcbBuf,
DWORD pdwFlags,
DWORD pdwReserved 
)

Definition at line 33 of file usrmarshal.c.

36{
37 TRACE("(%p %lx %p %p %p %p)\n", This, dwOption, pBuffer, pcbBuf, pdwFlags, pdwReserved);
38 return IWinInetHttpInfo_QueryInfo(This, dwOption, pBuffer, pcbBuf, pdwFlags, pdwReserved);
39}

◆ IWinInetInfo_QueryOption_Proxy()

HRESULT CALLBACK IWinInetInfo_QueryOption_Proxy ( IWinInetInfo This,
DWORD  dwOption,
LPVOID  pBuffer,
DWORD pcbBuf 
)

Definition at line 41 of file usrmarshal.c.

43{
44 TRACE("(%p %lx %p %p)\n", This, dwOption, pBuffer, pcbBuf);
45 return IWinInetInfo_RemoteQueryOption_Proxy(This, dwOption, pBuffer, pcbBuf);
46}

◆ IWinInetInfo_QueryOption_Stub()

HRESULT __RPC_STUB IWinInetInfo_QueryOption_Stub ( IWinInetInfo This,
DWORD  dwOption,
BYTE pBuffer,
DWORD pcbBuf 
)

Definition at line 48 of file usrmarshal.c.

50{
51 TRACE("(%p %lx %p %p)\n", This, dwOption, pBuffer, pcbBuf);
52 return IWinInetInfo_QueryOption(This, dwOption, pBuffer, pcbBuf);
53}

◆ marshal_stgmed()

static HRESULT marshal_stgmed ( STGMEDIUM *  stgmed,
RemSTGMEDIUM **  ret 
)
static

Definition at line 87 of file usrmarshal.c.

88{
89 RemSTGMEDIUM *rem_stgmed;
91 ULONG size = 0;
93
94 if((stgmed->tymed == TYMED_ISTREAM && stgmed->pstm) || stgmed->pUnkForRelease) {
96 if(FAILED(hres))
97 return hres;
98 }
99
100 switch(stgmed->tymed) {
101 case TYMED_NULL:
102 break;
103 case TYMED_ISTREAM:
104 if(stgmed->pstm)
105 hres = CoMarshalInterface(stream, &IID_IStream, (IUnknown*)stgmed->pstm,
106 MSHCTX_LOCAL, NULL, MSHLFLAGS_NORMAL);
107 break;
108 default:
109 FIXME("unsupported tymed %lu\n", stgmed->tymed);
110 break;
111 }
112
113 if(SUCCEEDED(hres) && stgmed->pUnkForRelease)
114 hres = CoMarshalInterface(stream, &IID_IUnknown, stgmed->pUnkForRelease,
115 MSHCTX_LOCAL, NULL, MSHLFLAGS_NORMAL);
116 if(FAILED(hres)) {
117 if(stream)
118 IStream_Release(stream);
119 return hres;
120 }
121
122 if(stream) {
124 ULARGE_INTEGER off;
125
126 zero.QuadPart = 0;
127 IStream_Seek(stream, zero, STREAM_SEEK_CUR, &off);
128 size = off.QuadPart;
129 IStream_Seek(stream, zero, STREAM_SEEK_SET, &off);
130 }
131
132 rem_stgmed = calloc(1, FIELD_OFFSET(RemSTGMEDIUM, data[size]));
133 if(!rem_stgmed) {
134 if(stream)
135 IStream_Release(stream);
136 return E_OUTOFMEMORY;
137 }
138
139 rem_stgmed->tymed = stgmed->tymed;
140 rem_stgmed->dwHandleType = 0;
141 rem_stgmed->pData = stgmed->pstm != NULL;
142 rem_stgmed->pUnkForRelease = stgmed->pUnkForRelease != NULL;
143 rem_stgmed->cbData = size;
144 if(stream) {
145 IStream_Read(stream, rem_stgmed->data, size, &size);
146 IStream_Release(stream);
147 }
148
149 *ret = rem_stgmed;
150 return S_OK;
151}
const GUID IID_IUnknown
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
#define TRUE
Definition: types.h:120
HRESULT WINAPI CreateStreamOnHGlobal(HGLOBAL hGlobal, BOOL delete_on_release, IStream **stream)
HRESULT WINAPI CoMarshalInterface(IStream *stream, REFIID riid, IUnknown *unk, DWORD dest_context, void *pvDestContext, DWORD mshlFlags)
Definition: marshal.c:483
return ret
Definition: mutex.c:146
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
GLsizeiptr size
Definition: glext.h:5919
#define S_OK
Definition: intsafe.h:52
#define SUCCEEDED(hr)
Definition: intsafe.h:50
#define calloc
Definition: rosglue.h:14
int zero
Definition: sehframes.cpp:29
ULONGLONG QuadPart
Definition: ms-dtyp.idl:185
Definition: parse.h:23
#define FIELD_OFFSET(t, f)
Definition: typedefs.h:255
uint32_t ULONG
Definition: typedefs.h:59

Referenced by IBindStatusCallback_OnDataAvailable_Proxy().

◆ proxy_marshal_bindinfo()

static void proxy_marshal_bindinfo ( BINDINFO *  bindinfo,
RemBINDINFO *  rem_bindinfo 
)
static

Definition at line 196 of file usrmarshal.c.

197{
198 rem_bindinfo->szExtraInfo = bindinfo->szExtraInfo;
199 rem_bindinfo->grfBindInfoF = bindinfo->grfBindInfoF;
200 rem_bindinfo->dwBindVerb = bindinfo->dwBindVerb;
201 rem_bindinfo->szCustomVerb = bindinfo->szCustomVerb;
202 rem_bindinfo->cbstgmedData = bindinfo->cbstgmedData;
203}

Referenced by IBindStatusCallback_GetBindInfo_Proxy(), and IBindStatusCallbackEx_GetBindInfoEx_Proxy().

◆ proxy_unmarshal_bindinfo()

static void proxy_unmarshal_bindinfo ( RemBINDINFO *  rem_bindinfo,
BINDINFO *  bindinfo 
)
static

Definition at line 205 of file usrmarshal.c.

206{
207 bindinfo->szExtraInfo = rem_bindinfo->szExtraInfo;
208 bindinfo->grfBindInfoF = rem_bindinfo->grfBindInfoF;
209 bindinfo->dwBindVerb = rem_bindinfo->dwBindVerb;
210 bindinfo->szCustomVerb = rem_bindinfo->szCustomVerb;
211 bindinfo->cbstgmedData = rem_bindinfo->cbstgmedData;
212 bindinfo->dwOptions = rem_bindinfo->dwOptions;
213 bindinfo->dwOptionsFlags = rem_bindinfo->dwOptionsFlags;
214 bindinfo->dwCodePage = rem_bindinfo->dwCodePage;
215 bindinfo->iid = IID_NULL;
216 bindinfo->pUnk = NULL;
217}
#define IID_NULL
Definition: guiddef.h:98

Referenced by IBindStatusCallback_GetBindInfo_Proxy(), and IBindStatusCallbackEx_GetBindInfoEx_Proxy().

◆ stub_marshal_bindinfo()

static void stub_marshal_bindinfo ( BINDINFO *  bindinfo,
RemBINDINFO *  rem_bindinfo 
)
static

Definition at line 231 of file usrmarshal.c.

232{
233 rem_bindinfo->cbSize = sizeof(*rem_bindinfo);
234 rem_bindinfo->szExtraInfo = bindinfo->szExtraInfo;
235 rem_bindinfo->grfBindInfoF = bindinfo->grfBindInfoF;
236 rem_bindinfo->dwBindVerb = bindinfo->dwBindVerb;
237 rem_bindinfo->szCustomVerb = bindinfo->szCustomVerb;
238 rem_bindinfo->cbstgmedData = bindinfo->cbstgmedData;
239 rem_bindinfo->dwOptions = bindinfo->dwOptions;
240 rem_bindinfo->dwOptionsFlags = bindinfo->dwOptionsFlags;
241 rem_bindinfo->dwCodePage = bindinfo->dwCodePage;
242 rem_bindinfo->pUnk = NULL;
243 rem_bindinfo->dwReserved = bindinfo->dwReserved;
244}

Referenced by IBindStatusCallback_GetBindInfo_Stub(), and IBindStatusCallbackEx_GetBindInfoEx_Stub().

◆ stub_unmarshal_bindinfo()

static void stub_unmarshal_bindinfo ( RemBINDINFO *  rem_bindinfo,
BINDINFO *  bindinfo 
)
static

Definition at line 219 of file usrmarshal.c.

220{
221 bindinfo->szExtraInfo = rem_bindinfo->szExtraInfo;
222 bindinfo->grfBindInfoF = rem_bindinfo->grfBindInfoF;
223 bindinfo->dwBindVerb = rem_bindinfo->dwBindVerb;
224 bindinfo->szCustomVerb = rem_bindinfo->szCustomVerb;
225 bindinfo->cbstgmedData = rem_bindinfo->cbstgmedData;
226
227 if(bindinfo->stgmedData.tymed != TYMED_NULL)
228 WARN("stgmed data (tymed %lu) will be lost!\n", bindinfo->stgmedData.tymed);
229}
#define WARN(fmt,...)
Definition: precomp.h:61

Referenced by IBindStatusCallback_GetBindInfo_Stub(), and IBindStatusCallbackEx_GetBindInfoEx_Stub().

◆ unmarshal_stgmed()

static HRESULT unmarshal_stgmed ( RemSTGMEDIUM *  rem_stgmed,
STGMEDIUM *  stgmed 
)
static

Definition at line 153 of file usrmarshal.c.

154{
156 HRESULT hres = S_OK;
157
158 stgmed->tymed = rem_stgmed->tymed;
159
160 if((stgmed->tymed == TYMED_ISTREAM && rem_stgmed->pData) || rem_stgmed->pUnkForRelease) {
162
164 if(FAILED(hres))
165 return hres;
166
167 hres = IStream_Write(stream, rem_stgmed->data, rem_stgmed->cbData, NULL);
168 if(FAILED(hres)) {
169 IStream_Release(stream);
170 return hres;
171 }
172
173 zero.QuadPart = 0;
174 IStream_Seek(stream, zero, STREAM_SEEK_SET, NULL);
175 }
176
177 switch(stgmed->tymed) {
178 case TYMED_NULL:
179 break;
180 case TYMED_ISTREAM:
181 if(rem_stgmed->pData)
182 hres = CoUnmarshalInterface(stream, &IID_IStream, (void**)&stgmed->pstm);
183 break;
184 default:
185 FIXME("unsupported tymed %lu\n", stgmed->tymed);
186 break;
187 }
188
189 if(SUCCEEDED(hres) && rem_stgmed->pUnkForRelease)
190 hres = CoUnmarshalInterface(stream, &IID_IUnknown, (void**)&stgmed->pUnkForRelease);
191 if(stream)
192 IStream_Release(stream);
193 return hres;
194}
HRESULT WINAPI CoUnmarshalInterface(IStream *stream, REFIID riid, void **ppv)
Definition: marshal.c:793

Referenced by IBindStatusCallback_OnDataAvailable_Stub().

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( urlmon  )