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(); }