Commit Graph

965 Commits

Author SHA1 Message Date
Robert Shearman 9038705919 ole32: Fix functions defined without specifying argument types by changing them to "(void)". 2006-08-28 17:48:40 +02:00
Alexandre Julliard 5cf75e615a makefiles: Only run test and documentation targets in directories that need them. 2006-08-28 13:37:44 +02:00
Robert Shearman 588c782ac8 ole32: Call IRpcChannelBuffer_GetBuffer for the RemRelease case of
Invoke, even though we are requesting a buffer size of 0 as we put
extra data into the buffer in IRpcChannelBuffer_GetBuffer.
2006-08-26 19:37:10 +02:00
Robert Shearman 428c63f586 ole32: Use IRpcChannelBuffer_GetBuffer in the hand-made proxy/stubs
instead of calling I_RpcGetBuffer as IRpcChannelBuffer_GetBuffer does
some extra magic.
2006-08-26 19:37:02 +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
Mike McCormack 6c8259fb31 ole32: Avoid a warning for VT_FILETIME in PropVariantCopy. 2006-08-14 20:17:11 +02:00
Mike McCormack c8572a5e43 ole32: Use PropVariantInit instead of memset. 2006-08-14 20:17:10 +02:00
Mike McCormack 8dc5bd8e29 ole32: Always set pcbWritten when writing a stream. 2006-08-14 11:46:41 +02:00
Mike McCormack f205eca5ad ole32: FreePropVariantArray should return an error if rgvars is null.
As suggested by Rob Shearman.
2006-08-14 11:46:38 +02:00
Robert Shearman c350e0000f ole32: Add a check for NULL This->dataAdviseHolder in DefaultHandler_Stop.
Cleanup DefaultHandler_GetCanonicalFormatEtc by using
This->pDataDelegate instead of querying for IDataObject from
This->pOleDelegate.
2006-08-09 20:40:17 +02:00
Robert Shearman 8d7bfca965 ole32: Fix a typo in IEnumSTATSTGImpl_QueryInterface where IStorage was being compared against instead of IEnumSTATSTG. 2006-08-09 20:40:11 +02:00
Robert Shearman 8f513e3576 ole32: When comparing monikers use the abData field of MInterfacePointer
as ulCntData doesn't include the size of its own field.
2006-08-09 20:39:51 +02:00
Robert Shearman f589ec8081 ole32: Zero stg in case ADVF_NODATA is specified.
Otherwise IDataObject_GetData fails before using it in
DataAdviseHolder_SendOnDataChange.
2006-08-09 20:39:37 +02:00
Francois Gouget 7bb2c3f8a6 ole32: Register the CLSID_Picture_Metafile and CLSID_Picture_Dib ProgIDs. 2006-08-09 20:37:44 +02:00
Francois Gouget 9ed9398ebe ole32: Add a BaseInterface where needed. 2006-08-08 11:15:28 +02:00
Robert Shearman 6ba258ec1d ole32: Tell the advise holder what the data delegate is in DefaultHandle_DAdvise if we are already connected. 2006-08-07 15:35:32 +02:00
Robert Shearman c860b8aec4 ole32: Finish off delegate notifications in the data advise holder.
Advise the data delegate object when new advises come in on the data 
advise holder, not just when connecting.
Unadvise the data delegate object when unadvising a connection on the 
data advise holder, when destructing the data advise holder and when 
disconnecting.
2006-08-07 15:35:28 +02:00
Francois Gouget ce9b4baad8 Assorted spelling fixes. 2006-08-07 13:52:55 +02:00
Robert Shearman f0dc9deff0 ole32: Ensure that a returned free block is valid in storage.
Otherwise, an IStream_SetSize call followed by an IStream_Read call 
could fail with STG_E_DOCFILECORRUPT.
2006-08-03 22:23:27 +02:00
Robert Shearman 6455b9e1a0 ole32: Fix CoLockObjectExternal to respect fLastUnlockReleases. 2006-08-03 22:23:13 +02:00
Andrew Talbot 6bb8a7f726 ole32/tests: Write-strings warnings fix. 2006-08-03 22:22:55 +02:00
Jacek Caban 3cf1e46d95 ole32: Clean up OleRun. 2006-08-02 22:01:15 +02:00
Alexandre Julliard 518ee99f6f ole32: Make some functions and variables static. 2006-08-02 13:31:26 +02:00
Robert Shearman e3e42985ec ole32: Implement OleNoteObjectVisible as described by MSDN. 2006-07-31 21:25:38 +02:00
Robert Shearman 1a5cd3ca9b ole32: Remove a check on the share mode for the NULL filename case as the check is already done earlier in StgCreateDocfile. 2006-07-31 21:25:35 +02:00
Mike McCormack 63cbef27a2 ole32: Use IsGUIDEqual to compare IIDs. 2006-07-31 17:18:24 +02:00
Mike McCormack 6ede65596a ole32: Add function parameters to FIXME messages. 2006-07-31 10:53:19 +02:00
Mike McCormack 24e69d544b ole32: Add a test showing what STGM_TRANSACTED does for streams. 2006-07-31 10:53:15 +02:00
Mike McCormack fd61c3f24b ole32: Add some missing traces. 2006-07-29 11:55:43 +02:00
Mike McCormack d9bfbe9197 ole32: Add a test for IEnumSTATSTG. 2006-07-29 11:55:39 +02:00
Robert Shearman 67ed752e69 ole32: Add more self-registration entries for classes and interfaces. 2006-07-27 11:42:29 +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 352d9e2d67 ole32: Free the buffer allocated in local_server_thread (found by Smatch). 2006-07-17 13:43:44 +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
Mike McCormack 6a15ac7f0a ole32: Only return S_FALSE in IPropertyStorage::ReadMultiple if a property was not found. 2006-07-12 19:30:06 +02:00
Mike McCormack 49ff182fc4 ole32: Small cleanups. 2006-07-12 19:29:14 +02:00
Mike McCormack 1a80cb87cb ole32: Remove unnecessary assert(This) calls. 2006-07-12 19:28:57 +02:00
Mike McCormack ac01692523 ole32: Fix and test reading and writing of VT_CF properties. 2006-07-12 19:28:24 +02:00
Mike McCormack a8b38fa2ea ole32: Implement IPropertyStorage::Enum using enumx. 2006-07-12 13:19:51 +02:00
Mike McCormack 6c21ac2565 ole32: Clean up some declarations. 2006-07-12 13:19:44 +02:00
Mike McCormack d35176d52a ole32: Use enumx to implement IPropertySetStorage::Enum. 2006-07-12 13:19:39 +02:00
Mike McCormack 127ae2bf8b ole32: Add a framework for implementing IEnum* interfaces. 2006-07-12 13:18:17 +02:00
Mike McCormack 918cf3261b ole32: Don't warn when clearing PropVariants that don't have allocated memory. 2006-07-12 13:17:51 +02:00
Mike McCormack d323acc23b ole32: Fix conformance test to compile with MSVC6. 2006-07-12 13:17:41 +02:00
Mike McCormack a5b3479774 ole32: This cannot be NULL, so don't check it. 2006-07-12 13:17:29 +02:00
Mike McCormack 7f891787bc ole32: Only return S_FALSE in IPropertyStorage::ReadMultiple if a property was not found. 2006-07-12 13:17:23 +02:00
Mike McCormack 704dffcb09 ole32: Allocate copied VT_CF data correctly in PropVariantCopy. 2006-07-12 13:16:53 +02:00
Alexandre Julliard eb8a40c368 libs: Merged libwine_unicode into libwine.
Most dlls use libwine_unicode at this point, so there's nothing to
gain by having two separate libraries.
2006-07-11 19:33:22 +02:00
Mike McCormack 55ab809854 ole32: Only print a FIXME if necessary in StgOpenStorageEx. 2006-07-11 12:41:42 +02:00
Alexandre Julliard 77dc0d9be5 .gitignore: Added wildcards to ignore generated resource files. 2006-07-10 21:39:00 +02:00
Alexandre Julliard 0fa8baafcb make_dlls: Recursively ignore .ok files in all tests directories. 2006-07-10 21:26:50 +02:00
Alexandre Julliard edd100b899 make_dlls: Recursively ignore testlist.c in all tests directories. 2006-07-10 21:19:42 +02:00
Alexandre Julliard 5258e061dc make_dlls: Ignore generated import libraries from the top-level .gitignore. 2006-07-10 20:55:58 +02:00
Alexandre Julliard cc2b3b48e6 Take advantage of the recursive nature of .gitignore for Makefile entries.
Prefix other entries with '/' to make them non-recursive.
2006-07-10 20:47:54 +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
Paul Vriens 8f143f190c Use the return value of register_key_guid. 2006-06-30 21:08:07 +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 2f0e714a27 ole32: When marshaling a proxy make sure to maintain an external
reference on the stub object so that the first proxy can be released.

