Alexandre Julliard wrote:
Jacek Caban <ja...@codeweavers.com> writes:

@@ -84,6 +83,13 @@ static inline xmlnode *impl_from_IXMLDOMNode( IXMLDOMNode 
*iface )
     return (xmlnode *)((char*)iface - FIELD_OFFSET(xmlnode, lpVtbl));
 }
+static inline IXMLDOMNode *_IXMLDOMNode_(xmlnode *This)
+{
+    return (IXMLDOMNode*)&This->lpVtbl;
+}

That wrapper doesn't follow any established naming convention,

I'm sure I saw it somewhere in Wine and I liked it. AFAICS there are no object to interface cast wrappers in msxml3 (except for dispex.c, which is copied from mshtml), so I thought I could introduce it here.

 and doesn't seem quite necessary. The standard way is to simply cast to the
interface type.

I just feel that it's better to have a wrapper to avoid explicit casts in the code and have vtbl logic separated from other code. I usually use macros, but I know you don't like it, so I used an inline function here.

 If you really want a wrapper it should be called
something like IXMLDOMNode_from_impl.

I will resend these patches without the wrapper.


Thanks,
   Jacek


Reply via email to