Robert Shearman
b9aa9e0bdd
- Pass the original IID to IMarshal_UnmarshalInterface and query for
...
the requested interface.
- Unmarshaling IID_NULL means use the IID the interface was originally
marshaled with.
2005-02-02 19:11:23 +00:00
Robert Shearman
e6afc84873
- Add code for destroying the thread-local storage data, but don't use
...
it yet.
- Don't release apartment on changing modes because we didn't add a
reference anywhere.
- Quieten the RPC_E_DISCONNECTED error message as it is an expected
return code.
- Treat IID_NULL the same as IID_IUnknown.
- Make tests compile on Win95 again.
- Fix copy+paste error where the test failure should be from the
CoUnmarshalInterface function.
2005-02-01 14:18:10 +00:00
Robert Shearman
9b634b97ae
- More tests.
...
- Change return code of CoGetPSClsid to match test result.
- Do a slight hack to make IRemUnknown proxies be added after the
proxy that uses them to stop them being used after they are
destroyed.
- Fix multiple local server connections.
2005-01-28 12:39:13 +00:00
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
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
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
ca608933dd
Make proxy shutdown test succeed by releasing the channel on
...
disconnect.
2005-01-14 17:20:13 +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
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
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
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
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
Robert Shearman
85763a1711
- Add tracing for proxy ref count functions.
...
- Release the channel on proxy destruction.
2005-01-04 20:33:02 +00:00
Robert Shearman
2835633789
Implement proxy manager.
2005-01-04 11:58:23 +00:00
Mike Hearn
5475a2e617
- Implement the COM stub manager, refactor the current stub code.
...
- Begin implementing interface stubs.
2004-12-27 19:21:47 +00:00
Mike Hearn
737e67b17b
Propagate apartments through the intermediate threads, make listener
...
thread apartment scoped.
2004-12-27 16:59:28 +00:00
Francois Gouget
6fb1a20020
Assorted spelling fixes.
2004-12-20 19:27:06 +00:00
Robert Shearman
9fdd91fdc4
- Add documentation to several functions.
...
- Coding style changes according to the style Mike and I have agreed
upon for COM related files.
2004-12-14 15:31:05 +00:00
Robert Shearman
2fa9a0a6fd
Remove unneeded includes and the unused COMPOBJ_hInstance32 variable.
2004-12-14 15:28:58 +00:00
Robert Shearman
40b4f7f6e6
Use OBJREF on the wire for generic marshaling functions.
2004-12-14 15:14:40 +00:00
Robert Shearman
2c3de6db24
- Make the wine_marshal_id structure more like the DCOM OBJREF
...
structure, by replacing the process id field by apartment id (OXID),
changing the users of the process id field to use the new field and
renaming the objectid field to oid.
- Fix StdMarshalImpl_UnmarshalInterface to invalidate and release its
stub when doing a same apartment marshal.
2004-12-08 17:49:30 +00:00
Mike Hearn
36aee71988
Rename the STUBMGR thread to more accurately reflect its purpose.
2004-12-07 17:01:40 +00:00
Robert Shearman
3b0a5d0a06
- Add some function declarations to objbase.h.
...
- Add stubs for server ref counting.
- Implement HRESULT marshaling.
2004-12-01 15:33:34 +00:00
Francois Gouget
486d020c1b
Don't define COBJMACROS in objbase.h.
...
Update the Wine sources accordingly.
2004-10-07 03:06:48 +00:00
Joris Huizer
34cffce6f9
Ref count increment/decrement cleanup.
2004-09-24 01:16:53 +00:00
Alexandre Julliard
241a4c34b1
Get rid of the non-standard ICOM_THIS macro.
2004-09-09 21:03:58 +00:00
Alexandre Julliard
f714b39762
Get rid of the no longer used ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
...
macro.
2004-08-23 19:39:48 +00:00
Alexandre Julliard
48c4bb3c31
Get rid of the non-standard ICOM_VTABLE macro.
2004-08-12 23:00:51 +00:00
Robert Shearman
5c7c5fafb6
- Add static to non-exported marshal functions.
...
- Remove unused marshal functions.
- Rename several RPC functions.
2004-08-02 18:47:31 +00:00
Mike Hearn
819942339f
Disconnect proxies at COM shutdown to release the corresponding
...
stubs.
2004-08-02 18:28:29 +00:00
Robert Shearman
11fc5874df
Emit fixme for known local wrong behaviour.
2004-07-30 00:02:17 +00:00
Mike Hearn
5169f3c5d2
Implement disconnect for proxies so that stubs are properly
...
destroyed.
2004-07-29 23:58:12 +00:00
Mike Hearn
e59aa5d6a4
Fix ref counting in StdMarshalImpl_MarshalInterface for case where the
...
stub already exists.
2004-07-29 02:43:59 +00:00
Mike Hearn
1cc05ff148
Pass -Embedding switch to EXE servers, more tracing.
2004-07-23 19:10:13 +00:00
Robert Shearman
2e93adc5c7
- Remove unneeded STUBMGR_Start call.
...
- Cleanup compobj_private.h.
2004-07-22 23:44:54 +00:00
Alexandre Julliard
bffe98c7dd
Authors: Mike Hearn <mh@codeweavers.com>, Rob Shearman <rob@codeweavers.com>
...
Implement StdMarshal::ReleaseMarshalData.
2004-07-22 20:34:14 +00:00
Aric Stewart
665c4880f7
Return an error in CoMarshalInterface if the IUnknown pointer is NULL
...
and don't crash.
2004-06-30 18:14:00 +00:00
Ivan Leo Puoti
5729abea73
Removed the winedefault.reg message.
2004-06-17 19:55:24 +00:00
Robert Shearman
bc06d4ba8e
- Fix ref count on standard proxy creation.
...
- Release channel buffer in StdMarshal_UnmarshalInterface, since we no
longer use it and the proxy should have taken a reference on it.
- Add a few comments.
2004-06-14 17:58:03 +00:00
Robert Shearman
3270bb1ee1
Fixed CoMarshalInterThreadInterfaceInStream and
...
CoGetInterfaceAndReleaseStream.
2004-05-29 00:22:55 +00:00
Marcus Meissner
e3a37c8a26
Revert broken strict aliasing fix.
2004-05-21 20:52:57 +00:00
Marcus Meissner
ff39b877a4
Fixed strict aliasing issues in dlls/ole32.
2004-05-04 03:10:50 +00:00
Marcus Meissner
aff2e2e5e6
Implemented CoReleaseMarshalData.
2004-05-02 04:20:37 +00:00
Marcus Meissner
aedfc471a2
Fixed lvalue casts.
2004-04-30 18:32:36 +00:00
Dave Miller
47fb938d54
Removed ordinals from comments.
2003-09-11 03:06:25 +00:00
Alexandre Julliard
20c169e0a4
Fixed a few more headers dependency issues.
2003-09-09 19:39:31 +00:00
Alexandre Julliard
e37c6e18d0
Fixed header dependencies to be fully compatible with the Windows
...
headers (with help from Dimitrie O. Paun).
2003-09-05 23:08:26 +00:00
Francois Gouget
f803e2a92d
Fix miscellaneous spelling errors and typos.
2003-05-13 00:41:57 +00:00
Mike Hearn
cb816d2c3f
Implemented the global interface table object using a simple linked
...
list.
2003-03-11 01:45:38 +00:00
Alexandre Julliard
87fa2d586d
Fixed a few problems caused by the new objidl.idl.
2002-12-19 22:16:35 +00:00
Marcus Meissner
8712174c0d
Handle errors in std marshaller better, do not crash.
...
Added another error message if some program tries to marshal
IOleObject.
OleCreate() should be able to use Local Servers too (it can't as of
now, just for debugging).
2002-11-04 22:38:26 +00:00
Vincent Béron
9a62491660
Removed trailing whitespace.
2002-05-31 23:06:46 +00:00
Marcus Meissner
f9bf085108
Tell the user if winedefault.reg is not loaded.
2002-05-16 20:26:40 +00:00
Alexandre Julliard
0799c1a780
Added LGPL standard comment, and copyright notices where necessary.
...
Global replacement of debugtools.h by wine/debug.h.
2002-03-09 23:29:33 +00:00
Stefan Leichter
923861fbd2
Compile fix for GCC 2.7.x.
2002-02-22 21:22:06 +00:00
Marcus Meissner
0749fc2034
Implemented Local Server COM.
...
Implemented the Typelib based Marshaler.
2002-02-05 18:11:17 +00:00