Re: [Mingw-w64-public] [PATCH 05/13] headers: remove proxys generated by widl

2020-12-14 Thread Steve Lhomme

On 2020-12-14 22:10, Jacek Caban wrote:

On 14.12.2020 09:30, Steve Lhomme wrote:

widl 6.0-rc1 doesn't generate them.

The IUnknown_QueryInterface_Proxy() is already hardcoded in 
unknwnbase.idl.


Some methods still generate a proxy entry using "call_as" in the IDL 
file.

---
  mingw-w64-headers/include/bdaiface.h  | 1865 ---
  mingw-w64-headers/include/objidl.h    | 2567 +--
  mingw-w64-headers/include/tuner.h | 2749 -
  mingw-w64-headers/include/unknwn.h    |   67 -
  .../include/windows.foundation.h  |   97 -
  .../include/windows.security.cryptography.h   |  104 -
  mingw-w64-headers/include/windows.storage.h   |  434 ---
  .../include/windows.storage.streams.h |   35 -
  .../include/windows.system.threading.h    |  125 -
  9 files changed, 8 insertions(+), 8035 deletions(-)



Please avoid manual edits like this. This will be done by regenerating 
relevant headers when they are ready.


What manual edits ? As the commit log suggests, all this is generated.


___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


[Mingw-w64-public] [PATCH] headers: Add IAudioClient3 and IAudioAmbisonicsControl in AudioClient.idl.

2020-12-14 Thread Biswapriyo Nath

From da4793738bc086a4162f36d1839b5b9ea70b3592 Mon Sep 17 00:00:00 2001
From: Biswapriyo Nath 
Date: Tue, 15 Dec 2020 12:01:11 +0530
Subject: [PATCH] headers: Add IAudioClient3 and IAudioAmbisonicsControl in 
AudioClient.idl.

Signed-off-by: Biswapriyo Nath 
---
 mingw-w64-headers/include/audioclient.idl | 51 ++-
 1 file changed, 50 insertions(+), 1 deletion(-)

diff --git a/mingw-w64-headers/include/audioclient.idl 
b/mingw-w64-headers/include/audioclient.idl
index f7a0a66..73c2f9d 100644
--- a/mingw-w64-headers/include/audioclient.idl
+++ b/mingw-w64-headers/include/audioclient.idl
@@ -60,12 +60,26 @@ enum _AUDCLNT_BUFFERFLAGS {
  AUDCLNT_BUFFERFLAGS_TIMESTAMP_ERROR = 0x4
 };
 
