WIDL 'import' question

Nikolay Sivov bunglehead at gmail.com
Mon Jan 12 07:27:49 CST 2009


Rob Shearman wrote:
> 2009/1/11 Nikolay Sivov <bunglehead at gmail.com>:
>   
>> Hi, I've a small question on using 'import' in .idl. Sorry if it's too
>> dummy, it's my first try to use widl.
>> Trying to get commoncontrols.idl port compile on Wine I've got the
>> following problems -
>> this file contains struct definitions already defined in commctrl.h.
>>
>> Adding
>>
>>    import "commctrl.h"
>>
>> and removing after that all conflict definitions from commoncontrols.idl
>> caused for me
>>
>> ../tools/widl/widl -I. -I. -I../include -I../include    -h -H
>> commoncontrols.h commoncontrols.idl
>> ./prsht.h:39: error: syntax error, unexpected '{'
>> make[1]: *** [commoncontrols.h] Error 1
>> make[1]: Leaving directory `/home/mrlarch/wine/include'
>> make: *** [include] Error 2
>>
>> showing that prsht.h isn't processed properly here
>>
>> 39    static const WCHAR WC_PROPSHEETW[] = { 'S','y','s',
>> 40      'P','r','o','p','e','r','t','y','S','h','e','e','t',0 };
>>
>> How could I get over that?
>>     
>
> The IDL syntax that widl implements includes a subset of the C syntax,
> however it is not practical to support the full C syntax (in
> particular inline functions) and in this case widl doesn't like the
> array initialiser. MIDL probably also suffers from similar limitations
> and you'll see "#ifndef MIDL_PASS" in PSDK header files to work around
> these sorts of issues. If you really have to treat commctrl.h as an
> IDL file, you'll need to #ifdef out problem statements.
>
>   
Thanks for reply. I've already compiled it without any changes in 
commctrl.h.
As I understood #ifdef MIDL_PASS used as #if 0 to provide definitions in 
idl file for MIDL without conflicting
with other C sources.



More information about the wine-devel mailing list