Commit Graph

1614 Commits

Author SHA1 Message Date
Rob Shearman 67a7a8a8ef ole32: Fix two comments about the running object table. 2008-04-28 14:32:33 +02:00
Austin English c531e2abdb Spelling fixes. 2008-04-23 12:31:07 +02:00
James Hawkins 1edb56cec8 ole32: Fix a few tests that fail in win2k. 2008-04-17 12:51:31 +02:00
Rob Shearman 51158a2f9c ole32: Add tests for clipboard's implementation of IDataObject_GetData. 2008-04-16 14:07:24 +02:00
Rob Shearman 2cd4117f81 ole32: Fix OLEClipbrd_IDataObject_QueryGetData to conform to the tests. 2008-04-16 14:07:19 +02:00
Rob Shearman e0ef1f061a ole32: Add some tests for OleGetClipboard.
Test the IDataObject_QueryGetData function of the returned object.
2008-04-16 14:07:14 +02:00
Francois Gouget 02bcdf6db7 ole32: Fix spelling of GetComparisonData(). 2008-04-14 12:40:22 +02:00
Rob Shearman aa83f5a5aa ole32: Use I_RpcExceptionFilter instead of custom exception filter for RPC calls. 2008-04-11 12:13:59 +02:00
Austin English 1b24da3aa0 ole32: Spelling fixes. 2008-04-10 09:51:12 +02:00
Andrew Talbot c2599478b6 ole32: Assign to structs instead of using CopyMemory. 2008-03-31 12:50:41 +02:00
Reece Dunn 4fbdab7a8f ole32: Added a missing include needed for CLSID_ShellDesktop using MSVC headers. 2008-03-24 21:05:17 +01:00
Rob Shearman 0b168e66f6 ole32: CreatePointerMoniker is implemented. 2008-03-15 10:58:38 +01:00
Andrew Talbot fd6ae97486 ole32: Assign to structs instead of using memcpy. 2008-03-14 11:21:26 +01:00
Andrew Talbot e7b0f07c3e ole32: Assign to structs instead of using memcpy. 2008-03-11 12:11:51 +01:00
Andrew Talbot 4971f2f687 ole32: Assign to structs instead of using memcpy. 2008-03-11 12:11:51 +01:00
Huw Davies 60ee0c3eff ole32: Fix CopyTo to work correctly with LARGE_INTEGERs. 2008-03-07 10:52:15 +01:00
Rob Shearman 630e273d17 uuid: Add CLSID_InProcFreeMarshaler.
Remove its initialisation from ole32.
2008-03-06 17:43:19 +01:00
Huw Davies 0aedac346a ole32: Fix CopyTo to work correctly with LARGE_INTEGERs. 2008-03-06 17:39:27 +01:00
Rob Shearman 48000893f9 makefiles: Simplify the use of the IMPORTLIB variable in the DLL makefiles.
Only specify the root to keep platform-specifics out of the individual 
DLL makefiles.
2008-03-04 20:55:01 +01:00
Francois Gouget 29ef0b90ee Assorted spelling, punctuation and case fixes. 2008-03-03 12:04:48 +01:00
James Hawkins e4c1227ec9 janitorial: Remove links to any microsoft site. 2008-03-01 12:17:17 +01:00
James Hawkins 7b56757cf6 janitorial: Remove links to any microsoft site. 2008-03-01 12:17:13 +01:00
Alexandre Julliard de61fc5eca ole32: Added a CoGetContextToken stub. 2008-02-26 11:21:54 +01:00
Rob Shearman 9730b285ba ole32: Implement VT_VECTOR|VT_VARIANT in PropVariantCopy. 2008-02-25 19:50:03 +01:00
Rob Shearman a82f4dd9b7 Don't use GetExceptionCode and GetExceptionInformation in exception filter functions.
When using native compiler exceptions, it isn't valid to use 
GetExceptionCode and GetExceptionInformation anywhere other than in the 
filter or handler blocks since it would be very hard for the compiler to 
work out where to retrieve the exception information from on the stack.

