[4/5] ddraw: Get rid of ICOM_INTERFACE.

Henri Verbeet hverbeet at gmail.com
Wed Jan 21 07:13:28 CST 2009


2009/1/21 Stefan Dösinger <stefan at codeweavers.com>:
>> I don't see the point. IDirect3DDevice7 is the primary vtable and
>> that's not going to change, ever. We also do things like this about
>> everywhere else, and I don't think ddraw should be special in that
>> regard.
> I don't see any 'primary' vtable in any ddraw object, but that's just my personal view. I also dislike casting between the iface and the impl, which is possible only because vtable is the first member of the impl struct.
>
Primary in the sense that it is the table that actually implements
most of the methods, including things like QueryInterface(), rather
than forwarding them to somewhere else.

> My impression was that whenever we have different vtables in an object that there are converter functions from and to all ifaces and no iface is obtained by casting. Of course if we have some policy or enough code to prove my point here wrong please disregard the objection.
>
Just open a random COM object implementation like eg.
dlls/shell32/shlview.c or dlls/comdlg32/filedlgbrowser.c.



More information about the wine-devel mailing list