Commit Graph

210 Commits

Author SHA1 Message Date
Robert Shearman f463b9d422 ole32: AppId is a value under the clsid key, rather than a key. 2006-08-28 17:48:45 +02:00
Robert Shearman 9038705919 ole32: Fix functions defined without specifying argument types by changing them to "(void)". 2006-08-28 17:48:40 +02:00
Robert Shearman 986027af9f ole32: Add support for main-threaded apartments.
A main-threaded apartment is the first single-threaded apartment in the 
process. It was designed to be used for legacy applications that don't 
want to think about threading at all, even if they are always called 
from the same context, as is the case for regular STAs.
2006-08-26 19:36:56 +02:00
Robert Shearman 83d24a6408 ole32: Move the opening of the AppId key for a clsid to a helper function. 2006-08-26 19:28:10 +02:00
Robert Shearman 619ba90dbe ole32: CoGetClassObject should host a single-threaded object in a
single-threaded apartment if executing in a multi-threaded apartment,
if one exists.
2006-08-26 19:27:52 +02:00
Robert Shearman c1eb2c7003 ole32: Get the threading model value for inproc classes and output a
fixme if we should create it in an apartment of another type.
2006-08-26 19:24:23 +02:00
Robert Shearman f42d61df0d ole32: Move some functions out of compobj.c that don't belong there and update the copyright statement. 2006-08-16 16:42:32 +02:00
Robert Shearman 0e99d795b7 ole32: Add some more tests for failure cases of Co* functions and make builtin ole32 pass them. 2006-08-16 16:42:01 +02:00
Robert Shearman 31726e3823 ole32: Add tests for the failure cases of CLSIDFromProgID and fix the function to conform to these. 2006-08-16 16:41:47 +02:00
Francois Gouget ce9b4baad8 Assorted spelling fixes. 2006-08-07 13:52:55 +02:00
Robert Shearman 6455b9e1a0 ole32: Fix CoLockObjectExternal to respect fLastUnlockReleases. 2006-08-03 22:23:13 +02:00
Alexandre Julliard 518ee99f6f ole32: Make some functions and variables static. 2006-08-02 13:31:26 +02:00
Robert Shearman 2308d49bcb ole32: Implement CoRegisterPSClsid. 2006-07-21 10:52:03 +02:00
Robert Shearman fac6bedda9 ole32: Improve CoRegisterMessageFilter and add tests for it. 2006-07-17 13:43:47 +02:00
Robert Shearman 69e10bf1ed ole32: Add validation of parameters to CoGetClassObject and make sure to initialise ppv to NULL. 2006-07-14 12:38:44 +02:00
Robert Shearman 11c1bcf6de ole32: Don't loop while peeking messages in CoWaitForMultipleHandles.
It increases the latency on completing the COM call and could result in 
the COM call never completing in some circumstances.
2006-07-13 16:26:25 +02:00
Robert Shearman 5f453db5cf ole32: Fix the return value of COM_RegReadPath and make it static. 2006-07-07 13:31:49 +02:00
Robert Shearman 628371021b ole32: When CoLockObjectExternal with fLock=TRUE is used on an object
that hasn't yet been marshaled then it should create a new stub
manager.
2006-06-30 20:44:02 +02:00
Robert Shearman b0efdcbdbd ole32: Implement CoGetObject. 2006-06-29 14:40:05 +02:00
Robert Shearman b5f7e818a1 ole32: Print an error if a DLL's DllGetClassObject fails as this is
usually a good indicator of a bug elsewhere in Wine.
2006-06-13 11:40:20 +02:00
Robert Shearman 51e22f42bb ole32: Implement CoQueryClientBlanket, CoImpersonateClient and
CoRevertToSelf on top of CoGetCallContext, which is a stub.
2006-06-09 21:11:02 +02:00
Robert Shearman f2bd261f12 ole32: Add a class factory for CLSID_InProcFreeMarshaler. 2006-05-25 10:43:29 +02:00
Robert Shearman 760208b2a5 uuid: Add some COM CLSIDs. 2006-05-25 10:38:57 +02:00
Jonathan Ernst 360a3f9142 Update the address of the Free Software Foundation. 2006-05-23 14:11:13 +02:00
Marcus Meissner f937f72308 ole32: Fixed typo in debug statement. 2006-05-08 14:46:58 +02:00
Robert Shearman 6814b33aa3 ole32: Remove the fixme printed if CoGetClassObject fails in CoCreateInstance.
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.
2006-05-07 10:03:11 +02:00
Robert Shearman 8c7706bad0 ole32: Don't process posted messages in CoWaitForMultipleHandles.
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.
2006-03-30 12:43:17 +02:00
Robert Shearman ff85f892c6 ole32: Try to retrieve messages that are COM calls first.
Try to retrieve messages that are COM calls first in
CoWaitForMultipleHandles before retrieving other types.
2006-03-30 12:42:50 +02:00
Robert Shearman a1548b45d8 ole32: Put the PeekMessage call of CoWaitForMultipleHandles into a separate function.
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.
2006-03-30 12:42:35 +02:00
Robert Shearman 8c551796a9 ole32: Whether the message loop is entered in CoWaitForMultipleHandles,
should depend on whether the current apartment is a single threaded one.
2006-03-30 12:42:01 +02:00
Robert Shearman 3091aa5302 ole32: Pass the no yield flag to PeekMessage.
Pass the no yield flag to PeekMessage since we sleep in
MsgWaitForMultipleObjectsEx and the extra context switch is wasteful.
2006-03-30 12:41:32 +02:00
Robert Shearman f4a8ba9548 ole: Fallthrough from local activation in CoGetClassObject.
If local-server or local-service activation doesn't work in
CoGetClassObject then fallthrough instead of returning from the
function.
2006-02-24 11:23:16 +01:00
Robert Shearman 6c529a7273 ole: Make the CoCreateInstance test succeed.
Move the uninitialized apartment check after zeroing out the return
value.
2006-02-22 22:14:52 +01:00
Robert Shearman a37a5014a2 ole: Change the Apartment Model field to a boolean.
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.
2006-02-20 11:15:57 +01:00
Robert Shearman af7c076337 ole32: Print an error message if the apartment isn't initialised in
CoCreateInstance.
2006-02-07 16:25:25 +01:00
Huw Davies aaf7a974a9 ole: ProgIDFromCLSID sets progid to NULL on failure. 2006-01-20 19:41:56 +01:00
Robert Shearman 6e0029f83d ole: Fix WM_QUIT Handling in CoWaitForMultipleHandles.
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.
2006-01-20 16:14:23 +01:00
Robert Shearman b4fe7ea7c6 ole: Update the COM todo list. 2006-01-18 11:29:20 +01:00
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