Re: [Mingw-w64-public] Incorrect GUID definitions in mfidl.h
On 12/11/19 1:43 PM, Liu Hao wrote: 在 2019/12/11 20:04, Jacek Caban 写道: The attached patch should fix it, please review. It shouldn't be needed for include/mfidl.h through... LGTM. Now here is another error: ``` /mingw64/bin/widl -DBOOL=WINBOOL -I./include -I./direct-x/include -Icrt -I./crt -h -o include/windows.storage.streams.h include/windows.storage.streams.idl include/windows.storage.streams.idl:35: error: type 'IBuffer' not found make: *** [Makefile:1281: include/windows.storage.streams.h] Error 1 ``` That one is more tricky. It's because those winrt IDLs were committed without finished widl support. Right now we have useless and invalid IDL files that we can't use to generate anything (and even if we had widl complete, they would still be invalid). I've done some work on that. Partial winrt support is in widl now and I have more WIP patches waiting for some time to finish. But it's still quite a lot of work... Jacek ___ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
Re: [Mingw-w64-public] Incorrect GUID definitions in mfidl.h
在 2019/12/11 20:04, Jacek Caban 写道: > > The attached patch should fix it, please review. It shouldn't be needed > for include/mfidl.h through... > > LGTM. Now here is another error: ``` /mingw64/bin/widl -DBOOL=WINBOOL -I./include -I./direct-x/include -Icrt -I./crt -h -o include/windows.storage.streams.h include/windows.storage.streams.idl include/windows.storage.streams.idl:35: error: type 'IBuffer' not found make: *** [Makefile:1281: include/windows.storage.streams.h] Error 1 ``` -- Best regards, LH_Mouse signature.asc Description: OpenPGP digital signature ___ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
Re: [Mingw-w64-public] Incorrect GUID definitions in mfidl.h
On 12/11/19 12:44 PM, Liu Hao wrote: 在 2019/12/10 19:17, Jacek Caban 写道: On 12/10/19 12:10 PM, Liu Hao wrote: You could just use make include/mfidl.h if you use configure with --with-widl. This uses -DBOOL=WINBOOL when generating headers. IDL files should use BOOL, not WINBOOL, and leave it for widl to generate correct headers. Thanks for the information. `-DBOOL=WINBOOL` makes WIDL compile the IDL without any modification. However `make include/mfidl.h` seemed to be stuck with some syntax errors likes this: ``` crt/ctype.h:108: error: syntax error, unexpected aIDENTIFIER, expecting tTYPEDEF make[2]: *** [Makefile:1281: include/docobjectservice.h] Error 1 ``` The attached patch should fix it, please review. It shouldn't be needed for include/mfidl.h through... Jacek commit 37c5be50b3549ed9695f45b509560b4338b813c2 Author: Jacek Caban Date: Wed Dec 11 12:58:56 2019 +0100 mshtml.idl: Correctly import dxgitype.idl. diff --git a/mingw-w64-headers/include/mshtml.idl b/mingw-w64-headers/include/mshtml.idl index 3394f05d..1090fcba 100644 --- a/mingw-w64-headers/include/mshtml.idl +++ b/mingw-w64-headers/include/mshtml.idl @@ -83,7 +83,7 @@ interface IIE80DispatchEx : IDispatchEx { library MSHTML { importlib ("stdole2.tlb"); import "ocidl.idl"; - import "dxgitype.h"; + import "dxgitype.idl"; interface IDOMEvent; interface IElementBehavior; ___ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
Re: [Mingw-w64-public] Incorrect GUID definitions in mfidl.h
在 2019/12/10 19:17, Jacek Caban 写道: > On 12/10/19 12:10 PM, Liu Hao wrote: > > You could just use make include/mfidl.h if you use configure with > --with-widl. This uses -DBOOL=WINBOOL when generating headers. IDL files > should use BOOL, not WINBOOL, and leave it for widl to generate correct > headers. > > Thanks for the information. `-DBOOL=WINBOOL` makes WIDL compile the IDL without any modification. However `make include/mfidl.h` seemed to be stuck with some syntax errors likes this: ``` crt/ctype.h:108: error: syntax error, unexpected aIDENTIFIER, expecting tTYPEDEF make[2]: *** [Makefile:1281: include/docobjectservice.h] Error 1 ``` -- Best regards, LH_Mouse signature.asc Description: OpenPGP digital signature ___ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
Re: [Mingw-w64-public] Incorrect GUID definitions in mfidl.h
How about importing mfidl.idl[1] from wine repository? Then update the mfidl.idl file in wine. `wine-import.sh` will take care of the WINBOOL/BOOL confusion. [1]: https://source.winehq.org/git/wine.git/blob/HEAD:/include/mfidl.idl ___ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
Re: [Mingw-w64-public] Incorrect GUID definitions in mfidl.h
On 12/10/19 12:10 PM, Liu Hao wrote: 在 2019/12/10 18:42, Eric Hassold 写道: Hi all, Tracking issue with one small program using Media Foundation was failing at runtime only if compiled with Mingw, I found out that definitions for some GUID in mfidl.h are incorrect (or mixed, with one ID getting the value of another). Namely, at mfidl.h:3407, GUID: MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_GUID is defined as: 0xc60ac5fe, 0x252a, 0x478f, 0xa0, 0xef, 0xbc, 0x8f, 0xa5, 0xf7, 0xca, 0xd3 but this is actually the UUID for MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE (while definition for MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE itself is missing). Correct values should be: EXTERN_GUID( MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE, 0xc60ac5fe, 0x252a, 0x478f, 0xa0, 0xef, 0xbc, 0x8f, 0xa5, 0xf7, 0xca, 0xd3); EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_GUID, 0x8ac3587a, 0x4ae7, 0x42d8, 0x99, 0xe0, 0x0a, 0x60, 0x13, 0xee, 0xf9, 0x0f); Attached is patch for mfidl.idl (need to regenerate mfidl.h, not included in patch). Thanks. Pushed this one. Side note: WIDL 4.19 doesn't seem to like `WINBOOL` and reports syntax errors likes this: ``` WIDL mediaobj.idl:20: error: syntax error, unexpected aIDENTIFIER ``` I replaced all `BOOL` with `WINBOOL` to generate the header. I also had to be careful not to commit such changes by accident. I hope someone is going to fix this issue. You could just use make include/mfidl.h if you use configure with --with-widl. This uses -DBOOL=WINBOOL when generating headers. IDL files should use BOOL, not WINBOOL, and leave it for widl to generate correct headers. Jacek ___ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
Re: [Mingw-w64-public] Incorrect GUID definitions in mfidl.h
在 2019/12/10 18:42, Eric Hassold 写道: > Hi all, > > Tracking issue with one small program using Media Foundation was > failing at runtime only if compiled with Mingw, I found out that > definitions for some GUID in mfidl.h are incorrect (or mixed, with one > ID getting the value of another). > > Namely, at mfidl.h:3407, GUID: > MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_GUID > is defined as: > 0xc60ac5fe, 0x252a, 0x478f, 0xa0, 0xef, 0xbc, 0x8f, 0xa5, 0xf7, 0xca, 0xd3 > but this is actually the UUID for MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE > (while definition for MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE itself is > missing). > > Correct values should be: > EXTERN_GUID( MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE, 0xc60ac5fe, 0x252a, > 0x478f, 0xa0, 0xef, 0xbc, 0x8f, 0xa5, 0xf7, 0xca, 0xd3); > EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_GUID, > 0x8ac3587a, 0x4ae7, 0x42d8, 0x99, 0xe0, 0x0a, 0x60, 0x13, 0xee, 0xf9, > 0x0f); > > Attached is patch for mfidl.idl (need to regenerate mfidl.h, not > included in patch). > > Thanks. Pushed this one. Side note: WIDL 4.19 doesn't seem to like `WINBOOL` and reports syntax errors likes this: ``` WIDL mediaobj.idl:20: error: syntax error, unexpected aIDENTIFIER ``` I replaced all `BOOL` with `WINBOOL` to generate the header. I also had to be careful not to commit such changes by accident. I hope someone is going to fix this issue. -- Best regards, LH_Mouse signature.asc Description: OpenPGP digital signature ___ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
[Mingw-w64-public] Incorrect GUID definitions in mfidl.h
Hi all, Tracking issue with one small program using Media Foundation was failing at runtime only if compiled with Mingw, I found out that definitions for some GUID in mfidl.h are incorrect (or mixed, with one ID getting the value of another). Namely, at mfidl.h:3407, GUID: MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_GUID is defined as: 0xc60ac5fe, 0x252a, 0x478f, 0xa0, 0xef, 0xbc, 0x8f, 0xa5, 0xf7, 0xca, 0xd3 but this is actually the UUID for MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE (while definition for MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE itself is missing). Correct values should be: EXTERN_GUID( MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE, 0xc60ac5fe, 0x252a, 0x478f, 0xa0, 0xef, 0xbc, 0x8f, 0xa5, 0xf7, 0xca, 0xd3); EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_GUID, 0x8ac3587a, 0x4ae7, 0x42d8, 0x99, 0xe0, 0x0a, 0x60, 0x13, 0xee, 0xf9, 0x0f); Attached is patch for mfidl.idl (need to regenerate mfidl.h, not included in patch). Regards, Eric diff --git a/mingw-w64-headers/include/mfidl.idl b/mingw-w64-headers/include/mfidl.idl index c440152a..97de9a4f 100644 --- a/mingw-w64-headers/include/mfidl.idl +++ b/mingw-w64-headers/include/mfidl.idl @@ -671,4 +671,5 @@ cpp_quote("EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_CATEGORY, 0x77f cpp_quote("EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_HW_SOURCE, 0xde7046ba,0x54d6,0x4487,0xa2,0xa4,0xec,0x7c,0xd,0x1b,0xd1,0x63);") cpp_quote("EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_MAX_BUFFERS, 0x7dd9b730,0x4f2d,0x41d5,0x8f,0x95,0xc,0xc9,0xa9,0x12,0xba,0x26);") cpp_quote("EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_SYMBOLIC_LINK, 0x58f0aad8,0x22bf,0x4f8a,0xbb,0x3d,0xd2,0xc4,0x97,0x8c,0x6e,0x2f);") -cpp_quote("EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_GUID, 0xc60ac5fe,0x252a,0x478f,0xa0,0xef,0xbc,0x8f,0xa5,0xf7,0xca,0xd3);") +cpp_quote("EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE, 0xc60ac5fe,0x252a,0x478f,0xa0,0xef,0xbc,0x8f,0xa5,0xf7,0xca,0xd3);") +cpp_quote("EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_GUID, 0x8ac3587a,0x4ae7,0x42d8,0x99,0xe0,0x0a,0x60,0x13,0xee,0xf9,0x0f);") ___ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public