Rob Shearman <robertshearman <at> gmail.com> writes:
2008/9/15 Louis Lenders <xerox_xerox2000 <at> yahoo.co.uk>:
Rob Shearman <robertshearman <at> gmail.com> writes:
I suggest you write a test case that replicates what the application does and either send it to wine-patches with appropriate todo_wine's or attach it to the bug.
Well, it looks like the app is only checking if the uuid of the
interface is defined using Context_QueryInterface, and that's about it. It doesn't really seem to try to use anything from it, as Erich's initial hack is already enough to get the apps running as well (this one:http://bugs.winehq.org/attachment.cgi?id=13379)
That's fine. You can still add a test that does the same
as what the app does.
Hi, as there isn't really much activity in the bug (understatement haha) i tried to hack up a test myself. Rob, is the test below more or less what you meant? or am i way off... (The test passes on winxp, and fails in wine, so afaics shows we should support the interface )
diff --git a/dlls/ole32/tests/compobj.c b/dlls/ole32/tests/compobj.c index bdc34d9...49c3276 100644 --- a/dlls/ole32/tests/compobj.c +++ b/dlls/ole32/tests/compobj.c @@ -28,6 +28,7 @@ #include "objbase.h" #include "shlguid..h" #include "urlmon.h" /* for CLSID_FileProtocol */ +//#include "ctxtcall.h"
#include "wine/test.h"
@@ -61,6 +62,15 @@ static const IID IID_IWineTest = 0x4fd0, {0xa1, 0xa2, 0x5d, 0x5a, 0x36, 0x54, 0xd3, 0xbd} }; /* 5201163f-8164-4fd0-a1a2-5d5a3654d3bd */ + +static const IID IID_IContextCallback = +{ + 0x000001da , + 0x0000, + 0x0000, + {0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46 } +}; + static const CLSID CLSID_WineOOPTest = { 0x5201163f, 0x8164, @@ -1022,6 +1032,26 @@ static void test_CoGetObjectContext(void) CoUninitialize(); }
+static void test_ContextCallBack(void) +{ + + HRESULT hr; + IComThreadingInfo *pComThreadingInfo; + + if (!pCoGetObjectContext) + { + skip("CoGetObjectContext not present\n"); + return; + } + + pCoInitializeEx(NULL, COINIT_APARTMENTTHREADED); + + hr = pCoGetObjectContext(&IID_IContextCallback, (void **)&pComThreadingInfo); + + ok_ole_success(hr, "CoGetObjectContext"); + CoUninitialize(); +} + START_TEST(compobj) { HMODULE hOle32 = GetModuleHandle("ole32"); @@ -1050,4 +1080,5 @@ START_TEST(compobj) test_registered_object_thread_affinity(); test_CoFreeUnusedLibraries(); test_CoGetObjectContext(); + test_ContextCallBack(); }