Therefore, remove the WINE_EXCEPTION_FILTER and WINE_FINALLY_FUNC macros 
which enabled GetExceptionCode, GetExceptionInformation and 
AbnormalTermination to be used inside of the functions they declared and 
fix up all callers to access the information directly.
2008-02-16 14:57:44 +01:00
Francois Gouget 4c8e218252 Assorted spelling fixes. 2008-02-15 12:09:24 +01:00
Rob Shearman 96fafe1661 ole32: Fix the character count passed to GetClipboardFormatNameW in WriteFmtUserTypeStg. 2008-02-15 11:04:09 +01:00
Rob Shearman 461ce6e4a2 ole32: Fix potential NULL dereference of qiresults in ClientIdentity_QueryMultipleInterfaces.
This could happen if proxy_manager_get_remunknown returns S_FALSE, so 
fix the check of the return code to match that below.
2008-02-13 16:42:42 +01:00
Rob Shearman bfa6ddaeb7 ole32: Fix a potentially confusing combination of conditional and bitwise or operators by adding extra brackets. 2008-02-13 16:42:36 +01:00
Rob Shearman a10cf16449 ole32: Remove an assert that is useless and triggers warnings elsewhere in static analysis tools. 2008-02-13 16:42:30 +01:00
Rob Shearman e0d25c6394 ole32: Fix local-variable shadowing in apartment_hostobject_thread. 2008-02-13 16:42:23 +01:00
Rob Shearman 14f7a59270 ole32: Fix reference count leak in BindMoniker. 2008-02-13 16:42:18 +01:00
Alexandre Julliard 05c7174909 tests: Add a helper routine to wait for a child process and propagate its result correctly. 2008-02-07 12:56:00 +01:00
Rob Shearman b7f3ee51b1 ole32: Add pointer moniker implementation. 2008-02-04 13:04:21 +01:00
Rob Shearman c647bb4691 ole32: Add tests for CreatePointerMoniker. 2008-02-04 13:04:04 +01:00
Rob Shearman a7234c07c4 ole32: Add a stub implementation of CreatePointerMoniker. 2008-02-04 13:02:35 +01:00
Rob Shearman ee2250bc44 ole32: Don't get the HRESULT from the buffer if we get an RPC_S_CALL_FAILED status back from the runtime.
The buffer might not contain any data and nowhere in our ole32 code 
passes HRESULTs in the buffer.
2008-01-22 12:00:49 +01:00
Rob Shearman fcccd9fca6 ole32: Partially implement ServerRpcChannelBuffer_GetDestCtx. 2008-01-15 14:36:29 +01:00
Andrew Talbot 554644fd0d ole32: Remove unneeded casts. 2008-01-15 11:38:08 +01:00
Eric Pouech 528ad9ebbd ole32: Fixed datacache object so that we can retrieve meaningful information. 2008-01-14 13:38:46 +01:00
Rob Shearman b02b9496d2 ole32: Fix some uses of SEEK_SET when STREAM_SEEK_SET should have been used instead. 2008-01-09 12:25:59 +01:00
Rob Shearman f2b1a1106b ole32: Fix memory leaks caused by not calling the channel hook function when extension_size is zero.
Instead free the allocated memory outside of the channel hook function.
2008-01-07 22:54:53 +01:00
Rob Shearman caa9f89a18 ole32: Fix a memory leak. 2008-01-07 22:54:51 +01:00
Rob Shearman b6553e7e29 ole32: Shortcut the RPC runtime for allocation of the message when processing the COM call by just sending a message to a window in the process. 2008-01-07 22:54:47 +01:00
Rob Shearman e3e704bc43 ole32: Clear the RPC_FLAGS_VALID_BIT flag from the RPC_MESSAGE ProcNum when shortcutting the RPC runtime. 2008-01-07 22:54:35 +01:00
Rob Shearman 2456f2d43b ole32: Fix a typo in the class moniker tests. 2008-01-07 12:31:42 +01:00
Rob Shearman 9645f9d19d ole32: get_moniker_for_progid_display_name should fallback to using IClassFactory to get IParseDisplayName if getting it directly fails. 2008-01-07 12:31:38 +01:00
Rob Shearman cf8da82ad3 ole32: Clear the RPC_MESSAGE structure before using it.
The RPC runtime could use some of the parameters, expecting them to be 
initialised.
2008-01-07 12:04:15 +01:00
Rob Shearman d84f0abb70 ole32: Determine the destination for the COM call and initialise the necessary parameters in ClientRpcChannelBuffer_GetBuffer instead of ClientRpcChannelBuffer_SendReceive.
The parameters are then freed in the matching 
ClientRpcChannelBuffer_FreeBuffer function.
2008-01-07 12:03:03 +01:00
Gerald Pfeifer 76e7cc9423 ole32: Remove one noop check in CoWaitForMultipleHandles(). 2008-01-02 12:38:42 +01:00
Jacek Caban 2c6cbea080 ole32: Fixed parameter checking and improved debug traces in IBindCtx::QueryInterface. 2007-12-31 16:49:44 +01:00
Rob Shearman 9804aba758 rpcss: Use context handles to automatically free running object table entries if the client process quits without calling IrotRevoke. 2007-12-26 13:27:42 +01:00
Alexander Dorofeyev 188ef4e4f9 ole32: Fix wrong timeout check. 2007-12-24 13:30:56 +01:00
Michael Jung 6598589ebd ole32: Avoid leaving a critical section twice. 2007-12-21 13:13:10 +01:00
Rob Shearman 93df1675f1 ole32: Fix RPC_GetLocalClassObject to wait for 30 seconds, even if messages arrive while we are waiting. 2007-12-20 12:10:35 +01:00
Lei Zhang d5e78c84c7 ole32: Print a fixme when an aggregation attempt fails. 2007-12-14 12:25:14 +01:00
Andrew Riedi 19888da21d ole32: DPRINTF -> TRACE. 2007-12-12 13:48:54 +01:00
Rob Shearman 7ac980b1e7 ole32: Process messages while waiting for a local server to create a pipe. 2007-12-07 18:49:23 +01:00
Rob Shearman 34ab21d11e ole32: Register the window used in the marshal tests only once.
Destroy the windows that have been created when they are no longer needed.
2007-12-07 16:34:48 +01:00
Rob Shearman 3328ad6eb9 ole32: Initialise object variable in RunningObjectTableImpl_GetObject.
As per the rules for memory in RPC, the memory pointer to by object will 
be used during unmarshalling and previously it was uninitialised.
(Thanks to Dan Kegel and his Valgrind runs for reporting this.)
2007-12-06 12:06:56 +01:00
Rob Shearman b711d35d40 ole32: Fix the test of the size returned from WdtpInterfacePointer_UserSize.
It varies on different versions of Windows, so we shouldn't test it for 
an exact value.
2007-12-04 13:32:45 +01:00
Rob Shearman 31b2d81ea0 ole32: Ignore the threading model of the PSFactoryBuffer object created during standard marshaling.
This is so that we don't try to host it.
2007-12-03 11:55:00 +01:00
Rob Shearman f65e04770d ole32: Always create a window for the main apartment. 2007-12-03 11:54:16 +01:00
Rob Shearman 5c53b52c5a ole32: Fix a test in the WdtpInterfacePointer tests. 2007-11-29 13:35:14 +01:00
Rob Shearman 95b6167244 ole32: Fix description of what is being test in ok calls in the WdtpInterfacePointer tests. 2007-11-29 13:35:10 +01:00
Rob Shearman c111c2d685 ole32: Add tests for WdtpInterfacePointer_* functions.
Add stubs for these so that the tests link.
2007-11-27 11:40:19 +01:00
Rob Shearman ddf59f50f7 ole32: Clean up properly in ClientRpcChannelBuffer_SendReceive in the case where PostMessageW fails. 2007-11-27 11:40:12 +01:00
Rob Shearman 6262230a4b ole32: Store the dispatch parameters in the message state structure to allow them to be initialised earlier in the sequence of IRpcChannelBuffer calls. 2007-11-27 11:40:07 +01:00
Rob Shearman 6f917d49c1 ole32: Fix a race in find_proxy_manager. 2007-11-26 12:26:46 +01:00
Rob Shearman 33abd94d35 ole32: Intialise some out parameters in ProxyCliSec_QueryBlanket. 2007-11-15 11:09:22 +01:00
Rob Shearman 2fd5acedb7 ole32: Release the correct pointer in test_MkParseDisplayName.
Reported by Dan Kegel.
2007-11-13 23:28:05 +01:00
Rob Shearman 5d2f802359 ole32: Validate the parameters to DataCache_Cache. 2007-11-13 23:28:05 +01:00
Rob Shearman 56a624b0fe ole32: Wait forever on the ready_event in the local server tests. 2007-11-13 13:33:17 +01:00
Rob Shearman 24723913e0 ole32: Use asynchronous I/O for the named pipe server for local servers. 2007-11-13 13:31:15 +01:00
Rob Shearman da04018608 ole32: Fix the condition in HMETAFILEPICT_UserFree to match that in METAFILEPICT_UserMarshal.
Actually free the memory.
2007-11-13 13:29:53 +01:00
Rob Shearman 8ee930150c ole32: Fix a memory leak in the HGLOBAL stream tests by telling CreateStreamOnHGlobal to free the memory it allocates, as we don't free it ourselves in this test. 2007-11-13 13:29:47 +01:00
Rob Shearman d881005c4f ole32: Release the stream in COM_RevokeRegisteredClassObject. 2007-11-13 13:29:38 +01:00
Rob Shearman 4edca3cf4d ole32: Fail before constructing an object in CreateStreamOnHGlobal to avoid a memory leak. 2007-11-13 13:29:30 +01:00
Rob Shearman 2779099319 ole32: Disconnect the IRemUnknown stub buffer before destroying it to release the reference on the IRemUnknown object. 2007-11-12 12:53:59 +01:00
Rob Shearman 433639f783 ole32: Free the memory associated with the open DLL list on unloading of ole32. 2007-11-12 11:46:23 +01:00
Rob Shearman 1dc91c41a7 ole32: Initialise data_cf in DataCacheEntry's to zero to indicate no data present on creation. 2007-11-12 11:46:15 +01:00
Rob Shearman dd527a7d2c ole32: Fix a leak of a moniker object in test_default_handler. 2007-11-12 11:46:11 +01:00
Rob Shearman 8f6218a7c8 ole32: Fix a memory leak in DataCacheEntry_Save. 2007-11-12 11:46:06 +01:00
Rob Shearman 5885be4e11 ole32: Fix a memory leak of moniker in RunningObjectTableImpl_Register. 2007-11-12 11:46:02 +01:00
Rob Shearman 3bd222004e ole32: Fix a leak of the IBindCtx object in FileMonikerImpl_IsEqual. 2007-11-12 11:45:57 +01:00
Rob Shearman 2249565eb7 ole32: Fix a memory leak in get_moniker_comparison_data. 2007-11-12 11:45:53 +01:00
Rob Shearman 2c1ba188d6 ole32: Store the InterfaceList object in the IEnumMoniker object.
This is because the IEnumMoniker object is supposed to free the memory 
passed to it, but the array of InterfaceData pointers is inside the 
InterfaceList memory block.
2007-11-12 11:45:49 +01:00
Rob Shearman e8b9a427be ole32: Add a missing IMoniker_Release to test_MkParseDisplayName. 2007-11-12 11:45:38 +01:00
Rob Shearman a7bfdde975 ole32: Fix memory leak in ItemMonikerImpl_Save. 2007-11-12 11:45:34 +01:00
Rob Shearman b75a33a214 ole32: Add a missing IStream_Release to test_same_apartment_unmarshal_failure. 2007-11-12 11:45:30 +01:00
Rob Shearman 2e2383d5ca ole32: Add a missing IStream_Release to test_CoMarshalInterThreadInterfaceInStream. 2007-11-12 11:45:19 +01:00
Rob Shearman d792a522c3 ole32: Remove an incorrect comment. 2007-11-02 12:18:50 +01:00
Rob Shearman 23dc7b6a67 ole32: Implement CoGetObjectContext. 2007-11-02 12:18:45 +01:00
Rob Shearman 1d0993341c ole32: Add tests for CoGetObjectContext. 2007-11-02 12:18:42 +01:00
Rob Shearman 2eb10c2e22 ole32: Improve the error reporting in the marshal test when CreateProcess fails. 2007-11-02 12:18:40 +01:00
Francois Gouget c4b1195c0c Assorted spelling fixes. 2007-10-23 18:20:27 +02:00
Rob Shearman 5ce2d25b32 ole32: Reset the parent storage on overwritten streams so that operations on them now fail. 2007-10-22 12:36:07 +02:00
Rob Shearman 842d1b698d ole32: Add a test to show that operations on overwritten should no longer succeed. 2007-10-22 12:36:07 +02:00
Alexandre Julliard 41cf63148a Fix redundant uses of MAKEINTRESOURCE. 2007-10-18 14:16:32 +02:00
Bang Jun-young 9f3b5ae89c ole32: Include wine/port.h for snprintf(). 2007-10-17 13:44:05 +02:00
Francois Gouget f76bea09d4 ole32: Fix the CoCreateGuid() ordinal in the documentation. 2007-10-15 14:06:25 +02:00
Mikolaj Zalewski 01e7891d48 ole32: OleIsRunning should return TRUE if the class doesn't implement IRunnableObject. 2007-10-10 11:18:44 +02:00
Rob Shearman 5e2d890e5d ole32: RegisterDragDrop should return E_OUTOFMEMORY in the case that COM isn't intialised, instead of CO_E_NOTINITIALIZED. 2007-10-09 17:52:46 +02:00
Andrew Talbot 001d36b10e ole32: Fix some memory leaks. 2007-10-02 11:44:09 +02:00
Stefan Leichter b511912446 ole32: Define WINE_FILEVERSION in version resource of ole2nls.dll too. 2007-10-01 14:17:21 +02:00
Damjan Jovanovic b9bdb2a6c2 ole32: Implement win16 COCREATEGUID. 2007-10-01 14:16:57 +02:00
Stefan Leichter 71d70f0fa1 ole32: Added version resource for ole2nls.dll. 2007-09-27 21:11:18 +02:00
Alexandre Julliard 2b5376cbc1 ole32/tests: Remove test that tries to create a huge file on Windows. 2007-09-25 11:38:31 +02:00
Michael Stefaniuc dbfa8eedf7 ole32: Free memory on error path (found by Smatch). 2007-09-25 11:18:24 +02:00
Alexandre Julliard 85ad7c6558 ole32: We can now store binary files in the repository. 2007-09-17 15:53:00 +02:00
Rob Shearman 97f389451d ole32: Fix the default unload delay to depend on the threading model of the component loaded. 2007-09-12 14:04:59 +02:00
Rob Shearman 5ffe867dc7 ole32: Implement CoFreeUnusedLibrariesEx.
Fix CoFreeUnusedLibraries to use a delay of 10 minutes when used with 
multi-threaded apartments.
2007-09-12 14:04:56 +02:00
Rob Shearman cfc50f89d7 ole32: Add cross-process running-object table support. 2007-09-11 13:55:08 +02:00
Lionel Debroux caca06aa7f ole32: Fix memory leak in compositemoniker.c (found by Smatch). 2007-09-11 11:47:08 +02:00
Aric Stewart 2d8cd767b2 ole32: Properly update the SmallBlockDepotCount when adding more blocks. 2007-08-28 11:58:44 +02:00
Alex Villacís Lasso 5da0c8b18f ole32: Fix forgotten IPersistStorage vtable. 2007-08-27 12:01:31 +02:00
Stefan Leichter fee1e38e56 ole32: Remove 'recursive registry key delete' function. 2007-08-23 20:18:32 +02:00
Huw Davies 54f2f60b54 ole32: The default handler needs to have its own implementation of IPersistStorage.
For now we forward the methods to the data cache as before.
2007-08-09 13:53:02 +02:00
Huw Davies e97c5be2ed ole32: Factor out the running object test into a separate function. 2007-08-09 13:52:54 +02:00
Huw Davies 0c8ce0d68b ole32: Fix a few comments. 2007-08-09 13:52:48 +02:00
Rob Shearman d845022819 ole32: Remove some dead code.
CoFreeUnusedLibraries doesn't do anything and COM_FlushMessageQueue 
won't actually allow any RPCs to be processed as the apartment has 
already been destroyed.
2007-07-16 22:46:45 +02:00
Andrew Talbot d4417c3c14 ole32: Cast-qual warning fix. 2007-07-09 11:46:01 +02:00
Andrew Talbot ca78a8b65f ole32: Cast-qual warnings fix. 2007-07-06 18:11:46 +02:00
Andrew Talbot eb7a89ccc6 ole32: Constify a variable (and fix a typo concerning its level of indirection). 2007-07-06 18:11:43 +02:00
Andrew Talbot 67d667b828 ole32: Constify some variables. 2007-07-05 19:52:35 +02:00
Andrew Talbot 886c970d76 ole32: Constify some variables. 2007-07-02 14:38:11 +02:00
Andrew Talbot 66b05dde02 ole32: Constify some variables. 2007-06-29 14:30:48 +02:00
Michael Stefaniuc d28c3ca60c ole32: Remove superfluous casts of void pointers to other pointer types. 2007-06-27 12:53:25 +02:00
Michael Stefaniuc 717cccb5ce ole32: Do not use wide character constants. 2007-06-22 12:18:55 +02:00
Aric Stewart f8c8355d85 ole32: Implementation of state bits for IStorage. 2007-06-07 23:09:10 +02:00
Ulrich Czekalla c2fdea600a ole32: Remove stack-based string buffer inFileMonikerImpl_DecomposePath. 2007-06-07 20:40:12 +02:00
Dmitry Timoshkov 3c9e7a7f33 wine: Switch to using 'long' for INT_PTR type for 64-bit compatibility. 2007-05-25 20:37:56 +02:00
Rob Shearman 30cc21196e ole32: Remove spurious AddRef of returned object on retrieval of an interface from the global interface table. 2007-05-23 12:49:50 +02:00
Rob Shearman 7d90b6ce29 ole32: Allow the getting of different interfaces from the global interface table than that with what the object was registered with. 2007-05-23 12:49:45 +02:00
Rob Shearman 05230781b0 ole32: Add more tests for global interface table functions. 2007-05-23 12:49:39 +02:00
Rob Shearman eebf8df601 ole32: Fix some races in the global interface table implementation.
Fix a race between RevokeInterfaceFromGlobal and GetInterfaceFromGlobal 
by only using the entry inside the critical section.

