Remove the fixme printed if CoGetClassObject fails in
CoCreateInstance, because we already print an error in all cases and
the error more accurately pin-points the source of the problem.
Tests with native show that during COM calls posted messages aren't
retrieved other than COM calls so change the PeekMessage parameters in
CoWaitForMultipleHandles to duplicate this.
Put the PeekMessage call of CoWaitForMultipleHandles into a separate
function so that the order and type of the messages retrieved can be
customised in the future.
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.
When a WM_QUIT message in encountered in CoWaitForMultipleHandles then
it should repost the WM_QUIT message and then switch to waiting
without checking messages.
versions of the CLSID & registry functions.
- Reindent CoGetClassObject and output an error message if the class
isn't registered.
- Add tests for the touched functions.
- Move the modal loop called during RPCs into CoWaitForMultipleHandles.
- Use a mutex for long remoting calls to IRemUnknown methods.
- Remove locking in apartment_disconnectproxies as it is not needed.
- Use PostMessage instead of SendMessage so we can run the message
loop or not as appropriate.
- Rename register_ifstub to marshal_object to more accurately describe
what it does.
- Add new function, apartment_getoxid, to prepare for a possible
future patch where remoting is started on demand.
occasional test crash caused by heap corruption.
- Zero the memory block passed to RpcServerRegisterIfEx so we don't
pass garbage in some of the fields we don't fill in.
- Return the correct error code from create_server and fix two handle
leaks.
- TODO update.
the apartment structure.
- Don't pass an IPID by value for proxy_manager_create_ifproxy.
- Disable more of RPC_UnregisterInterface to prevent the RPC runtime
using freed memory.
- Rename various external RPC backend functions so that they all have
the same "RPC_" prefix.
- Reduce the timeout of the function that connects to a local server
to 30s, like native.