|
| WINE_DEFAULT_DEBUG_CHANNEL (ole) |
|
static struct proxy_manager * | impl_from_IMultiQI (IMultiQI *iface) |
|
static struct proxy_manager * | impl_from_IMarshal (IMarshal *iface) |
|
static struct proxy_manager * | impl_from_IClientSecurity (IClientSecurity *iface) |
|
static HRESULT | unmarshal_object (const STDOBJREF *stdobjref, APARTMENT *apt, MSHCTX dest_context, void *dest_context_data, REFIID riid, const OXID_INFO *oxid_info, void **object) |
|
static HRESULT | get_facbuf_for_iid (REFIID riid, IPSFactoryBuffer **facbuf) |
|
HRESULT | marshal_object (APARTMENT *apt, STDOBJREF *stdobjref, REFIID riid, IUnknown *object, DWORD dest_context, void *dest_context_data, MSHLFLAGS mshlflags) |
|
static HRESULT | proxy_manager_get_remunknown (struct proxy_manager *This, IRemUnknown **remunk) |
|
static void | proxy_manager_destroy (struct proxy_manager *This) |
|
static HRESULT | proxy_manager_find_ifproxy (struct proxy_manager *This, REFIID riid, struct ifproxy **ifproxy_found) |
|
static HRESULT | proxy_manager_query_local_interface (struct proxy_manager *This, REFIID riid, void **ppv) |
|
static HRESULT WINAPI | ClientIdentity_QueryInterface (IMultiQI *iface, REFIID riid, void **ppv) |
|
static ULONG WINAPI | ClientIdentity_AddRef (IMultiQI *iface) |
|
static ULONG WINAPI | ClientIdentity_Release (IMultiQI *iface) |
|
static HRESULT WINAPI | ClientIdentity_QueryMultipleInterfaces (IMultiQI *iface, ULONG cMQIs, MULTI_QI *pMQIs) |
|
static HRESULT | StdMarshalImpl_Construct (REFIID, DWORD, void *, void **) |
|
static HRESULT WINAPI | Proxy_QueryInterface (IMarshal *iface, REFIID riid, void **ppvObject) |
|
static ULONG WINAPI | Proxy_AddRef (IMarshal *iface) |
|
static ULONG WINAPI | Proxy_Release (IMarshal *iface) |
|
static HRESULT WINAPI | Proxy_GetUnmarshalClass (IMarshal *iface, REFIID riid, void *pv, DWORD dwDestContext, void *pvDestContext, DWORD mshlflags, CLSID *pCid) |
|
static HRESULT WINAPI | Proxy_GetMarshalSizeMax (IMarshal *iface, REFIID riid, void *pv, DWORD dwDestContext, void *pvDestContext, DWORD mshlflags, DWORD *pSize) |
|
static void | fill_std_objref (OBJREF *objref, const GUID *iid, STDOBJREF *std) |
|
static HRESULT WINAPI | Proxy_MarshalInterface (LPMARSHAL iface, IStream *pStm, REFIID riid, void *pv, DWORD dwDestContext, void *pvDestContext, DWORD mshlflags) |
|
static HRESULT WINAPI | Proxy_UnmarshalInterface (IMarshal *iface, IStream *pStm, REFIID riid, void **ppv) |
|
static HRESULT WINAPI | Proxy_ReleaseMarshalData (IMarshal *iface, IStream *pStm) |
|
static HRESULT WINAPI | Proxy_DisconnectObject (IMarshal *iface, DWORD dwReserved) |
|
static HRESULT WINAPI | ProxyCliSec_QueryInterface (IClientSecurity *iface, REFIID riid, void **ppvObject) |
|
static ULONG WINAPI | ProxyCliSec_AddRef (IClientSecurity *iface) |
|
static ULONG WINAPI | ProxyCliSec_Release (IClientSecurity *iface) |
|
static HRESULT WINAPI | ProxyCliSec_QueryBlanket (IClientSecurity *iface, IUnknown *pProxy, DWORD *pAuthnSvc, DWORD *pAuthzSvc, OLECHAR **ppServerPrincName, DWORD *pAuthnLevel, DWORD *pImpLevel, void **pAuthInfo, DWORD *pCapabilities) |
|
static HRESULT WINAPI | ProxyCliSec_SetBlanket (IClientSecurity *iface, IUnknown *pProxy, DWORD AuthnSvc, DWORD AuthzSvc, OLECHAR *pServerPrincName, DWORD AuthnLevel, DWORD ImpLevel, void *pAuthInfo, DWORD Capabilities) |
|
static HRESULT WINAPI | ProxyCliSec_CopyProxy (IClientSecurity *iface, IUnknown *pProxy, IUnknown **ppCopy) |
|
static HRESULT | ifproxy_get_public_ref (struct ifproxy *This) |
|
static HRESULT | ifproxy_release_public_refs (struct ifproxy *This) |
|
static void | ifproxy_disconnect (struct ifproxy *This) |
|
static void | ifproxy_destroy (struct ifproxy *This) |
|
static HRESULT | proxy_manager_construct (APARTMENT *apt, ULONG sorflags, OXID oxid, OID oid, const OXID_INFO *oxid_info, struct proxy_manager **proxy_manager) |
|
static void | proxy_manager_set_context (struct proxy_manager *This, MSHCTX dest_context, void *dest_context_data) |
|
static HRESULT | proxy_manager_create_ifproxy (struct proxy_manager *This, const STDOBJREF *stdobjref, REFIID riid, IRpcChannelBuffer *channel, struct ifproxy **iif_out) |
|
static void | proxy_manager_disconnect (struct proxy_manager *This) |
|
static BOOL | find_proxy_manager (APARTMENT *apt, OXID oxid, OID oid, struct proxy_manager **proxy_found) |
|
HRESULT | apartment_disconnectproxies (struct apartment *apt) |
|
static StdMarshalImpl * | impl_from_StdMarshal (IMarshal *iface) |
|
static HRESULT WINAPI | StdMarshalImpl_QueryInterface (IMarshal *iface, REFIID riid, void **ppv) |
|
static ULONG WINAPI | StdMarshalImpl_AddRef (IMarshal *iface) |
|
static ULONG WINAPI | StdMarshalImpl_Release (IMarshal *iface) |
|
static HRESULT WINAPI | StdMarshalImpl_GetUnmarshalClass (IMarshal *iface, REFIID riid, void *pv, DWORD dwDestContext, void *pvDestContext, DWORD mshlflags, CLSID *pCid) |
|
static HRESULT WINAPI | StdMarshalImpl_GetMarshalSizeMax (IMarshal *iface, REFIID riid, void *pv, DWORD dwDestContext, void *pvDestContext, DWORD mshlflags, DWORD *pSize) |
|
static HRESULT WINAPI | StdMarshalImpl_MarshalInterface (IMarshal *iface, IStream *pStm, REFIID riid, void *pv, DWORD dest_context, void *dest_context_data, DWORD mshlflags) |
|
static HRESULT | std_unmarshal_interface (MSHCTX dest_context, void *dest_context_data, IStream *pStm, REFIID riid, void **ppv) |
|
static HRESULT WINAPI | StdMarshalImpl_UnmarshalInterface (IMarshal *iface, IStream *pStm, REFIID riid, void **ppv) |
|
static HRESULT | std_release_marshal_data (IStream *pStm) |
|
static HRESULT WINAPI | StdMarshalImpl_ReleaseMarshalData (IMarshal *iface, IStream *pStm) |
|
static HRESULT WINAPI | StdMarshalImpl_DisconnectObject (IMarshal *iface, DWORD dwReserved) |
|
HRESULT WINAPI | CoGetStandardMarshal (REFIID riid, IUnknown *pUnk, DWORD dwDestContext, LPVOID pvDestContext, DWORD mshlflags, LPMARSHAL *ppMarshal) |
|
static HRESULT | get_marshaler (REFIID riid, IUnknown *pUnk, DWORD dwDestContext, void *pvDestContext, DWORD mshlFlags, LPMARSHAL *pMarshal) |
|
static HRESULT | get_unmarshaler_from_stream (IStream *stream, IMarshal **marshal, IID *iid) |
|
HRESULT WINAPI | CoGetMarshalSizeMax (ULONG *pulSize, REFIID riid, IUnknown *pUnk, DWORD dwDestContext, void *pvDestContext, DWORD mshlFlags) |
|
static void | dump_MSHLFLAGS (MSHLFLAGS flags) |
|
HRESULT WINAPI | CoMarshalInterface (IStream *pStream, REFIID riid, IUnknown *pUnk, DWORD dwDestContext, void *pvDestContext, DWORD mshlFlags) |
|
HRESULT WINAPI | CoUnmarshalInterface (IStream *pStream, REFIID riid, LPVOID *ppv) |
|
HRESULT WINAPI | CoReleaseMarshalData (IStream *pStream) |
|
HRESULT WINAPI | CoMarshalInterThreadInterfaceInStream (REFIID riid, LPUNKNOWN pUnk, LPSTREAM *ppStm) |
|
HRESULT WINAPI | CoGetInterfaceAndReleaseStream (LPSTREAM pStm, REFIID riid, LPVOID *ppv) |
|
static HRESULT WINAPI | StdMarshalCF_QueryInterface (LPCLASSFACTORY iface, REFIID riid, LPVOID *ppv) |
|
static ULONG WINAPI | StdMarshalCF_AddRef (LPCLASSFACTORY iface) |
|
static ULONG WINAPI | StdMarshalCF_Release (LPCLASSFACTORY iface) |
|
static HRESULT WINAPI | StdMarshalCF_CreateInstance (LPCLASSFACTORY iface, LPUNKNOWN pUnk, REFIID riid, LPVOID *ppv) |
|
static HRESULT WINAPI | StdMarshalCF_LockServer (LPCLASSFACTORY iface, BOOL fLock) |
|
HRESULT | MARSHAL_GetStandardMarshalCF (LPVOID *ppv) |
|
HRESULT WINAPI | CoMarshalHresult (LPSTREAM pStm, HRESULT hresult) |
|
HRESULT WINAPI | CoUnmarshalHresult (LPSTREAM pStm, HRESULT *phresult) |
|
Definition at line 1876 of file marshal.c.
1879{
1881 CLSID marshaler_clsid;
1883
1885 dwDestContext, pvDestContext);
1888
1889 if (!
pUnk || !pStream)
1891
1892
1895 {
1896 ERR(
"Failed to get marshaller, 0x%08x\n",
hr);
1898 }
1899
1900 hr = IMarshal_GetUnmarshalClass(pMarshal,
riid,
pUnk, dwDestContext,
1901 pvDestContext, mshlFlags, &marshaler_clsid);
1903 {
1904 ERR(
"IMarshal::GetUnmarshalClass failed, 0x%08x\n",
hr);
1906 }
1907
1908
1910 {
1911 TRACE(
"Using standard marshaling\n");
1912 }
1913 else
1914 {
1916
1917 TRACE(
"Using custom marshaling\n");
1924 hr = IMarshal_GetMarshalSizeMax(pMarshal,
riid,
pUnk, dwDestContext,
1925 pvDestContext, mshlFlags,
1928 {
1929 ERR(
"Failed to get max size of marshal data, error 0x%08x\n",
hr);
1931 }
1932
1933 hr = IStream_Write(pStream, &objref,
1936 {
1937 ERR(
"Failed to write OR_CUSTOM header to stream with 0x%08x\n",
hr);
1939 }
1940 }
1941
1942 TRACE(
"Calling IMarshal::MarshalInterface\n");
1943
1944 hr = IMarshal_MarshalInterface(pMarshal, pStream,
riid,
pUnk, dwDestContext,
1945 pvDestContext, mshlFlags);
1946
1948 {
1951 }
1952
1954 IMarshal_Release(pMarshal);
1955
1956 TRACE(
"completed with hr 0x%08x\n",
hr);
1957
1959}
const CLSID CLSID_StdMarshal
static void cleanup(void)
static void dump_MSHLFLAGS(MSHLFLAGS flags)
static HRESULT get_marshaler(REFIID riid, IUnknown *pUnk, DWORD dwDestContext, void *pvDestContext, DWORD mshlFlags, LPMARSHAL *pMarshal)
#define IsEqualCLSID(rclsid1, rclsid2)
union tagOBJREF::@1696 u_objref
struct tagOBJREF::@1696::OR_CUSTOM u_custom
#define FIELD_OFFSET(t, f)
Referenced by apartment_hostobject(), bsc_thread(), CoMarshalInterThreadInterfaceInStream(), CompositeMonikerMarshalImpl_MarshalInterface(), crash_couninitialize_proc(), duo_marshal_thread_proc(), get_local_server_stream(), host_object_proc(), implicit_mta_marshal_proc(), LresultFromObject(), marshal_stgmed(), marshal_WdtpInterfacePointer(), no_couninitialize_server_proc(), RegisterDragDrop(), RunningObjectTableImpl_Register(), set_src_dataobject(), StdGlobalInterfaceTable_RegisterInterfaceInGlobal(), test_bad_marshal_stream(), test_CoMarshalInterface(), test_CoRegisterPSClsid(), test_CoWaitForMultipleHandles_thread(), test_DfMarshal_custom_marshaling(), test_disconnect_stub(), test_external_connection(), test_file_moniker(), test_InternetSecurityMarshalling(), test_lock_object_external(), test_marshal(), test_moniker(), test_no_marshaler(), test_normal_marshal_and_release(), test_normal_marshal_and_unmarshal(), test_normal_marshal_and_unmarshal_twice(), test_proxy_marshal_and_unmarshal(), test_proxy_marshal_and_unmarshal2(), test_proxy_marshal_and_unmarshal_strong(), test_proxy_marshal_and_unmarshal_weak(), test_same_apartment_unmarshal_failure(), test_StdMarshal_custom_marshaling(), and WdtpInterfacePointer_UserMarshal().