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