-typedef enum AUDCLNT_STREAMOPTIONS {
+typedef [v1_enum] enum AUDCLNT_STREAMOPTIONS {
   AUDCLNT_STREAMOPTIONS_NONE = 0x0,
   AUDCLNT_STREAMOPTIONS_RAW = 0x1,
   AUDCLNT_STREAMOPTIONS_MATCH_FORMAT = 0x2,
   AUDCLNT_STREAMOPTIONS_AMBISONICS = 0x4
 } AUDCLNT_STREAMOPTIONS;
+cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(AUDCLNT_STREAMOPTIONS);")
+
+typedef enum AMBISONICS_TYPE {
+  AMBISONICS_TYPE_FULL3D = 0x0
+} AMBISONICS_TYPE;
+
+typedef enum AMBISONICS_CHANNEL_ORDERING {
+  AMBISONICS_CHANNEL_ORDERING_ACN = 0x0
+} AMBISONICS_CHANNEL_ORDERING;
+
+typedef enum AMBISONICS_NORMALIZATION {
+  AMBISONICS_NORMALIZATION_SN3D = 0x0,
+  AMBISONICS_NORMALIZATION_N3D = 0x1
+} AMBISONICS_NORMALIZATION;
 
 cpp_quote("")
 typedef struct AudioClientProperties {
@@ -75,6 +89,21 @@ typedef struct AudioClientProperties {
   AUDCLNT_STREAMOPTIONS Options;
 } AudioClientProperties;
 
+typedef struct AudioClient3ActivationParams {
+  GUID tracingContextId;
+} AudioClient3ActivationParams;
+
+typedef struct AMBISONICS_PARAMS {
+  UINT32 u32Size;
+  UINT32 u32Version;
+  AMBISONICS_TYPE u32Type;
+  AMBISONICS_CHANNEL_ORDERING u32ChannelOrdering;
+  AMBISONICS_NORMALIZATION u32Normalization;
+  UINT32 u32Order;
+  UINT32 u32NumChannels;
+  UINT32 *pu32ChannelMap;
+} AMBISONICS_PARAMS;
+
 cpp_quote("")
 [object, local, uuid (1cb9ad4c-DBFA-4c32-B178-C2F568A703B2), pointer_default 
(unique)]
 interface IAudioClient : IUnknown {
@@ -100,6 +129,13 @@ interface IAudioClient2 : IAudioClient {
   HRESULT GetBufferSizeLimits ([in] const WAVEFORMATEX *pFormat,[in] WINBOOL 
bEventDriven,[in] REFERENCE_TIME *phnsMinBufferDuration,[in] REFERENCE_TIME 
*phnsMaxBufferDuration);
 }
 
+[object, local, uuid (7ed4ee07-8e67-4cd4-8c1a-2b7a5987ad42), pointer_default 
(unique)]
+interface IAudioClient3 : IAudioClient2 {
+  HRESULT GetSharedModeEnginePeriod ([in] const WAVEFORMATEX *pFormat, [out] 
UINT32 *pDefaultPeriodInFrames, [out] UINT32 *pFundamentalPeriodInFrames, [out] 
UINT32 *pMinPeriodInFrames, [out] UINT32 *pMaxPeriodInFrames);
+  HRESULT GetCurrentSharedModeEnginePeriod ([out, unique] WAVEFORMATEX 
**ppFormat, [out] UINT32 *pCurrentPeriodInFrames);
+  HRESULT InitializeSharedAudioStream ([in] DWORD StreamFlags, [in] UINT32 
PeriodInFrames, [in] const WAVEFORMATEX *pFormat, [in] LPCGUID 
AudioSessionGuid);
+}
+
 cpp_quote("")
 [object, local, uuid (F294ACFC-3146-4483-A7BF-ADDCA7C260E2), helpstring 
("IAudioRenderClient Interface"), pointer_default (unique)]
 interface IAudioRenderClient : IUnknown {
@@ -162,6 +198,14 @@ interface IAudioStreamVolume : IUnknown {
   HRESULT GetAllVolumes ([in] UINT32 dwCount,[out, size_is (dwCount),] float 
*pfVolumes);
 }
 
+[object, local, uuid (28724c91-df35-4856-9f76-d6a26413f3df), pointer_default 
(unique)]
+interface IAudioAmbisonicsControl : IUnknown {
+HRESULT SetData([in] const AMBISONICS_PARAMS *pAmbisonicsParams, [in] 
UINT32 cbAmbisonicsParams);
+HRESULT SetHeadTracking([in] WINBOOL bEnableHeadTracking);
+HRESULT GetHeadTracking([out] WINBOOL *pbEnableHeadTracking);
+HRESULT SetRotation([in] float X, [in] float Y, [in] float Z, [in] float 
W);
+}
+
 cpp_quote("")
 [object, local, uuid (1c158861-B533-4b30-B1CF-E853E51C59B8), pointer_default 
(unique)]
 interface IChannelAudioVolume : IUnknown {
@@ -208,6 +252,11 @@ cpp_quote("#define AUDCLNT_E_OUT_OF_OFFLOAD_RESOURCES 
AUDCLNT_ERR(0x23)")
 cpp_quote("#define AUDCLNT_E_OFFLOAD_MODE_ONLY AUDCLNT_ERR(0x24)")
 cpp_quote("#define AUDCLNT_E_NONOFFLOAD_MODE_ONLY AUDCLNT_ERR(0x25)")
 cpp_quote("#define AUDCLNT_E_RESOURCES_INVALIDATED AUDCLNT_ERR(0x26)")
+cpp_quote("#define AUDCLNT_E_RAW_MODE_UNSUPPORTED AUDCLNT_ERR(0x027)")
+cpp_quote("#define AUDCLNT_E_ENGINE_PERIODICITY_LOCKED AUDCLNT_ERR(0x028)")
+cpp_quote("#define AUDCLNT_E_ENGINE_FORMAT_LOCKED AUDCLNT_ERR(0x029)")
+cpp_quote("#define AUDCLNT_E_HEADTRACKING_ENABLED AUDCLNT_ERR(0x030)")
+cpp_quote("#define AUDCLNT_E_HEADTRACKING_UNSUPPORTED AUDCLNT_ERR(0x040)")
 cpp_quote("#define AUDCLNT_S_BUFFER_EMPTY AUDCLNT_SUCCESS(0x1)")
 cpp_quote("#define AUDCLNT_S_THREAD_ALREADY_REGISTERED AUDCLNT_SUCCESS(0x2)")
 cpp_quote("#define AUDCLNT_S_POSITION_STALLED AUDCLNT_SUCCESS(0x3)")
-- 
2.29.2

___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net

Re: [Mingw-w64-public] IAudioClient3 for gstreamer wasapi2

2020-12-14 Thread Biswapriyo Nath
For wasapi2 plugin in gstreamer-plugins-bad project, we need more
WinRT headers e.g. windows.applicationmodel.core.h and its includes.
There is a recent work about updating WinRT headers, so stay tuned. I
shall build the gstreamer-plugins-bad project[1] and add the necessary
changes required.

[1]: 
https://github.com/msys2/MINGW-packages/tree/master/mingw-w64-gst-plugins-bad


___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


[Mingw-w64-public] IAudioClient3 for gstreamer wasapi2

2020-12-14 Thread Jonas Kvinge
Hi

I need to compile gstreamer-plugins-bad with wasapi2. But this requires
IAudioClient3.

Is this possible to add, are there any plans to add it?

Header  has symbol "IAudioClient3" with dependencies
-lole32, -lksuser, -lruntimeobject, -lmmdevapi: NO

sys/wasapi2/meson.build:44:4: ERROR: Problem encountered: wasapi2 plugin
was enabled explicitly, but IAudioClient3 is unavailable

A full log can be found at
/home/jonas/Projects/strawberry/strawberry-mxe/tmp-gst-plugins-bad-x86_64-w64-mingw32.shared/gst-plugins-bad-1.18.2.build_/meson-logs/meson-log.txt
make[1]: *** [Makefile:872:
build-only-gst-plugins-bad_x86_64-w64-mingw32.shared] Error 1
make[1]: Leaving directory '/home/jonas/Projects/strawberry/strawberry-mxe'

Jonas




___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] [PATCH 13/13] headers: fix IAsyncAction definition in windows.foundation

2020-12-14 Thread Jacek Caban

Hi Steve,


I extracted winrt part from the series and pushed it. Thanks!


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] [PATCH 05/13] headers: remove proxys generated by widl

2020-12-14 Thread Jacek Caban

On 14.12.2020 09:30, Steve Lhomme wrote:

widl 6.0-rc1 doesn't generate them.

The IUnknown_QueryInterface_Proxy() is already hardcoded in unknwnbase.idl.

Some methods still generate a proxy entry using "call_as" in the IDL file.
---
  mingw-w64-headers/include/bdaiface.h  | 1865 ---
  mingw-w64-headers/include/objidl.h| 2567 +--
  mingw-w64-headers/include/tuner.h | 2749 -
  mingw-w64-headers/include/unknwn.h|   67 -
  .../include/windows.foundation.h  |   97 -
  .../include/windows.security.cryptography.h   |  104 -
  mingw-w64-headers/include/windows.storage.h   |  434 ---
  .../include/windows.storage.streams.h |   35 -
  .../include/windows.system.threading.h|  125 -
  9 files changed, 8 insertions(+), 8035 deletions(-)



Please avoid manual edits like this. This will be done by regenerating 
relevant headers when they are ready.



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] [PATCH 04/13] headers: remove widl [v1_enum] in bdatypes.h

2020-12-14 Thread Jacek Caban

On 14.12.2020 09:30, Steve Lhomme wrote:

It results in a compilation error with widl 6.0-rc1:
   include/bdatypes.h:43: error: 'PBDA_EVENT_ID': [v1_enum] attribute applied 
to non-enum type



It looks like a widl bug, [v1_enum] should be there, as far as I can see.


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] [PATCH 02/13] headers: add some guards for library defined in IDL files

2020-12-14 Thread Jacek Caban

Hi Steve,


Please rebase the series. Patch 2 and 3 should be fixed in git since 
yesterday.



Jacek



___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


[Mingw-w64-public] [PATCH 03/13] headers: regenerate some .h files from their .idl files with widl 6.0-rc1

2020-12-14 Thread Steve Lhomme
This is the widl version currently in mingw64-w64-tools.

unions/enums now generate an internal name. The value may differ from previous 
runs.

Header files where only the version in the header has changed are not included.
---
 mingw-w64-headers/include/activprof.h | 12 ++---
 mingw-w64-headers/include/bdaiface.h  |  2 +-
 mingw-w64-headers/include/dimm.h  | 26 +-
 mingw-w64-headers/include/docobj.h|  6 +--
 mingw-w64-headers/include/documenttarget.h|  2 +-
 mingw-w64-headers/include/msopc.h | 20 
 mingw-w64-headers/include/oaidl.h |  4 +-
 mingw-w64-headers/include/sensorsapi.h|  4 +-
 mingw-w64-headers/include/textstor.h  |  8 +--
 mingw-w64-headers/include/uianimation.h   | 26 +-
 mingw-w64-headers/include/urlmon.h| 36 ++---
 mingw-w64-headers/include/wdstptmgmt.h| 24 -
 mingw-w64-headers/include/wsdbase.h   |  4 +-
 mingw-w64-headers/include/wtypes.h| 24 -
 .../include/xpsdigitalsignature.h |  6 +--
 mingw-w64-headers/include/xpsobjectmodel.h| 50 +--
 mingw-w64-headers/include/xpsobjectmodel_1.h  |  4 +-
 mingw-w64-headers/include/xpsprint.h  |  6 +--
 mingw-w64-headers/include/xpsrassvc.h |  6 +--
 19 files changed, 135 insertions(+), 135 deletions(-)

diff --git a/mingw-w64-headers/include/activprof.h 
b/mingw-w64-headers/include/activprof.h
index 75ebbb0c..8942ac69 100644
--- a/mingw-w64-headers/include/activprof.h
+++ b/mingw-w64-headers/include/activprof.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/activprof.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.0-rc1 from include/activprof.idl - Do not edit 
***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -105,14 +105,14 @@ DEFINE_GUID(IID_IActiveScriptProfilerHeapEnum, 
0x32e4694e, 0xd37, 0x419b, 0xb9,
 DEFINE_GUID(IID_IActiveScriptProfilerControl3, 0xb403015, 0xf381, 0x4023, 
0xa5, 0xd0, 0x6f, 0xed, 0x7, 0x6d, 0xe7, 0x16);
 #endif
 
-typedef enum __WIDL_activprof_generated_name_0002 {
+typedef enum __WIDL_activprof_generated_name_000C {
 PROFILER_SCRIPT_TYPE_USER = 0,
 PROFILER_SCRIPT_TYPE_DYNAMIC = 1,
 PROFILER_SCRIPT_TYPE_NATIVE = 2,
 PROFILER_SCRIPT_TYPE_DOM = 3
 } PROFILER_SCRIPT_TYPE;
 
-typedef enum __WIDL_activprof_generated_name_0003 {
+typedef enum __WIDL_activprof_generated_name_000D {
 PROFILER_EVENT_MASK_TRACE_SCRIPT_FUNCTION_CALL = 0x1,
 PROFILER_EVENT_MASK_TRACE_NATIVE_FUNCTION_CALL = 0x2,
 PROFILER_EVENT_MASK_TRACE_DOM_FUNCTION_CALL = 0x4,
@@ -346,7 +346,7 @@ typedef DWORD_PTR PROFILER_HEAP_OBJECT_ID;
 typedef UINT PROFILER_HEAP_OBJECT_NAME_ID;
 typedef void *PROFILER_EXTERNAL_OBJECT_ADDRESS;
 
-typedef enum __WIDL_activprof_generated_name_0004 {
+typedef enum __WIDL_activprof_generated_name_000E {
 PROFILER_HEAP_OBJECT_FLAGS_NEW_OBJECT = 0x1,
 PROFILER_HEAP_OBJECT_FLAGS_IS_ROOT = 0x2,
 PROFILER_HEAP_OBJECT_FLAGS_SITE_CLOSED = 0x4,
@@ -362,7 +362,7 @@ typedef enum __WIDL_activprof_generated_name_0004 {
 PROFILER_HEAP_OBJECT_FLAGS_WINRT_NAMESPACE = 0x1000
 } PROFILER_HEAP_OBJECT_FLAGS;
 
-typedef enum __WIDL_activprof_generated_name_0005 {
+typedef enum __WIDL_activprof_generated_name_000F {
 PROFILER_HEAP_OBJECT_OPTIONAL_INFO_PROTOTYPE = 0x1,
 PROFILER_HEAP_OBJECT_OPTIONAL_INFO_FUNCTION_NAME = 0x2,
 PROFILER_HEAP_OBJECT_OPTIONAL_INFO_SCOPE_LIST = 0x3,
@@ -381,7 +381,7 @@ typedef struct _PROFILER_HEAP_OBJECT_SCOPE_LIST {
 PROFILER_HEAP_OBJECT_ID scopes[1];
 } PROFILER_HEAP_OBJECT_SCOPE_LIST;
 
-typedef enum __WIDL_activprof_generated_name_0006 {
+typedef enum __WIDL_activprof_generated_name_0010 {
 PROFILER_PROPERTY_TYPE_NUMBER = 0x1,
 PROFILER_PROPERTY_TYPE_STRING = 0x2,
 PROFILER_PROPERTY_TYPE_HEAP_OBJECT = 0x3,
diff --git a/mingw-w64-headers/include/bdaiface.h 
b/mingw-w64-headers/include/bdaiface.h
index 06ab7037..6051f474 100644
--- a/mingw-w64-headers/include/bdaiface.h
+++ b/mingw-w64-headers/include/bdaiface.h
@@ -324,7 +324,7 @@ typedef struct SmartCardApplication {
 #define PBDA_Encoder_BitrateMode_Constant 1
 #define PBDA_Encoder_BitrateMode_Variable 2
 #define PBDA_Encoder_BitrateMode_Average 3
-typedef enum __WIDL_bdaiface_generated_name_000F {
+typedef enum __WIDL_bdaiface_generated_name_0017 {
 KSPROPERTY_IPSINK_MULTICASTLIST = 0,
 KSPROPERTY_IPSINK_ADAPTER_DESCRIPTION = 1,
 KSPROPERTY_IPSINK_ADAPTER_ADDRESS = 2
diff --git a/mingw-w64-headers/include/dimm.h b/mingw-w64-headers/include/dimm.h
index eedf555f..d6aac386 100644
--- a/mingw-w64-headers/include/dimm.h
+++ b/mingw-w64-headers/include/dimm.h
@@ -139,15 +139,15 @@ DEFINE_GUID(LIBID_ActiveIMM, 0x4955dd30, 0xb159, 0x11d0, 
0x8f,0xcf, 0x00,0xaa,0x
 #include 
 #if 0
 typedef WORD LANGID;
-typedef struct __WIDL_dimm_generated_name_0002 {
+typedef struct 

[Mingw-w64-public] [PATCH 02/13] headers: add some guards for library defined in IDL files

2020-12-14 Thread Steve Lhomme
---
 mingw-w64-headers/include/activdbg.h| 5 -
 mingw-w64-headers/include/adhoc.h   | 5 -
 mingw-w64-headers/include/alg.h | 5 -
 mingw-w64-headers/include/comadmin.h| 5 -
 mingw-w64-headers/include/commoncontrols.h  | 5 -
 mingw-w64-headers/include/control.h | 5 -
 mingw-w64-headers/include/dimm.h| 5 -
 mingw-w64-headers/include/documenttarget.h  | 5 -
 mingw-w64-headers/include/mshtml.h  | 5 -
 mingw-w64-headers/include/msopc.h   | 5 -
 mingw-w64-headers/include/portabledevicetypes.h | 5 -
 mingw-w64-headers/include/propsys.h | 5 -
 mingw-w64-headers/include/sapi51.h  | 5 -
 mingw-w64-headers/include/sapi53.h  | 5 -
 mingw-w64-headers/include/sapi54.h  | 5 -
 mingw-w64-headers/include/sensorsapi.h  | 5 -
 mingw-w64-headers/include/shldisp.h | 5 -
 mingw-w64-headers/include/shobjidl.h| 5 -
 mingw-w64-headers/include/tuner.h   | 5 -
 mingw-w64-headers/include/uianimation.h | 5 -
 mingw-w64-headers/include/wbemads.h | 5 -
 mingw-w64-headers/include/wbemcli.h | 5 -
 mingw-w64-headers/include/wbemdisp.h| 5 -
 mingw-w64-headers/include/wbemprov.h| 5 -
 mingw-w64-headers/include/wbemtran.h| 5 -
 mingw-w64-headers/include/wdstptmgmt.h  | 5 -
 mingw-w64-headers/include/wsmandisp.h   | 5 -
 mingw-w64-headers/include/xpsdigitalsignature.h | 5 -
 mingw-w64-headers/include/xpsobjectmodel.h  | 5 -
 29 files changed, 116 insertions(+), 29 deletions(-)

diff --git a/mingw-w64-headers/include/activdbg.h 
b/mingw-w64-headers/include/activdbg.h
index 24fdda1b..fe1371a9 100644
--- a/mingw-w64-headers/include/activdbg.h
+++ b/mingw-w64-headers/include/activdbg.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/activdbg.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.0-rc1 from include/activdbg.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -9223,6 +9223,8 @@ static FORCEINLINE HRESULT 
IProvideExpressionContexts_EnumExpressionContexts(IPr
 
 #endif  /* __IProvideExpressionContexts_INTERFACE_DEFINED__ */
 
+#ifndef __ProcessDebugManagerLib_LIBRARY_DEFINED__
+#define __ProcessDebugManagerLib_LIBRARY_DEFINED__
 
 DEFINE_GUID(LIBID_ProcessDebugManagerLib, 0x78a51821, 0x51f4, 0x11d0, 
0x8f,0x20, 0x00,0x80,0x5f,0x2c,0xd0,0x64);
 
@@ -9776,6 +9778,7 @@ __CRT_UUID_DECL(DefaultDebugSessionProvider, 0x834128a2, 
0x51f4, 0x11d0, 0x8f,0x
 #endif
 #endif
 
+#endif /* __ProcessDebugManagerLib_LIBRARY_DEFINED__ */
 #endif
 #endif
 /* Begin additional prototypes for all interfaces */
diff --git a/mingw-w64-headers/include/adhoc.h 
b/mingw-w64-headers/include/adhoc.h
index d4cd448b..4a588d33 100644
--- a/mingw-w64-headers/include/adhoc.h
+++ b/mingw-w64-headers/include/adhoc.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/adhoc.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.0-rc1 from include/adhoc.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -1438,6 +1438,8 @@ static FORCEINLINE HRESULT 
IDot11AdHocInterfaceNotificationSink_OnConnectionStat
 
 #endif  /* __IDot11AdHocInterfaceNotificationSink_INTERFACE_DEFINED__ */
 
+#ifndef __ADHOCLib_LIBRARY_DEFINED__
+#define __ADHOCLib_LIBRARY_DEFINED__
 
 DEFINE_GUID(LIBID_ADHOCLib, 0x45357166, 0xff38, 0x4302, 0x8f,0x5c, 
0xdf,0x5b,0x70,0x3a,0x6e,0x3d);
 
@@ -1454,6 +1456,7 @@ __CRT_UUID_DECL(Dot11AdHocManager, 0xdd06a84f, 0x83bd, 
0x4d01, 0x8a,0xb9, 0x23,0
 #endif
 #endif
 
+#endif /* __ADHOCLib_LIBRARY_DEFINED__ */
 #endif
 /* Begin additional prototypes for all interfaces */
 
diff --git a/mingw-w64-headers/include/alg.h b/mingw-w64-headers/include/alg.h
index fb96c4d2..4095d28b 100644
--- a/mingw-w64-headers/include/alg.h
+++ b/mingw-w64-headers/include/alg.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/alg.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.0-rc1 from include/alg.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -1477,6 +1477,8 @@ static FORCEINLINE HRESULT 
IApplicationGateway_Stop(IApplicationGateway* This) {
 
 #endif  /* __IApplicationGateway_INTERFACE_DEFINED__ */
 
+#ifndef __ALGLib_LIBRARY_DEFINED__
+#define __ALGLib_LIBRARY_DEFINED__
 
 DEFINE_GUID(LIBID_ALGLib, 0xb6d1d098, 0xe235, 0x4b99, 0xba,0x98, 
0x7c,0x62,0x4f,0xd8,0x75,0xdb);
 
@@ -1584,6 +1586,7 @@ __CRT_UUID_DECL(PersistentDataChannel, 0xbc9b54ab, 
0x7883, 0x4c13, 0x90,0x9f, 0x
 #endif
 #endif
 
+#endif /* __ALGLib_LIBRARY_DEFINED__ */
 #endif
 /* Begin additional prototypes for all interfaces */
 
diff --git a/mingw-w64-headers/include/comadmin.h 
b/mingw-w64-headers/include/comadmin.h
index 4f5be2e0..3d1d574a 100644
--- 

[Mingw-w64-public] [PATCH 06/13] headers: declare IDL interfaces in C++ in addition to the typedef

2020-12-14 Thread Steve Lhomme
This is what widl 6.0-rc1 does.
---
 mingw-w64-headers/include/bdaiface.h | 140 -
 mingw-w64-headers/include/objidl.h   | 298 +-
 mingw-w64-headers/include/tuner.h| 303 +++
 mingw-w64-headers/include/unknwn.h   |   9 +
 4 files changed, 743 insertions(+), 7 deletions(-)

diff --git a/mingw-w64-headers/include/bdaiface.h 
b/mingw-w64-headers/include/bdaiface.h
index 3d628b74..4581ceaf 100644
--- a/mingw-w64-headers/include/bdaiface.h
+++ b/mingw-w64-headers/include/bdaiface.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 1.6 from include/bdaiface.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.0-rc1 from include/bdaiface.idl - Do not edit ***/
 
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
 #define __REQUIRED_RPCNDR_H_VERSION__ 475
@@ -20,231 +20,369 @@
 #ifndef __IBDA_NetworkProvider_FWD_DEFINED__
 #define __IBDA_NetworkProvider_FWD_DEFINED__
 typedef interface IBDA_NetworkProvider IBDA_NetworkProvider;
+#ifdef __cplusplus
+interface IBDA_NetworkProvider;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBDA_EthernetFilter_FWD_DEFINED__
 #define __IBDA_EthernetFilter_FWD_DEFINED__
 typedef interface IBDA_EthernetFilter IBDA_EthernetFilter;
+#ifdef __cplusplus
+interface IBDA_EthernetFilter;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBDA_IPV4Filter_FWD_DEFINED__
 #define __IBDA_IPV4Filter_FWD_DEFINED__
 typedef interface IBDA_IPV4Filter IBDA_IPV4Filter;
+#ifdef __cplusplus
+interface IBDA_IPV4Filter;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBDA_IPV6Filter_FWD_DEFINED__
 #define __IBDA_IPV6Filter_FWD_DEFINED__
 typedef interface IBDA_IPV6Filter IBDA_IPV6Filter;
+#ifdef __cplusplus
+interface IBDA_IPV6Filter;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBDA_DeviceControl_FWD_DEFINED__
 #define __IBDA_DeviceControl_FWD_DEFINED__
 typedef interface IBDA_DeviceControl IBDA_DeviceControl;
+#ifdef __cplusplus
+interface IBDA_DeviceControl;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBDA_PinControl_FWD_DEFINED__
 #define __IBDA_PinControl_FWD_DEFINED__
 typedef interface IBDA_PinControl IBDA_PinControl;
+#ifdef __cplusplus
+interface IBDA_PinControl;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBDA_SignalProperties_FWD_DEFINED__
 #define __IBDA_SignalProperties_FWD_DEFINED__
 typedef interface IBDA_SignalProperties IBDA_SignalProperties;
+#ifdef __cplusplus
+interface IBDA_SignalProperties;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBDA_SignalStatistics_FWD_DEFINED__
 #define __IBDA_SignalStatistics_FWD_DEFINED__
 typedef interface IBDA_SignalStatistics IBDA_SignalStatistics;
+#ifdef __cplusplus
+interface IBDA_SignalStatistics;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBDA_Topology_FWD_DEFINED__
 #define __IBDA_Topology_FWD_DEFINED__
 typedef interface IBDA_Topology IBDA_Topology;
+#ifdef __cplusplus
+interface IBDA_Topology;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBDA_VoidTransform_FWD_DEFINED__
 #define __IBDA_VoidTransform_FWD_DEFINED__
 typedef interface IBDA_VoidTransform IBDA_VoidTransform;
+#ifdef __cplusplus
+interface IBDA_VoidTransform;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBDA_NullTransform_FWD_DEFINED__
 #define __IBDA_NullTransform_FWD_DEFINED__
 typedef interface IBDA_NullTransform IBDA_NullTransform;
+#ifdef __cplusplus
+interface IBDA_NullTransform;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBDA_FrequencyFilter_FWD_DEFINED__
 #define __IBDA_FrequencyFilter_FWD_DEFINED__
 typedef interface IBDA_FrequencyFilter IBDA_FrequencyFilter;
+#ifdef __cplusplus
+interface IBDA_FrequencyFilter;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBDA_LNBInfo_FWD_DEFINED__
 #define __IBDA_LNBInfo_FWD_DEFINED__
 typedef interface IBDA_LNBInfo IBDA_LNBInfo;
+#ifdef __cplusplus
+interface IBDA_LNBInfo;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBDA_DiseqCommand_FWD_DEFINED__
 #define __IBDA_DiseqCommand_FWD_DEFINED__
 typedef interface IBDA_DiseqCommand IBDA_DiseqCommand;
+#ifdef __cplusplus
+interface IBDA_DiseqCommand;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBDA_AutoDemodulate_FWD_DEFINED__
 #define __IBDA_AutoDemodulate_FWD_DEFINED__
 typedef interface IBDA_AutoDemodulate IBDA_AutoDemodulate;
+#ifdef __cplusplus
+interface IBDA_AutoDemodulate;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBDA_AutoDemodulateEx_FWD_DEFINED__
 #define __IBDA_AutoDemodulateEx_FWD_DEFINED__
 typedef interface IBDA_AutoDemodulateEx IBDA_AutoDemodulateEx;
+#ifdef __cplusplus
+interface IBDA_AutoDemodulateEx;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBDA_DigitalDemodulator_FWD_DEFINED__
 #define __IBDA_DigitalDemodulator_FWD_DEFINED__
 typedef interface IBDA_DigitalDemodulator IBDA_DigitalDemodulator;
+#ifdef __cplusplus
+interface IBDA_DigitalDemodulator;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBDA_DigitalDemodulator2_FWD_DEFINED__
 #define __IBDA_DigitalDemodulator2_FWD_DEFINED__
 typedef interface IBDA_DigitalDemodulator2 IBDA_DigitalDemodulator2;
+#ifdef __cplusplus
+interface 

[Mingw-w64-public] [PATCH 13/13] headers: fix IAsyncAction definition in windows.foundation

2020-12-14 Thread Steve Lhomme
IAsyncAction inherits from IAsyncInfo as described at [1].

[1] https://docs.microsoft.com/en-us/uwp/api/windows.foundation.iasyncaction
---
 .../include/windows.foundation.h  | 49 +--
 .../include/windows.foundation.idl|  4 +-
 2 files changed, 47 insertions(+), 6 deletions(-)

diff --git a/mingw-w64-headers/include/windows.foundation.h 
b/mingw-w64-headers/include/windows.foundation.h
index d5eb5904..0cc7bd28 100644
--- a/mingw-w64-headers/include/windows.foundation.h
+++ b/mingw-w64-headers/include/windows.foundation.h
@@ -381,7 +381,7 @@ namespace ABI {
 namespace Windows {
 namespace Foundation {
 MIDL_INTERFACE("5a648006-843a-4da9-865b-9d26e5dfad7b")
-IASyncAction : public IInspectable
+IASyncAction : public IAsyncInfo
 {
 virtual HRESULT STDMETHODCALLTYPE put_Completed(
 AsyncActionCompletedHandler *handler) = 0;
@@ -430,6 +430,25 @@ typedef struct 
__x_ABI_CWindows_CFoundation_CIASyncActionVtbl {
 __x_ABI_CWindows_CFoundation_CIASyncAction *This,
 TrustLevel *trustLevel);
 
+/*** IAsyncInfo methods ***/
+HRESULT (STDMETHODCALLTYPE *get_Id)(
+__x_ABI_CWindows_CFoundation_CIASyncAction *This,
+unsigned int *id);
+
+HRESULT (STDMETHODCALLTYPE *get_Status)(
+__x_ABI_CWindows_CFoundation_CIASyncAction *This,
+enum __x_ABI_CWindows_CFoundation_CAsyncStatus *status);
+
+HRESULT (STDMETHODCALLTYPE *get_ErrorCode)(
+__x_ABI_CWindows_CFoundation_CIASyncAction *This,
+HRESULT *errorCode);
+
+HRESULT (STDMETHODCALLTYPE *Cancel)(
+__x_ABI_CWindows_CFoundation_CIASyncAction *This);
+
+HRESULT (STDMETHODCALLTYPE *Close)(
+__x_ABI_CWindows_CFoundation_CIASyncAction *This);
+
 /*** IASyncAction methods ***/
 HRESULT (STDMETHODCALLTYPE *put_Completed)(
 __x_ABI_CWindows_CFoundation_CIASyncAction *This,
@@ -459,6 +478,12 @@ interface __x_ABI_CWindows_CFoundation_CIASyncAction {
 #define __x_ABI_CWindows_CFoundation_CIASyncAction_GetIids(This,iidCount,iids) 
(This)->lpVtbl->GetIids(This,iidCount,iids)
 #define 
__x_ABI_CWindows_CFoundation_CIASyncAction_GetRuntimeClassName(This,className) 
(This)->lpVtbl->GetRuntimeClassName(This,className)
 #define 
__x_ABI_CWindows_CFoundation_CIASyncAction_GetTrustLevel(This,trustLevel) 
(This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IAsyncInfo methods ***/
+#define __x_ABI_CWindows_CFoundation_CIASyncAction_get_Id(This,id) 
(This)->lpVtbl->get_Id(This,id)
+#define __x_ABI_CWindows_CFoundation_CIASyncAction_get_Status(This,status) 
(This)->lpVtbl->get_Status(This,status)
+#define 
__x_ABI_CWindows_CFoundation_CIASyncAction_get_ErrorCode(This,errorCode) 
(This)->lpVtbl->get_ErrorCode(This,errorCode)
+#define __x_ABI_CWindows_CFoundation_CIASyncAction_Cancel(This) 
(This)->lpVtbl->Cancel(This)
+#define __x_ABI_CWindows_CFoundation_CIASyncAction_Close(This) 
(This)->lpVtbl->Close(This)
 /*** IASyncAction methods ***/
 #define __x_ABI_CWindows_CFoundation_CIASyncAction_put_Completed(This,handler) 
(This)->lpVtbl->put_Completed(This,handler)
 #define __x_ABI_CWindows_CFoundation_CIASyncAction_get_Completed(This,handler) 
(This)->lpVtbl->get_Completed(This,handler)
@@ -484,6 +509,22 @@ static FORCEINLINE HRESULT 
__x_ABI_CWindows_CFoundation_CIASyncAction_GetRuntime
 static FORCEINLINE HRESULT 
__x_ABI_CWindows_CFoundation_CIASyncAction_GetTrustLevel(__x_ABI_CWindows_CFoundation_CIASyncAction*
 This,TrustLevel *trustLevel) {
 return This->lpVtbl->GetTrustLevel(This,trustLevel);
 }
+/*** IAsyncInfo methods ***/
+static FORCEINLINE HRESULT 
__x_ABI_CWindows_CFoundation_CIASyncAction_get_Id(__x_ABI_CWindows_CFoundation_CIASyncAction*
 This,unsigned int *id) {
+return This->lpVtbl->get_Id(This,id);
+}
+static FORCEINLINE HRESULT 
__x_ABI_CWindows_CFoundation_CIASyncAction_get_Status(__x_ABI_CWindows_CFoundation_CIASyncAction*
 This,enum __x_ABI_CWindows_CFoundation_CAsyncStatus *status) {
+return This->lpVtbl->get_Status(This,status);
+}
+static FORCEINLINE HRESULT 
__x_ABI_CWindows_CFoundation_CIASyncAction_get_ErrorCode(__x_ABI_CWindows_CFoundation_CIASyncAction*
 This,HRESULT *errorCode) {
+return This->lpVtbl->get_ErrorCode(This,errorCode);
+}
+static FORCEINLINE HRESULT 
__x_ABI_CWindows_CFoundation_CIASyncAction_Cancel(__x_ABI_CWindows_CFoundation_CIASyncAction*
 This) {
+return This->lpVtbl->Cancel(This);
+}
+static FORCEINLINE HRESULT 
__x_ABI_CWindows_CFoundation_CIASyncAction_Close(__x_ABI_CWindows_CFoundation_CIASyncAction*
 This) {
+return This->lpVtbl->Close(This);
+}
 /*** IASyncAction methods ***/
 static FORCEINLINE HRESULT 
__x_ABI_CWindows_CFoundation_CIASyncAction_put_Completed(__x_ABI_CWindows_CFoundation_CIASyncAction*
 This,__x_ABI_CWindows_CFoundation_CAsyncActionCompletedHandler *handler) {
 return This->lpVtbl->put_Completed(This,handler);
@@ -518,7 +559,7 @@ namespace ABI {
   

[Mingw-w64-public] [PATCH 10/13] headers: fix enum values after widl update

2020-12-14 Thread Steve Lhomme
widl prefixes the names properly, otherwise we get the prefix twice.

The typedef and definition of the enums needs to be separated for widl to
generate and use the enums properly.

NameCollisionOption had the wrong casing (NameCollisionoption).
---
 mingw-w64-headers/include/windows.storage.h   | 92 +
 mingw-w64-headers/include/windows.storage.idl | 98 +--
 2 files changed, 124 insertions(+), 66 deletions(-)

diff --git a/mingw-w64-headers/include/windows.storage.h 
b/mingw-w64-headers/include/windows.storage.h
index b0b5f95f..1107fdde 100644
--- a/mingw-w64-headers/include/windows.storage.h
+++ b/mingw-w64-headers/include/windows.storage.h
@@ -359,13 +359,21 @@ namespace ABI {
 namespace ABI {
 namespace Windows {
 namespace Storage {
-enum StorageDeleteOption;
+enum NameCollisionOption {
+NameCollisionOption_GenerateUniqueName = 0,
+NameCollisionOption_ReplaceExisting = 1,
+NameCollisionOption_FailIfExists = 2
+};
 }
 }
 }
 extern "C" {
 #else
-enum __x_ABI_CWindows_CStorage_CStorageDeleteOption;
+enum __x_ABI_CWindows_CStorage_CNameCollisionOption {
+NameCollisionOption_GenerateUniqueName = 0,
+NameCollisionOption_ReplaceExisting = 1,
+NameCollisionOption_FailIfExists = 2
+};
 #endif
 
 #ifdef __cplusplus
@@ -373,13 +381,19 @@ enum __x_ABI_CWindows_CStorage_CStorageDeleteOption;
 namespace ABI {
 namespace Windows {
 namespace Storage {
-enum NameCollisionOption;
+enum StorageDeleteOption {
+StorageDeleteOption_Default = 0,
+StorageDeleteOption_PermanentDelete = 1
+};
 }
 }
 }
 extern "C" {
 #else
-enum __x_ABI_CWindows_CStorage_CNameCollisionOption;
+enum __x_ABI_CWindows_CStorage_CStorageDeleteOption {
+StorageDeleteOption_Default = 0,
+StorageDeleteOption_PermanentDelete = 1
+};
 #endif
 
 #ifdef __cplusplus
@@ -387,13 +401,21 @@ enum __x_ABI_CWindows_CStorage_CNameCollisionOption;
 namespace ABI {
 namespace Windows {
 namespace Storage {
-enum StorageItemTypes;
+enum StorageItemTypes {
+StorageItemTypes_None = 0,
+StorageItemTypes_File = 1,
+StorageItemTypes_Folder = 2
+};
 }
 }
 }
 extern "C" {
 #else
-enum __x_ABI_CWindows_CStorage_CStorageItemTypes;
+enum __x_ABI_CWindows_CStorage_CStorageItemTypes {
+StorageItemTypes_None = 0,
+StorageItemTypes_File = 1,
+StorageItemTypes_Folder = 2
+};
 #endif
 
 #ifdef __cplusplus
@@ -401,13 +423,19 @@ enum __x_ABI_CWindows_CStorage_CStorageItemTypes;
 namespace ABI {
 namespace Windows {
 namespace Storage {
-enum ApplicationDataLocality;
+enum ApplicationDataCreateDisposition {
+ApplicationDataCreateDisposition_Always = 0,
+ApplicationDataCreateDisposition_Existing = 1
+};
 }
 }
 }
 extern "C" {
 #else
-enum __x_ABI_CWindows_CStorage_CApplicationDataLocality;
+enum __x_ABI_CWindows_CStorage_CApplicationDataCreateDisposition {
+ApplicationDataCreateDisposition_Always = 0,
+ApplicationDataCreateDisposition_Existing = 1
+};
 #endif
 
 #ifdef __cplusplus
@@ -415,13 +443,21 @@ enum __x_ABI_CWindows_CStorage_CApplicationDataLocality;
 namespace ABI {
 namespace Windows {
 namespace Storage {
-enum ApplicationDataCreateDisposition;
+enum ApplicationDataLocality {
+ApplicationDataLocality_Local = 0,
+ApplicationDataLocality_Roaming = 1,
+ApplicationDataLocality_Temporary = 2
+};
 }
 }
 }
 extern "C" {
 #else
-enum __x_ABI_CWindows_CStorage_CApplicationDataCreateDisposition;
+enum __x_ABI_CWindows_CStorage_CApplicationDataLocality {
+ApplicationDataLocality_Local = 0,
+ApplicationDataLocality_Roaming = 1,
+ApplicationDataLocality_Temporary = 2
+};
 #endif
 
 #ifdef __cplusplus
@@ -429,13 +465,25 @@ enum 
__x_ABI_CWindows_CStorage_CApplicationDataCreateDisposition;
 namespace ABI {
 namespace Windows {
 namespace Storage {
-enum FileAttributes;
+enum FileAttributes {
+FileAttributes_Normal = 0,
+FileAttributes_ReadOnly = 1,
+FileAttributes_Directory = 2,
+FileAttributes_Archive = 3,
+FileAttributes_Temporary = 4
+};
 }
 }
 }
 extern "C" {
 #else
-enum __x_ABI_CWindows_CStorage_CFileAttributes;
+enum __x_ABI_CWindows_CStorage_CFileAttributes {
+FileAttributes_Normal = 0,
+FileAttributes_ReadOnly = 1,
+FileAttributes_Directory = 2,
+FileAttributes_Archive = 3,
+FileAttributes_Temporary = 4
+};
 #endif
 
 #ifdef __cplusplus
@@ -443,13 +491,23 @@ enum __x_ABI_CWindows_CStorage_CFileAttributes;
 namespace ABI {
 namespace 

[Mingw-w64-public] [PATCH 08/13] headers: update windows.security.cryptography.h

2020-12-14 Thread Steve Lhomme
widl needs to be helped to find the IBuffer class.
The enum values need to be defined without the typedef.

It's now matching the type names of MSVC. So winstorecompat needs to be
updated to match the new names.

Generated with:
x86_64-w64-mingw32-widl -DBOOL=WINBOOL -I. -I../build/crt -I../crt -h -o 
windows.security.cryptography.h windows.security.cryptography.idl
---
 .../include/windows.security.cryptography.h   | 347 +++---
 .../include/windows.security.cryptography.idl |   8 +-
 .../winstorecompat/src/Crypto.c   |  12 +-
 3 files changed, 215 insertions(+), 152 deletions(-)

diff --git a/mingw-w64-headers/include/windows.security.cryptography.h 
b/mingw-w64-headers/include/windows.security.cryptography.h
index 5a4c7c72..78c71c87 100644
--- a/mingw-w64-headers/include/windows.security.cryptography.h
+++ b/mingw-w64-headers/include/windows.security.cryptography.h
@@ -1,11 +1,12 @@
-/*** Autogenerated by WIDL 1.5.31 from 
include/windows.security.cryptography.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.0-rc1 from 
include/windows.security.cryptography.idl - Do not edit ***/
 
+#ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
 #define __REQUIRED_RPCNDR_H_VERSION__ 475
 #endif
-
 #include 
 #include 
+#endif
 
 #ifndef COM_NO_WINDOWS_H
 #include 
@@ -17,9 +18,20 @@
 
 /* Forward declarations */
 
-#ifndef __ICryptographicBufferStatics_FWD_DEFINED__
-#define __ICryptographicBufferStatics_FWD_DEFINED__
-typedef interface ICryptographicBufferStatics ICryptographicBufferStatics;
+#ifndef 
x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_FWD_DEFINED__
+#define 
x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_FWD_DEFINED__
+typedef interface 
__x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics 
__x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics;
+#ifdef __cplusplus
+namespace ABI {
+namespace Windows {
+namespace Security {
+namespace Cryptography {
+interface ICryptographicBufferStatics;
+}
+}
+}
+}
+#endif /* __cplusplus */
 #endif
 
 /* Headers for imported files */
@@ -31,257 +43,308 @@ typedef interface ICryptographicBufferStatics 
ICryptographicBufferStatics;
 extern "C" {
 #endif
 
-#ifndef __IBuffer_FWD_DEFINED__
-#define __IBuffer_FWD_DEFINED__
-typedef interface IBuffer IBuffer;
+#ifndef x_ABI_CWindows_CStorage_CStreams_CIBuffer_FWD_DEFINED__
+#define x_ABI_CWindows_CStorage_CStreams_CIBuffer_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CStorage_CStreams_CIBuffer 
__x_ABI_CWindows_CStorage_CStreams_CIBuffer;
+#ifdef __cplusplus
+namespace ABI {
+namespace Windows {
+namespace Storage {
+namespace Streams {
+interface IBuffer;
+}
+}
+}
+}
+#endif /* __cplusplus */
 #endif
 
-#ifndef __ICryptographicBufferStatics_FWD_DEFINED__
-#define __ICryptographicBufferStatics_FWD_DEFINED__
-typedef interface ICryptographicBufferStatics ICryptographicBufferStatics;
+#ifndef 
x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_FWD_DEFINED__
+#define 
x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_FWD_DEFINED__
+typedef interface 
__x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics 
__x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics;
+#ifdef __cplusplus
+namespace ABI {
+namespace Windows {
+namespace Security {
+namespace Cryptography {
+interface ICryptographicBufferStatics;
+}
+}
+}
+}
+#endif /* __cplusplus */
 #endif
 
-enum BinaryStringEncoding;
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI {
+namespace Windows {
+namespace Security {
+namespace Cryptography {
+enum BinaryStringEncoding {
+BinaryStringEncoding_Utf8 = 0,
+BinaryStringEncoding_Utf16LE = 1,
+BinaryStringEncoding_Utf16BE = 2
+};
+}
+}
+}
+}
+extern "C" {
+#else
+enum __x_ABI_CWindows_CSecurity_CCryptography_CBinaryStringEncoding {
+BinaryStringEncoding_Utf8 = 0,
+BinaryStringEncoding_Utf16LE = 1,
+BinaryStringEncoding_Utf16BE = 2
+};
+#endif
 
-typedef enum BinaryStringEncoding {
-Utf8 = 0,
-Utf16LE = 1,
-Utf16BE = 2
-} BinaryStringEncoding;
 /*
  * ICryptographicBufferStatics interface
+ *
  */
-#ifndef __ICryptographicBufferStatics_INTERFACE_DEFINED__
-#define __ICryptographicBufferStatics_INTERFACE_DEFINED__
+#ifndef 
x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_INTERFACE_DEFINED__
+#define 
x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_INTERFACE_DEFINED__
 
-DEFINE_GUID(IID_ICryptographicBufferStatics, 0x320b7e22, 0x3cb0, 0x4cdf, 
0x86,0x63, 

[Mingw-w64-public] [PATCH 12/13] headers: fix ApplicationDataSetVersionHandler definition

2020-12-14 Thread Steve Lhomme
The current generated code results in the following error:
  error: constructor cannot have a return type

The proper interface to use is IApplicationDataSetVersionHandler and contains
a single method: Invoke(ISetVersionRequest) which corresponds to the
constructor described at [1] passing a SetVersionRequest object.

widl doesn't understand the "delegate" keyword so we create the equivalent
interface manually.

[1] 
https://docs.microsoft.com/en-us/uwp/api/windows.storage.applicationdatasetversionhandler
---
 mingw-w64-headers/include/windows.storage.h   | 86 ---
 mingw-w64-headers/include/windows.storage.idl |  8 +-
 2 files changed, 40 insertions(+), 54 deletions(-)

diff --git a/mingw-w64-headers/include/windows.storage.h 
b/mingw-w64-headers/include/windows.storage.h
index 1107fdde..ef88d30c 100644
--- a/mingw-w64-headers/include/windows.storage.h
+++ b/mingw-w64-headers/include/windows.storage.h
@@ -116,14 +116,14 @@ namespace ABI {
 #endif /* __cplusplus */
 #endif
 
-#ifndef 
x_ABI_CWindows_CStorage_CApplicationDataSetVersionHandler_FWD_DEFINED__
-#define 
x_ABI_CWindows_CStorage_CApplicationDataSetVersionHandler_FWD_DEFINED__
-typedef interface __x_ABI_CWindows_CStorage_CApplicationDataSetVersionHandler 
__x_ABI_CWindows_CStorage_CApplicationDataSetVersionHandler;
+#ifndef 
x_ABI_CWindows_CStorage_CIApplicationDataSetVersionHandler_FWD_DEFINED__
+#define 
x_ABI_CWindows_CStorage_CIApplicationDataSetVersionHandler_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CStorage_CIApplicationDataSetVersionHandler 
__x_ABI_CWindows_CStorage_CIApplicationDataSetVersionHandler;
 #ifdef __cplusplus
 namespace ABI {
 namespace Windows {
 namespace Storage {
-interface ApplicationDataSetVersionHandler;
+interface IApplicationDataSetVersionHandler;
 }
 }
 }
@@ -312,20 +312,6 @@ namespace ABI {
 #endif /* __cplusplus */
 #endif
 
-#ifndef 
x_ABI_CWindows_CStorage_CApplicationDataSetVersionHandler_FWD_DEFINED__
-#define 
x_ABI_CWindows_CStorage_CApplicationDataSetVersionHandler_FWD_DEFINED__
-typedef interface __x_ABI_CWindows_CStorage_CApplicationDataSetVersionHandler 
__x_ABI_CWindows_CStorage_CApplicationDataSetVersionHandler;
-#ifdef __cplusplus
-namespace ABI {
-namespace Windows {
-namespace Storage {
-interface ApplicationDataSetVersionHandler;
-}
-}
-}
-#endif /* __cplusplus */
-#endif
-
 #ifndef x_ABI_CWindows_CStorage_CISetVersionRequest_FWD_DEFINED__
 #define x_ABI_CWindows_CStorage_CISetVersionRequest_FWD_DEFINED__
 typedef interface __x_ABI_CWindows_CStorage_CISetVersionRequest 
__x_ABI_CWindows_CStorage_CISetVersionRequest;
@@ -1334,7 +1320,7 @@ namespace ABI {
 
 virtual HRESULT STDMETHODCALLTYPE SetVersionAsync(
 int desiredVersion,
-ApplicationDataSetVersionHandler *handler,
+IApplicationDataSetVersionHandler *handler,
 IInspectable **setVersionOperation) = 0;
 
 virtual HRESULT STDMETHODCALLTYPE ClearAllAsync(
@@ -1414,7 +1400,7 @@ typedef struct 
__x_ABI_CWindows_CStorage_CIApplicationDataVtbl {
 HRESULT (STDMETHODCALLTYPE *SetVersionAsync)(
 __x_ABI_CWindows_CStorage_CIApplicationData *This,
 int desiredVersion,
-__x_ABI_CWindows_CStorage_CApplicationDataSetVersionHandler *handler,
+__x_ABI_CWindows_CStorage_CIApplicationDataSetVersionHandler *handler,
 IInspectable **setVersionOperation);
 
 HRESULT (STDMETHODCALLTYPE *ClearAllAsync)(
@@ -1512,7 +1498,7 @@ static FORCEINLINE HRESULT 
__x_ABI_CWindows_CStorage_CIApplicationData_GetTrustL
 static FORCEINLINE HRESULT 
__x_ABI_CWindows_CStorage_CIApplicationData_get_Version(__x_ABI_CWindows_CStorage_CIApplicationData*
 This,int *value) {
 return This->lpVtbl->get_Version(This,value);
 }
-static FORCEINLINE HRESULT 
__x_ABI_CWindows_CStorage_CIApplicationData_SetVersionAsync(__x_ABI_CWindows_CStorage_CIApplicationData*
 This,int 
desiredVersion,__x_ABI_CWindows_CStorage_CApplicationDataSetVersionHandler 
*handler,IInspectable **setVersionOperation) {
+static FORCEINLINE HRESULT 
__x_ABI_CWindows_CStorage_CIApplicationData_SetVersionAsync(__x_ABI_CWindows_CStorage_CIApplicationData*
 This,int 
desiredVersion,__x_ABI_CWindows_CStorage_CIApplicationDataSetVersionHandler 
*handler,IInspectable **setVersionOperation) {
 return 
This->lpVtbl->SetVersionAsync(This,desiredVersion,handler,setVersionOperation);
 }
 static FORCEINLINE HRESULT 
__x_ABI_CWindows_CStorage_CIApplicationData_ClearAllAsync(__x_ABI_CWindows_CStorage_CIApplicationData*
 This,IInspectable **clearOperation) {
@@ -1779,22 +1765,22 @@ static FORCEINLINE HRESULT 
__x_ABI_CWindows_CStorage_CIApplicationDataStatics_ge
 #endif  /* 
x_ABI_CWindows_CStorage_CIApplicationDataStatics_INTERFACE_DEFINED__ */
 
 /*
- * 

[Mingw-w64-public] [PATCH 11/13] headers: fix enum declaration

2020-12-14 Thread Steve Lhomme
The enum definition needs to be separated from the typedef for widl to produce
the correct code.
---
 .../include/windows.system.threading.h| 78 +++
 .../include/windows.system.threading.idl  | 12 +--
 2 files changed, 52 insertions(+), 38 deletions(-)

diff --git a/mingw-w64-headers/include/windows.system.threading.h 
b/mingw-w64-headers/include/windows.system.threading.h
index 69e6d7a5..c0a4d0ad 100644
--- a/mingw-w64-headers/include/windows.system.threading.h
+++ b/mingw-w64-headers/include/windows.system.threading.h
@@ -151,38 +151,6 @@ extern "C" {
 struct __x_ABI_CWindows_CFoundation_CTimeSpan;
 #endif
 
-#ifdef __cplusplus
-} /* extern "C" */
-namespace ABI {
-namespace Windows {
-namespace System {
-namespace Threading {
-enum WorkItemPriority;
-}
-}
-}
-}
-extern "C" {
-#else
-enum __x_ABI_CWindows_CSystem_CThreading_CWorkItemPriority;
-#endif
-
-#ifdef __cplusplus
-} /* extern "C" */
-namespace ABI {
-namespace Windows {
-namespace System {
-namespace Threading {
-enum WorkItemOptions;
-}
-}
-}
-}
-extern "C" {
-#else
-enum __x_ABI_CWindows_CSystem_CThreading_CWorkItemOptions;
-#endif
-
 #ifndef 
x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler_FWD_DEFINED__
 #define 
x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler_FWD_DEFINED__
 typedef interface __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler 
__x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler;
@@ -279,6 +247,52 @@ namespace ABI {
 #endif /* __cplusplus */
 #endif
 
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI {
+namespace Windows {
+namespace System {
+namespace Threading {
+enum WorkItemPriority {
+WorkItemPriority_Low = -1,
+WorkItemPriority_Normal = 0,
+WorkItemPriority_High = 1
+};
+}
+}
+}
+}
+extern "C" {
+#else
+enum __x_ABI_CWindows_CSystem_CThreading_CWorkItemPriority {
+WorkItemPriority_Low = -1,
+WorkItemPriority_Normal = 0,
+WorkItemPriority_High = 1
+};
+#endif
+
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI {
+namespace Windows {
+namespace System {
+namespace Threading {
+enum WorkItemOptions {
+WorkItemOptions_None = 0,
+WorkItemOptions_TimeSliced = 1
+};
+}
+}
+}
+}
+extern "C" {
+#else
+enum __x_ABI_CWindows_CSystem_CThreading_CWorkItemOptions {
+WorkItemOptions_None = 0,
+WorkItemOptions_TimeSliced = 1
+};
+#endif
+
 /*
  * TimerElapsedHandler interface
  *
diff --git a/mingw-w64-headers/include/windows.system.threading.idl 
b/mingw-w64-headers/include/windows.system.threading.idl
index e4e9f8c4..a2dc585f 100644
--- a/mingw-w64-headers/include/windows.system.threading.idl
+++ b/mingw-w64-headers/include/windows.system.threading.idl
@@ -19,8 +19,8 @@ namespace Windows {
 
 namespace System {
 namespace Threading {
-enum WorkItemPriority;
-enum WorkItemOptions;
+typedef enum WorkItemPriority WorkItemPriority;
+typedef enum WorkItemOptions WorkItemOptions;
 interface TimerElapsedHandler;   //delegate
 interface TimerDestroyedHandler; //delegate
 interface WorkItemHandler;   //delegate
@@ -35,16 +35,16 @@ namespace Windows {
 namespace System {
 namespace Threading
 {
-typedef enum WorkItemPriority {
+enum WorkItemPriority {
 Low= -1,
 Normal = 0,
 High   = 1
-} WorkItemPriority;
+};
 
-typedef enum WorkItemOptions {
+enum WorkItemOptions {
 None   = 0,
 TimeSliced = 1
-} WorkItemOptions;
+};
 
 typedef struct TimeSpan {
 INT64 Duration;
-- 
2.29.2



___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


[Mingw-w64-public] [PATCH 04/13] headers: remove widl [v1_enum] in bdatypes.h

2020-12-14 Thread Steve Lhomme
It results in a compilation error with widl 6.0-rc1:
  include/bdatypes.h:43: error: 'PBDA_EVENT_ID': [v1_enum] attribute applied to 
non-enum type

The code generated without this ifdef is equivalent.
(see MEDIA_SAMPLE_CONTENT for example)
---
 mingw-w64-headers/include/bdatypes.h | 107 +--
 1 file changed, 2 insertions(+), 105 deletions(-)

diff --git a/mingw-w64-headers/include/bdatypes.h 
b/mingw-w64-headers/include/bdatypes.h
index 8ddc3be0..d743c4c0 100644
--- a/mingw-w64-headers/include/bdatypes.h
+++ b/mingw-w64-headers/include/bdatypes.h
@@ -16,9 +16,6 @@
 typedef LONG PBDARESULT;
 
 typedef
-#ifdef __WIDL__
-  [v1_enum]
-#endif
   enum BDA_EVENT_ID {
   BDA_EVENT_SIGNAL_LOSS = 0,
   BDA_EVENT_SIGNAL_LOCK,
@@ -43,9 +40,6 @@ typedef
 } BDA_EVENT_ID, *PBDA_EVENT_ID;
 
 typedef
-#ifdef __WIDL__
-  [v1_enum]
-#endif
   enum BDA_MULTICAST_MODE {
   BDA_PROMISCUOUS_MULTICAST = 0,
   BDA_FILTERED_MULTICAST,
@@ -53,9 +47,6 @@ typedef
 } BDA_MULTICAST_MODE, *PBDA_MULTICAST_MODE;
 
 typedef
-#ifdef __WIDL__
-  [v1_enum]
-#endif
   enum BDA_SIGNAL_STATE {
   BDA_SIGNAL_UNAVAILABLE = 0,
   BDA_SIGNAL_INACTIVE,
@@ -63,18 +54,12 @@ typedef
 } BDA_SIGNAL_STATE, *PBDA_SIGNAL_STATE;
 
 typedef
-#ifdef __WIDL__
-  [v1_enum]
-#endif
   enum BDA_CHANGE_STATE {
   BDA_CHANGES_COMPLETE = 0,
   BDA_CHANGES_PENDING
 } BDA_CHANGE_STATE, *PBDA_CHANGE_STATE;
 
 typedef
-#ifdef __WIDL__
-  [v1_enum]
-#endif
   enum MEDIA_SAMPLE_CONTENT {
   MEDIA_TRANSPORT_PACKET,
   MEDIA_ELEMENTARY_STREAM,
@@ -83,18 +68,12 @@ typedef
 } MEDIA_SAMPLE_CONTENT;
 
 typedef
-#ifdef __WIDL__
-  [v1_enum]
-#endif
   enum ISDBCAS_REQUEST_ID {
   ISDBCAS_REQUEST_ID_EMG = 0x38,
   ISDBCAS_REQUEST_ID_EMD = 0x3a,
 } ISDBCAS_REQUEST_ID;
 
 typedef
-#ifdef __WIDL__
-  [v1_enum]
-#endif
   enum MUX_PID_TYPE {
   PID_OTHER = -1,
   PID_ELEMENTARY_STREAM,
@@ -102,9 +81,6 @@ typedef
 } MUX_PID_TYPE;
 
 typedef
-#ifdef __WIDL__
-  [v1_enum]
-#endif
   enum DVBSystemType {
   DVB_Cable,
   DVB_Terrestrial,
@@ -114,17 +90,11 @@ typedef
 } DVBSystemType;
 
 typedef
-#ifdef __WIDL__
-  [v1_enum]
-#endif
   enum BDA_Channel {
   BDA_UNDEFINED_CHANNEL = -1
 } BDA_Channel;
 
 typedef
-#ifdef __WIDL__
-  [v1_enum]
-#endif
   enum ComponentCategory {
   CategoryNotSet = -1,
   CategoryOther = 0,
@@ -139,9 +109,6 @@ typedef
 } ComponentCategory;
 
 typedef
-#ifdef __WIDL__
-  [v1_enum]
-#endif
   enum ComponentStatus {
   StatusActive,
   StatusInactive,
@@ -149,9 +116,6 @@ typedef
 } ComponentStatus;
 
 typedef
-#ifdef __WIDL__
-  [v1_enum]
-#endif
   enum MPEG2StreamType {
   BDA_UNITIALIZED_MPEG2STREAMTYPE = -1,
   Reserved1 = 0x00,
@@ -190,17 +154,11 @@ typedef
 } MPEG2StreamType;
 
 typedef
-#ifdef __WIDL__
-  [v1_enum]
-#endif
   enum ATSCComponentTypeFlags {
   ATSCCT_AC3 = 0x1
 } ATSCComponentTypeFlags;
 
 typedef
-#ifdef __WIDL__
-  [v1_enum]
-#endif
   enum BinaryConvolutionCodeRate {
   BDA_BCC_RATE_NOT_SET = -1,
   BDA_BCC_RATE_NOT_DEFINED = 0,
@@ -222,9 +180,7 @@ typedef
 } BinaryConvolutionCodeRate;
 
 typedef
-#ifdef __WIDL__
-  [v1_enum]
-#endif
+
   enum FECMethod {
   BDA_FEC_METHOD_NOT_SET = -1,
   BDA_FEC_METHOD_NOT_DEFINED = 0,
@@ -237,9 +193,7 @@ typedef
 } FECMethod;
 
 typedef
-#ifdef __WIDL__
-  [v1_enum]
-#endif
+
   enum ModulationType {
   BDA_MOD_NOT_SET = -1,
   BDA_MOD_NOT_DEFINED = 0,
@@ -282,9 +236,6 @@ typedef
 } ModulationType;
 
 typedef
-#ifdef __WIDL__
-  [v1_enum]
-#endif
   enum tagScanModulationTypes {
   BDA_SCAN_MOD_16QAM = 0x0001,
   BDA_SCAN_MOD_32QAM = 0x0002,
@@ -326,9 +277,6 @@ typedef
 } ScanModulationTypes;
 
 typedef
-#ifdef __WIDL__
-  [v1_enum]
-#endif
   enum SpectralInversion {
   BDA_SPECTRAL_INVERSION_NOT_SET = -1,
   BDA_SPECTRAL_INVERSION_NOT_DEFINED = 0,
@@ -339,9 +287,6 @@ typedef
 } SpectralInversion;
 
 typedef
-#ifdef __WIDL__
-  [v1_enum]
-#endif
   enum Polarisation {
   BDA_POLARISATION_NOT_SET = -1,
   BDA_POLARISATION_NOT_DEFINED = 0,
@@ -353,9 +298,6 @@ typedef
 } Polarisation;
 
 typedef
-#ifdef __WIDL__
-  [v1_enum]
-#endif
   enum LNB_Source {
   BDA_LNB_SOURCE_NOT_SET = -1,
   BDA_LNB_SOURCE_NOT_DEFINED = 0,
@@ -367,9 +309,6 @@ typedef
 } LNB_Source;
 
 typedef
-#ifdef __WIDL__
-  [v1_enum]
-#endif
   enum GuardInterval {
   BDA_GUARD_NOT_SET = -1,
   BDA_GUARD_NOT_DEFINED = 0,
@@ -384,9 +323,6 @@ typedef
 } GuardInterval;
 
 typedef
-#ifdef __WIDL__
-  [v1_enum]
-#endif
   enum HierarchyAlpha {
   BDA_HALPHA_NOT_SET = -1,
   BDA_HALPHA_NOT_DEFINED = 0,
@@ -397,9 +333,6 @@ typedef
 } HierarchyAlpha;
 
 typedef
-#ifdef __WIDL__
-  [v1_enum]
-#endif
   enum TransmissionMode {
   BDA_XMIT_MODE_NOT_SET = -1,
   BDA_XMIT_MODE_NOT_DEFINED = 0,
@@ -415,9 +348,6 @@ typedef
 } TransmissionMode;
 
 typedef
-#ifdef __WIDL__
-  [v1_enum]
-#endif
   enum RollOff {
   BDA_ROLL_OFF_NOT_SET = -1,
   BDA_ROLL_OFF_NOT_DEFINED = 0,
@@ -428,9 +358,6 @@ typedef
 } RollOff;
 
 typedef
-#ifdef __WIDL__
-  [v1_enum]
-#endif
   enum Pilot {
   BDA_PILOT_NOT_SET = -1,
   

[Mingw-w64-public] [PATCH 07/13] headers: minor changes when processing.idl files with widl 6.0-rc1

2020-12-14 Thread Steve Lhomme
---
 mingw-w64-headers/include/mshtmhst.h   | 4 ++--
 mingw-w64-headers/include/windows.system.h | 3 ++-
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/mingw-w64-headers/include/mshtmhst.h 
b/mingw-w64-headers/include/mshtmhst.h
index 85569e50..be9157d1 100644
--- a/mingw-w64-headers/include/mshtmhst.h
+++ b/mingw-w64-headers/include/mshtmhst.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/mshtmhst.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.0-rc1 from include/mshtmhst.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -164,7 +164,7 @@ STDAPI ShowModelessHTMLDialog (HWND hwndParent, IMoniker 
*pMk, VARIANT *pvarArgI
 STDAPI RunHTMLApplication (HINSTANCE hinst, HINSTANCE hPrevInst, LPSTR 
szCmdLine, int nCmdShow);
 #endif
 STDAPI CreateHTMLPropertyPage (IMoniker *pmk, IPropertyPage **ppPP);
-STDAPI EarlyStartDisplaySystem (void);
+STDAPI EarlyStartDisplaySystem ();
 STDAPI IERegisterXMLNS (LPCWSTR lpszURI, GUID clsid, BOOL fMachine);
 STDAPI IEIsXMLNSRegistered (LPCWSTR lpszURI, GUID *pCLSID);
 STDAPI GetColorValueFromString (LPCWSTR lpszColor, BOOL fStrictCSS1, BOOL 
fIsStandardsCSS, COLORREF *pColor);
diff --git a/mingw-w64-headers/include/windows.system.h 
b/mingw-w64-headers/include/windows.system.h
index 314321de..e20c34a1 100644
--- a/mingw-w64-headers/include/windows.system.h
+++ b/mingw-w64-headers/include/windows.system.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.4 from include/windows.system.idl - Do not edit 
***/
+/*** Autogenerated by WIDL 6.0-rc1 from include/windows.system.idl - Do not 
edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -42,6 +42,7 @@ extern "C" {
 
 /*
  * IDispatcherQueueController interface
+ *
  */
 #ifndef 
x_ABI_CWindows_CSystem_CIDispatcherQueueController_INTERFACE_DEFINED__
 #define 
x_ABI_CWindows_CSystem_CIDispatcherQueueController_INTERFACE_DEFINED__
-- 
2.29.2



___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


[Mingw-w64-public] [PATCH 01/13] headers: do not typedef FARPROC function when running widl

2020-12-14 Thread Steve Lhomme
widl 6.0-rc1 reports the following error:
  include/wincrypt.idl:17: error: calling convention applied to non-function 
type

FARPROC is not used in any IDL file anyway.
---
 mingw-w64-headers/include/wincrypt.idl | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/mingw-w64-headers/include/wincrypt.idl 
b/mingw-w64-headers/include/wincrypt.idl
index 8dcf920e..5b372268 100644
--- a/mingw-w64-headers/include/wincrypt.idl
+++ b/mingw-w64-headers/include/wincrypt.idl
@@ -13,9 +13,11 @@ cpp_quote("#include ")
 
 cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
 
+#ifndef __WIDL__
 #ifndef FARPROC
 typedef int (__stdcall FARPROC) ();
 #endif
+#endif
 
 #ifndef PBYTE
 typedef BYTE *PBYTE;
-- 
2.29.2



___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] [PATCH 01/14] update windows.security.cryptography.h

2020-12-14 Thread Steve Lhomme

On 2020-12-13 11:43, Jacek Caban wrote:

On 11.12.2020 12:42, Steve Lhomme wrote:

On 2020-12-11 1:02, Jacek Caban wrote:
Hopefully widl will be able to properly support all those new 
constructs. I recently updated widl in mingw-w64 repo to a more 
recent upstream version and it already generates those headers 
differently. I think this patch will not work with enum handling 
changes.


I'll have a look. I also noticed the wine code has even more changes. 
But IMO the IDLs and the headers in the mingw64 tree should match the 
widl in the same tree, IMO.


That's why updating widl should also be paired with running the IDLs 
through it again. And why it's important the current tree already 
builds properly.



I agree and that's how it was meant to be. The history did not go the 
way I liked and a number of commits conflicting with upstream was 
committed to mingw-w64, making the whole automation unreliable and 
preventing widl syncs for quite a while. Resynchronizing those things 
would be great. I'm currently doing that to IDLs imported from Wine when 
I update them. For non-imported IDLs, I occasionally go through them (I 
just pushed such an update), but it needs a lot of manual skipping for 
things that don't re-generate correctly. I would be happy to do that to 
all IDLs on each widl update once we solve those problems.


I think I got almost everything building.

There's wincrypt.idl which is odd because it depends on wincrypt.h, 
which is generates...


One thing that should be easy to support is eventadd/eventremove 
support. It's just adding a prefix like propget/propput.


Templates are trickier because each variant has its own UUID which is 
not defined in the MS doc nor in their IDL files. Luckily just by 
implementing them it's possible to get the proper UUID when the code 
requests it in QueryInterface(). That means each variant needs to be 
explictely declared and given its UUID.


The generated names in MS headers are quite different as well as they 
include the number of elements in the template and the full namespace 
for each element in the template. Proper templating in widl should 
produce similar code so code compiling with MSVC can also compile with 
mingw64.


I will have a look at that but make no promise.



See Rémi's patches, they implement all mentioned features:

https://github.com/wine-staging/wine-staging/tree/master/patches/widl-winrt-support 


Ah this is great. It seems to have everything needed. I'll give it a try.

What about this particular patch that changes the generated code, 
making previous code that compiled with mingw64 unusable. It's my 
understanding that this file (and pretty much all the winrt) was added 
for VLC so maybe noone else is using it ? The code was not compatible 
with MSVC headers but after this patch it should be. 



I think that we want to get them right at the cost of compatibility with 
current headers.


OK. There is a patch that adds generation of defines to use the old 
names if the user defines "WIDL_USING_WINDOWS_FOO_IFOO". That may be 
enough to keep compatibility with older code (or those who want to use C 
without the extra long names).



___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public