<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Apr 3, 2015 at 2:10 AM, Stefan Dösinger <span dir="ltr"><<a href="mailto:stefandoesinger@gmail.com" target="_blank">stefandoesinger@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">-----BEGIN PGP SIGNED MESSAGE-----<br>
Hash: SHA1<br>
<span class=""><br>
Am 2015-04-02 um 18:36 schrieb Aaryaman Vasishta:<br>
>      REFIID iid;<br>
>      REFIID refcount_iid;<br>
> +    REFIID vtable_iid;<br>
>      HRESULT hr;<br>
>      BOOL refcount_todo;<br>
> +    BOOL vtable_equal;<br>
> +    BOOL vtable_todo;<br>
>  };<br>
</span>I think this is more complicated than it needs to be. All you should<br>
need is the vtable_iid field. Then, in the inner loop do something like<br>
<br>
if (IsEqualGUID(tests[i].vtable_iid, tests[j].vtable_iid))<br>
    ok(iface1 == iface2, ...);<br>
else<br>
    ok(iface1 != iface2, ...);<br>
<br>
I may be missing something though.<br></blockquote>I've tried this and it works too. I'll use this on the patch try, and along with it also keep vtable_todo as some tests won't work on wine until they're fixed.<br></div><div class="gmail_quote"><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
If you want to compare two Win32 BOOLs for equality you have to be careful:<br>
<br>
BOOL a = 1;<br>
BOOL b = 2;<br>
if (a)<br>
   printf("this is true.\n");<br>
if (b)<br>
   printf("this is also true.\n");<br>
if (a == b)<br>
   printf("oops, this is false.\n");<br>
<br>
For something like that you can use<br>
if (!a == !b)<br>
    printf("yay, this is true!\n");<br>
<br>
IsEqualGUID(a, b) is defined as !memcmp(a, b, sizeof(GUID)), so<br>
IsEqualGUID() == (ptr1 == ptr2) should be OK though.<br>
<br></blockquote><div>I'll keep this in mind the next time I come across it. Thank You!<br><br></div><div>jam </div></div><br></div></div>