Fix a race between two GetInterfaceFromGlobal by cloning the stream, 
instead of using it and setting the current position back to zero.
2007-05-23 12:49:28 +02:00
Rob Shearman 71a5b2d943 ole32: Add spec entry for CoRegisterSurrogateEx. 2007-05-23 12:49:23 +02:00
Rob Shearman 071ea06af8 ole32: Remove a useless trace.
Remove an incorrect comment.
2007-05-22 12:19:07 +02:00
Rob Shearman dd8a736c3f ole32: The identity functions can be used from apartments other than the one the proxy was unmarshaled into.
In this case, don't use the cached This->remunk and don't cache the 
unmarshaled object in This->remunk.
2007-05-22 12:18:55 +02:00
Rob Shearman bf2b49b4e0 ole32: Make proxy_manager_get_remunknown AddRef the return IRemUnknown object.
Fix up the callers to release the returned IRemUnknown object.
2007-05-22 12:18:50 +02:00
Rob Shearman 5369d4dffd ole32: Handle MSHLFLAGS_TABLEWEAK and MSHLFLAGS_TABLESTRONG when marshaling a proxy.
Add tests for this behaviour.
2007-05-22 12:18:31 +02:00
Rob Shearman be55a4bbe2 ole32: Fix hosting in main apartments.
The recently introduced code had a bug where it passed the wrong
values into apartment_findfromtype to find the main apartment. Since
this is now the only way the function is used, fix this bug by
changing apartment_findfromtype to apartment_findmain, which only
finds the main apartment.
2007-05-21 12:38:54 +02:00
Rob Shearman 82cfed96a7 ole32: Fix reading from an HGLOBALStreamImpl with an invalid HGLOBAL.
Add tests that show the strange behaviour of IStream_Read returning S_OK 
instead of an error code.
2007-05-18 14:42:53 +02:00
Rob Shearman 600143d4fa ole32: Create host apartments to enable isolation of objects of incompatible threading models.
There should be one host apartment per apartment. Existing apartments 
should not be re-used, except in the case of the main apartment.
2007-05-18 14:42:37 +02:00
Andrew Talbot 4ea954df42 ole32: Exclude unused headers. 2007-05-16 11:55:51 +02:00
Paul Vriens 0eeb5727b2 ole32/tests: Check for correct return value. 2007-05-14 16:45:17 +02:00
Rob Shearman ed79ddab1d ole32: Don't lookup the address for the DllGetClassObject function for ole32.dll in the apartment loaded dll list.
Call the function directly for a small performance boost.
2007-05-14 14:26:22 +02:00
Rob Shearman 70e8842924 ole32: Fix CoUninitialize to only free libraries that return S_OK from DllCanUnloadNow. 2007-05-14 14:26:17 +02:00
Rob Shearman b005e9ed0d ole32: Move the logic in StgCreateDocfile for "if no share mode given then DENY_NONE is the default" to before the validateSTGM check.
Add a test that shows this behaviour is correct.

Remove a test on the access mode that is redundant because it is already 
done in validateSTGM.
2007-05-10 12:15:11 +02:00
Rob Shearman 4cd064aeb4 ole32: Don't release the drop target on process uninitialisation if not revoked, just release the memory. 2007-05-08 18:09:33 +02:00
Rob Shearman 71ada5c654 ole32: Add a test for the retrieved local class object in another thread being a proxy. 2007-05-08 13:24:07 +02:00
Rob Shearman 07229ed8ec ole32: Add documentation for error info functions. 2007-05-08 13:24:02 +02:00
Rob Shearman 314f9fe509 ole32: Add documentation about registered class objects only being visible in the apartment in which they were registered. 2007-05-08 13:23:57 +02:00
Rob Shearman 7d7f9a59d0 ole32: Fix CoRevokeClassObject to return RPC_E_WRONG_THREAD if it was called from a different apartment than the one that called CoRegisterClassObject. 2007-05-08 13:23:51 +02:00
Rob Shearman 23e43d886e ole32: Split CoRevokeClassObject into a separate function, COM_RevokeRegisteredClassObject, which acts on a RegisteredClass object. 2007-05-08 13:23:40 +02:00
Rob Shearman 51f85a765b ole32: COM_GetRegisteredClassObject should only retrieve objects that were registered in the current apartment. 2007-05-08 13:23:30 +02:00
Rob Shearman e93c82e643 ole32: Add tests for in-process registered class objects not being visible from different apartments. 2007-05-08 13:23:01 +02:00
Rob Shearman d76ab14479 ole32: Revoke registered class objects when the apartment they were registered in is destroyed, not when the last CoUninitialize is called. 2007-05-08 13:22:50 +02:00
Rob Shearman 4cbca9ac3a ole32: Add test for registered class becoming invalid when apartment is destroyed. 2007-05-08 13:22:26 +02:00
Rob Shearman af2c349685 ole32: CoGetClassObject shouldn't return REGDB_E_KEYMISSING, so convert it to REGDB_E_CLASSNOTREG. 2007-05-08 13:22:23 +02:00
Huw Davies 962d8b6011 ole32: Cope with a realloc returning a different pointer. 2007-05-03 14:24:02 +02:00
Rob Shearman c582136d0b ole32: Remove an unnecessary QueryInterface in CoRegisterClassObject that CoMarshalInterface will already do. 2007-05-02 15:03:28 +02:00
Aric Stewart dc4c9da44f ole32: Accelerators, like for the menu ones, should not fire on the keyup message. 2007-05-01 11:42:24 +02:00
Michael Stefaniuc 5f62da109e janitorial: Pass HEAP_ZERO_MEMORY as flag to HeapAlloc() instead of zeroing out the allocated memory in a later call. 2007-04-25 12:26:07 +02:00
Andrew Talbot 65bf44868c ole32: Void functions should not return a value. 2007-04-13 12:58:50 +02:00
Rob Shearman 1360357f92 ole32: Fix a hack which depended on the IID of the interface being marshaled
to determine whether we were marshaling the remote unknown for the
apartment or not.
2007-04-06 12:31:04 +02:00
Rob Shearman 74c04149be ole32: Move declaration for FileMonikerImpl_DecomposePath from compobj_private.h to moniker.h. 2007-04-05 13:26:29 +02:00
Rob Shearman 63ea015c65 ole32: Don't release the registered drop targets in OleUninitialize.
Do it in DLL_PROCESS_DETACH instead.
2007-04-05 13:25:18 +02:00
Rob Shearman 47432cba45 ole32: Check the input hwnd is valid in RevokeDragDrop. 2007-04-05 13:25:05 +02:00
Rob Shearman 2d8ae2cf83 ole32: Check for COM not being initialised and an invalid window handle being input to RegisterDragDrop. 2007-04-05 13:24:54 +02:00
Rob Shearman db4972f1fb ole32: Add tests for drag and drop functions. 2007-04-05 13:23:59 +02:00
Aric Stewart 6230222aab ole32: Storage optimization.
We do not need to unmap and remap all the victim pages with every
resize as they are simply a cache. Provides significant speedup for
saving large storage files.
2007-04-05 10:53:47 +02:00
Rob Shearman ab7f796fcb ole32: Keep a list of the loaded dlls for each apartment.
Use it to make CoFreeUnusedLibraries per-apartment.
2007-04-04 21:28:36 +02:00
Rob Shearman 30721a88e3 ole32: Cache the address for the library's DllGetClassObject and DllCanUnloadNow in the OpenDll list entry. 2007-04-04 21:28:01 +02:00
Rob Shearman 1d8879bccc ole32: Add a test that shows CoFreeUnusedLibraries only frees unused libraries from the current apartment. 2007-04-04 21:27:12 +02:00
Rob Shearman c40f1b6659 ole32: Move the handling of loading a dll and getting an in-process object from it to an apartment-specific function.
Use it to implement apartment_hostobject in a cleaner way so that it is 
guaranteed to not recurse.
2007-04-04 21:27:07 +02:00
Rob Shearman 679bfdab28 ole32: Move the in-process module loading to COMPOBJ_DllList_Add. 2007-04-04 21:26:53 +02:00
Rob Shearman 247255568c ole32: Convert the OpenDll list to a standard Wine list.
Store the library name and make it reference counted.
2007-04-04 21:26:47 +02:00
Paul Vriens ec30f6de30 ole32/stg_bigblockfile: Check page before use (Coverity). 2007-04-04 12:45:05 +02:00
Francois Gouget 0081b430e1 Assorted spelling and English fixes. 2007-04-03 11:23:12 +02:00
Francois Gouget a8695bae88 ole32/tests: Spelling fix. 2007-04-03 11:22:57 +02:00
Francois Gouget f4f4eb24c8 ole32/tests: Spelling fix. 2007-04-03 11:22:52 +02:00
Francois Gouget d9e8a0f63e Remove unneeded checks on the GetModuleHandle() return value for cases where we are linked with the dll. 2007-03-28 12:36:13 +02:00
Rob Shearman f8789122aa ole32: Implement MkParseDisplayName. 2007-03-28 12:12:49 +02:00
Rob Shearman 87a4516bd9 ole32: Add some more tests for MkParseDisplayName. 2007-03-28 12:11:15 +02:00
Rob Shearman 32dc398976 ole32: Display the testname for the test for display name in test_moniker. 2007-03-28 12:11:07 +02:00
Rob Shearman 4ce58cb531 ole32: Do a case-insensitive comparison in the count_moniker_matches in the moniker tests as Win9x marshals an all upper-case file name for file monikers. 2007-03-28 12:11:00 +02:00
Rob Shearman 1f70fc50c6 ole32: Add tests for the standard marshaler's implementation of IClientSecurity. 2007-03-28 12:10:51 +02:00
Rob Shearman d6a435fc56 ole32: Pass the OXID info to RPC_CreateClientChannel and use this to pass the server process ID to channel hooks. 2007-03-28 12:10:40 +02:00
Rob Shearman 8b50eb3556 ole32: Register the ProgID for the class and file monikers. 2007-03-27 13:00:54 +02:00
Rob Shearman 2514c0141e ole32: Move GetClassFile to moniker.c and move OleRun to ole2.c. 2007-03-27 13:00:44 +02:00
Rob Shearman 8e0145242b ole32: Add documentation for CoGetClassObject and GetClassFile. 2007-03-27 13:00:29 +02:00
Rob Shearman cdc9367d78 ole32: Add documentation for CreateBindCtx, BindMoniker, GetRunningObjectTable and OleRun. 2007-03-27 13:00:24 +02:00
Rob Shearman 1b8537bebd ole32: Handle NULL sub-objects correctly in the STGMEDIUM user marshaling functions so that no further data in marshaled or unmarshaled. 2007-03-27 13:00:10 +02:00
Rob Shearman d1ec56c871 ole32: Generate OXID_INFO in the stub manager.
Copy the OXID_INFO from the stub manager, if available, in 
proxy_manager_construct. Otherwise, attempt to resolve it.

