101 Commits

Author SHA1 Message Date
Michael Stefaniuc
22befac97e ole32: Fix the warnings introduced by the "unsigned long" to "ULONG" header changes. 2006-11-09 10:43:38 +01:00
Rob Shearman
e1ee3b4de3 ole32: Fix some memory leaks in the marshal tests. 2006-10-23 15:18:05 +02:00
Michael Stefaniuc
15765dd953 The Data1 member of the GUID struct needs to be an unsigned int too for Win64 compatibility. 2006-10-16 10:53:04 +02:00
Michael Ploujnikov
9d2a804f9b ole32/tests: Win64 printf format warning fixes. 2006-10-14 20:17:16 +02:00
Francois Gouget
87045eb0c5 Fix rpcndr.h so it takes CONST_VTABLE into account.
Define CONST_VTABLE in the tests that need it. This fixes many Visual C++ warnings.
2006-09-29 17:52:27 +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
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
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
28e17a75af ole32/tests: Don't use sizeof in ok() to avoid printf format warnings. 2006-06-13 14:03:36 +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
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
Jonathan Ernst
360a3f9142 Update the address of the Free Software Foundation. 2006-05-23 14:11: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
Mike McCormack
64659785de ole32: Uncomment some code to make sure it is compiled, but don't run it. 2006-04-18 11:14:53 +02:00
Robert Shearman
857a6d1f63 ole: Fix marshaling of proxies for interfaces that haven't already been unmarshaled. 2006-03-01 19:54:20 +01:00
Robert Shearman
1b7d346d1f ole: Verify that the proxy is being used in the correct thread. 2006-01-20 16:16:08 +01:00
Robert Shearman
98734cc894 ole: Add a test for WM_QUIT behaviour during COM calls. 2006-01-20 16:14:32 +01:00
Robert Shearman
9ac3b28354 ole: Use strict prototypes for some test functions. 2006-01-12 11:53:19 +01:00
Robert Shearman
567919d78f Implement some user marshal functions and add tests. 2005-11-29 11:35:27 +01:00
Robert Shearman
b3a4b59668 Fix ref-counting rules to match native DCOM Dlls. 2005-09-18 11:10:37 +00:00
Alexandre Julliard
5a49e40149 SendMessageTimeout takes a DWORD_PTR not a DWORD. 2005-09-12 20:43:32 +00:00
Robert Shearman
dab603def3 - Implement IMarshal on proxies so that we don't end up with proxies
to proxies, causing potential deadlock issues and performance
  problems.
- Add a test for this situation and remove the todo_wine from another
  test that now succeeds.
2005-08-27 09:25:16 +00:00
Robert Shearman
28479ea4aa By-pass the RPC runtime if possible when calling an STA by posting a
message directly to the apartment window for it to process. Fixes a
deadlock in InstallShield caused by having to create a thread when
freeing an object that comes from an STA apartment. Added tests that
fail without this fix.
2005-07-19 19:12:47 +00:00
Stefan Huehner
ac6f562b52 Fix more -Wstrict-prototypes warnings. 2005-06-20 14:18:03 +00:00
Dmitry Timoshkov
eba47f1dfe Make remaining OLE interface vtables const. 2005-06-06 19:50:35 +00:00
Robert Shearman
b9ecbb6167 - Marshal objects & monikers into the ROT.
- Test for this behaviour.
2005-05-23 09:54:53 +00:00
Francois Gouget
6b10c324c5 Assorted spelling fixes. 2005-03-30 17:08:31 +00:00
Jakob Eriksson
461c830745 Eliminate HeapAlloc casts. 2005-03-22 18:26:06 +00:00
Alexandre Julliard
53f3d4c65a Authors: Rob Shearman <rob@codeweavers.com>, Mike Hearn <mh@codeweavers.com>
- Add re-entrancy tests to the test suite.
- Run RPCs on a new thread client side so we can pump the message
  loop.
2005-03-04 12:30:47 +00:00
Robert Shearman
95288f9148 - Move marshaling state machine into stub manager from ifstub.
- Add additional needed states for table-weak marshaling, as shown by
  tests.
- Protect external reference count from underflows/overflows.
2005-02-18 20:03:23 +00:00
Robert Shearman
403d8e23cd Make Ole tests run on Windows 95. 2005-02-14 11:01: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
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
9a97360eba Remove test that fails on Win98 and is not useful. 2005-01-31 11:29:41 +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
5bef770490 Give IUnknown its own ifstub to fix ref-counting and ipid storage
issues.
2005-01-27 10:39:44 +00:00
Robert Shearman
3018974ce3 - Make proxy manager use IMultiQI instead of IInternalUnknown as tests
show that IInternalUnknown isn't exposed.
- Implement IMultiQI on top of IRemUnknown calls.
- Silence some fixmes that occur during tests and don't give us any
  useful information.
- Fix typo in class factory proxy that caused us to use the wrong
  offset into the CFProxy structure, causing us to not call the
  outer_unknown properly.
2005-01-26 21:07:05 +00:00
Robert Shearman
963ac3f013 - Implement IRemUnknown.
- Use IRemUnknown for life-cycle management instead of the current
  hacks.
2005-01-26 20:42:30 +00:00
Robert Shearman
6a20b2f476 - Initialize ppv pointer in ClientIdentity_QueryInterface to NULL as
apps depend on this.
- Don't release IRpcProxyBuffer on ifproxy destruction - the caller
  will do this for us.
- Make find_proxy_manager add a reference to the proxy manager and
  make proxy_manager_construct return an object with a valid
  ref-count.
- Remove stray not operator to fix a memory leak / crash in
  proxy_manager_destroy.
- More debug messages, especially on errors.
- Fix ref-count leak in the Class Factory proxy.
- Add a test case for IClassFactory_CreateInstance.
2005-01-19 17:00:20 +00:00
Robert Shearman
4c8d59dd91 Implement table marshaling. 2005-01-17 13:39:40 +00:00
Robert Shearman
ca608933dd Make proxy shutdown test succeed by releasing the channel on
disconnect.
2005-01-14 17:20:13 +00:00
Robert Shearman
6036a773e2 - The apartment reference should be held while the stub manager
reference is held.
- Fix same apartment-unmarshal detection.
2005-01-14 16:48:34 +00:00
Robert Shearman
de95de1865 - Force creation of thread queue to stop PostThreadMessage from
failing.
- Remove incorrect comment.
2005-01-12 19:28:37 +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
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