Implement external refcount sharing between a proxy and the marshaled proxy.

Extend the marshaling of a proxy test to show that an external reference 
is always kept on the stub object.
2006-06-29 14:40:50 +02:00
Robert Shearman 723aceb20f ole32: Add a test for CoCreateInstance doing object hosting by
automatically creating an appropriate apartment for the object and
returning a proxy to it.
2006-06-29 14:40:23 +02:00
Robert Shearman b0efdcbdbd ole32: Implement CoGetObject. 2006-06-29 14:40:05 +02:00
Andrew Talbot d69745ff7a ole32/tests: Write-strings warning fix. 2006-06-23 10:45:57 +02:00
Mike McCormack 98d4c2b049 ole32: Implement reading of VT_CF storage properties. 2006-06-19 22:54:21 +02:00
Mike McCormack ccfa76d18e ole32: Fix a typo. 2006-06-19 20:53:44 +02:00
Robert Shearman 1ddc722ec2 ole32: Document CoCreateFreeThreadedMarshaler. 2006-06-19 10:28:26 +02:00
Robert Shearman aa09031c78 ole32: Reuse event handles used for COM calls.
This reduces the number of server calls during a COM call by half.
2006-06-19 10:28:20 +02:00
Robert Shearman f2dc25a5f3 ole32: Always rewind the stream in StdGlobalInterfaceTable_GetInterfaceFromGlobal
as CoUnmarshalInterface may have advanced the stream, even if it failed.
2006-06-15 12:07:10 +02:00
Robert Shearman fa757df883 ole32: Add a tests for OleSetMenuDescriptor and the global interface table. 2006-06-15 12:06:49 +02:00
Alexandre Julliard 96ad688174 ole32: Don't use sizeof in traces to avoid printf format warnings. 2006-06-13 14:11:15 +02:00
Alexandre Julliard 28e17a75af ole32/tests: Don't use sizeof in ok() to avoid printf format warnings. 2006-06-13 14:03:36 +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
Alexandre Julliard 69591d81f9 ole32: Explicitly specify CDECL calling convention on exported functions. 2006-06-12 21:34:59 +02:00
Alexandre Julliard ae525c1441 ole32: Make the virtual table functions static where possible. 2006-06-10 11:59:15 +02:00
Robert Shearman c60c28cf08 ole32: If IRpcStubBuffer_Invoke fails, we should raise an exception to
tell the RPC runtime that the call failed.
2006-06-09 21:11:20 +02:00
Robert Shearman 3d4e9d6a71 ole32: Register ISequentialStream for marshaling. 2006-06-09 21:11:09 +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 42c39675ea ole32: Implement FTMarshalImpl_GetMarshalSizeMax. 2006-06-09 21:10:44 +02:00
Alexandre Julliard 32f57b0214 ole32: Use the standard DEFINE_OLEGUID macro to define GUIDs. 2006-06-09 21:09:49 +02:00
Troy Rollo bdbc482651 ole32: Use STGM_WRITE when opening child storage to delete its children. 2006-05-31 11:45:29 +02:00
Robert Shearman f2bd261f12 ole32: Add a class factory for CLSID_InProcFreeMarshaler. 2006-05-25 10:43:29 +02:00
Robert Shearman 386fcbb5f7 ole32: Implement GetUnmarshalClass for the free-threaded marshaler and
remove unnecessary unmarshaling code for the standard-marshal case -
this is handled by CoUnmarshalInterface and CoReleaseMarshalData.
2006-05-25 10:43:18 +02:00
Robert Shearman 2c57189a97 ole32: Implement table-strong marshaling and ReleaseMarshalData for the free-threaded marshaler. 2006-05-25 10:43:07 +02:00
Robert Shearman f9b5280dd0 ole32: Implement table-weak marshaling for the free-threaded marshaler. 2006-05-25 10:42:56 +02:00
Robert Shearman b795631daa ole32: Release the standard marshal in the free-threaded marshaler's UnmarshalInterface function. 2006-05-25 10:42:12 +02:00
Robert Shearman 4335c64f7b ole32: Add a rough implementation of the free-threaded marshaler MarshalInterface and UnmarshalInterface methods, with test cases. 2006-05-25 10:41:17 +02:00
Robert Shearman 4d1d2b6c1f ole32: Fix the free-threaded marshaler when it has no outer unknown. 2006-05-25 10:41:04 +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
Troy Rollo 1be295fb47 ole32: Fix excessive file sizes for Storage files.
The IStorage (DocFile) implementation was adding empty blocks at the
end of the file every time a caller wrote data that was not a multiple
of 512 bytes.  If the caller made a lot of very small writes the file
size could be huge even though the data in the file was tiny. This was
caused by BlockChainStream_SetSize trying to allocate file blocks for
the new data using a condition that bore no relationship to the
required condition, and it was not necessary to do so at that time
since it is done (the right way) by StorageImpl_GetNextFreeBigBlock
(called via BlockChainStream_Enlarge).
2006-05-23 13:00:13 +02:00
Robert Shearman 0fd184773a ole32: Release the outer unknown in the proxybuffer test.
Release the outer unknown in the proxybuffer test to show that the
last release of the outer unknown doesn't free the proxy buffer.
2006-05-23 12:05:07 +02:00
Robert Shearman 875390110f ole32: Release the proxy buffer object on the last release of the proxy's outer unknown.
Release the proxy buffer object on the last release of the proxy's outer
unknown, otherwise memory is leaked for the Ndr implementation of
IRpcProxyBuffer.

Fix up the hand-coded proxies to match the behaviour from the Ndr
implementation.
2006-05-23 12:05:01 +02:00
Francois Gouget 17689c07bb Fix some winapi_check documentation warnings. 2006-05-15 15:05:15 +02:00
Francois Gouget f7c24f37ad Various trace fixes.
Add trailing '\n's to trace calls.
Remove spaces before '\n'.
2006-05-15 15:05:09 +02:00