Commit 11057c13 authored by Nikolay Sivov's avatar Nikolay Sivov Committed by Alexandre Julliard

combase: Move remaining marshalling code.

parent 59a724d0
...@@ -443,8 +443,6 @@ void apartment_freeunusedlibraries(struct apartment *apt, DWORD delay) ...@@ -443,8 +443,6 @@ void apartment_freeunusedlibraries(struct apartment *apt, DWORD delay)
LeaveCriticalSection(&apt->cs); LeaveCriticalSection(&apt->cs);
} }
extern HRESULT WINAPI Internal_apartment_disconnectproxies(struct apartment *apt);
void WINAPI apartment_release(struct apartment *apt) void WINAPI apartment_release(struct apartment *apt)
{ {
DWORD refcount; DWORD refcount;
...@@ -499,7 +497,7 @@ void WINAPI apartment_release(struct apartment *apt) ...@@ -499,7 +497,7 @@ void WINAPI apartment_release(struct apartment *apt)
/* no locking is needed for this apartment, because no other thread /* no locking is needed for this apartment, because no other thread
* can access it at this point */ * can access it at this point */
Internal_apartment_disconnectproxies(apt); apartment_disconnectproxies(apt);
if (apt->win) DestroyWindow(apt->win); if (apt->win) DestroyWindow(apt->win);
if (apt->host_apt_tid) PostThreadMessageW(apt->host_apt_tid, WM_QUIT, 0, 0); if (apt->host_apt_tid) PostThreadMessageW(apt->host_apt_tid, WM_QUIT, 0, 0);
...@@ -629,7 +627,7 @@ struct apartment * WINAPI apartment_get_current_or_mta(void) ...@@ -629,7 +627,7 @@ struct apartment * WINAPI apartment_get_current_or_mta(void)
} }
/* The given OXID must be local to this process */ /* The given OXID must be local to this process */
struct apartment * WINAPI apartment_findfromoxid(OXID oxid) struct apartment * apartment_findfromoxid(OXID oxid)
{ {
struct apartment *result = NULL; struct apartment *result = NULL;
struct list *cursor; struct list *cursor;
...@@ -1236,7 +1234,7 @@ static BOOL WINAPI register_class( INIT_ONCE *once, void *param, void **context ...@@ -1236,7 +1234,7 @@ static BOOL WINAPI register_class( INIT_ONCE *once, void *param, void **context
/* create a window for the apartment or return the current one if one has /* create a window for the apartment or return the current one if one has
* already been created */ * already been created */
HRESULT WINAPI apartment_createwindowifneeded(struct apartment *apt) HRESULT apartment_createwindowifneeded(struct apartment *apt)
{ {
static INIT_ONCE class_init_once = INIT_ONCE_STATIC_INIT; static INIT_ONCE class_init_once = INIT_ONCE_STATIC_INIT;
......
...@@ -117,7 +117,7 @@ ...@@ -117,7 +117,7 @@
@ stdcall CoGetObjectContext(ptr ptr) @ stdcall CoGetObjectContext(ptr ptr)
@ stdcall CoGetPSClsid(ptr ptr) @ stdcall CoGetPSClsid(ptr ptr)
@ stub CoGetProcessIdentifier @ stub CoGetProcessIdentifier
@ stdcall CoGetStandardMarshal(ptr ptr long ptr long ptr) ole32.CoGetStandardMarshal @ stdcall CoGetStandardMarshal(ptr ptr long ptr long ptr)
@ stub CoGetStdMarshalEx @ stub CoGetStdMarshalEx
@ stub CoGetSystemSecurityPermissions @ stub CoGetSystemSecurityPermissions
@ stdcall CoGetTreatAsClass(ptr ptr) @ stdcall CoGetTreatAsClass(ptr ptr)
...@@ -246,7 +246,7 @@ ...@@ -246,7 +246,7 @@
@ stub InternalCoIsSurrogateProcess @ stub InternalCoIsSurrogateProcess
@ stub InternalCoRegisterDisconnectCallback @ stub InternalCoRegisterDisconnectCallback
@ stub InternalCoRegisterSurrogatedObject @ stub InternalCoRegisterSurrogatedObject
@ stub InternalCoStdMarshalObject @ stdcall InternalCoStdMarshalObject(ptr long ptr ptr)
@ stub InternalCoUnregisterDisconnectCallback @ stub InternalCoUnregisterDisconnectCallback
@ stub InternalCompleteObjRef @ stub InternalCompleteObjRef
@ stub InternalCreateCAggId @ stub InternalCreateCAggId
...@@ -355,18 +355,7 @@ ...@@ -355,18 +355,7 @@
@ stdcall apartment_release(ptr) @ stdcall apartment_release(ptr)
@ stdcall enter_apartment(ptr long) @ stdcall enter_apartment(ptr long)
@ stdcall leave_apartment(ptr) @ stdcall leave_apartment(ptr)
@ stdcall apartment_findfromoxid(int64)
@ stdcall apartment_getwindow(ptr) @ stdcall apartment_getwindow(ptr)
@ stdcall apartment_createwindowifneeded(ptr)
@ stdcall stub_manager_int_release(ptr) @ stdcall stub_manager_int_release(ptr)
@ stdcall get_stub_manager(ptr int64)
@ stdcall stub_manager_is_table_marshaled(ptr ptr)
@ stdcall stub_manager_notify_unmarshal(ptr ptr)
@ stdcall stub_manager_ext_release(ptr long long long)
@ stdcall stub_manager_release_marshal_data(ptr long ptr long)
@ stdcall get_stub_manager_from_object(ptr ptr long)
@ stdcall stub_manager_find_ifstub(ptr ptr long)
@ stdcall stub_manager_ext_addref(ptr long long)
@ stdcall stub_manager_new_ifstub(ptr ptr ptr long ptr long)
@ stdcall ipid_get_dispatch_params(ptr ptr ptr ptr ptr ptr ptr) @ stdcall ipid_get_dispatch_params(ptr ptr ptr ptr ptr ptr ptr)
@ stdcall start_apartment_remote_unknown(ptr) @ stdcall start_apartment_remote_unknown(ptr)
...@@ -103,10 +103,11 @@ static inline struct apartment* com_get_current_apt(void) ...@@ -103,10 +103,11 @@ static inline struct apartment* com_get_current_apt(void)
} }
HWND WINAPI apartment_getwindow(const struct apartment *apt) DECLSPEC_HIDDEN; HWND WINAPI apartment_getwindow(const struct apartment *apt) DECLSPEC_HIDDEN;
HRESULT WINAPI apartment_createwindowifneeded(struct apartment *apt) DECLSPEC_HIDDEN; HRESULT apartment_createwindowifneeded(struct apartment *apt) DECLSPEC_HIDDEN;
void apartment_freeunusedlibraries(struct apartment *apt, DWORD unload_delay) DECLSPEC_HIDDEN; void apartment_freeunusedlibraries(struct apartment *apt, DWORD unload_delay) DECLSPEC_HIDDEN;
void apartment_global_cleanup(void) DECLSPEC_HIDDEN; void apartment_global_cleanup(void) DECLSPEC_HIDDEN;
OXID apartment_getoxid(const struct apartment *apt) DECLSPEC_HIDDEN; OXID apartment_getoxid(const struct apartment *apt) DECLSPEC_HIDDEN;
HRESULT apartment_disconnectproxies(struct apartment *apt) DECLSPEC_HIDDEN;
/* RpcSs interface */ /* RpcSs interface */
HRESULT rpcss_get_next_seqid(DWORD *id) DECLSPEC_HIDDEN; HRESULT rpcss_get_next_seqid(DWORD *id) DECLSPEC_HIDDEN;
...@@ -148,7 +149,7 @@ HRESULT apartment_get_local_server_stream(struct apartment *apt, IStream **ret) ...@@ -148,7 +149,7 @@ HRESULT apartment_get_local_server_stream(struct apartment *apt, IStream **ret)
IUnknown *com_get_registered_class_object(const struct apartment *apartment, REFCLSID rclsid, IUnknown *com_get_registered_class_object(const struct apartment *apartment, REFCLSID rclsid,
DWORD clscontext) DECLSPEC_HIDDEN; DWORD clscontext) DECLSPEC_HIDDEN;
void apartment_revoke_all_classes(const struct apartment *apt) DECLSPEC_HIDDEN; void apartment_revoke_all_classes(const struct apartment *apt) DECLSPEC_HIDDEN;
struct apartment * WINAPI apartment_findfromoxid(OXID oxid); struct apartment * apartment_findfromoxid(OXID oxid) DECLSPEC_HIDDEN;
struct apartment * apartment_findfromtid(DWORD tid) DECLSPEC_HIDDEN; struct apartment * apartment_findfromtid(DWORD tid) DECLSPEC_HIDDEN;
/* Stub Manager */ /* Stub Manager */
...@@ -219,11 +220,14 @@ struct stub_manager ...@@ -219,11 +220,14 @@ struct stub_manager
}; };
ULONG WINAPI stub_manager_int_release(struct stub_manager *stub_manager) DECLSPEC_HIDDEN; ULONG WINAPI stub_manager_int_release(struct stub_manager *stub_manager) DECLSPEC_HIDDEN;
struct stub_manager * WINAPI get_stub_manager_from_object(struct apartment *apt, IUnknown *object, BOOL alloc); struct stub_manager * get_stub_manager_from_object(struct apartment *apt, IUnknown *object, BOOL alloc) DECLSPEC_HIDDEN;
void stub_manager_disconnect(struct stub_manager *m) DECLSPEC_HIDDEN; void stub_manager_disconnect(struct stub_manager *m) DECLSPEC_HIDDEN;
ULONG WINAPI stub_manager_ext_addref(struct stub_manager *m, ULONG refs, BOOL tableweak) DECLSPEC_HIDDEN; ULONG stub_manager_ext_addref(struct stub_manager *m, ULONG refs, BOOL tableweak) DECLSPEC_HIDDEN;
ULONG WINAPI stub_manager_ext_release(struct stub_manager *m, ULONG refs, BOOL tableweak, BOOL last_unlock_releases) DECLSPEC_HIDDEN; ULONG stub_manager_ext_release(struct stub_manager *m, ULONG refs, BOOL tableweak, BOOL last_unlock_releases) DECLSPEC_HIDDEN;
struct stub_manager * WINAPI get_stub_manager(struct apartment *apt, OID oid); struct stub_manager * get_stub_manager(struct apartment *apt, OID oid) DECLSPEC_HIDDEN;
void WINAPI stub_manager_release_marshal_data(struct stub_manager *m, ULONG refs, const IPID *ipid, BOOL tableweak); void stub_manager_release_marshal_data(struct stub_manager *m, ULONG refs, const IPID *ipid, BOOL tableweak) DECLSPEC_HIDDEN;
BOOL WINAPI stub_manager_is_table_marshaled(struct stub_manager *m, const IPID *ipid); BOOL stub_manager_is_table_marshaled(struct stub_manager *m, const IPID *ipid) DECLSPEC_HIDDEN;
BOOL WINAPI stub_manager_notify_unmarshal(struct stub_manager *m, const IPID *ipid); BOOL stub_manager_notify_unmarshal(struct stub_manager *m, const IPID *ipid) DECLSPEC_HIDDEN;
struct ifstub * stub_manager_find_ifstub(struct stub_manager *m, REFIID iid, MSHLFLAGS flags) DECLSPEC_HIDDEN;
struct ifstub * stub_manager_new_ifstub(struct stub_manager *m, IRpcStubBuffer *sb, REFIID iid, DWORD dest_context,
void *dest_context_data, MSHLFLAGS flags) DECLSPEC_HIDDEN;
...@@ -73,7 +73,7 @@ static inline HRESULT generate_ipid(struct stub_manager *m, IPID *ipid) ...@@ -73,7 +73,7 @@ static inline HRESULT generate_ipid(struct stub_manager *m, IPID *ipid)
} }
/* registers a new interface stub COM object with the stub manager and returns registration record */ /* registers a new interface stub COM object with the stub manager and returns registration record */
struct ifstub * WINAPI stub_manager_new_ifstub(struct stub_manager *m, IRpcStubBuffer *sb, REFIID iid, DWORD dest_context, struct ifstub * stub_manager_new_ifstub(struct stub_manager *m, IRpcStubBuffer *sb, REFIID iid, DWORD dest_context,
void *dest_context_data, MSHLFLAGS flags) void *dest_context_data, MSHLFLAGS flags)
{ {
struct ifstub *stub; struct ifstub *stub;
...@@ -161,7 +161,7 @@ static struct ifstub *stub_manager_ipid_to_ifstub(struct stub_manager *m, const ...@@ -161,7 +161,7 @@ static struct ifstub *stub_manager_ipid_to_ifstub(struct stub_manager *m, const
return result; return result;
} }
struct ifstub * WINAPI stub_manager_find_ifstub(struct stub_manager *m, REFIID iid, MSHLFLAGS flags) struct ifstub * stub_manager_find_ifstub(struct stub_manager *m, REFIID iid, MSHLFLAGS flags)
{ {
struct ifstub *result = NULL; struct ifstub *result = NULL;
struct ifstub *ifstub; struct ifstub *ifstub;
...@@ -340,7 +340,7 @@ ULONG WINAPI stub_manager_int_release(struct stub_manager *m) ...@@ -340,7 +340,7 @@ ULONG WINAPI stub_manager_int_release(struct stub_manager *m)
/* gets the stub manager associated with an object - caller must have /* gets the stub manager associated with an object - caller must have
* a reference to the apartment while a reference to the stub manager is held. * a reference to the apartment while a reference to the stub manager is held.
* it must also call release on the stub manager when it is no longer needed */ * it must also call release on the stub manager when it is no longer needed */
struct stub_manager * WINAPI get_stub_manager_from_object(struct apartment *apt, IUnknown *obj, BOOL alloc) struct stub_manager * get_stub_manager_from_object(struct apartment *apt, IUnknown *obj, BOOL alloc)
{ {
struct stub_manager *result = NULL; struct stub_manager *result = NULL;
struct list *cursor; struct list *cursor;
...@@ -389,7 +389,7 @@ struct stub_manager * WINAPI get_stub_manager_from_object(struct apartment *apt, ...@@ -389,7 +389,7 @@ struct stub_manager * WINAPI get_stub_manager_from_object(struct apartment *apt,
/* gets the stub manager associated with an object id - caller must have /* gets the stub manager associated with an object id - caller must have
* a reference to the apartment while a reference to the stub manager is held. * a reference to the apartment while a reference to the stub manager is held.
* it must also call release on the stub manager when it is no longer needed */ * it must also call release on the stub manager when it is no longer needed */
struct stub_manager * WINAPI get_stub_manager(struct apartment *apt, OID oid) struct stub_manager * get_stub_manager(struct apartment *apt, OID oid)
{ {
struct stub_manager *result = NULL; struct stub_manager *result = NULL;
struct list *cursor; struct list *cursor;
...@@ -417,7 +417,7 @@ struct stub_manager * WINAPI get_stub_manager(struct apartment *apt, OID oid) ...@@ -417,7 +417,7 @@ struct stub_manager * WINAPI get_stub_manager(struct apartment *apt, OID oid)
} }
/* add some external references (ie from a client that unmarshaled an ifptr) */ /* add some external references (ie from a client that unmarshaled an ifptr) */
ULONG WINAPI stub_manager_ext_addref(struct stub_manager *m, ULONG refs, BOOL tableweak) ULONG stub_manager_ext_addref(struct stub_manager *m, ULONG refs, BOOL tableweak)
{ {
BOOL first_extern_ref; BOOL first_extern_ref;
ULONG rc; ULONG rc;
...@@ -448,7 +448,7 @@ ULONG WINAPI stub_manager_ext_addref(struct stub_manager *m, ULONG refs, BOOL ta ...@@ -448,7 +448,7 @@ ULONG WINAPI stub_manager_ext_addref(struct stub_manager *m, ULONG refs, BOOL ta
} }
/* remove some external references */ /* remove some external references */
ULONG WINAPI stub_manager_ext_release(struct stub_manager *m, ULONG refs, BOOL tableweak, BOOL last_unlock_releases) ULONG stub_manager_ext_release(struct stub_manager *m, ULONG refs, BOOL tableweak, BOOL last_unlock_releases)
{ {
BOOL last_extern_ref; BOOL last_extern_ref;
ULONG rc; ULONG rc;
...@@ -571,7 +571,7 @@ HRESULT WINAPI ipid_get_dispatch_params(const IPID *ipid, struct apartment **stu ...@@ -571,7 +571,7 @@ HRESULT WINAPI ipid_get_dispatch_params(const IPID *ipid, struct apartment **stu
} }
/* returns TRUE if it is possible to unmarshal, FALSE otherwise. */ /* returns TRUE if it is possible to unmarshal, FALSE otherwise. */
BOOL WINAPI stub_manager_notify_unmarshal(struct stub_manager *m, const IPID *ipid) BOOL stub_manager_notify_unmarshal(struct stub_manager *m, const IPID *ipid)
{ {
BOOL ret = TRUE; BOOL ret = TRUE;
struct ifstub *ifstub; struct ifstub *ifstub;
...@@ -602,7 +602,7 @@ BOOL WINAPI stub_manager_notify_unmarshal(struct stub_manager *m, const IPID *ip ...@@ -602,7 +602,7 @@ BOOL WINAPI stub_manager_notify_unmarshal(struct stub_manager *m, const IPID *ip
} }
/* handles refcounting for CoReleaseMarshalData */ /* handles refcounting for CoReleaseMarshalData */
void WINAPI stub_manager_release_marshal_data(struct stub_manager *m, ULONG refs, const IPID *ipid, BOOL tableweak) void stub_manager_release_marshal_data(struct stub_manager *m, ULONG refs, const IPID *ipid, BOOL tableweak)
{ {
struct ifstub *ifstub; struct ifstub *ifstub;
...@@ -618,7 +618,7 @@ void WINAPI stub_manager_release_marshal_data(struct stub_manager *m, ULONG refs ...@@ -618,7 +618,7 @@ void WINAPI stub_manager_release_marshal_data(struct stub_manager *m, ULONG refs
} }
/* is an ifstub table marshaled? */ /* is an ifstub table marshaled? */
BOOL WINAPI stub_manager_is_table_marshaled(struct stub_manager *m, const IPID *ipid) BOOL stub_manager_is_table_marshaled(struct stub_manager *m, const IPID *ipid)
{ {
struct ifstub *ifstub = stub_manager_ipid_to_ifstub(m, ipid); struct ifstub *ifstub = stub_manager_ipid_to_ifstub(m, ipid);
......
...@@ -109,19 +109,6 @@ struct stub_manager ...@@ -109,19 +109,6 @@ struct stub_manager
BOOL disconnected; /* CoDisconnectObject has been called (CS lock) */ BOOL disconnected; /* CoDisconnectObject has been called (CS lock) */
}; };
/* imported interface proxy */
struct ifproxy
{
struct list entry; /* entry in proxy_manager list (CS parent->cs) */
struct proxy_manager *parent; /* owning proxy_manager (RO) */
LPVOID iface; /* interface pointer (RO) */
STDOBJREF stdobjref; /* marshal data that represents this object (RO) */
IID iid; /* interface ID (RO) */
LPRPCPROXYBUFFER proxy; /* interface proxy (RO) */
ULONG refs; /* imported (public) references (LOCK) */
IRpcChannelBuffer *chan; /* channel to object (CS parent->cs) */
};
struct apartment struct apartment
{ {
struct list entry; struct list entry;
...@@ -195,35 +182,31 @@ HRESULT FTMarshalCF_Create(REFIID riid, LPVOID *ppv) DECLSPEC_HIDDEN; ...@@ -195,35 +182,31 @@ HRESULT FTMarshalCF_Create(REFIID riid, LPVOID *ppv) DECLSPEC_HIDDEN;
/* Stub Manager */ /* Stub Manager */
extern ULONG WINAPI stub_manager_int_release(struct stub_manager *This) DECLSPEC_HIDDEN; extern ULONG WINAPI stub_manager_int_release(struct stub_manager *This) DECLSPEC_HIDDEN;
extern struct stub_manager * WINAPI get_stub_manager(struct apartment *apt, OID oid) DECLSPEC_HIDDEN;
/* RPC Backend */ /* RPC Backend */
struct dispatch_params; struct dispatch_params;
void RPC_StartRemoting(struct apartment *apt) DECLSPEC_HIDDEN; HRESULT WINAPI RPC_CreateClientChannel(const OXID *oxid, const IPID *ipid,
HRESULT RPC_CreateClientChannel(const OXID *oxid, const IPID *ipid,
const OXID_INFO *oxid_info, const IID *iid, const OXID_INFO *oxid_info, const IID *iid,
DWORD dest_context, void *dest_context_data, DWORD dest_context, void *dest_context_data,
IRpcChannelBuffer **chan, struct apartment *apt) DECLSPEC_HIDDEN; IRpcChannelBuffer **chan, struct apartment *apt) DECLSPEC_HIDDEN;
HRESULT RPC_RegisterInterface(REFIID riid) DECLSPEC_HIDDEN; HRESULT WINAPI RPC_RegisterInterface(REFIID riid) DECLSPEC_HIDDEN;
HRESULT RPC_RegisterChannelHook(REFGUID rguid, IChannelHook *hook) DECLSPEC_HIDDEN; HRESULT RPC_RegisterChannelHook(REFGUID rguid, IChannelHook *hook) DECLSPEC_HIDDEN;
void RPC_UnregisterAllChannelHooks(void) DECLSPEC_HIDDEN; void RPC_UnregisterAllChannelHooks(void) DECLSPEC_HIDDEN;
HRESULT RPC_ResolveOxid(OXID oxid, OXID_INFO *oxid_info) DECLSPEC_HIDDEN; HRESULT WINAPI RPC_ResolveOxid(OXID oxid, OXID_INFO *oxid_info) DECLSPEC_HIDDEN;
/* Drag and drop */ /* Drag and drop */
void OLEDD_UnInitialize(void) DECLSPEC_HIDDEN; void OLEDD_UnInitialize(void) DECLSPEC_HIDDEN;
/* Apartment Functions */ /* Apartment Functions */
extern struct apartment * WINAPI apartment_findfromoxid(OXID oxid) DECLSPEC_HIDDEN;
extern void WINAPI apartment_release(struct apartment *apt) DECLSPEC_HIDDEN; extern void WINAPI apartment_release(struct apartment *apt) DECLSPEC_HIDDEN;
static inline HRESULT apartment_getoxid(const struct apartment *apt, OXID *oxid) static inline HRESULT apartment_getoxid(const struct apartment *apt, OXID *oxid)
{ {
*oxid = apt->oxid; *oxid = apt->oxid;
return S_OK; return S_OK;
} }
extern HRESULT WINAPI apartment_createwindowifneeded(struct apartment *apt) DECLSPEC_HIDDEN;
extern HWND WINAPI apartment_getwindow(const struct apartment *apt) DECLSPEC_HIDDEN; extern HWND WINAPI apartment_getwindow(const struct apartment *apt) DECLSPEC_HIDDEN;
extern HRESULT WINAPI enter_apartment(struct oletls *info, DWORD model) DECLSPEC_HIDDEN; extern HRESULT WINAPI enter_apartment(struct oletls *info, DWORD model) DECLSPEC_HIDDEN;
void WINAPI leave_apartment(struct oletls *info) DECLSPEC_HIDDEN; void WINAPI leave_apartment(struct oletls *info) DECLSPEC_HIDDEN;
......
...@@ -43,7 +43,7 @@ ...@@ -43,7 +43,7 @@
@ stdcall CoGetObject(wstr ptr ptr ptr) @ stdcall CoGetObject(wstr ptr ptr ptr)
@ stdcall CoGetObjectContext(ptr ptr) combase.CoGetObjectContext @ stdcall CoGetObjectContext(ptr ptr) combase.CoGetObjectContext
@ stdcall CoGetPSClsid(ptr ptr) combase.CoGetPSClsid @ stdcall CoGetPSClsid(ptr ptr) combase.CoGetPSClsid
@ stdcall CoGetStandardMarshal(ptr ptr long ptr long ptr) @ stdcall CoGetStandardMarshal(ptr ptr long ptr long ptr) combase.CoGetStandardMarshal
@ stdcall CoGetState(ptr) @ stdcall CoGetState(ptr)
@ stub CoGetTIDFromIPID @ stub CoGetTIDFromIPID
@ stdcall CoGetTreatAsClass(ptr ptr) combase.CoGetTreatAsClass @ stdcall CoGetTreatAsClass(ptr ptr) combase.CoGetTreatAsClass
...@@ -299,9 +299,10 @@ ...@@ -299,9 +299,10 @@
@ stub WriteOleStg @ stub WriteOleStg
@ stub WriteStringStream @ stub WriteStringStream
@ stdcall Internal_apartment_disconnectproxies(ptr)
@ stdcall Internal_RPC_ExecuteCall(ptr) @ stdcall Internal_RPC_ExecuteCall(ptr)
@ stdcall marshal_object(ptr ptr ptr ptr long ptr long)
@ stdcall unmarshal_object(ptr ptr long ptr ptr ptr ptr)
@ stdcall RPC_CreateServerChannel(long ptr ptr) @ stdcall RPC_CreateServerChannel(long ptr ptr)
@ stdcall RPC_UnregisterInterface(ptr long) @ stdcall RPC_UnregisterInterface(ptr long)
@ stdcall RPC_RegisterInterface(ptr)
@ stdcall RPC_ResolveOxid(int64 ptr)
@ stdcall RPC_StartRemoting(ptr)
@ stdcall RPC_CreateClientChannel(ptr ptr ptr ptr long ptr ptr ptr)
...@@ -1096,7 +1096,7 @@ static const IRpcChannelBufferVtbl ServerRpcChannelBufferVtbl = ...@@ -1096,7 +1096,7 @@ static const IRpcChannelBufferVtbl ServerRpcChannelBufferVtbl =
}; };
/* returns a channel buffer for proxies */ /* returns a channel buffer for proxies */
HRESULT RPC_CreateClientChannel(const OXID *oxid, const IPID *ipid, HRESULT WINAPI RPC_CreateClientChannel(const OXID *oxid, const IPID *ipid,
const OXID_INFO *oxid_info, const IID *iid, const OXID_INFO *oxid_info, const IID *iid,
DWORD dest_context, void *dest_context_data, DWORD dest_context, void *dest_context_data,
IRpcChannelBuffer **chan, struct apartment *apt) IRpcChannelBuffer **chan, struct apartment *apt)
...@@ -1531,7 +1531,7 @@ static void __RPC_STUB dispatch_rpc(RPC_MESSAGE *msg) ...@@ -1531,7 +1531,7 @@ static void __RPC_STUB dispatch_rpc(RPC_MESSAGE *msg)
} }
/* stub registration */ /* stub registration */
HRESULT RPC_RegisterInterface(REFIID riid) HRESULT WINAPI RPC_RegisterInterface(REFIID riid)
{ {
struct registered_if *rif; struct registered_if *rif;
BOOL found = FALSE; BOOL found = FALSE;
...@@ -1610,7 +1610,7 @@ void WINAPI RPC_UnregisterInterface(REFIID riid, BOOL wait) ...@@ -1610,7 +1610,7 @@ void WINAPI RPC_UnregisterInterface(REFIID riid, BOOL wait)
/* get the info for an OXID, including the IPID for the rem unknown interface /* get the info for an OXID, including the IPID for the rem unknown interface
* and the string binding */ * and the string binding */
HRESULT RPC_ResolveOxid(OXID oxid, OXID_INFO *oxid_info) HRESULT WINAPI RPC_ResolveOxid(OXID oxid, OXID_INFO *oxid_info)
{ {
TRACE("%s\n", wine_dbgstr_longlong(oxid)); TRACE("%s\n", wine_dbgstr_longlong(oxid));
...@@ -1631,7 +1631,7 @@ HRESULT RPC_ResolveOxid(OXID oxid, OXID_INFO *oxid_info) ...@@ -1631,7 +1631,7 @@ HRESULT RPC_ResolveOxid(OXID oxid, OXID_INFO *oxid_info)
/* make the apartment reachable by other threads and processes and create the /* make the apartment reachable by other threads and processes and create the
* IRemUnknown object */ * IRemUnknown object */
void RPC_StartRemoting(struct apartment *apt) void WINAPI RPC_StartRemoting(struct apartment *apt)
{ {
if (!InterlockedExchange(&apt->remoting_started, TRUE)) if (!InterlockedExchange(&apt->remoting_started, TRUE))
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment