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




      </body></html>