Robert Shearman
5bef770490
Give IUnknown its own ifstub to fix ref-counting and ipid storage
...
issues.
2005-01-27 10:39:44 +00:00
Robert Shearman
3018974ce3
- Make proxy manager use IMultiQI instead of IInternalUnknown as tests
...
show that IInternalUnknown isn't exposed.
- Implement IMultiQI on top of IRemUnknown calls.
- Silence some fixmes that occur during tests and don't give us any
useful information.
- Fix typo in class factory proxy that caused us to use the wrong
offset into the CFProxy structure, causing us to not call the
outer_unknown properly.
2005-01-26 21:07:05 +00:00
Robert Shearman
cbbf08a7e2
- Use InterlockedIncrement for the ipid counter instead of a critical
...
section (suggested by Mike Hearn).
- Remove a line added by a bad merge.
- Implement RemUnkStub_Disconnect.
- Remove all of the RPC disconnect code.
2005-01-26 20:53:06 +00:00
Robert Shearman
963ac3f013
- Implement IRemUnknown.
...
- Use IRemUnknown for life-cycle management instead of the current
hacks.
2005-01-26 20:42:30 +00:00
Robert Shearman
ce5adcda15
- Move OLE automation interface registration to oleaut32.
...
- Add IRemUnknown to list of interfaces to register.
2005-01-25 19:03:30 +00:00
Robert Shearman
6e042873d5
Proxies/stubs for IRemUnknown methods, based on code written by Ove
...
Kåven.
2005-01-25 19:02:54 +00:00
Robert Shearman
ad34f3dc5e
- Generate machine-local IPIDs.
...
- Make pipes be uniquely identified only by their IPID.
2005-01-25 10:57:24 +00:00
Robert Shearman
6b89a92215
- Add a new flag SORFP_NOLIFETIMEMGMT to tell the proxy manager not to
...
call any IRemUnknown functions.
- Move the low-level unmarshaling code into a new function,
unmarshal_object, so that it can be easily reused for unmarshaling
IRemUnknown.
2005-01-24 11:24:08 +00:00
Mike Hearn
70c1c26869
Various formatting/style changes.
2005-01-21 10:15:29 +00:00
Robert Shearman
717eb8fff4
- Consolidate more stub creation details into register_ifstub.
...
- Replace the current wine_marshal_id structure with STDOBJREF for the
on-the-wire format.
2005-01-20 10:35:46 +00:00
Robert Shearman
6a20b2f476
- Initialize ppv pointer in ClientIdentity_QueryInterface to NULL as
...
apps depend on this.
- Don't release IRpcProxyBuffer on ifproxy destruction - the caller
will do this for us.
- Make find_proxy_manager add a reference to the proxy manager and
make proxy_manager_construct return an object with a valid
ref-count.
- Remove stray not operator to fix a memory leak / crash in
proxy_manager_destroy.
- More debug messages, especially on errors.
- Fix ref-count leak in the Class Factory proxy.
- Add a test case for IClassFactory_CreateInstance.
2005-01-19 17:00:20 +00:00
Robert Shearman
b5a10936bd
Initialize clsid member to the marshaler clsid to fix custom
...
marshaling.
2005-01-17 19:32:25 +00:00
Robert Shearman
4c8d59dd91
Implement table marshaling.
2005-01-17 13:39:40 +00:00
Robert Shearman
5ce396f9bd
- Remove obsolete structs, rearrange things to group the structs
...
together and to group similar functions.
- Document thread-safety of members of structs.
2005-01-14 17:20:27 +00:00
Robert Shearman
ca608933dd
Make proxy shutdown test succeed by releasing the channel on
...
disconnect.
2005-01-14 17:20:13 +00:00
Robert Shearman
0e18914481
- Add documentation for most Co* functions.
...
- Move several functions into different files to group them with
similar functions.
2005-01-14 17:05:36 +00:00
Robert Shearman
6036a773e2
- The apartment reference should be held while the stub manager
...
reference is held.
- Fix same apartment-unmarshal detection.
2005-01-14 16:48:34 +00:00
Robert Shearman
ead057c4b7
- Don't use the pipe caching code because it doesn't work correctly at
...
the moment.
- Always write disconnect reply packet, even in failure cases.
2005-01-14 15:59:01 +00:00
Robert Shearman
a84e7d7b75
Destroy stubs on apartment shutdown.
2005-01-14 15:11:55 +00:00
Mike Hearn
ba0475e738
Force context switch on chanbuf disconnect to avoid a race in the test
...
suite.
2005-01-14 15:11:24 +00:00
Christian Costa
a010e3b3fa
CoInitialize(Ex) should return S_FALSE when COM is already initialized
...
for the current thread.
2005-01-12 19:58:09 +00:00
Robert Shearman
452491bd03
- Document CoSetState & CoGetState.
...
- Rewrite them to only retrieve TLS info once.
- Remove trailing whitespace in COM_CurrentInfo.
2005-01-12 19:48:39 +00:00
Robert Shearman
2891bc53ba
Remove wine_marshal_data: it is unneeded and there is no equivalent in
...
STDOBJREF.
2005-01-12 19:48:20 +00:00
Robert Shearman
de95de1865
- Force creation of thread queue to stop PostThreadMessage from
...
failing.
- Remove incorrect comment.
2005-01-12 19:28:37 +00:00
Robert Shearman
89f5c8241f
The way apartments are used has changed, so fix up the hacks in the
...
RPC code that haven't yet been updated.
2005-01-12 19:27:22 +00:00
Robert Shearman
36f482cb7d
- Make MTA dynamically allocated so that proxies and other resources
...
are freed at the proper time.
- Changed/removed some incorrect comments regarding apartments.
2005-01-12 19:27:04 +00:00
Bill Medland
9c6de52bb2
Corrected testing for multithreaded (based upon observations by Paul
...
Vriens, Christian Costa and Robert Shearman).
Added TRACE for investigating OXID errors.
2005-01-11 15:45:03 +00:00
Mike McCormack
71424b80e5
Tests and fixes for StgOpenStorage.
2005-01-11 15:08:08 +00:00
Robert Shearman
68fc5f8890
Add tests for trying to unmarshal from a bad stream and for testing
...
what interfaces the proxy exposes.
2005-01-11 10:45:52 +00:00
Robert Shearman
c353f85082
- Document how thread-safety is ensured for each member of the
...
stub_manager and ifstub structs.
- Make stub_manager ref counted to ensure it doesn't get freed whilst
it is still being used.
- ifstubs are now freed only when the controlling stub_manager is freed.
- Rename stub_manager_ref/unref to stub_manager_ext_addref/release
respectively and make then take an unsigned long to prevent
malicious callers from passing in a negative value and corrupting
the ref count.
2005-01-11 10:45:34 +00:00
Mike McCormack
6f20133705
Test and fix a few problems with OLE storage streams.
2005-01-11 10:44:28 +00:00
Mike McCormack
b146b75c27
Test and fix StgCreateDocFile grfModes.
2005-01-10 12:26:25 +00:00
Paul Vriens
202b340a51
- use Interlocked* functions in AddRef and Release.
...
- store the result of the Interlocked functions and use only this.
2005-01-09 17:29:21 +00:00
Eric Pouech
cf1d00bb08
Removed excessive statement (break after return or goto, not useful
...
break, not needed vars...)
2005-01-09 16:42:53 +00:00
Robert Shearman
86d63bbbac
Rename iid in wine_marshal_id to ipid and use IPIDs instead of IIDs in
...
the stub manager.
2005-01-07 15:33:41 +00:00
Robert Shearman
090003360f
The current architecture cannot handle pipes changing address, so use
...
a static array. Fixes memory corruption that sometimes occurs when
using multiple pipes.
2005-01-07 15:33:26 +00:00
Robert Shearman
b2edf2f03c
No need to add a reference to the apartment from new_stub_manager as
...
we don't hold on to an apartment pointer.
2005-01-06 20:43:48 +00:00
Robert Shearman
23e390a223
- Make struct oletls ref counted so that it is only detached from the
...
apartment on the final CoUninitialize.
- Decrease the size of the crit sec on destroying an apartment - it is
only needed for touching the apartment list.
- Small cleanups.
2005-01-06 19:39:07 +00:00
Robert Shearman
67bae9f213
ConnectNamedPipe returning ERROR_PIPE_CONNECTED is not an error.
2005-01-06 19:38:48 +00:00
Robert Shearman
b5e4d1a8d8
The channel buffer can be NULL if the proxy is disconnected, so check
...
for this before releasing it.
2005-01-05 17:30:20 +00:00
Robert Shearman
9f426df0a8
- Fix race on apartment creation.
...
- Display errors in decimal to make searching for the meaning in
winerror.h easier.
2005-01-05 17:30:04 +00:00
Mike Hearn
a6a416cb4e
- Make apartment access thread-safe by introducing refcounting and
...
wider usage of the apartment lock.
- Rework OLE TLS management to eliminate uninitialised apartments and
parent chaining.
2005-01-05 17:14:33 +00:00
Mike McCormack
a246306870
Allow COM to start services containing COM servers.
2005-01-05 13:22:10 +00:00
Robert Shearman
85763a1711
- Add tracing for proxy ref count functions.
...
- Release the channel on proxy destruction.
2005-01-04 20:33:02 +00:00
Mike Hearn
73318dab8f
Add a DCOM todo list.
2005-01-04 20:32:47 +00:00
Robert Shearman
2835633789
Implement proxy manager.
2005-01-04 11:58:23 +00:00
Robert Shearman
dee74a6ec9
Make the ClassFactory proxy support aggregation.
2005-01-04 11:47:52 +00:00
Michael Stefaniuc
15a308a9d7
Do not check for non NULL pointer before HeapFree'ing it. It's
...
redundant.
2005-01-03 14:56:42 +00:00
Mike Hearn
054f9ecc3c
Comment out an assert, as we don't yet implement IRemUnknown.
2005-01-03 14:34:09 +00:00
Robert Shearman
5d7d188df5
- Move named pipe macros into rpc.c.
...
- Remove unneeded function.
2004-12-27 19:27:57 +00:00