<br><br>On Friday, 6 November 2015, Dmitry Timoshkov <<a href="mailto:dmitry@baikal.ru">dmitry@baikal.ru</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Nikolay Sivov <<a href="javascript:;" onclick="_e(event, 'cvml', 'bunglehead@gmail.com')">bunglehead@gmail.com</a>> wrote:<br>
<br>
> > This matches midl/PSDK syntax, and allows to use Wine headers for compiling<br>
> > applications with a C++ win32/win64 compiler. In order to be usable by C++<br>
> > unix compilers widl needs to emit appropriate statically initialized WCHAR<br>
> > strings, but that's a different problem, currently the generated Wine headers<br>
> > with default(BSTR) statements can't be used with C++ at all.<br>
> ><br>
><br>
> Where do you see this? Mshtml.idl from Windows 10 SDK doesn't use this<br>
> notation, and in fact only fsrm*.idl files do, so it's not a common<br>
> practice.<br>
<br>
midl has a built-in "magic" for handling defaultvalue() for BSTR strings,<br>
that's why PSDK headers are not consistent in that regard: some of them<br>
use defaultvalue("") while others use defaultvalue(L""). But using this<br>
magic is not necessary if the header uses appropriate type for the default<br>
value. So fixing an .idl should be preferrable IMO to adding support for<br>
magic behaviour to widl.</blockquote><div>All headers except about 4 we don't have, use it like we do. All the magic is to add a prefix during header generation, it doesn't look that hard, and will get consistent result for idls that don't cone with wine.  </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
> Generated headers should use L"", like you said. But only in<br>
> case of empty strings.<br>
<br>
midl always generates L"" syntax, regardless whether it's an empty string<br>
or not.</blockquote><div><br></div><div>I don't see this in mshtml.h when default value is not an empty string.  <br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
> Also leaving this broken for everything that's<br>
> not PSDK compiler doesn't sound right.<br>
<br>
mingw/borland/any other wine32 compiler also benefit from this change.<br>
It doesn't make sense to have it broken at all, but at least fixing<br>
the .idl side of breakage should be considered as the first step, and<br>
make the generated headers actually usable for the win32 platform.<br>
<br></blockquote><div>Since it only affects cpp case, that we don't use, how does it help building wine?</div><div><br></div><div>And more importantly what will happen to gcc if you try to build with this addition? <span></span> <br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
--<br>
Dmitry.<br>
</blockquote>