Use ipidRemUnknown from OXID_INFO in the proxy manager instead of 
magically generating the IPID for RemUnknown.
2007-03-27 12:39:44 +02:00
Rob Shearman 1fa24db9fd ole32: Add the OXID_INFO structure to dcom.idl. 2007-03-27 12:39:33 +02:00
Rob Shearman 061a29ee44 ole32: Add a stubbed out implementation of IClientSecurity to the proxy manager. 2007-03-27 12:39:25 +02:00
Andrew Talbot 24a197490c ole32: Replace inline static with static inline. 2007-03-23 12:29:45 +01:00
Rob Shearman 3acb0a878d ole32: The 16-bit version of CoDisconnectObject is not compatible with the 32-bit version, so create a separate stub for the former. 2007-03-21 15:55:22 +01:00
Dmitry Timoshkov dce12498d0 ole32: Move the storage signatures to the appropriate file that uses them. 2007-03-21 11:59:41 +01:00
Rob Shearman 36d5515d91 ole32: Add a test for StgStreamImpl_SetSize with a non-zero HighPart for the size. 2007-03-20 13:00:04 +01:00
Rob Shearman 251bab8ac9 ole32: Implement TYMED_FILE for STGMEDIUM marshaling and unmarshaling. 2007-03-20 12:56:34 +01:00
Rob Shearman 05e99099af ole32: Add warnings for failures in the structured storage stream functions. 2007-03-20 12:56:30 +01:00
Aric Stewart 838eb4037f ole32: Rework storage with blockfiles to properly use ILockBytes interfaces.
Rework storage to make all its interactions with the underlying data go 
though ReadAt and WriteAt to allow for an ILockBytes underlying layer.
Implement ReadAt and WriteAt in stg_bigblockfile.c for blockfiles.
2007-03-20 12:36:45 +01:00
Rob Shearman f1ced14eed ole32: Print the contents of the IID input to OleLoad. 2007-03-14 18:49:58 +01:00
Rob Shearman 00877c898d ole32: OleCreate isn't a semi-stub any more, as it is tested in a range of cases and has no todos. 2007-03-13 20:31:40 +01:00
Rob Shearman 39f0f9d52a ole32: OleCreate shouldn't pass CLSCTX_LOCAL_SERVER to CoCreateInstance. 2007-03-13 20:31:37 +01:00
Rob Shearman 2815cd8ef4 ole32: Don't allocate an initial table for bind contexts.
Most users of bind contexts don't use bound objects or object params, so 
don't create an initial table. Instead, create it on demand and use an 
exponential algorithm for increasing the size of the table when full.
2007-03-13 20:31:34 +01:00
Huw Davies a8c72b76cf ole32: Only retrieve posted and paint messages in an STA message loop. 2007-03-13 11:52:41 +01:00
Jan Zerebecki 0f7a3811b4 ole32: Add DebugInfo to critical sections.
Also add missing DeleteCriticalSection.
2007-03-12 13:49:44 +01:00
Rob Shearman f0189b8789 ole32: Implement CoAddRefServerProcess and CoReleaseServerProcess. 2007-03-09 21:17:47 +01:00
Rob Shearman 789f344c2b ole32: Make RegisteredClass list into a standard Wine list. 2007-03-09 21:17:42 +01:00
Rob Shearman 15a0b7fad5 ole32: Don't keep the local server named pipe open for a single-use object. 2007-03-09 21:16:44 +01:00
Rob Shearman 7ba4b81675 ole32: Add some tests for the flags input to CoRegisterClassObject. 2007-03-09 21:16:41 +01:00
Rob Shearman 880542a9f8 ole32: Close the named pipe after revoking local server objects. 2007-03-09 21:16:37 +01:00
Rob Shearman 2a021b50d4 ole32: Enable local server test and make it work with Win9x COM implementation. 2007-03-09 21:16:34 +01:00
Rob Shearman c826515e55 ole32: REGCLS_MULTIPLEUSE implies CLSCTX_INPROC_SERVER in CoRegisterClassObject. 2007-03-09 21:16:31 +01:00
Rob Shearman c4727fde17 ole32: Fix return codes returned by IBindCtx::RegisterObjectBound and IBindCtx::RevokeObjectBound when used on NULL objects. 2007-03-09 11:46:42 +01:00
Rob Shearman ba3ceaa4b8 ole32: Fix cbStruct handling in IBindCtx:GetBindOptions. 2007-03-09 11:46:38 +01:00
Rob Shearman e14e464df6 ole32: Add more tests of IBindCtx functions.
Add tests for IBindCtx::GetObjectParam, IBindCtx::RevokeObjectParam and 
IBindCtx::RevokeObjectBound.
2007-03-09 11:46:33 +01:00
Rob Shearman 3d6070aebd ole32: Set output param to NULL in BindCtxImpl_EnumObjectParam. 2007-03-08 13:50:33 +01:00
Rob Shearman bdefb46d29 ole32: Fix BindCtxImpl_GetBindOptions to return the correct locale and to not fail if the input size is too large. 2007-03-08 13:50:27 +01:00
Rob Shearman bf4b5188e0 ole32: CreateBindCtx should fail if reserved parameter is not zero. 2007-03-08 13:50:23 +01:00
Rob Shearman a418777708 ole32: Add some tests for IBindCtx. 2007-03-06 22:25:45 +01:00
Rob Shearman c19076cb19 ole32: Remove some unnecessary traces from the HeapUnknown implementation. 2007-03-06 22:17:54 +01:00
Rob Shearman 7a6a63f8fc ole32: Fix a failing CoUnmarshalInterface test on Windows. 2007-03-06 22:17:45 +01:00
Rob Shearman ac8d035f3d ole32: Fix a use-after-free of the file moniker in the running object table tests. 2007-03-06 22:17:43 +01:00
Rob Shearman 87155d654f ole32: Compare the class contexts in COM_GetRegisteredClassObject.
Only objects that have been registered for a class context that matches 
the requested class context should be returned.
2007-03-06 12:10:50 +01:00
Rob Shearman 356fdcbb15 ole32: OleLoad should call CoCreateInstance with CLSCTX_INPROC_SERVER as well as CLSCTX_INPROC_HANDLER. 2007-03-06 12:10:47 +01:00
Rob Shearman 3bd31cfd16 ole32: The stream returned by StgStreamImpl_Clone should have one reference, so call AddRef before returning.
Move the call to StorageBaseImpl_AddStream to StgStreamImpl_Construct to 
fix StgStreamImpl_Clone, which forgets to call it.
Add tests for OLE structured storage tests for IStream::Clone.
2007-02-26 17:33:36 +01:00
Rob Shearman 29706e6709 ole32: Use IsEqualIID instead of memcmp in HGLOBALLockBytesImpl_QueryInterface. 2007-02-26 13:38:49 +01:00
Rob Shearman 0101f89a8d ole32: Add tests for default handler creation and handler marshaling. 2007-02-26 13:38:45 +01:00
Francois Gouget f5c6a71a65 ole32: Better match the PSDK types and fix the winapi_check warnings. 2007-02-20 20:29:10 +01:00
Rob Shearman 3047ea9e78 ole32: Make an error message more useful by printing the returned error code. 2007-02-20 11:39:18 +01:00
Mike McCormack b937f33d23 ole32: Add missing parameter for RunningObjectTableImpl_UnInitialize. 2007-02-13 17:47:28 +01:00
Rob Shearman cb9c40a8cf ole32: Add the external references that the server gave to us to any existing ifproxy,
so that the right external reference count is released when the proxy is destroyed.
Protect all changes to refs in the ifproxy using interlocked functions 
and update the thread-safety documentation.
2007-02-06 21:35:25 +01:00
Rob Shearman 723592cf5a ole32: Release iobject and the IRpcStubBuffer object no matter which code path we take.
Otherwise we would leak a reference for both of these if the ifstub was already created.
Fix the FIXME in the code by releasing the stub manager if necessary.
2007-02-06 21:33:47 +01:00
Mike McCormack 4c46194cf5 ole32: Add a few more tests for transacted storage. 2007-02-06 13:20:37 +01:00
John Morris 00b29dfa79 ole32: Add CoWaitForMultipleHandles to spec file. 2007-02-05 12:34:51 +01:00
Paul Vriens e89cac747c ole32/tests: Cast-qual warning fixes. 2007-01-24 11:59:11 +01:00
Andrew Talbot 02a5f7389e ole32: Declare some functions static. 2007-01-19 12:28:58 +01:00
Francois Gouget b0bde6b87c Assorted spelling fixes. 2007-01-18 12:56:52 +01:00
Paul Vriens 3d2baaa6cf ole32/tests: Cast-qual warnings fixes. 2007-01-12 11:25:45 +01:00
Rob Shearman d35a81c7aa ole32: Fix copied description and copyright statement for tests/errorinfo.c. 2007-01-12 11:24:14 +01:00
Rob Shearman bbedf3d096 ole32: Add tests for the default handler. 2007-01-11 11:50:03 +01:00
Rob Shearman 5c71583b53 ole32: Add tests for error info functions.
Return E_INVALIDARG if dwReserved is not set to zero for both
GetErrorInfo and SetErrorInfo.
2007-01-11 11:49:59 +01:00
Rob Shearman f658adffc2 ole32: Fix the detection of when we need an additional QueryInterface in CoUnmarshalInterface. 2007-01-10 12:22:06 +01:00
Rob Shearman fa64950ee1 ole32: Add a test for the failure case of same-apartment unmarshaling when passing in an unsupported iid. 2007-01-10 12:21:59 +01:00
Rob Shearman 49fc8ac742 ole32: Add tests for passing invalid arguments to CoUnmarshalInterface. 2007-01-10 12:21:53 +01:00
Rob Shearman b1ee49a74d ole32: ReadClassStm should return STG_E_READFAULT is not all of the data could be read, not S_FALSE.
Clear pclsid in case of errors.
Add tests for ReadClassStm.
2007-01-10 12:17:00 +01:00
Rob Shearman de527d5ec0 ole32: Add tests for invalid arguments of CoMarshalInterface and CoMarshalInterThreadInterfaceInStream. 2007-01-10 12:16:08 +01:00
Rob Shearman 7730e1408f ole32: Return an error from CoUnmarshalInterface if pStream is NULL or if ppv is NULL. 2007-01-10 12:15:10 +01:00
Rob Shearman 35548d15c4 ole32: Fix Read/WriteClassStm to return an error if the passed in stream pointer is NULL. 2007-01-10 12:14:24 +01:00
Rob Shearman 923bc6bf3d ole32: Return an error in CoMarshalInterface if pStream is NULL. 2007-01-10 12:14:21 +01:00
Rob Shearman fd07191673 ole32: Fix HGLOBALStreamImpl_CopyTo to check the return values of IStream_Read and IStream_Write and to not compare the bytes read to the bytes written.
Add tests for IStream::CopyTo of the HGLOBAL stream implementation.
2007-01-10 12:13:22 +01:00
Rob Shearman ba25254d9f ole32: Remove some unneeded inclusions of headers.
Change some incorrect usages of SEEK_SET to the intended STREAM_SEEK_SET 
instead.
2007-01-10 12:08:51 +01:00
Rob Shearman d02b27c0e9 ole32: Move test for CoGetInterfaceAndReleaseStream to compobj.c. 2007-01-10 12:02:37 +01:00
Rob Shearman 43d0d85f67 ole32: Use the standard list functions for the global interface table implementation. 2007-01-10 12:02:35 +01:00
Rob Shearman c21f5c7c6a ole32: Move the Running Object Table test in marshal.c to moniker.c to put it with the other ROT tests. 2007-01-10 12:02:28 +01:00
Rob Shearman beaaf0514f ole32: Fix a comment in rpc_sendreceive_thread that wasn't correct. 2007-01-10 12:02:26 +01:00
Rob Shearman 84158d6742 ole32: Remove a FIXME comment that no longer applies. 2007-01-10 12:02:24 +01:00
Paul Vriens 32fbfea47a ole32/tests: Cast-qual warnings fixes. 2007-01-09 12:01:45 +01:00
Rob Shearman b624e8125c ole32: Fix the OLE clipboard test to call OleInitialize before performing the tests to fix test failures on Windows. 2007-01-08 12:35:44 +01:00
Rob Shearman a45a2e37f9 ole32: Add a field to the TLS data to determine whether OLE has been initialised for the current thread. 2007-01-08 12:35:41 +01:00
Rob Shearman 2568c4662a ole32: IPeristStream implies IPersist and IStream implies ISequentialStream so fix the Structured Storage stream implementation's QueryInterface with to reflect this. 2007-01-08 12:35:38 +01:00
Rob Shearman 482063bc29 ole32: IStream inherits from ISequentialStream so the HGLOBALStream implementation must also support ISequentialStream. 2007-01-08 12:35:36 +01:00
Rob Shearman 0c51b6236c ole32: Release the global interface table in the tests when it is no longer needed. 2007-01-08 12:35:34 +01:00
Francois Gouget 386bb905e7 ole32: Print GetLastError() in decimal with '%u'. 2007-01-06 11:40:43 +01:00
Kai Blin fb2a3914e1 ole32: Remove redundant NULL check (Coverity). 2007-01-05 20:26:47 +01:00
Rob Shearman 2db1d0de38 ole32: Make sure to reset the message state if it has been changed in RPC_ExecuteCall before returning.
Fix the hrFault parameter passed into the ClientNotify function in 
ClientRpcChannelBuffer_SendReceive so that it is correct in the case of 
messages dispatched with PostMessage.
Only unmarshal ORPCTHAT for non-fault packets.
2007-01-04 21:12:36 +01:00
Michael Gardiner f9d8449db2 ole32: Stop StgOpenStorage from creating a file when it does not already exist. 2007-01-04 20:53:39 +01:00
Rob Shearman b8035d2c70 ole32: Don't release pUnk in OleCreate if CoCreateInstance failed. 2007-01-04 09:50:21 +01:00
Rob Shearman 7a5d5c5503 ole32: Fix the calculation of message_state->prefix_data_len in two places where it would come out negative. 2007-01-02 20:49:07 +01:00
Rob Shearman 638182bbba ole32: Add tests for channel hooks. 2006-12-29 21:25:49 +01:00
Rob Shearman 2881f919c7 ole32: Add some tests for the running object table.
The tests show the behaviour when the IROTData interface is not
available from the moniker. They also show the flags that are accepted
into IRunningObjectTable::Register.
2006-12-28 12:36:07 +01:00
Rob Shearman bf33f9410f ole32: Contrary to MSDN, IROTData doesn't need to be implemented for a moniker to be usable with the running object table.
If IROTData isn't available, fall back to a path that uses the display 
name and the clsid of the moniker to generate the comparison data.
2006-12-28 12:35:54 +01:00
Rob Shearman 341bf7a44a ole32: Only call IROTData::GetComparisonData once, like native does. 2006-12-28 12:35:17 +01:00
Rob Shearman 04498ba49a ole32: Use IMoniker::GetTimeOfLastChange to attempt to retrieve the last-modified time for the ROT entry.
However, fall back to CoFileTimeNow if it fails.
2006-12-28 12:34:54 +01:00
Rob Shearman d4b755a834 ole32: Use the reduced forms of monikers for comparison in the running object table. 2006-12-28 12:34:40 +01:00
Rob Shearman 3bcea6395f ole32: Execute Reduce using the moniker's vtable in CreateCompositeMoniker as the moniker isn't necessarily a composite moniker. 2006-12-28 12:34:20 +01:00
Rob Shearman 83da7dde2a ole32: ROTFLAGS_REGISTRATIONKEEPSALIVE and ROTFLAGS_ALLOWANYCLIENT are legal to be used together in RunningObjectTable_Register. 2006-12-28 12:34:10 +01:00
Rob Shearman 3e8adc3d26 ole32: Output the HRESULT for clipboard tests that fail. 2006-12-28 12:17:07 +01:00
Rob Shearman ee99b6d743 ole32: Marshal the ORPCTHAT structure prefixed to the server data.
Unmarshal the data on the client side (during
ClientChannelBuffer_SendReceive) and call ClientNotify.
2006-12-27 14:34:15 +01:00
Rob Shearman 3be9cbc41a ole32: Message filters aren't used in the test_call_from_message test, so remove the call to CoRegisterMessageFilter. 2006-12-27 13:02:48 +01:00
Alexandre Julliard 365a463b1e make_makefiles: Automatically add IDL header targets to the .gitignore file. 2006-12-24 17:31:52 +01:00
Rob Shearman 844037ab01 ole32: Performing a COM call from within the processing of a sent message during a wait for completion of another COM call is not allowed.
Add a test for the behaviour where RPC_E_CANTCALLOUT_ININPUTSYNCCALL is returned.
2006-12-24 13:08:02 +01:00
Rob Shearman 038c8e642a ole32: Call the MessagePending function for message filters. 2006-12-24 13:07:38 +01:00
Rob Shearman aca17cd120 ole32: Track the pending call count so that the correct call type can be passed to the message filter HandleInComingCall function. 2006-12-24 13:07:35 +01:00
Rob Shearman d3217872b3 ole32: Allow the marshaling/unmarshaling of NULL interfaces for IClassFactory. 2006-12-24 13:07:32 +01:00
Rob Shearman e236edb91e ole32: Send a causality ID in the ORPCTHIS header for a call.
Use the causality ID to determine whether this is a top-level or a 
nested (called-back) call for the purposes of IMessageFilter::HandleInComingCall.
2006-12-20 12:41:01 +01:00
Rob Shearman 4fa03831a5 ole32: Reset the message filter at the end of the message filter test. 2006-12-20 12:40:46 +01:00
Rob Shearman a089e57983 ole32: Pass in the IID and IUnknown* of the object being executed to the server notification and message filter functions. 2006-12-20 12:40:38 +01:00
Rob Shearman 9208eef55c ole32: Call the message filter for incoming calls. 2006-12-20 12:40:30 +01:00
Rob Shearman c0a25d3565 ole32: Call ServerNotify for channel hooks.
Store the SChannelHookCallInfo structure in the message state.
2006-12-20 12:40:03 +01:00
Rob Shearman 5788ee9f05 ole32: Implement CoRegisterChannelHook and call channel hook methods on the client side. 2006-12-20 12:39:50 +01:00
Rob Shearman 1dc5dec6e6 ole32: Marshal the ORPCTHIS structure prefixed to the client data when doing ORPC calls.
This is done by putting the ORPCTHIS data into the buffer when calling
IRpcChannelBuffer::GetBuffer on the client side and then storing the
amount we increased the buffer in a structure stored in the Handle
field. This is done to present the correct Buffer pointer to the proxy
so that it writes its data after the ORPCTHIS data.

