widl: Write forward declarations for coclass definitions

Jacek Caban jacek at codeweavers.com
Thu Aug 3 08:44:49 CDT 2006


Alexandre Julliard wrote:
> Dan Hipschman <dsh at linux.ucla.edu> writes:
>
>   
>> diff --git a/dlls/mshtml/mshtml_private.h b/dlls/mshtml/mshtml_private.h
>> index e0c1c3c..262ed37 100644
>> --- a/dlls/mshtml/mshtml_private.h
>> +++ b/dlls/mshtml/mshtml_private.h
>> @@ -53,7 +53,8 @@ typedef enum {
>>      EDITMODE        
>>  } USERMODE;
>>  
>> -typedef struct {
>> +/* "typedef struct HTMLDocument HTMLDocument;" is in mshtml.h */
>> +struct HTMLDocument {
>>      const IHTMLDocument2Vtbl              *lpHTMLDocument2Vtbl;
>>     
>
> It would be better to rename the types instead of depending on having
> a typedef in a system header for an unrelated type.
>   
It's not really an unrelated type. It's type of coclass and this struct 
is an implementation
of this coclass. It means that this type is exactly type of this object. 
The point is idl
shouldn't declare any type of coclass as COM doesn't define data 
structure which should
be used to implement an object. And HTMLDocument is IMO the best name. Also

$ grep -w HTMLDocument dlls/mshtml/*.[ch] |wc -l
304
$ grep -w WebBrowser dlls/shdocvw/*.[ch] |wc -l
210
$ grep -w InternetExplorer dlls/shdocvw/*.[ch] |wc -l
89

Jacek



More information about the wine-devel mailing list