Robert Shearman
cd2fafb775
ole: Defer apartment window creation until the first object is marshalled.
2006-01-10 20:41:23 +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
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
cc4669cc5f
ole: Remove __CLSIDFromStringA.
...
Move the ANSI implementation of CLSIDFromString to ole16.c and change
CLSIDFromString to only deal with Unicode strings.
2006-01-09 18:40:17 +01:00
Robert Shearman
45d440a219
Implement CLSCTX_INPROC_HANDLER in CoGetClassObject similar to
...
CLSCTX_INPROC_SERVER by looking at the InprocHandler32 registry key
instead of InprocServer32.
2005-11-12 19:11:21 +00:00
Robert Shearman
f7b65cc716
- Extend COM_OpenKeyForCLSID to open a subkey and return an HRESULT.
...
- Fix up the callers and reorganize CoGetClassObject to split out the
inproc code into another function.
2005-11-09 10:29:11 +00:00
Michael Jung
2f210917ee
Added tracing to CoCreateInstance.
2005-11-08 12:43:24 +00:00
Robert Shearman
c23cb51d52
Pass WM_QUIT to outer modal loop.
2005-10-03 11:02:37 +00:00
Robert Shearman
c86fef8844
Move all 16-bit functions to an appropriate 16-bit file.
2005-09-25 15:17:10 +00:00
Robert Shearman
044ccc40f3
Don't fail in CoRegisterClassObject if the class already exists and
...
the REGCLS_MULTIPLEUSE flag is specified.
2005-09-23 10:08:11 +00:00
Robert Shearman
43df8b61bb
Add exception handling for stubs.
2005-09-14 10:07:01 +00:00
Alexandre Julliard
20a1a203c6
Use a more portable scheme for storing the name of a critical
...
section.
2005-09-09 10:19:44 +00:00
Robert Shearman
c8aedf9726
Add stub for CoAllowSetForegroundWindow.
2005-08-26 08:47:09 +00:00
Robert Shearman
bcb251d5b3
Remove unused thread handle entry from the apartment structure.
2005-08-25 09:50:36 +00:00
Mike McCormack
6c8527c31c
- return a precomputed result for a NULL string
...
- pass strlen an LPSTR to eliminate a sign warning
2005-08-22 09:19:38 +00:00
Mike McCormack
61aabd66f5
Warning fixes for gcc 4.0.
2005-08-15 10:49:39 +00:00
Marcus Meissner
61b2fba9d7
Added CoCreateInstance16, CoGetClassObject16, OleLoad16 stubs.
2005-08-15 09:46:51 +00:00
Alex Villacís Lasso
0f9ebafbec
Initialize RegisteredClass properly in CoRegisterClassObject to
...
prevent crash in CoRevokeClassObject when accessing (uninitialized)
pMarshalledData.
2005-07-19 11:40:22 +00:00
Stefan Huehner
ac6f562b52
Fix more -Wstrict-prototypes warnings.
2005-06-20 14:18:03 +00:00
Robert Shearman
0a645e8cb9
Convert some registry helper functions to use unicode versions of
...
CLSID & registry functions (untested).
2005-06-20 13:14:22 +00:00
Robert Shearman
f419880d64
- Change some of the registry helper functions to use the unicode
...
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.
2005-06-20 10:33:17 +00:00
Marcus Meissner
f3d99b2697
Move the Dll init function to compobj.c to avoid having global
...
variables. Remove need of ole32_main.h.
2005-05-16 14:12:53 +00:00
Mike McCormack
3c5790646f
Add a stub implementation of CoIsHandlerConnected.
2005-05-11 12:57:16 +00:00
Francois Gouget
6b10c324c5
Assorted spelling fixes.
2005-03-30 17:08:31 +00:00
Huw Davies
e42a23d2d3
Don't close reg key if the open failed.
2005-03-29 13:06:57 +00:00
Mike McCormack
17c3106896
Eliminate casts of the return value of HeapAlloc.
2005-03-21 11:25:13 +00:00
Vincent Béron
811725ac20
Correct and complete some api documentation.
2005-03-21 10:55:13 +00:00
Robert Shearman
1b5ebabdce
- Add critsec debugging info.
...
- 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.
2005-03-17 10:26:20 +00:00
Robert Shearman
8971f06225
- Rename apartment functions to become more object-oriented.
...
- 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.
2005-03-11 10:19:10 +00:00
Juan Lang
23805995a6
Fix the calling convention of DllCanUnloadNow.
2005-03-10 17:25:02 +00:00
Robert Shearman
2d2a39cc42
- Use I_RpcGetBuffer, instead of our own buffer routines to fix an
...
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.
2005-02-15 21:48:09 +00:00
Robert Shearman
552cc7d5b3
- Remove cruft left over from previous RPC backend implementation in
...
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.
2005-02-15 15:44:25 +00:00
Robert Shearman
db6db7cb4c
Make COM use the RPC runtime as the backend for RPC calls. Based on a
...
patch by Ove Kåven.
2005-02-15 15:02:49 +00:00
Robert Shearman
2ff1711487
Invoke objects in STA's in the correct thread by sending messages to
...
the hidden apartment window.
2005-02-14 11:50:51 +00:00
Robert Shearman
999766d31b
- Implement CoDisconnectObject.
...
- Change CoLockObjectExternal so that it does the correct action now
and eliminate a fair few lines of now redundant code.
- Rename OLE32_Dll{Register,Unregister}Server to
Dll{Register,Unregister}Server.
2005-02-08 16:51:22 +00:00
Robert Shearman
f8a2edb805
- Split up apartment creation so that the long code paths that don't
...
need locking no longer have locking.
- Add special cases for the threads that join apartments but can't
increase the refcount of the apartment.
- Free TLS storage on thread destruction (including releasing the
apartment the thread is in, if any, and so making another test
pass).
2005-02-08 13:42:15 +00:00
Alexandre Julliard
2a46702761
Authors: Mike Hearn <mh@codeweavers.com>, Robert Shearman <rob@codeweavers.com>
...
- Rework RPC dispatch layer to be simpler and not get confused by
server/client duality.
- Make threads shut down at the right time and not access freed memory
after apartment destruction.
- Rename stub_dispatch_thread to client_dispatch_thread.
- Add some more tracing
- Check return value of WaitNamedPipe.
- Change named pipe timeouts to 0.5s, which should be enough for even the slowest machines.
2005-02-08 12:55:26 +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
9dba3479c8
Release the client security objects when no longer needed (reported by
...
Mike McCormack).
2005-01-28 17:19:51 +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
41d9aef7ef
- Implement CoSetProxyBlanket, CoQueryProxyBlanket and CoCopyProxy.
...
- Update todo list.
2005-01-28 11:27:46 +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
ad34f3dc5e
- Generate machine-local IPIDs.
...
- Make pipes be uniquely identified only by their IPID.
2005-01-25 10:57:24 +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
4c8d59dd91
Implement table marshaling.
2005-01-17 13:39:40 +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
a84e7d7b75
Destroy stubs on apartment shutdown.
2005-01-14 15:11:55 +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
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
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
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 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
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
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
2fa9a0a6fd
Remove unneeded includes and the unused COMPOBJ_hInstance32 variable.
2004-12-14 15:28:58 +00:00
Eric Pouech
4056d7ef8c
Fixed some errors in function prototypes.
2004-12-13 21:19:01 +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
Eric Pouech
0a258964c2
Const correctness fixes.
2004-11-30 21:38:57 +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
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
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
Mike McCormack
37dcaf6be6
CoSuspendClassObjects stub implementation.
2004-09-20 21:44:34 +00:00
Mike McCormack
d324ccfce7
Fix some warnings found with -Wsign-compare.
2004-09-07 20:25:52 +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
Robert Shearman
0cac6c83a7
Fix some inaccuracies in a comment and reformat.
2004-07-29 02:43:48 +00:00
Mike Hearn
1cc05ff148
Pass -Embedding switch to EXE servers, more tracing.
2004-07-23 19:10:13 +00:00
Mike Hearn
c019b89d5f
Fix misleading warning ole CoGetClassObject.
2004-07-21 19:37:07 +00:00
Mike McCormack
e42d8aef24
Fix a few serious race conditions in the OLE object pipe server.
2004-07-15 22:07:44 +00:00
Francois Gouget
ca942f1625
Assorted spelling fixes.
2004-07-08 20:16:23 +00:00
Mike Hearn
17ad9fdd43
Add some explanations to compobj.c, implement flushing message queue
...
on shutdown.
2004-07-06 21:27:48 +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
Warren Turkal
e910efbcbe
Fixed the implementation of CoTreatAsClass.
2004-03-29 21:41:33 +00:00
Francois Gouget
b948778660
Assorted spelling fixes.
2004-03-23 23:20:16 +00:00
Robert Shearman
2eee76703d
- CoSetState info should be thread local.
...
- SetErrorInfo should allocate an apartment when no apartment present.
2004-02-10 01:36:20 +00:00
Alexandre Julliard
d07c1004e3
Moved a few remaining 16-bit definitions out of the standard headers.
2004-01-23 22:51:41 +00:00
Ge van Geldorp
100e11309b
Fix various function prototypes to conform to PSDK.
2004-01-23 20:57:26 +00:00
Ge van Geldorp
399901e054
Rename LARGE_INTEGER and ULARGE_INTEGER members "s" to "u" to conform
...
with PSDK.
2004-01-23 01:51:33 +00:00
Francois Gouget
17112eaa4d
Assorted spelling fixes.
2004-01-16 21:26:08 +00:00
Daniel Marmier
0348649853
Fixed warnings with gcc option "-Wwrite-strings".
2003-10-06 21:03:32 +00:00
Dave Miller
47fb938d54
Removed ordinals from comments.
2003-09-11 03:06:25 +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
Alexandre Julliard
02f2813968
Renamed a few TEB fields to use the "official" names.
2003-08-27 23:14:29 +00:00
Alexandre Julliard
19b6a49845
Allocate DebugInfo field for all critical sections (based on a patch
...
by Alex Pasadyn).
Get rid of the Wine-specific CRITICAL_SECTION_INIT macro.
2003-08-12 23:50:54 +00:00
Steven Edwards
32d27dc77b
- Create new file ole2_16.c for ole2 16bit only functions.
...
- Move CLSIDFromProgID16 so it can be used internally.
- Compile out more Win16 sources.
2003-07-09 19:49:12 +00:00
Francois Gouget
c5f775a9c7
Typos/spelling fixes.
2003-06-18 03:30:39 +00:00
Mike Hearn
739ccae798
Implement a class factory for the Global Interface Table.
2003-06-17 03:57:18 +00:00
Ove Kaaven
ef57c4d905
Preliminary support for COM apartments.
2003-06-04 20:11:34 +00:00
Mike McCormack
cf983e9a7f
Added stub for OleDoAutoConvert.
2003-05-13 22:14:30 +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