Unmarshal the data on the server side (during RPC_ExecuteCall) and make 
sure the data is consistent according to NDR rules. Also add several 
checks on the unmarshaled data that are specified by the DCOM draft 
specification.
2006-12-20 12:36:43 +01:00
Rob Shearman 307ab51793 ole32: Fix the HMETAFILEPICT user marshaling test to use the size
derived from the return value of HMETAFILEPICT_UserMarshal instead of
the value returned by HMETAFILEPICT_UserSize, as the latter
over-estimates the size on Windows.

Remove some unnecessary casts.
2006-12-19 17:00:02 +01:00
Rob Shearman fb883d8687 ole32: Fix SetSize for HGLOBAL streams in the case of being out-of-memory. 2006-12-18 11:54:24 +01:00
Rob Shearman fda6498284 ole32: Implement HMETAFILE and HMETAFILEPICT user marshaling functions and add tests for these. 2006-12-18 11:52:58 +01:00
Rob Shearman 3bb4760f88 ole32: Move the user marshal tests to usrmarshal.c. 2006-12-18 11:52:42 +01:00
Rob Shearman 4babec1928 ole32: Add documentation for the user marshaling functions. 2006-12-18 11:45:46 +01:00
Rob Shearman cc30255c8a ole32: Support reading and writing custom clipformats in the data cache. 2006-12-18 11:45:42 +01:00
Francois Gouget 458ebf423d ole32/tests: Replace some '#if 0's with 'if (0)'s.
Fix the code so it compiles.
2006-12-14 20:24:53 +01:00
Francois Gouget 5e10172b30 ole32: Fix named/nameless union compilation error. 2006-12-14 12:44:31 +01:00
Marcus Meissner f0280cbd1e made functions and variables static in some testcases. 2006-12-11 12:18:29 +01:00
Rob Shearman 7a5766346f ole32: Add some documentation for CoCreateInstance. 2006-12-07 11:51:13 +01:00
Francois Gouget dd6e948d84 ole32: Convert dump_user_flags() into debugstr_user_flags(), a proper debug trace function. 2006-12-06 12:15:11 +01:00
Francois Gouget f0ccd389d4 ole32: Convert dump_FORMATETC() into debugstr_formatetc(), a proper debug trace function. 2006-12-06 12:14:55 +01:00
Francois Gouget bb8e625b5b Assorted spelling fixes. 2006-12-05 10:31:47 +01:00
Rob Shearman 878d5e9cec ole32: Implement the GetData function of the data cache to using the
existing LoadData function and fix GetData to also return data that
has been set, rather than loaded.
2006-12-04 20:19:28 +01:00
Rob Shearman 1b244baf48 ole32: Fix HandsOffStorage in the data cache. 2006-12-04 20:19:03 +01:00
Rob Shearman 6235ac9f58 ole32: Implement the DiscardCache function in the data cache. 2006-12-04 20:18:56 +01:00
Rob Shearman feee099eec ole32: Add some more traces to the data cache to make debugging easier. 2006-12-04 13:51:15 +01:00
Rob Shearman e99168e1ba ole32: Add tests for invalid clipformat/tymed combinations in IOleCache:Cache and for caching formats with a clipformat of 0. 2006-12-04 13:51:11 +01:00
Rob Shearman ca81b825be ole32: In the data cache, fmtetc->cfFormat and fmtetc->tymed can be 0 which means to match any clipformat/tymed.
Therefore, keep the clipformat of the data in the data_cf field.
Return an error from SetData if a non-zero clipformat hasn't been specified.
Write out stgmedium.tymed instead of fmtetc.tymed, which is guaranteed 
to be non-zero if data has been set.
2006-12-04 13:51:06 +01:00
Rob Shearman d37b669503 ole32: Check that the specified clipboard format and tymed are valid in IOleCache::Cache in the data cache. 2006-12-04 13:44:06 +01:00
Rob Shearman 3b87fe97df ole32: Set the mapping mode to anisotropic in OleMetafilePictFromIconAndLabel. 2006-12-04 12:22:09 +01:00
Rob Shearman d7d3309e0a ole32: The width of the metafile drawn should be 3 times the icon width in OleMetafilePictFromIconAndLabel. 2006-12-04 12:22:03 +01:00
Rob Shearman cdb86c6c90 ole32: Fill in the xExt and yExt fields in OleMetafilePictFromIconAndLabel. 2006-12-04 12:21:55 +01:00
Rob Shearman 2fa7cadf07 ole32: Use the default icon title font when writing the caption text out in OleMetafilePictFromIconAndLabel. 2006-12-04 12:21:48 +01:00
Rob Shearman f0e2ea54e0 ole32: The METAFILEPICT created by OleMetafilePictFromIconAndLabel should have its mapping mode be anisotropic, not isotropic. 2006-12-04 12:21:38 +01:00
Rob Shearman 09376ea1f5 ole32: Call SetWindowOrgEx and SetWindowExtEx in OleMetafilePictFromIconAndLabel so that the created metafile scales correctly.
Centre the icon and the label.
2006-12-04 12:21:31 +01:00
Rob Shearman 587ba29174 ole32: Implement saving of the data cache.
Document a few of the unknown fields in the presentation data header.
2006-12-04 12:21:20 +01:00
Rob Shearman e5c82d3aa4 ole32: Add handling of the dirty state to the data cache and fix InitNew to not call Load. 2006-12-04 12:21:09 +01:00
Rob Shearman e9cc0744cc ole32: Add documentation for CreateDataCache. 2006-12-04 12:20:57 +01:00
Rob Shearman 188fe95091 ole32: Add some tests for the IViewObject, IOleCache2 and IPersistStorage interfaces of the OLE data cache. 2006-12-04 12:20:51 +01:00
Rob Shearman 4b7e8e73a4 ole32: The advise sink for the data cache should be primed with the passed in aspects value, not an arbitrarily selected value. 2006-12-04 12:20:41 +01:00
Rob Shearman 46f70207b2 ole32: Implement the SetData function for the data cache. 2006-12-04 12:20:36 +01:00
Rob Shearman 25d7d95035 ole32: Load cached data in the data cache into a STGMEDIUM type so it can be treated the same as set data. 2006-12-04 12:20:28 +01:00
Rob Shearman 4232d31c57 ole32: Implement Cache and Uncache for the data cache. 2006-12-04 12:20:18 +01:00
Rob Shearman 07e3d538a0 ole32: Create a cache entry for each format in the data cache to allow
for the future possiblity to add entries with IOleCache::Cache and
IOleCache::SetData.
2006-12-04 12:20:07 +01:00
Rob Shearman a2d59ef534 ole32: Implement DataCache_GetClassID. 2006-12-04 12:19:31 +01:00
Dmitry Timoshkov 09fea0f83e ole32: Make some data const. 2006-11-28 12:36:17 +01:00
Kirill K. Smirnov 3cd3ca68fe ole32: Fix logic in Storage32Impl_SmallBlocksToBigBlocks function. 2006-11-27 17:44:47 +01:00
Huw Davies 8519a6c49e ole32: Spelling fixes. 2006-11-22 11:39:03 +01:00
Huw Davies 1f34fdffee ole32: CoGetInterfaceAndReleaseStream shouldn't crash when passed a NULL stream. 2006-11-22 11:38:57 +01:00
Huw Davies 241336c749 ole32: CoRegisterMessageFilter shouldn't crash on an uninitialized apartment. 2006-11-16 22:09:24 +01:00
Rob Shearman fff2d8e82b ole32: Re-enable the code that unregisters interfaces with the RPC runtime. 2006-11-13 14:32:45 +01:00
Francois Gouget 1ccf944900 Assorted spelling fixes. 2006-11-13 13:01:53 +01:00
Francois Gouget aa857dead3 ole32: Standardize some documentation comments. 2006-11-13 13:01:08 +01:00
Francois Gouget 49ad2b10c1 ole32/tests: Don't use the NONAMELESS* macros in the tests. 2006-11-13 12:59:11 +01:00
Eric Pouech 3026d8844c ole32: Don't use PropVariantClear to setup an unitialized variant. 2006-11-09 12:24:46 +01:00
Michael Stefaniuc 22befac97e ole32: Fix the warnings introduced by the "unsigned long" to "ULONG" header changes. 2006-11-09 10:43:38 +01:00
Michael Stefaniuc cc234847d0 widl: Use ULONG instead of unsigned long when generating declarations for *_UserFree() functions. This is needed for Win64 compatibility. 2006-11-09 10:43:23 +01:00
Michael Stefaniuc 6f95047034 widl: Use ULONG instead of unsigned long when generating declarations for *_UserUnMarshal() functions. This is needed for Win64 compatibility. 2006-11-09 10:43:20 +01:00
Michael Stefaniuc 05b1aac100 widl: Use ULONG instead of unsigned long when generating declarations for *_UserMarshal() functions. This is needed for Win64 compatibility. 2006-11-09 10:43:16 +01:00
Michael Stefaniuc 177aaf6738 widl: Use ULONG instead of unsigned long when generating declarations for *_UserSize() functions. This is needed for Win64 compatibility. 2006-11-09 10:43:12 +01:00
Francois Gouget 30e44c85c8 Assorted spelling fixes. 2006-11-07 15:25:24 +01:00
Andrew Talbot 97ee9c7820 ole32: Cast-qual warnings fix. 2006-11-07 15:06:30 +01:00
Rob Shearman b1bfad067b ole32: Fix a memory leak on the error path of dispatch_rpc. 2006-10-27 11:59:58 +02:00