Rob Shearman
d6a435fc56
ole32: Pass the OXID info to RPC_CreateClientChannel and use this to pass the server process ID to channel hooks.
2007-03-28 12:10:40 +02:00
Rob Shearman
d1ec56c871
ole32: Generate OXID_INFO in the stub manager.
...
Copy the OXID_INFO from the stub manager, if available, in
proxy_manager_construct. Otherwise, attempt to resolve it.
Use ipidRemUnknown from OXID_INFO in the proxy manager instead of
magically generating the IPID for RemUnknown.
2007-03-27 12:39:44 +02:00
Rob Shearman
15a0b7fad5
ole32: Don't keep the local server named pipe open for a single-use object.
2007-03-09 21:16:44 +01:00
Rob Shearman
880542a9f8
ole32: Close the named pipe after revoking local server objects.
2007-03-09 21:16:37 +01:00
Francois Gouget
b0bde6b87c
Assorted spelling fixes.
2007-01-18 12:56:52 +01:00
Rob Shearman
ba25254d9f
ole32: Remove some unneeded inclusions of headers.
...
Change some incorrect usages of SEEK_SET to the intended STREAM_SEEK_SET
instead.
2007-01-10 12:08:51 +01:00
Rob Shearman
beaaf0514f
ole32: Fix a comment in rpc_sendreceive_thread that wasn't correct.
2007-01-10 12:02:26 +01:00
Francois Gouget
386bb905e7
ole32: Print GetLastError() in decimal with '%u'.
2007-01-06 11:40:43 +01:00
Rob Shearman
2db1d0de38
ole32: Make sure to reset the message state if it has been changed in RPC_ExecuteCall before returning.
...
Fix the hrFault parameter passed into the ClientNotify function in
ClientRpcChannelBuffer_SendReceive so that it is correct in the case of
messages dispatched with PostMessage.
Only unmarshal ORPCTHAT for non-fault packets.
2007-01-04 21:12:36 +01:00
Rob Shearman
7a5d5c5503
ole32: Fix the calculation of message_state->prefix_data_len in two places where it would come out negative.
2007-01-02 20:49:07 +01:00
Rob Shearman
ee99b6d743
ole32: Marshal the ORPCTHAT structure prefixed to the server data.
...
Unmarshal the data on the client side (during
ClientChannelBuffer_SendReceive) and call ClientNotify.
2006-12-27 14:34:15 +01:00
Rob Shearman
844037ab01
ole32: Performing a COM call from within the processing of a sent message during a wait for completion of another COM call is not allowed.
...
Add a test for the behaviour where RPC_E_CANTCALLOUT_ININPUTSYNCCALL is returned.
2006-12-24 13:08:02 +01:00
Rob Shearman
aca17cd120
ole32: Track the pending call count so that the correct call type can be passed to the message filter HandleInComingCall function.
2006-12-24 13:07:35 +01:00
Rob Shearman
e236edb91e
ole32: Send a causality ID in the ORPCTHIS header for a call.
...
Use the causality ID to determine whether this is a top-level or a
nested (called-back) call for the purposes of IMessageFilter::HandleInComingCall.
2006-12-20 12:41:01 +01:00
Rob Shearman
a089e57983
ole32: Pass in the IID and IUnknown* of the object being executed to the server notification and message filter functions.
2006-12-20 12:40:38 +01:00
Rob Shearman
9208eef55c
ole32: Call the message filter for incoming calls.
2006-12-20 12:40:30 +01:00
Rob Shearman
c0a25d3565
ole32: Call ServerNotify for channel hooks.
...
Store the SChannelHookCallInfo structure in the message state.
2006-12-20 12:40:03 +01:00
Rob Shearman
5788ee9f05
ole32: Implement CoRegisterChannelHook and call channel hook methods on the client side.
2006-12-20 12:39:50 +01:00
Rob Shearman
1dc5dec6e6
ole32: Marshal the ORPCTHIS structure prefixed to the client data when doing ORPC calls.
...
This is done by putting the ORPCTHIS data into the buffer when calling
IRpcChannelBuffer::GetBuffer on the client side and then storing the
amount we increased the buffer in a structure stored in the Handle
field. This is done to present the correct Buffer pointer to the proxy
so that it writes its data after the ORPCTHIS data.
Unmarshal the data on the server side (during RPC_ExecuteCall) and make
sure the data is consistent according to NDR rules. Also add several
checks on the unmarshaled data that are specified by the DCOM draft
specification.
2006-12-20 12:36:43 +01:00
Rob Shearman
fff2d8e82b
ole32: Re-enable the code that unregisters interfaces with the RPC runtime.
2006-11-13 14:32:45 +01:00
Rob Shearman
b1bfad067b
ole32: Fix a memory leak on the error path of dispatch_rpc.
2006-10-27 11:59:58 +02:00
Michael Stefaniuc
21ff87bf50
ole32: Win64 printf format warning fixes.
2006-10-16 10:53:28 +02:00
Huw Davies
fead72e8a7
ole32: Don't return from CoRegisterClassObject until we have created the named pipe.
...
Also don't fail if the client connects to the pipe between CreateNamedPipe and ConnectNamedPipe.
2006-09-28 11:56:08 +02:00
Robert Shearman
6bf6caa69d
ole32: Add a reference to the stream in RPC_StartLocalServer since we
...
release a reference to it when the local server thread dies.
2006-09-07 11:43:49 +02:00
Robert Shearman
679dfb029d
ole32: Return errors if the attempt to start a LocalService object fails.
2006-08-28 17:48:47 +02:00
Robert Shearman
83d24a6408
ole32: Move the opening of the AppId key for a clsid to a helper function.
2006-08-26 19:28:10 +02:00
Robert Shearman
352d9e2d67
ole32: Free the buffer allocated in local_server_thread (found by Smatch).
2006-07-17 13:43:44 +02:00
Robert Shearman
aa09031c78
ole32: Reuse event handles used for COM calls.
...
This reduces the number of server calls during a COM call by half.
2006-06-19 10:28:20 +02:00
Robert Shearman
c60c28cf08
ole32: If IRpcStubBuffer_Invoke fails, we should raise an exception to
...
tell the RPC runtime that the call failed.
2006-06-09 21:11:20 +02:00
Jonathan Ernst
360a3f9142
Update the address of the Free Software Foundation.
2006-05-23 14:11:13 +02:00
Robert Shearman
af6d97ad36
ole32: Exception handling shouldn't be needed around the call to IRpcStubBuffer_Invoke.
...
It should have its own exception handler to catch any exceptions that are raised.
2006-05-10 19:24:24 +02:00
Robert Shearman
714b66e945
ole: Use ncalrpc instead of ncacn_np as the RPC transport.
...
Use ncalrpc instead of ncacn_np as the transport as this is more similar
to how ole32 from NT works and should also be compatible with rpcrt4
from Win9x, allowing more combinations of dlls to work.
2006-03-31 17:38:43 +02:00
Robert Shearman
650ac14219
ole: Use the thread pool for executing RPC calls for better performance
...
(after the thread pool has been improved).
2006-03-20 12:00:50 +01:00
Robert Shearman
7406cc210b
ole: Implement IRpcChannelBuffer::GetDestCtx on the client side.
2006-03-06 11:09:34 +01:00
Robert Shearman
a37a5014a2
ole: Change the Apartment Model field to a boolean.
...
Change the apartment model field to a boolean that just specifies
whether the apartment is multi-threaded or not and fix up all the
places where this is used.
Fixes a bug where we would return an error if the previous apartment
model passed into CoInitializeEx matches the new apartment model, but
additional optimisation flags are specified.
2006-02-20 11:15:57 +01:00
Alexandre Julliard
be22a96847
Include wine/port.h in files that use exceptions.
2006-02-07 16:31:21 +01:00
Robert Shearman
1b7d346d1f
ole: Verify that the proxy is being used in the correct thread.
2006-01-20 16:16:08 +01:00
Robert Shearman
b3041ba6ad
ole: Optimisation for COM Calls.
...
Add an optimisation to yield and try to allow the RPC to run before
waiting for messages and RPCs to arrive.
2006-01-14 17:45:49 +01:00
Robert Shearman
f431353058
ole: Fix crash in RpcChannelBuffer_SendReceive.
...
Initialise apt to NULL since ipid_to_apt_stubbuffer no longer does
this for us.
2006-01-12 11:53:32 +01:00
Robert Shearman
fcba783fc7
ole: Add an accessor function for an apartment's window.
2006-01-10 20:41:22 +01:00
Robert Shearman
d175f154ba
ole: Report and clean up after PostMessage failures.
2006-01-10 20:41:22 +01:00
Robert Shearman
a02cb3ebd6
ole: Pass a channel into IRpcStubBuffer::Invoke.
...
Create a server channel and store this in the ifstub.
Rename ipid_to_apt_and_stubbuffer to ipid_get_dispatch_params and make
the function return an HRESULT.
Return the channel for the ifstub in ipid_get_dispatch_params.
2006-01-10 20:41:22 +01:00
Robert Shearman
8e5b36147d
ole: Reduce the access rights required by start_local_service.
2006-01-10 20:41:22 +01:00
Robert Shearman
c46386ff5c
ole: Return the last error if we couldn't open the requested service.
...
Fix the ok/failed message.
2006-01-10 20:41:22 +01:00
Robert Shearman
b75db2d9de
ole: Join the MTA if necessary when executing an RPC call.
...
Join the MTA if necessary when executing an RPC call to ensure that it
is executing with a valid apartment and won't fail for certain COM
calls.
2006-01-09 18:41:19 +01:00
Robert Shearman
1eda42ccac
ole: Prefer services over servers.
...
Attempt to start as a local service before attempting to start as a
local server for the CLSCTX_LOCAL_SERVER case.
2006-01-09 18:40:42 +01:00
Alexandre Julliard
dbc14a5cb5
ole32: Revert exception handler change.
...
The handler does the opposite of normal page fault handlers.
2005-12-19 17:44:56 +01:00
Alexandre Julliard
ae964ac801
Take advantage of the __EXCEPT_PAGE_FAULT macro.
2005-12-16 17:17:57 +01:00
Alexandre Julliard
db7920bb44
We no longer need to handle EXCEPTION_PRIV_INSTRUCTION on page faults.
2005-12-16 16:37:12 +01:00
Robert Shearman
ef8ae2d763
OLE: Fix a typo where brackets were missing.
2005-12-06 10:57:58 +01:00