Commit Graph

507 Commits

Author SHA1 Message Date
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
Robert Shearman 2b747d4e50 Implement COM local servers using table marshaling to avoid doing the
marshaling in a child thread where COM has not been initialized.
2004-12-27 19:24:55 +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
Michael Stefaniuc 5ad7d858e0 Do not check for non NULL pointer before HeapFree'ing it. It's
redundant.
2004-12-23 17:06:43 +00:00
Eric Pouech bcfa5b0900 ReadFile and WriteFile must be passed a parameter for the number of
handled bytes when no overlapped operation is done.
2004-12-22 18:38:31 +00:00
Robert Shearman 827154e451 Add tests for moniker and marshaling functions. 2004-12-21 14:51:27 +00:00
Francois Gouget 6fb1a20020 Assorted spelling fixes. 2004-12-20 19:27:06 +00:00
Ge van Geldorp b4bb1c931c Allocate correct amount of memory. 2004-12-16 14:23:16 +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 398a595377 Fixed incorrect unsigned test. 2004-12-14 11:35:12 +00:00
Eric Pouech 4056d7ef8c Fixed some errors in function prototypes. 2004-12-13 21:19:01 +00:00
Alexandre Julliard ebe3c529b1 Janitorial: C booleans must not be compared against TRUE. 2004-12-09 14:07:59 +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 cba8763c33 Remove unnecessary WNDPROC casts. 2004-12-06 11:51:29 +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
Eric Pouech 0a258964c2 Const correctness fixes. 2004-11-30 21:38:57 +00:00
Mike Hearn b547af156b Trace the OLE error info strings. 2004-11-29 17:00:39 +00:00
Mike Hearn a153efc5bb - Improve OLE function documentation.
- Bail out with CO_E_NOTINITIALIZED when apt is null.
2004-11-29 17:00:15 +00:00
Robert Shearman aa758eaf82 Implement OleDuplicateData. 2004-11-24 18:12:06 +00:00
Alexandre Julliard 405568801e Removed a couple of no longer needed entries. 2004-11-19 18:28:05 +00:00
Ge van Geldorp b3f2c53155 Use only one .res file. 2004-10-27 00:47:53 +00:00
Dmitry Timoshkov c41d0c9a4b - Remove bogus use of nStatCounter and hOleAut32 in CoSetState.
- Remove a comment about protecting per thread data by a critical section.
2004-10-25 21:48:44 +00:00
Francois Gouget 3bb5b093e8 Assorted spelling fixes. 2004-10-22 22:27:51 +00:00
Vincent Béron 4eeae1adb3 Fix some types problems. 2004-10-18 22:39:21 +00:00
Robert Shearman 0fb8f4a15e Improve proxy destruction comment. 2004-10-18 19:34:51 +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
Francois Gouget 67aa858a31 Assorted spelling fixes. 2004-10-05 18:15:29 +00:00
Alexandre Julliard 739e5b06da Avoid depending on the non-standard IUnknown_METHODS macro in Wine
internal headers.
2004-10-05 04:16:21 +00:00
Joris Huizer 34cffce6f9 Ref count increment/decrement cleanup. 2004-09-24 01:16:53 +00:00
Hans Leidekker 719a789792 Fix signed/unsigned comparison warnings. 2004-09-22 02:46:38 +00:00
Alexandre Julliard 0af18186b2 Ignore the generated header files. 2004-09-21 01:05:14 +00:00
Alexandre Julliard 47461203c4 Build the .h files from their idl source at compile time, and remove
them from CVS.
2004-09-21 00:35:02 +00:00
Alexandre Julliard 233766aafa Build idl files as part of the normal build process. 2004-09-20 21:48:42 +00:00
Mike McCormack 37dcaf6be6 CoSuspendClassObjects stub implementation. 2004-09-20 21:44:34 +00:00
Alexandre Julliard 241a4c34b1 Get rid of the non-standard ICOM_THIS macro. 2004-09-09 21:03:58 +00:00
Francois Gouget 83755cca97 Move the PROPVARIANT declaration from objidl.idl to propidl.idl.
Move related API declarations from individual C files to propidl.idl.
Remove uneeded include of propidl.h in the propvariant.c test.
2004-09-09 19:23:19 +00:00
Francois Gouget 9ecc71213f The union in PROPVARIANT is always nameless on Windows. So define a
macro to deal with it correctly.
2004-09-08 19:05:55 +00:00
Mike McCormack d324ccfce7 Fix some warnings found with -Wsign-compare. 2004-09-07 20:25:52 +00:00
Robert Shearman 6e92fca9b3 - Fix PropVariantCopy for VT_LPSTR and VT_LPWSTR.
- Test case VT_BSTR, VT_LPSTR and VT_LPWSTR.
2004-09-06 21:28:28 +00:00
Alexandre Julliard 39a696a166 Removed some uses of the non-standard ICOM_THIS macro. 2004-09-06 20:34:29 +00:00
Robert Shearman 77994cce4e - Fix PropVariantClear to reject invalid types.
- Don't crash on NULL pointers.
- Add test case.
2004-09-03 01:04:38 +00:00
Francois Gouget 6825ed811d Added missing trailing '\n's to ok() calls. 2004-09-02 20:09:37 +00:00
Alexandre Julliard 03250ff6e7 Inline functions don't need WINE_UNUSED. 2004-09-01 04:55:52 +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 20486e1c59 Get rid of the ICOM_MSVTABLE_COMPAT support, g++ no longer requires
this.
2004-08-23 18:10:02 +00:00
Alexandre Julliard 07a805127a Added recursive idl target to allow updating idl files private to a
dll.
2004-08-22 22:33:57 +00:00
Alexandre Julliard 25e2a320a7 Don't define BEGIN_INTERFACE in unknwn.h. 2004-08-22 21:38:46 +00:00
Alexandre Julliard 936198ce45 Moved ICOM_THIS_MULTI definition out of objbase.h and into the files
that use it.
2004-08-13 00:44:22 +00:00
Alexandre Julliard 48c4bb3c31 Get rid of the non-standard ICOM_VTABLE macro. 2004-08-12 23:00:51 +00:00
Alexandre Julliard 0467ce9fd7 Get rid of the non-standard ICOM_VFIELD macro. 2004-08-12 19:52:49 +00:00
Alexandre Julliard 616940eb9a Get rid of the non-standard ICOM_DEFINE macro. 2004-08-12 03:33:30 +00:00
Alexandre Julliard b459952144 Avoid some non-portable makefile constructs, and get rid of the
ALTNAMES variable.
2004-08-11 23:59:06 +00:00
Francois Gouget bf72af30d0 Modify widl to put the C COM macros inside an #ifdef COBJMACROS block
as is done in the Windows headers.
Add #define COBJMACROS where needed in Wine.
Fixes the compilation of the oleaut32/tests/olefont.c and
urlmon/tests/url.c conformance tests with the Windows headers.
2004-08-11 19:43:45 +00:00
Mike McCormack 06b8046f20 Added a test for stat'ing a memory based storage file. 2004-08-11 00:17:52 +00:00
Mike McCormack f0baf82b36 stat on memory storage should return a NULL name, not "". 2004-08-10 23:41:58 +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
Mike Hearn ce335adddd Don't marshal IClassFactory into the local server pipe until we have
connected, otherwise we might end up with stubs that are never used.
2004-07-30 18:44:09 +00:00
Alexandre Julliard 6cd1a7d9a9 Authors: Robert Shearman <rob@codeweavers.com>, Mike Hearn <mh@codeweavers.com>
Fix infinite loops by checking the return value of _invoke_onereq and
bailing appropriately.
2004-07-30 18:43:07 +00:00
Jeroen Janssen cead7c0e81 Updated some MSDN links in the code. 2004-07-30 00:03:02 +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
Robert Shearman 37cc006083 Document wrong behaviour for IRunningObjectTable. 2004-07-29 02:44:09 +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
Robert Shearman 0cac6c83a7 Fix some inaccuracies in a comment and reformat. 2004-07-29 02:43:48 +00:00
Alexandre Julliard 26541a00c9 Authors: Mike Hearn <mh@codeweavers.com>, Robert Shearman <rob@codeweavers.com>
Add a comment on the SendReceive behaviour. Improve two others.
2004-07-29 02:43:36 +00:00
Francois Gouget f8e01efb3d Assorted spelling fixes. 2004-07-23 23:02:09 +00:00
Robert Shearman f5ed953c10 Set RPC data representation. 2004-07-23 22:58:13 +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
Mike Hearn 602cce0ebf Unref stub after invoking on it. 2004-07-22 19:43:27 +00:00