Test merge of Vista/7 experimental
git-svn-id: svn+ssh://svn.code.sf.net/p/mingw-w64/code/trunk@3198 4407c894-4637-0410-b4f5-ada5f102cad1
diff --git a/mingw-w64-headers/include/adhoc.h b/mingw-w64-headers/include/adhoc.h
new file mode 100644
index 0000000..fee81fa
--- /dev/null
+++ b/mingw-w64-headers/include/adhoc.h
@@ -0,0 +1,354 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_ADHOC
+#define _INC_ADHOC
+
+#if (_WIN32_WINNT >= 0x0600)
+
+typedef enum tagDOT11_ADHOC_AUTH_ALGORITHM {
+ DOT11_ADHOC_AUTH_ALGO_INVALID = -1,
+ DOT11_ADHOC_AUTH_ALGO_80211_OPEN = 1,
+ DOT11_ADHOC_AUTH_ALGO_RSNA_PSK = 7
+} DOT11_ADHOC_AUTH_ALGORITHM;
+
+typedef enum tagDOT11_ADHOC_CIPHER_ALGORITHM {
+ DOT11_ADHOC_CIPHER_ALGO_INVALID = -1,
+ DOT11_ADHOC_CIPHER_ALGO_NONE = 0x00,
+ DOT11_ADHOC_CIPHER_ALGO_CCMP = 0x04,
+ DOT11_ADHOC_CIPHER_ALGO_WEP = 0x101
+} DOT11_ADHOC_CIPHER_ALGORITHM;
+
+typedef enum tagDOT11_ADHOC_CONNECT_FAIL_REASON {
+ DOT11_ADHOC_CONNECT_FAIL_DOMAIN_MISMATCH = 0,
+ DOT11_ADHOC_CONNECT_FAIL_PASSPHRASE_MISMATCH = 1,
+ DOT11_ADHOC_CONNECT_FAIL_OTHER = 2
+} DOT11_ADHOC_CONNECT_FAIL_REASON;
+
+typedef enum tagDOT11_ADHOC_NETWORK_CONNECTION_STATUS {
+ DOT11_ADHOC_NETWORK_CONNECTION_STATUS_INVALID = 0,
+ DOT11_ADHOC_NETWORK_CONNECTION_STATUS_DISCONNECTED = 11,
+ DOT11_ADHOC_NETWORK_CONNECTION_STATUS_CONNECTING = 12,
+ DOT11_ADHOC_NETWORK_CONNECTION_STATUS_CONNECTED = 13,
+ DOT11_ADHOC_NETWORK_CONNECTION_STATUS_FORMED = 14
+} DOT11_ADHOC_NETWORK_CONNECTION_STATUS;
+
+typedef struct IDot11AdHocInterfaceNotificationSink IDot11AdHocInterfaceNotificationSink;
+typedef struct IDot11AdHocInterface IDot11AdHocInterface;
+typedef struct IDot11AdHocManager IDot11AdHocManager;
+typedef struct IDot11AdHocManagerNotificationSink IDot11AdHocManagerNotificationSink;
+typedef struct IDot11AdHocNetwork IDot11AdHocNetwork;
+typedef struct IEnumDot11AdHocSecuritySettings IEnumDot11AdHocSecuritySettings;
+typedef struct IEnumDot11AdHocNetworks IEnumDot11AdHocNetworks;
+typedef struct IDot11AdHocSecuritySettings IDot11AdHocSecuritySettings;
+typedef struct IEnumDot11AdHocNetworks IEnumDot11AdHocNetworks;
+typedef struct IEnumDot11AdHocInterfaces IEnumDot11AdHocInterfaces;
+
+#undef INTERFACE
+#define INTERFACE IDot11AdHocInterfaceNotificationSink
+DECLARE_INTERFACE_(IDot11AdHocInterfaceNotificationSink,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IDot11AdHocInterfaceNotificationSink methods */
+ STDMETHOD_(HRESULT,OnConnectionStatusChange)(THIS_ DOT11_ADHOC_NETWORK_CONNECTION_STATUS eStatus) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IDot11AdHocInterfaceNotificationSink_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IDot11AdHocInterfaceNotificationSink_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IDot11AdHocInterfaceNotificationSink_Release(This) (This)->pVtbl->Release(This)
+#define IDot11AdHocInterf
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IDot11AdHocInterface
+DECLARE_INTERFACE_(IDot11AdHocInterface,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IDot11AdHocInterface methods */
+ STDMETHOD_(HRESULT,GetDeviceSignature)(THIS_ GUID *pSignature) PURE;
+ STDMETHOD_(HRESULT,GetFriendlyName)(THIS_ LPWSTR *ppszName) PURE;
+ STDMETHOD_(HRESULT,IsDot11d)(THIS_ BOOLEAN *pf11d) PURE;
+ STDMETHOD_(HRESULT,IsAdHocCapable)(THIS_ BOOLEAN *pfAdHocCapable) PURE;
+ STDMETHOD_(HRESULT,IsRadioOn)(THIS_ BOOLEAN *pfIsRadioOn) PURE;
+ STDMETHOD_(HRESULT,GetActiveNetwork)(THIS_ IDot11AdHocNetwork **ppNetwork) PURE;
+ STDMETHOD_(HRESULT,GetIEnumSecuritySettings)(THIS_ IEnumDot11AdHocSecuritySettings **ppEnum) PURE;
+ STDMETHOD_(HRESULT,GetIEnumDot11AdHocNetworks)(THIS_ GUID *pFilterGuid,IEnumDot11AdHocNetworks **ppEnum) PURE;
+ STDMETHOD_(HRESULT,GetStatus)(THIS_ DOT11_ADHOC_NETWORK_CONNECTION_STATUS *pState) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IDot11AdHocInterface_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IDot11AdHocInterface_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IDot11AdHocInterface_Release(This) (This)->pVtbl->Release(This)
+#define IDot11AdHocInterface_GetDeviceSignature(This,pSignature) (This)->lpVtbl->GetDeviceSignature(This,pSignature)
+#define IDot11AdHocInterface_GetFriendlyName(This,ppszName) (This)->lpVtbl->GetFriendlyName(This,ppszName)
+#define IDot11AdHocInterface_IsDot11d(This,pf11d) (This)->lpVtbl->IsDot11d(This,pf11d)
+#define IDot11AdHocInterface_IsAdHocCapable(This,pfAdHocCapable) (This)->lpVtbl->IsAdHocCapable(This,pfAdHocCapable)
+#define IDot11AdHocInterface_IsRadioOn(This,pfIsRadioOn) (This)->lpVtbl->IsRadioOn(This,pfIsRadioOn)
+#define IDot11AdHocInterface_GetActiveNetwork(This,ppNetwork) (This)->lpVtbl->GetActiveNetwork(This,ppNetwork)
+#define IDot11AdHocInterface_GetIEnumSecuritySettings(This,ppEnum) (This)->lpVtbl->GetIEnumSecuritySettings(This,ppEnum)
+#define IDot11AdHocInterface_GetIEnumDot11AdHocNetworks(This,pFilterGuid,ppEnum) (This)->lpVtbl->GetIEnumDot11AdHocNetworks(This,pFilterGuid,ppEnum)
+#define IDot11AdHocInterface_GetStatus(This,pState) (This)->lpVtbl->GetStatus(This,pState)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IDot11AdHocManager
+DECLARE_INTERFACE_(IDot11AdHocManager,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IDot11AdHocManager methods */
+ STDMETHOD_(HRESULT,CreateNetwork)(THIS_ LPCWSTR Name,LPCWSTR Password,LONG GeographicalId,IDot11AdHocInterface *pInterface,IDot11AdHocSecuritySettings *pSecurity,GUID *pContextGuid,IDot11AdHocNetwork **pIAdHoc) PURE;
+ STDMETHOD_(HRESULT,CommitCreatedNetwork)(THIS_ IDot11AdHocNetwork *pIAdHoc,BOOLEAN fSaveProfile,BOOLEAN fMakeSavedProfileUserSpecific) PURE;
+ STDMETHOD_(HRESULT,GetIEnumDot11AdHocNetworks)(THIS_ GUID *pContextGuid,IEnumDot11AdHocNetworks **ppEnum) PURE;
+ STDMETHOD_(HRESULT,GetIEnumDot11AdHocInterfaces)(THIS_ IEnumDot11AdHocInterfaces **ppEnum) PURE;
+ STDMETHOD_(HRESULT,GetNetwork)(THIS_ GUID *NetworkSignature,IDot11AdHocNetwork **pNetwork) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IDot11AdHocManager_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IDot11AdHocManager_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IDot11AdHocManager_Release(This) (This)->pVtbl->Release(This)
+#define IDot11AdHocManager_CreateNetwork(This,Name,Password,GeographicalId,pInterface,pSecurity,pContextGuid,pIAdHoc) (This)->lpVtbl->CreateNetwork(This,Name,Password,GeographicalId,pInterface,pSecurity,pContextGuid,pIAdHoc)
+#define IDot11AdHocManager_CommitCreatedNetwork(This,pIAdHoc,fSaveProfile,fMakeSavedProfileUserSpecific) (This)->lpVtbl->CommitCreatedNetwork(This,pIAdHoc,fSaveProfile,fMakeSavedProfileUserSpecific)
+#define IDot11AdHocManager_GetIEnumDot11AdHocNetworks(This,pContextGuid,ppEnum) (This)->lpVtbl->GetIEnumDot11AdHocNetworks(This,pContextGuid,ppEnum)
+#define IDot11AdHocManager_GetIEnumDot11AdHocInterfaces(This,ppEnum) (This)->lpVtbl->GetIEnumDot11AdHocInterfaces(This,ppEnum)
+#define IDot11AdHocManager_GetNetwork(This,NetworkSignature,pNetwork) (This)->lpVtbl->GetNetwork(This,NetworkSignature,pNetwork)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IDot11AdHocManagerNotificationSink
+DECLARE_INTERFACE_(IDot11AdHocManagerNotificationSink,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IDot11AdHocManagerNotificationSink methods */
+ STDMETHOD_(HRESULT,OnNetworkAdd)(THIS_ IDot11AdHocNetwork *pIAdHocNetwork) PURE;
+ STDMETHOD_(HRESULT,OnNetworkRemove)(THIS_ GUID *Signature) PURE;
+ STDMETHOD_(HRESULT,OnInterfaceAdd)(THIS_ IDot11AdHocInterface *pIAdHocInterface) PURE;
+ STDMETHOD_(HRESULT,OnInterfaceRemove)(THIS_ GUID *Signature) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IDot11AdHocManagerNotificationSink_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IDot11AdHocManagerNotificationSink_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IDot11AdHocManagerNotificationSink_Release(This) (This)->pVtbl->Release(This)
+#define IDot11AdHocManagerNotificationSink_OnNetworkAdd(This,pIAdHocNetwork) (This)->lpVtbl->OnNetworkAdd(This,pIAdHocNetwork)
+#define IDot11AdHocManagerNotificationSink_OnNetworkRemove(This,Signature) (This)->lpVtbl->OnNetworkRemove(This,Signature)
+#define IDot11AdHocManagerNotificationSink_OnInterfaceAdd(This,pIAdHocInterface) (This)->lpVtbl->OnInterfaceAdd(This,pIAdHocInterface)
+#define IDot11AdHocManagerNotificationSink_OnInterfaceRemove(This,Signature) (This)->lpVtbl->OnInterfaceRemove(This,Signature)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IDot11AdHocNetwork
+DECLARE_INTERFACE_(IDot11AdHocNetwork,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IDot11AdHocNetwork methods */
+ STDMETHOD_(HRESULT,GetStatus)(THIS_ DOT11_ADHOC_NETWORK_CONNECTION_STATUS *eStatus) PURE;
+ STDMETHOD_(HRESULT,GetSSID)(THIS_ LPWSTR *ppszwSSID) PURE;
+ STDMETHOD_(HRESULT,HasProfile)(THIS_ BOOLEAN *pf11d) PURE;
+ STDMETHOD_(HRESULT,GetProfileName)(THIS_ LPWSTR *ppszwProfileName) PURE;
+ STDMETHOD_(HRESULT,DeleteProfile)(THIS) PURE;
+ STDMETHOD_(HRESULT,GetSignalQuality)(THIS_ ULONG *puStrengthValue,ULONG *puStrengthMax) PURE;
+ STDMETHOD_(HRESULT,GetSecuritySetting)(THIS_ IDot11AdHocSecuritySettings **pAdHocSecuritySetting) PURE;
+ STDMETHOD_(HRESULT,GetContextGuid)(THIS_ GUID *pContextGuid) PURE;
+ STDMETHOD_(HRESULT,GetSignature)(THIS_ GUID *pSignature) PURE;
+ STDMETHOD_(HRESULT,GetInterface)(THIS_ IDot11AdHocInterface **pAdHocInterface) PURE;
+ STDMETHOD_(HRESULT,Connect)(THIS_ LPCWSTR Passphrase,LONG GeographicalId,BOOLEAN fSaveProfile,BOOLEAN fMakeSavedProfileUserSpecific) PURE;
+ STDMETHOD_(HRESULT,Disconnect)(THIS) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IDot11AdHocNetwork_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IDot11AdHocNetwork_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IDot11AdHocNetwork_Release(This) (This)->pVtbl->Release(This)
+#define IDot11AdHocNetwork_GetStatus(This,eStatus) (This)->lpVtbl->GetStatus(This,eStatus)
+#define IDot11AdHocNetwork_GetSSID(This,ppszwSSID) (This)->lpVtbl->GetSSID(This,ppszwSSID)
+#define IDot11AdHocNetwork_HasProfile(This,pf11d) (This)->lpVtbl->HasProfile(This,pf11d)
+#define IDot11AdHocNetwork_GetProfileName(This,ppszwProfileName) (This)->lpVtbl->GetProfileName(This,ppszwProfileName)
+#define IDot11AdHocNetwork_DeleteProfile() (This)->lpVtbl->DeleteProfile(This)
+#define IDot11AdHocNetwork_GetSignalQuality(This,puStrengthValue,puStrengthMax) (This)->lpVtbl->GetSignalQuality(This,puStrengthValue,puStrengthMax)
+#define IDot11AdHocNetwork_GetSecuritySetting(This,pAdHocSecuritySetting) (This)->lpVtbl->GetSecuritySetting(This,pAdHocSecuritySetting)
+#define IDot11AdHocNetwork_GetContextGuid(This,pContextGuid) (This)->lpVtbl->GetContextGuid(This,pContextGuid)
+#define IDot11AdHocNetwork_GetSignature(This,pSignature) (This)->lpVtbl->GetSignature(This,pSignature)
+#define IDot11AdHocNetwork_GetInterface(This,pAdHocInterface) (This)->lpVtbl->GetInterface(This,pAdHocInterface)
+#define IDot11AdHocNetwork_Connect(This,Passphrase,GeographicalId,fSaveProfile,fMakeSavedProfileUserSpecific) (This)->lpVtbl->Connect(This,Passphrase,GeographicalId,fSaveProfile,fMakeSavedProfileUserSpecific)
+#define IDot11AdHocNetwork_Disconnect() (This)->lpVtbl->Disconnect(This)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IDot11AdHocNetworkNotificationSink
+DECLARE_INTERFACE_(IDot11AdHocNetworkNotificationSink,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IDot11AdHocNetworkNotificationSink methods */
+ STDMETHOD_(HRESULT,OnStatusChange)(THIS_ DOT11_ADHOC_NETWORK_CONNECTION_STATUS eStatus) PURE;
+ STDMETHOD_(HRESULT,OnConnectFail)(THIS_ DOT11_ADHOC_CONNECT_FAIL_REASON eFailReason) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IDot11AdHocNetworkNotificationSink_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IDot11AdHocNetworkNotificationSink_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IDot11AdHocNetworkNotificationSink_Release(This) (This)->pVtbl->Release(This)
+#define IDot11AdHocNetworkNotificationSink_OnStatusChange(This,eStatus) (This)->lpVtbl->OnStatusChange(This,eStatus)
+#define IDot11AdHocNetworkNotificationSink_OnConnectFail(This,eFailReason) (This)->lpVtbl->OnConnectFail(This,eFailReason)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IDot11AdHocSecuritySettings
+DECLARE_INTERFACE_(IDot11AdHocSecuritySettings,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IDot11AdHocSecuritySettings methods */
+ STDMETHOD_(HRESULT,GetDot11AuthAlgorithm)(THIS_ DOT11_ADHOC_AUTH_ALGORITHM *pAuth) PURE;
+ STDMETHOD_(HRESULT,GetDot11CipherAlgorithm)(THIS_ DOT11_ADHOC_CIPHER_ALGORITHM *pCipher) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IDot11AdHocSecuritySettings_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IDot11AdHocSecuritySettings_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IDot11AdHocSecuritySettings_Release(This) (This)->pVtbl->Release(This)
+#define IDot11AdHocSecuritySettings_GetDot11AuthAlgorithm(This,pAuth) (This)->lpVtbl->GetDot11AuthAlgorithm(This,pAuth)
+#define IDot11AdHocSecuritySettings_GetDot11CipherAlgorithm(This,pCipher) (This)->lpVtbl->GetDot11CipherAlgorithm(This,pCipher)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IEnumDot11AdHocInterfaces
+DECLARE_INTERFACE_(IEnumDot11AdHocInterfaces,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IEnumDot11AdHocInterfaces methods */
+ STDMETHOD_(HRESULT,Next)(THIS_ ULONG cElt,IDot11AdHocInterface **rgElt,ULONG *pcEltFetched) PURE;
+ STDMETHOD_(HRESULT,Skip)(THIS_ ULONG cElt) PURE;
+ STDMETHOD_(HRESULT,Reset)(THIS) PURE;
+ STDMETHOD_(HRESULT,Clone)(THIS_ IEnumDot11AdHocInterfaces **ppEnum) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IEnumDot11AdHocInterfaces_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IEnumDot11AdHocInterfaces_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IEnumDot11AdHocInterfaces_Release(This) (This)->pVtbl->Release(This)
+#define IEnumDot11AdHocInterfaces_Next(This,cElt,rgElt,pcEltFetched) (This)->lpVtbl->Next(This,cElt,rgElt,pcEltFetched)
+#define IEnumDot11AdHocInterfaces_Skip(This,cElt) (This)->lpVtbl->Skip(This,cElt)
+#define IEnumDot11AdHocInterfaces_Reset() (This)->lpVtbl->Reset(This)
+#define IEnumDot11AdHocInterfaces_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IEnumDot11AdHocNetworks
+DECLARE_INTERFACE_(IEnumDot11AdHocNetworks,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IEnumDot11AdHocNetworks methods */
+ STDMETHOD_(HRESULT,Next)(THIS_ ULONG cElt,IDot11AdHocNetwork **rgElt,ULONG *pcEltFetched) PURE;
+ STDMETHOD_(HRESULT,Skip)(THIS_ ULONG cElt) PURE;
+ STDMETHOD_(HRESULT,Reset)(THIS) PURE;
+ STDMETHOD_(HRESULT,Clone)(THIS_ IEnumDot11AdHocNetworks **ppEnum) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IEnumDot11AdHocNetworks_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IEnumDot11AdHocNetworks_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IEnumDot11AdHocNetworks_Release(This) (This)->pVtbl->Release(This)
+#define IEnumDot11AdHocNetworks_Next(This,cElt,rgElt,pcEltFetched) (This)->lpVtbl->Next(This,cElt,rgElt,pcEltFetched)
+#define IEnumDot11AdHocNetworks_Skip(This,cElt) (This)->lpVtbl->Skip(This,cElt)
+#define IEnumDot11AdHocNetworks_Reset() (This)->lpVtbl->Reset(This)
+#define IEnumDot11AdHocNetworks_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IEnumDot11AdHocSecuritySettings
+DECLARE_INTERFACE_(IEnumDot11AdHocSecuritySettings,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IEnumDot11AdHocSecuritySettings methods */
+ STDMETHOD_(HRESULT,Next)(THIS_ ULONG cElt,IDot11AdHocSecuritySettings **rgElt,ULONG *pcEltFetched) PURE;
+ STDMETHOD_(HRESULT,Skip)(THIS_ ULONG cElt) PURE;
+ STDMETHOD_(HRESULT,Reset)(THIS) PURE;
+ STDMETHOD_(HRESULT,Clone)(THIS_ IEnumDot11AdHocSecuritySettings **ppEnum) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IEnumDot11AdHocSecuritySettings_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IEnumDot11AdHocSecuritySettings_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IEnumDot11AdHocSecuritySettings_Release(This) (This)->pVtbl->Release(This)
+#define IEnumDot11AdHocSecuritySettings_Next(This,cElt,rgElt,pcEltFetched) (This)->lpVtbl->Next(This,cElt,rgElt,pcEltFetched)
+#define IEnumDot11AdHocSecuritySettings_Skip(This,cElt) (This)->lpVtbl->Skip(This,cElt)
+#define IEnumDot11AdHocSecuritySettings_Reset() (This)->lpVtbl->Reset(This)
+#define IEnumDot11AdHocSecuritySettings_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
+#endif /*COBJMACROS*/
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_ADHOC*/
diff --git a/mingw-w64-headers/include/atacct.h b/mingw-w64-headers/include/atacct.h
new file mode 100644
index 0000000..56ec4ed
--- /dev/null
+++ b/mingw-w64-headers/include/atacct.h
@@ -0,0 +1,21 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_ATACCT
+#define _INC_ATACCT
+
+HRESULT GetNetScheduleAccountInformation(
+ LPCWSTR pwszServerName,
+ DWORD ccAccount,
+ WCHAR wszAccount[]
+);
+
+HRESULT SetNetScheduleAccountInformation(
+ LPCWSTR pwszServerName,
+ LPCWSTR pwszAccount,
+ LPCWSTR pwszPassword
+);
+
+#endif /*_INC_ATACCT*/
diff --git a/mingw-w64-headers/include/audioapotypes.h b/mingw-w64-headers/include/audioapotypes.h
new file mode 100644
index 0000000..5df0ad6
--- /dev/null
+++ b/mingw-w64-headers/include/audioapotypes.h
@@ -0,0 +1,31 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_AUDIOAPOTYPES
+#define _INC_AUDIOAPOTYPES
+
+#if (_WIN32_WINNT >= 0x0601)
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum APO_BUFFER_FLAGS {
+ BUFFER_INVALID = 0,
+ BUFFER_VALID = 1,
+ BUFFER_SILENT = 2
+} APO_BUFFER_FLAGS;
+
+typedef struct APO_CONNECTION_PROPERTY {
+ UINT_PTR pBuffer;
+ UINT32 u32ValidFrameCount;
+ APO_BUFFER_FLAGS u32BufferFlags;
+ UINT32 u32Signature;
+} APO_CONNECTION_PROPERTY;
+
+#ifdef __cplusplus
+}
+#endif
+#endif /*(_WIN32_WINNT >= 0x0601)*/
+#endif /*_INC_AUDIOAPOTYPES*/
diff --git a/mingw-w64-headers/include/audioengineendpoint.h b/mingw-w64-headers/include/audioengineendpoint.h
new file mode 100644
index 0000000..a0cad61
--- /dev/null
+++ b/mingw-w64-headers/include/audioengineendpoint.h
@@ -0,0 +1,49 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_AUDIOENGINEENDPOINT
+#define _INC_AUDIOENGINEENDPOINT
+
+#if (_WIN32_WINNT >= 0x0601)
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum AE_POSITION_FLAGS {
+ POSITION_INVALID = 0,
+ POSITION_DISCONTINUOUS = 1,
+ POSITION_CONTINUOUS = 2,
+ POSITION_QPC_ERROR = 4
+} AE_POSITION_FLAGS;
+
+typedef struct AE_CURRENT_POSITION {
+ UINT64 u64DevicePosition;
+ UINT64 u64StreamPosition;
+ UINT64 u64PaddingFrames;
+ HNSTIME hnsQPCPosition;
+ FLOAT32 f32FramesPerSecond;
+ AE_POSITION_FLAGS Flag;
+} AE_CURRENT_POSITION, *PAE_CURRENT_POSITION;
+
+typedef struct _AUDIO_ENDPOINT_EXCLUSIVE_CREATE_PARAMS {
+ UINT32 u32Size;
+ LONGLONG hConnection;
+ BOOL bIsRtCapable;
+ HNSTIME hnsBufferDuration;
+ HNSTIME hnsPeriod;
+ UINT32 u32LatencyCoefficient;
+ WAVEFORMATEX wfxDeviceFormat;
+} AUDIO_ENDPOINT_EXCLUSIVE_CREATE_PARAMS, *PAUDIO_ENDPOINT_EXCLUSIVE_CREATE_PARAMS;
+
+typedef struct _AUDIO_ENDPOINT_SHARED_CREATE_PARAMS {
+ UINT32 u32Size;
+ UINT32 u32TSSessionId;
+} AUDIO_ENDPOINT_SHARED_CREATE_PARAMS, *PAUDIO_ENDPOINT_SHARED_CREATE_PARAMS;
+
+#ifdef __cplusplus
+}
+#endif
+#endif /*(_WIN32_WINNT >= 0x0601)*/
+#endif /*_INC_AUDIOENGINEENDPOINT*/
diff --git a/mingw-w64-headers/include/avrt.h b/mingw-w64-headers/include/avrt.h
new file mode 100644
index 0000000..97231c0
--- /dev/null
+++ b/mingw-w64-headers/include/avrt.h
@@ -0,0 +1,97 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_AVRT
+#define _INC_AVRT
+
+#if (_WIN32_WINNT >= 0x0600)
+#define AVRT_PRIORITY_CRITICAL 2
+#define AVRT_PRIORITY_HIGH 1
+#define AVRT_PRIORITY_LOW -1
+#define AVRT_PRIORITY_NORMAL 0
+
+#define AvSetMmThreadCharacteristics __MINGW_NAME_AW(AvSetMmThreadCharacteristics)
+#define AvSetMmMaxThreadCharacteristics __MINGW_NAME_AW(AvSetMmMaxThreadCharacteristics)
+#define AvRtCreateThreadOrderingGroupEx __MINGW_NAME_AW(AvRtCreateThreadOrderingGroupEx)
+
+WINBOOL WINAPI AvQuerySystemResponsiveness(
+ HANDLE AvrtHandle,
+ PULONG SystemResponsivenessValue
+);
+
+HANDLE WINAPI AvSetMmThreadCharacteristicsA(
+ LPCSTR TaskName,
+ LPDWORD TaskIndex
+);
+
+HANDLE WINAPI AvSetMmThreadCharacteristicsW(
+ LPCWSTR TaskName,
+ LPDWORD TaskIndex
+);
+
+WINBOOL WINAPI AvRevertMmThreadCharacteristics(
+ HANDLE AvrtHandle
+);
+
+HANDLE WINAPI AvSetMmMaxThreadCharacteristicsA(
+ LPCSTR FirstTask,
+ LPCSTR SecondTask,
+ LPDWORD TaskIndex
+);
+
+HANDLE WINAPI AvSetMmMaxThreadCharacteristicsW(
+ LPCWSTR FirstTask,
+ LPCWSTR SecondTask,
+ LPDWORD TaskIndex
+);
+
+WINBOOL WINAPI AvSetMmThreadPriority(
+ HANDLE AvrtHandle,
+ AVRT_PRIORITY Priority
+);
+
+WINBOOL WINAPI AvRtCreateThreadOrderingGroup(
+ PHANDLE Context,
+ PLARGE_INTEGER Period,
+ GUID *ThreadOrderingGuid,
+ PLARGE_INTEGER Timeout
+);
+
+WINBOOL WINAPI AvRtCreateThreadOrderingGroupExA(
+ PHANDLE Context,
+ PLARGE_INTEGER Period,
+ GUID *ThreadOrderingGuid,
+ PLARGE_INTEGER Timeout,
+ LPCSTR TaskName
+);
+
+WINBOOL WINAPI AvRtCreateThreadOrderingGroupExW(
+ PHANDLE Context,
+ PLARGE_INTEGER Period,
+ GUID *ThreadOrderingGuid,
+ PLARGE_INTEGER Timeout,
+ LPCWSTR TaskName
+);
+
+WINBOOL WINAPI AvRtDeleteThreadOrderingGroup(
+ HANDLE Context
+);
+
+WINBOOL WINAPI AvRtJoinThreadOrderingGroup(
+ PHANDLE Context,
+ GUID *ThreadOrderingGuid,
+ WINBOOL Before
+);
+
+WINBOOL WINAPI AvRtLeaveThreadOrderingGroup(
+ HANDLE Context
+);
+
+WINBOOL WINAPI AvRtWaitOnThreadOrderingGroup(
+ HANDLE Context
+);
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_AVRT*/
diff --git a/mingw-w64-headers/include/bcrypt.h b/mingw-w64-headers/include/bcrypt.h
new file mode 100644
index 0000000..4faa7e9
--- /dev/null
+++ b/mingw-w64-headers/include/bcrypt.h
@@ -0,0 +1,650 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+
+#ifndef _INC_BCRYPT
+#define _INC_BCRYPT
+#if (_WIN32_WINNT >= 0x0600)
+
+#ifndef _NTDEF_
+ typedef LONG NTSTATUS,*PNTSTATUS;
+#endif
+
+#define BCRYPT_CIPHER_OPERATION 0x00000001
+#define BCRYPT_HASH_OPERATION 0x00000002
+#define BCRYPT_ASYMMETRIC_ENCRYPTION_OPERATION 0x00000004
+#define BCRYPT_SECRET_AGREEMENT_OPERATION 0x00000008
+#define BCRYPT_SIGNATURE_OPERATION 0x00000010
+#define BCRYPT_RNG_OPERATION 0x00000020
+
+#define BCRYPT_KEY_DATA_BLOB_MAGIC 0x4d42444b
+#define BCRYPT_KEY_DATA_BLOB_VERSION1 1
+
+#define BCRYPT_DH_PARAMETERS_MAGIC 0x4d504844
+
+#define BCRYPT_DSA_PUBLIC_MAGIC 0x42505344
+#define BCRYPT_DSA_PRIVATE_MAGIC 0x56505344
+
+#define BCRYPT_DSA_PARAMETERS_MAGIC 0x4d505344
+
+#define BCRYPT_ALGORITHM_NAME L"AlgorithmName"
+#define BCRYPT_AUTH_TAG_LENGTH L"AuthTagLength"
+#define BCRYPT_BLOCK_LENGTH L"BlockLength"
+#define BCRYPT_BLOCK_SIZE_LIST L"BlockSizeList"
+#define BCRYPT_CHAINING_MODE L"ChainingMode"
+#define BCRYPT_CHAIN_MODE_CBC L"ChainingModeCBC"
+#define BCRYPT_CHAIN_MODE_CCM L"ChainingModeCCM"
+#define BCRYPT_CHAIN_MODE_CFB L"ChainingModeCFB"
+#define BCRYPT_CHAIN_MODE_ECB L"ChainingModeECB"
+#define BCRYPT_CHAIN_MODE_GCM L"ChainingModeGCM"
+#define BCRYPT_CHAIN_MODE_NA L"ChainingModeN/A"
+#define BCRYPT_DH_PARAMETERS L"DHParameters"
+#define BCRYPT_DSA_PARAMETERS L"DSAParameters"
+#define BCRYPT_EFFECTIVE_KEY_LENGTH L"EffectiveKeyLength"
+#define BCRYPT_HASH_BLOCK_LENGTH L"HashBlockLength"
+#define BCRYPT_HASH_LENGTH L"HashDigestLength"
+#define BCRYPT_HASH_OID_LIST L"HashOIDList"
+#define BCRYPT_INITIALIZATION_VECTOR L"IV"
+#define BCRYPT_KEY_LENGTH L"KeyLength"
+#define BCRYPT_KEY_LENGTHS L"KeyLengths"
+#define BCRYPT_KEY_OBJECT_LENGTH L"KeyObjectLength"
+#define BCRYPT_KEY_STRENGTH L"KeyStrength"
+#define BCRYPT_OBJECT_LENGTH L"ObjectLength"
+#define BCRYPT_PADDING_SCHEMES L"PaddingSchemes"
+#define BCRYPT_SUPPORTED_PAD_ROUTER 0x00000001
+#define BCRYPT_SUPPORTED_PAD_PKCS1_ENC 0x00000002
+#define BCRYPT_SUPPORTED_PAD_PKCS1_SIG 0x00000004
+#define BCRYPT_SUPPORTED_PAD_OAEP 0x00000008
+#define BCRYPT_SUPPORTED_PAD_PSS 0x00000010
+#define BCRYPT_PROVIDER_HANDLE L"ProviderHandle"
+#define BCRYPT_SIGNATURE_LENGTH L"SignatureLength"
+
+#define KDF_HASH_ALGORITHM 0
+#define KDF_SECRET_PREPEND 1
+#define KDF_SECRET_APPEND 2
+#define KDF_HMAC_KEY 3
+#define KDF_TLS_PRF_LABEL 4
+#define KDF_TLS_PRF_SEED 5
+#define KDF_SECRET_HANDLE 6
+
+#define BCRYPT_KDF_HASH (L"HASH")
+#define BCRYPT_KDF_HASH (L"HASH")
+#define BCRYPT_KDF_TLS_PRF (L"TLS_PRF")
+#define BCRYPT_KDF_SP80056A_CONCAT (L"SP800_56A_CONCAT")
+
+#define CRYPT_ALL_FUNCTIONS 1
+#define CRYPT_ALL_PROVIDERS 2
+
+typedef LPVOID BCRYPT_KEY_HANDLE;
+typedef LPVOID BCRYPT_ALG_HANDLE;
+typedef LPVOID BCRYPT_HASH_HANDLE;
+typedef LPVOID BCRYPT_SECRET_HANDLE;
+typedef LPVOID BCRYPT_HANDLE;
+
+typedef struct _BCRYPT_ALGORITHM_IDENTIFIER {
+ LPWSTR pszName;
+ ULONG dwClass;
+ ULONG dwFlags;
+} BCRYPT_ALGORITHM_IDENTIFIER;
+
+typedef struct _BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO {
+ ULONG cbSize;
+ ULONG dwInfoVersion;
+ PUCHAR pbNonce;
+ ULONG cbNonce;
+ PUCHAR pbAuthData;
+ ULONG cbAuthData;
+ PUCHAR pbTag;
+ ULONG cbTag;
+ PUCHAR pbMacContext;
+ ULONG cbMacContext;
+ ULONG cbAAD;
+ ULONGLONG cbData;
+ ULONG dwFlags;
+} BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO, *PBCRYPT_AUTHENTICATED_CIPHER_MODE_INFO;
+
+typedef struct _BCRYPT_DH_KEY_BLOB {
+ ULONG dwMagic;
+ ULONG cbKey;
+} BCRYPT_DH_KEY_BLOB, *PBCRYPT_DH_KEY_BLOB;
+
+typedef struct _BCRYPT_DH_PARAMETER_HEADER {
+ ULONG cbLength;
+ ULONG dwMagic;
+ ULONG cbKeyLength;
+} BCRYPT_DH_PARAMETER_HEADER;
+
+typedef struct _BCRYPT_DSA_KEY_BLOB {
+ ULONG dwMagic;
+ ULONG cbKey;
+ UCHAR Count[4];
+ UCHAR Seed[20];
+ UCHAR q[20];
+} BCRYPT_DSA_KEY_BLOB, *PBCRYPT_DSA_KEY_BLOB;
+
+typedef struct _BCRYPT_DSA_PARAMETER_HEADER {
+ ULONG cbLength;
+ ULONG dwMagic;
+ ULONG cbKeyLength;
+ UCHAR Count[4];
+ UCHAR Seed[20];
+ UCHAR q[20];
+} BCRYPT_DSA_PARAMETER_HEADER, *PBCRYPT_DSA_PARAMETER_HEADER;
+
+typedef struct _BCRYPT_ECCKEY_BLOB {
+ ULONG Magic;
+ ULONG cbKey;
+} BCRYPT_ECCKEY_BLOB, *PBCRYPT_ECCKEY_BLOB;
+
+typedef struct _BCRYPT_INTERFACE_VERSION {
+ USHORT MajorVersion;
+ USHORT MinorVersion;
+} BCRYPT_INTERFACE_VERSION, *PBCRYPT_INTERFACE_VERSION;
+
+typedef struct _BCRYPT_KEY_BLOB {
+ ULONG Magic;
+} BCRYPT_KEY_BLOB;
+
+typedef struct _BCRYPT_KEY_DATA_BLOB_HEADER {
+ ULONG dwMagic;
+ ULONG dwVersion;
+ ULONG cbKeyData;
+} BCRYPT_KEY_DATA_BLOB_HEADER, *PBCRYPT_KEY_DATA_BLOB_HEADER;
+
+typedef struct __BCRYPT_KEY_LENGTHS_STRUCT {
+ ULONG dwMinLength;
+ ULONG dwMaxLength;
+ ULONG dwIncrement;
+} BCRYPT_KEY_LENGTHS_STRUCT, BCRYPT_AUTH_TAG_LENGTHS_STRUCT;
+
+typedef struct _BCRYPT_OAEP_PADDING_INFO {
+ LPCWSTR pszAlgId;
+ PUCHAR pbLabel;
+ ULONG cbLabel;
+} BCRYPT_OAEP_PADDING_INFO;
+
+typedef struct _BCRYPT_OID {
+ ULONG cbOID;
+ PUCHAR pbOID;
+} BCRYPT_OID;
+
+typedef struct _BCRYPT_OID_LIST {
+ ULONG dwOIDCount;
+ BCRYPT_OID *pOIDs;
+} BCRYPT_OID_LIST;
+
+typedef struct _BCRYPT_PKCS1_PADDING_INFO {
+ LPCWSTR pszAlgId;
+} BCRYPT_PKCS1_PADDING_INFO;
+
+typedef struct _BCRYPT_PROVIDER_NAME {
+ LPWSTR pszProviderName;
+} BCRYPT_PROVIDER_NAME;
+
+typedef struct _BCRYPT_PSS_PADDING_INFO {
+ LPCWSTR pszAlgId;
+ ULONG cbSalt;
+} BCRYPT_PSS_PADDING_INFO;
+
+typedef struct _BCRYPT_RSAKEY_BLOB {
+ ULONG Magic;
+ ULONG BitLength;
+ ULONG cbPublicExp;
+ ULONG cbModulus;
+ ULONG cbPrime1;
+ ULONG cbPrime2;
+} BCRYPT_RSAKEY_BLOB;
+
+typedef struct _BCryptBuffer {
+ ULONG cbBuffer;
+ ULONG BufferType;
+ PVOID pvBuffer;
+} BCryptBuffer, *PBCryptBuffer;
+
+typedef struct _BCryptBufferDesc {
+ ULONG ulVersion;
+ ULONG cBuffers;
+ PBCryptBuffer pBuffers;
+} BCryptBufferDesc, *PBCryptBufferDesc;
+
+typedef struct _CRYPT_CONTEXTS {
+ ULONG cContexts;
+ PWSTR rgpszContexts;
+} CRYPT_CONTEXTS, *PCRYPT_CONTEXTS;
+
+typedef struct _CRYPT_CONTEXT_CONFIG {
+ ULONG dwFlags;
+} CRYPT_CONTEXT_CONFIG, *PCRYPT_CONTEXT_CONFIG;
+
+typedef struct _CRYPT_CONTEXT_FUNCTIONS {
+ ULONG cFunctions;
+ PWSTR rgpszFunctions;
+} CRYPT_CONTEXT_FUNCTIONS, *PCRYPT_CONTEXT_FUNCTIONS;
+
+typedef struct _CRYPT_CONTEXT_FUNCTION_CONFIG {
+ ULONG dwFlags;
+} CRYPT_CONTEXT_FUNCTION_CONFIG, *PCRYPT_CONTEXT_FUNCTION_CONFIG;
+
+typedef struct _CRYPT_CONTEXT_FUNCTION_PROVIDERS {
+ ULONG cProviders;
+ PWSTR *rgpszProviders;
+} CRYPT_CONTEXT_FUNCTION_PROVIDERS, *PCRYPT_CONTEXT_FUNCTION_PROVIDERS;
+
+typedef struct _CRYPT_INTERFACE_REG {
+ ULONG dwInterface;
+ ULONG dwFlags;
+ ULONG cFunctions;
+ PWSTR *rgpszFunctions;
+} CRYPT_INTERFACE_REG, *PCRYPT_INTERFACE_REG;
+
+typedef struct _CRYPT_IMAGE_REG {
+ PWSTR pszImage;
+ ULONG cInterfaces;
+ PCRYPT_INTERFACE_REG *rgpInterfaces;
+} CRYPT_IMAGE_REG, *PCRYPT_IMAGE_REG;
+
+typedef struct _CRYPT_IMAGE_REF {
+ PWSTR pszImage;
+ ULONG dwFlags;
+} CRYPT_IMAGE_REF, *PCRYPT_IMAGE_REF;
+
+typedef struct _CRYPT_PROPERTY_REF {
+ PWSTR pszProperty;
+ ULONG cbValue;
+ PUCHAR pbValue;
+} CRYPT_PROPERTY_REF, *PCRYPT_PROPERTY_REF;
+
+typedef struct _CRYPT_PROVIDERS {
+ ULONG cProviders;
+ PWSTR *rgpszProviders;
+} CRYPT_PROVIDERS, *PCRYPT_PROVIDERS;
+
+typedef struct _CRYPT_PROVIDER_REG {
+ ULONG cAliases;
+ PWSTR *rgpszAliases;
+ PCRYPT_IMAGE_REG pUM;
+ PCRYPT_IMAGE_REG pKM;
+} CRYPT_PROVIDER_REG, *PCRYPT_PROVIDER_REG;
+
+typedef struct _CRYPT_PROVIDER_REF {
+ ULONG dwInterface;
+ PWSTR pszFunction;
+ PWSTR pszProvider;
+ ULONG cProperties;
+ PCRYPT_PROPERTY_REF *rgpProperties;
+ PCRYPT_IMAGE_REF pUM;
+ PCRYPT_IMAGE_REF pKM;
+} CRYPT_PROVIDER_REF, *PCRYPT_PROVIDER_REF;
+
+typedef struct _CRYPT_PROVIDER_REFS {
+ ULONG cProviders;
+ PCRYPT_PROVIDER_REF *rgpProviders;
+} CRYPT_PROVIDER_REFS, *PCRYPT_PROVIDER_REFS;
+
+NTSTATUS WINAPI BCryptAddContextFunction(
+ ULONG dwTable,
+ LPCWSTR pszContext,
+ ULONG dwInterface,
+ LPCWSTR pszFunction,
+ ULONG dwPosition
+);
+
+NTSTATUS WINAPI BCryptCloseAlgorithmProvider(
+ BCRYPT_ALG_HANDLE hAlgorithm,
+ ULONG dwFlags
+);
+
+NTSTATUS WINAPI BCryptConfigureContext(
+ ULONG dwTable,
+ LPCWSTR pszContext,
+ PCRYPT_CONTEXT_CONFIG pConfig
+);
+
+NTSTATUS WINAPI BCryptConfigureContextFunction(
+ ULONG dwTable,
+ LPCWSTR pszContext,
+ ULONG dwInterface,
+ LPCWSTR pszFunction,
+ PCRYPT_CONTEXT_FUNCTION_CONFIG pConfig
+);
+
+NTSTATUS WINAPI BCryptCreateContext(
+ ULONG dwTable,
+ LPCWSTR pszContext,
+ PCRYPT_CONTEXT_CONFIG pConfig
+);
+
+NTSTATUS WINAPI BCryptCreateHash(
+ BCRYPT_ALG_HANDLE hAlgorithm,
+ BCRYPT_HASH_HANDLE *phHash,
+ PUCHAR pbHashObject,
+ ULONG cbHashObject,
+ PUCHAR pbSecret,
+ ULONG cbSecret,
+ ULONG dwFlags
+);
+
+NTSTATUS WINAPI BCryptDecrypt(
+ BCRYPT_KEY_HANDLE hKey,
+ PUCHAR pbInput,
+ ULONG cbInput,
+ VOID *pPaddingInfo,
+ PUCHAR pbIV,
+ ULONG cbIV,
+ PUCHAR pbOutput,
+ ULONG cbOutput,
+ ULONG *pcbResult,
+ ULONG dwFlags
+);
+
+NTSTATUS WINAPI BCryptDeleteContext(
+ ULONG dwTable,
+ LPCWSTR pszContext
+);
+
+NTSTATUS WINAPI BCryptDeriveKey(
+ BCRYPT_SECRET_HANDLE hSharedSecret,
+ LPCWSTR pwszKDF,
+ BCryptBufferDesc *pParameterList,
+ PUCHAR pbDerivedKey,
+ ULONG cbDerivedKey,
+ ULONG *pcbResult,
+ ULONG dwFlags
+);
+
+NTSTATUS WINAPI BCryptDestroyHash(
+ BCRYPT_HASH_HANDLE hHash
+);
+
+NTSTATUS WINAPI BCryptDestroyKey(
+ BCRYPT_KEY_HANDLE hKey
+);
+
+NTSTATUS WINAPI BCryptDuplicateHash(
+ BCRYPT_HASH_HANDLE hHash,
+ BCRYPT_HASH_HANDLE *phNewHash,
+ PUCHAR pbHashObject,
+ ULONG cbHashObject,
+ ULONG dwFlags
+);
+
+NTSTATUS WINAPI BCryptDuplicateKey(
+ BCRYPT_KEY_HANDLE hKey,
+ BCRYPT_KEY_HANDLE *phNewKey,
+ PUCHAR pbKeyObject,
+ ULONG cbKeyObject,
+ ULONG dwFlags
+);
+
+NTSTATUS WINAPI BCryptEnumAlgorithms(
+ ULONG dwAlgOperations,
+ ULONG *pAlgCount,
+ BCRYPT_ALGORITHM_IDENTIFIER **ppAlgList,
+ ULONG dwFlags
+);
+
+NTSTATUS WINAPI BCryptEnumContexts(
+ ULONG dwTable,
+ ULONG *pcbBuffer,
+ PCRYPT_CONTEXTS *ppBuffer
+);
+
+NTSTATUS WINAPI BCryptEnumContextFunctions(
+ ULONG dwTable,
+ LPCWSTR pszContext,
+ ULONG dwInterface,
+ ULONG *pcbBuffer,
+ PCRYPT_CONTEXT_FUNCTIONS *ppBuffer
+);
+
+NTSTATUS WINAPI BCryptEnumContextFunctionProviders(
+ ULONG dwTable,
+ LPCWSTR pszContext,
+ ULONG dwInterface,
+ LPCWSTR pszFunction,
+ ULONG *pcbBuffer,
+ PCRYPT_CONTEXT_FUNCTION_PROVIDERS *ppBuffer
+);
+
+NTSTATUS WINAPI BCryptEnumProviders(
+ LPCWSTR pszAlgId,
+ ULONG *pImplCount,
+ BCRYPT_PROVIDER_NAME **ppImplList,
+ ULONG dwFlags
+);
+NTSTATUS WINAPI BCryptEnumRegisteredProviders(
+ ULONG *pcbBuffer,
+ PCRYPT_PROVIDERS *ppBuffer
+);
+
+NTSTATUS WINAPI BCryptEncrypt(
+ BCRYPT_KEY_HANDLE hKey,
+ PUCHAR pbInput,
+ ULONG cbInput,
+ VOID *pPaddingInfo,
+ PUCHAR pbIV,
+ ULONG cbIV,
+ PUCHAR pbOutput,
+ ULONG cbOutput,
+ ULONG *pcbResult,
+ ULONG dwFlags
+);
+
+NTSTATUS WINAPI BCryptExportKey(
+ BCRYPT_KEY_HANDLE hKey,
+ BCRYPT_KEY_HANDLE hExportKey,
+ LPCWSTR pszBlobType,
+ PUCHAR pbOutput,
+ ULONG cbOutput,
+ ULONG *pcbResult,
+ ULONG dwFlags
+);
+
+NTSTATUS WINAPI BCryptFinishHash(
+ BCRYPT_HASH_HANDLE hHash,
+ PUCHAR pbOutput,
+ ULONG cbOutput,
+ ULONG dwFlags
+);
+VOID WINAPI BCryptFreeBuffer(
+ PVOID pvBuffer
+);
+
+NTSTATUS WINAPI BCryptGenerateKeyPair(
+ BCRYPT_ALG_HANDLE hAlgorithm,
+ BCRYPT_KEY_HANDLE *phKey,
+ ULONG dwLength,
+ ULONG dwFlags
+);
+
+NTSTATUS WINAPI BCryptGenerateSymmetricKey(
+ BCRYPT_ALG_HANDLE hAlgorithm,
+ BCRYPT_KEY_HANDLE *phKey,
+ PUCHAR pbKeyObject,
+ ULONG cbKeyObject,
+ PUCHAR pbSecret,
+ ULONG cbSecret,
+ ULONG dwFlags
+);
+
+NTSTATUS WINAPI BCryptGenRandom(
+ BCRYPT_ALG_HANDLE hAlgorithm,
+ PUCHAR pbBuffer,
+ ULONG cbBuffer,
+ ULONG dwFlags
+);
+
+NTSTATUS WINAPI BCryptGetFipsAlgorithmMode(
+ BOOLEAN *pfEnabled
+);
+
+NTSTATUS WINAPI BCryptGetProperty(
+ BCRYPT_HANDLE hObject,
+ LPCWSTR pszProperty,
+ PUCHAR pbOutput,
+ ULONG cbOutput,
+ ULONG *pcbResult,
+ ULONG dwFlags
+);
+
+NTSTATUS WINAPI BCryptHashData(
+ BCRYPT_HASH_HANDLE hHash,
+ PUCHAR pbInput,
+ ULONG cbInput,
+ ULONG dwFlags
+);
+
+NTSTATUS WINAPI BCryptImportKey(
+ BCRYPT_ALG_HANDLE hAlgorithm,
+ BCRYPT_KEY_HANDLE hImportKey,
+ LPCWSTR pszBlobType,
+ BCRYPT_KEY_HANDLE *phKey,
+ PUCHAR pbKeyObject,
+ ULONG cbKeyObject,
+ PUCHAR pbInput,
+ ULONG cbInput,
+ ULONG dwFlags
+);
+
+NTSTATUS WINAPI BCryptImportKeyPair(
+ BCRYPT_ALG_HANDLE hAlgorithm,
+ BCRYPT_KEY_HANDLE hImportKey,
+ LPCWSTR pszBlobType,
+ BCRYPT_KEY_HANDLE *phKey,
+ PUCHAR pbInput,
+ ULONG cbInput,
+ ULONG dwFlags
+);
+
+NTSTATUS WINAPI BCryptFinalizeKeyPair(
+ BCRYPT_KEY_HANDLE hKey,
+ ULONG dwFlags
+);
+
+NTSTATUS WINAPI BCryptOpenAlgorithmProvider(
+ BCRYPT_ALG_HANDLE *phAlgorithm,
+ LPCWSTR pszAlgId,
+ LPCWSTR pszImplementation,
+ DWORD dwFlags
+);
+
+NTSTATUS WINAPI BCryptQueryContextConfiguration(
+ ULONG dwTable,
+ LPCWSTR pszContext,
+ ULONG *pcbBuffer,
+ PCRYPT_CONTEXT_CONFIG *ppBuffer
+);
+
+NTSTATUS WINAPI BCryptQueryContextFunctionConfiguration(
+ ULONG dwTable,
+ LPCWSTR pszContext,
+ ULONG dwInterface,
+ LPCWSTR pszFunction,
+ ULONG *pcbBuffer,
+ PCRYPT_CONTEXT_FUNCTION_CONFIG *ppBuffer
+);
+
+NTSTATUS WINAPI BCryptQueryContextFunctionProperty(
+ ULONG dwTable,
+ LPCWSTR pszContext,
+ ULONG dwInterface,
+ LPCWSTR pszFunction,
+ LPCWSTR pszProperty,
+ ULONG *pcbValue,
+ PUCHAR *ppbValue
+);
+
+NTSTATUS WINAPI BCryptQueryProviderRegistration(
+ LPCWSTR pszProvider,
+ ULONG dwMode,
+ ULONG dwInterface,
+ ULONG *pcbBuffer,
+ PCRYPT_PROVIDER_REG *ppBuffer
+);
+
+/* Kernel mode
+NTSTATUS WINAPI BCryptRegisterConfigChangeNotify(
+ PRKEVENT phEvent
+);
+
+NTSTATUS WINAPI BCryptUnregisterConfigChangeNotify(
+ PRKEVENT hEvent
+);
+*/
+
+NTSTATUS WINAPI BCryptRegisterConfigChangeNotify(
+ HANDLE *phEvent
+);
+
+NTSTATUS WINAPI BCryptUnregisterConfigChangeNotify(
+ HANDLE hEvent
+);
+
+NTSTATUS WINAPI BCryptRemoveContextFunction(
+ ULONG dwTable,
+ LPCWSTR pszContext,
+ ULONG dwInterface,
+ LPCWSTR pszFunction
+);
+
+NTSTATUS WINAPI BCryptResolveProviders(
+ LPCWSTR pszContext,
+ ULONG dwInterface,
+ LPCWSTR pszFunction,
+ LPCWSTR pszProvider,
+ ULONG dwMode,
+ ULONG dwFlags,
+ ULONG *pcbBuffer,
+ PCRYPT_PROVIDER_REFS *ppBuffer
+);
+
+NTSTATUS WINAPI BCryptSecretAgreement(
+ BCRYPT_KEY_HANDLE hPrivKey,
+ BCRYPT_KEY_HANDLE hPubKey,
+ BCRYPT_SECRET_HANDLE *phSecret,
+ ULONG dwFlags
+);
+
+NTSTATUS WINAPI BCryptSetContextFunctionProperty(
+ ULONG dwTable,
+ LPCWSTR pszContext,
+ ULONG dwInterface,
+ LPCWSTR pszFunction,
+ LPCWSTR pszProperty,
+ ULONG cbValue,
+ PUCHAR pbValue
+);
+
+NTSTATUS WINAPI BCryptSetProperty(
+ BCRYPT_HANDLE hObject,
+ LPCWSTR pszProperty,
+ PUCHAR pbInput,
+ ULONG cbInput,
+ ULONG dwFlags
+);
+
+NTSTATUS WINAPI BCryptSignHash(
+ BCRYPT_KEY_HANDLE hKey,
+ VOID *pPaddingInfo,
+ PBYTE pbInput,
+ DWORD cbInput,
+ PBYTE pbOutput,
+ DWORD cbOutput,
+ DWORD *pcbResult,
+ ULONG dwFlags
+);
+
+NTSTATUS WINAPI BCryptVerifySignature(
+ BCRYPT_KEY_HANDLE hKey,
+ VOID *pPaddingInfo,
+ PUCHAR pbHash,
+ ULONG cbHash,
+ PUCHAR pbSignature,
+ ULONG cbSignature,
+ ULONG dwFlags
+);
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_BCRYPT*/
diff --git a/mingw-w64-headers/include/bluetoothapis.h b/mingw-w64-headers/include/bluetoothapis.h
new file mode 100644
index 0000000..a433e17
--- /dev/null
+++ b/mingw-w64-headers/include/bluetoothapis.h
@@ -0,0 +1,431 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_BLUETOOTHAPIS
+#define _INC_BLUETOOTHAPIS
+
+#include <_mingw.h>
+#include <bthsdpdef.h>
+
+#define BLUETOOTH_MAX_NAME_SIZE 248
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef LPVOID HBLUETOOTH_DEVICE_FIND;
+
+typedef struct _BLUETOOTH_ADDRESS {
+ __MINGW_EXTENSION union {
+ BTH_ADDR ullLong;
+ BYTE rgBytes[6];
+ };
+} BLUETOOTH_ADDRESS;
+
+typedef struct _BLUETOOTH_COD_PAIRS {
+ ULONG ulCODMask;
+ LPCWSTR pcszDescription;
+} BLUETOOTH_COD_PAIRS;
+
+typedef struct _BLUETOOTH_DEVICE_INFO {
+ DWORD dwSize;
+ BLUETOOTH_ADDRESS Address;
+ ULONG ulClassofDevice;
+ WINBOOL fConnected;
+ WINBOOL fRemembered;
+ WINBOOL fAuthenticated;
+ SYSTEMTIME stLastSeen;
+ SYSTEMTIME stLastUsed;
+ WCHAR szName[BLUETOOTH_MAX_NAME_SIZE];
+} BLUETOOTH_DEVICE_INFO, *PBLUETOOTH_DEVICE_INFO;
+
+typedef struct _BLUETOOTH_DEVICE_SEARCH_PARAMS {
+ DWORD dwSize;
+ WINBOOL fReturnAuthenticated;
+ WINBOOL fReturnRemembered;
+ WINBOOL fReturnUnknown;
+ WINBOOL fReturnConnected;
+ WINBOOL fIssueInquiry;
+ UCHAR cTimeoutMultiplier;
+ HANDLE hRadio;
+} BLUETOOTH_DEVICE_SEARCH_PARAMS;
+
+typedef struct _BLUETOOTH_FIND_RADIO_PARAMS {
+ DWORD dwSize;
+} BLUETOOTH_FIND_RADIO_PARAMS;
+
+typedef struct {
+ DWORD dwSize;
+ BLUETOOTH_ADDRESS address;
+ WCHAR szName[BLUETOOTH_MAX_NAME_SIZE];
+ ULONG ulClassofDevice;
+ USHORT lmpSubversion;
+ USHORT manufacturer;
+} BLUETOOTH_RADIO_INFO;
+
+typedef struct _BTH_DEVICE_INFO {
+ ULONG flags;
+ BTH_ADDR address;
+ BTH_COD classOfDevice;
+ CHAR name[BTH_MAX_NAME_SIZE];
+} BTH_DEVICE_INFO, *PBTH_DEVICE_INFO;
+
+typedef struct _BTH_HCI_EVENT_INFO {
+ BTH_ADDR bthAddress;
+ UCHAR connectionType;
+ UCHAR connected;
+} BTH_HCI_EVENT_INFO, *PBTH_HCI_EVENT_INFO;
+
+typedef enum _BLUETOOTH_AUTHENTICATION_METHOD {
+ BLUETOOTH_AUTHENTICATION_METHOD_LEGACY = 0x1,
+ BLUETOOTH_AUTHENTICATION_METHOD_OOB,
+ BLUETOOTH_AUTHENTICATION_METHOD_NUMERIC_COMPARISON,
+ BLUETOOTH_AUTHENTICATION_METHOD_PASSKEY_NOTIFICATION,
+ BLUETOOTH_AUTHENTICATION_METHOD_PASSKEY
+} BLUETOOTH_AUTHENTICATION_METHOD;
+
+typedef enum _BLUETOOTH_IO_CAPABILITY {
+ BLUETOOTH_IO_CAPABILITY_DISPLAYONLY = 0x00,
+ BLUETOOTH_IO_CAPABILITY_DISPLAYYESNO = 0x01,
+ BLUETOOTH_IO_CAPABILITY_KEYBOARDONLY = 0x02,
+ BLUETOOTH_IO_CAPABILITY_NOINPUTNOOUTPUT = 0x03,
+ BLUETOOTH_IO_CAPABILITY_UNDEFINED = 0xff
+} BLUETOOTH_IO_CAPABILITY;
+
+typedef enum _AUTHENTICATION_REQUIREMENTS {
+ MITMProtectionNotRequired = 0x00,
+ MITMProtectionRequired = 0x01,
+ MITMProtectionNotRequiredBonding = 0x02,
+ MITMProtectionRequiredBonding = 0x03,
+ MITMProtectionNotRequiredGeneralBonding = 0x04,
+ MITMProtectionRequiredGeneralBonding = 0x05,
+ MITMProtectionNotDefined = 0xff
+} AUTHENTICATION_REQUIREMENTS;
+
+typedef struct _BLUETOOTH_AUTHENTICATION_CALLBACK_PARAMS {
+ BLUETOOTH_DEVICE_INFO deviceInfo;
+ BLUETOOTH_AUTHENTICATION_METHOD authenticationMethod;
+ BLUETOOTH_IO_CAPABILITY ioCapability;
+ BLUETOOTH_AUTHENTICATION_REQUIREMENTS authenticationRequirements;
+ __MINGW_EXTENSION union {
+ ULONG Numeric_Value;
+ ULONG Passkey;
+ } ;
+} BLUETOOTH_AUTHENTICATION_CALLBACK_PARAMS, *PBLUETOOTH_AUTHENTICATION_CALLBACK_PARAMS;
+
+typedef struct _BLUETOOTH_AUTHENTICATE_RESPONSE {
+ BLUETOOTH_ADDRESS bthAddressRemote;
+ BLUETOOTH_AUTHENTICATION_METHOD authMethod;
+ __MINGW_EXTENSION union {
+ BLUETOOTH_PIN_INFO pinInfo;
+ BLUETOOTH_OOB_DATA oobInfo;
+ BLUETOOTH_NUMERIC_COMPARISON_INFO numericCompInfo;
+ BLUETOOTH_PASSKEY_INFO passkeyInfo;
+ };
+ UCHAR negativeResponse;
+} BLUETOOTH_AUTHENTICATE_RESPONSE, *PBLUETOOTH_AUTHENTICATE_RESPONSE;
+
+typedef struct _SPD_ELEMENT_DATA {
+ SDP_TYPE type;
+ SDP_SPECIFICTYPE specificType;
+ __MINGW_EXTENSION union {
+ SDP_LARGE_INTEGER_16 int128;
+ LONGLONG int64;
+ LONG int32;
+ SHORT int16;
+ CHAR int8;
+ SDP_ULARGE_INTEGER_16 uint128;
+ ULONGLONG uint64;
+ ULONG uint32;
+ USHORT uint16;
+ UCHAR uint8;
+ UCHAR booleanVal;
+ GUID uuid128;
+ ULONG uuid32;
+ USHORT uuid16;
+ __MINGW_EXTENSION struct {
+ LPBYTE value;
+ ULONG length;
+ } string;
+ __MINGW_EXTENSION struct {
+ LPBYTE value;
+ ULONG length;
+ } url;
+ __MINGW_EXTENSION struct {
+ LPBYTE value;
+ ULONG length;
+ } sequence;
+ __MINGW_EXTENSION struct {
+ LPBYTE value;
+ ULONG length;
+ } alternative;
+ } data;
+} SDP_ELEMENT_DATA, *PSDP_ELEMENT_DATA;
+
+typedef struct _SDP_STRING_TYPE_DATA {
+ USHORT encoding;
+ USHORT mibeNum;
+ USHORT attributeID;
+} SDP_STRING_TYPE_DATA, *PSDP_STRING_TYPE_DATA;
+
+typedef struct _BLUETOOTH_AUTHENTICATE_RESPONSE {
+ BLUETOOTH_ADDRESS bthAddressRemote;
+ BLUETOOTH_AUTHENTICATION_METHOD authMethod;
+ __MINGW_EXTENSION union {
+ BLUETOOTH_PIN_INFO pinInfo;
+ BLUETOOTH_OOB_DATA oobInfo;
+ BLUETOOTH_NUMERIC_COMPARISON_INFO numericCompInfo;
+ BLUETOOTH_PASSKEY_INFO passkeyInfo;
+ };
+ UCHAR negativeResponse;
+} BLUETOOTH_AUTHENTICATE_RESPONSE, *PBLUETOOTH_AUTHENTICATE_RESPONSE;
+
+#define BTH_MAX_PIN_SIZE 16
+typedef struct _BLUETOOTH_PIN_INFO {
+ UCHAR pin[BTH_MAX_PIN_SIZE];
+ UCHAR pinLength;
+} BLUETOOTH_PIN_INFO, *PBLUETOOTH_PIN_INFO;
+
+typedef struct _BLUETOOTH_PASSKEY_INFO {
+ ULONG passkey;
+} BLUETOOTH_PASSKEY_INFO, *PBLUETOOTH_PASSKEY_INFO;
+
+typedef struct _BLUETOOTH_OOB_DATA_INFO {
+ UCHAR C[16];
+ UCHAR R[16];
+} BLUETOOTH_OOB_DATA_INFO, *PBLUETOOTH_OOB_DATA_INFO;
+
+typedef struct _BLUETOOTH_NUMERIC_COMPARISON_INFO {
+ ULONG NumericValue;
+} BLUETOOTH_NUMERIC_COMPARISON_INFO, *PBLUETOOTH_NUMERIC_COMPARISON_INFO;
+
+typedef WINBOOL (*PFN_DEVICE_CALLBACK)(LPVOID pvParam,PBLUETOOTH_DEVICE_INFO pDevice);
+typedef WINBOOL (*CALLBACK PFN_AUTHENTICATION_CALLBACK_EX)(LPVOID pvParam,PBLUETOOTH_AUTHENTICATION_CALLBACK_PARAMS pAuthCallbackParams);
+typedef WINBOOL (*PFN_AUTHENTICATION_CALLBACK)(LPVOID pvParam,PBLUETOOTH_DEVICE_INFO pDevice);
+typedef WINBOOL (*PFN_BLUETOOTH_ENUM_ATTRIBUTES_CALLBACK)(ULONG uAttribId,LPBYTE pValueStream,ULONG cbStreamSize,LPVOID pvParam);
+
+typedef struct _BLUETOOTH_SELECT_DEVICE_PARAMS {
+ DWORD dwSize;
+ ULONG cNumOfClasses;
+ BLUETOOTH_COD_PAIRS *prgClassOfDevices;
+ LPWSTR pszInfo;
+ HWND hwndParent;
+ BOOL fForceAuthentication;
+ BOOL fShowAuthenticated;
+ BOOL fShowRemembered;
+ BOOL fShowUnknown;
+ BOOL fAddNewDeviceWizard;
+ BOOL fSkipServicesPage;
+ PFN_DEVICE_CALLBACK pfnDeviceCallback;
+ LPVOID pvParam;
+ DWORD cNumDevices;
+ PBLUETOOTH_DEVICE_INFO pDevices;
+} BLUETOOTH_SELECT_DEVICE_PARAMS;
+
+DWORD WINAPI BluetoothAuthenticateMultipleDevices(
+ HWND hwndParent,
+ HANDLE hRadio,
+ DWORD cDevices,
+ BLUETOOTH_DEVICE_INFO *pbtdi
+);
+
+HRESULT WINAPI BluetoothAuthenticateDeviceEx(
+ HWND hwndParentIn,
+ HANDLE hRadioIn,
+ BLUETOOTH_DEVICE_INFO *pbtdiInout,
+ PBTH_OOB_DATA pbtOobData,
+ BLUETOOTH_AUTHENTICATION_REQUIREMENTS authenticationRequirement
+);
+
+WINBOOL WINAPI BluetoothDisplayDeviceProperties(
+ HWND hwndParent,
+ BLUETOOTH_DEVICE_INFO *pbtdi
+);
+
+WINBOOL WINAPI BluetoothEnableDiscovery(
+ HANDLE hRadio,
+ WINBOOL fEnabled
+);
+
+WINBOOL WINAPI BluetoothEnableIncomingConnections(
+ HANDLE hRadio,
+ WINBOOL fEnabled
+);
+
+DWORD WINAPI BluetoothEnumerateInstalledServices(
+ HANDLE hRadio,
+ BLUETOOTH_DEVICE_INFO *pbtdi,
+ DWORD *pcServices,
+ GUID *pGuidServices
+);
+
+WINBOOL WINAPI BluetoothFindDeviceClose(
+ HBLUETOOTH_DEVICE_FIND hFind
+);
+
+HBLUETOOTH_DEVICE_FIND WINAPI BluetoothFindFirstDevice(
+ BLUETOOTH_DEVICE_SEARCH_PARAMS *pbtsp,
+ BLUETOOTH_DEVICE_INFO *pbtdi
+);
+
+HBLUETOOTH_RADIO_FIND WINAPI BluetoothFindFirstRadio(
+ BLUETOOTH_FIND_RADIO_PARAMS *pbtfrp,
+ HANDLE *phRadio
+);
+
+WINBOOL WINAPI BluetoothFindNextDevice(
+ HBLUETOOTH_DEVICE_FIND hFind,
+ BLUETOOTH_DEVICE_INFO *pbtdi
+);
+
+WINBOOL WINAPI BluetoothFindNextRadio(
+ HBLUETOOTH_RADIO_FIND hFind,
+ HANDLE *phRadio
+);
+
+WINBOOL WINAPI BluetoothFindRadioClose(
+ HBLUETOOTH_RADIO_FIND hFind
+);
+
+DWORD WINAPI BluetoothGetDeviceInfo(
+ HANDLE hRadio,
+ BLUETOOTH_DEVICE_INFO *pbtdi
+);
+
+DWORD WINAPI BluetoothGetRadioInfo(
+ HANDLE hRadio,
+ PBLUETOOTH_RADIO_INFO pRadioInfo
+);
+
+WINBOOL WINAPI BluetoothIsDiscoverable(
+ HANDLE hRadio
+);
+
+WINBOOL WINAPI BluetoothIsConnectable(
+ HANDLE hRadio
+);
+
+DWORD WINAPI BluetoothRegisterForAuthentication(
+ BLUETOOTH_DEVICE_INFO *pbtdi,
+ HBLUETOOTH_AUTHENTICATION_REGISTRATION *phRegHandle,
+ PFN_AUTHENTICATION_CALLBACK pfnCallback,
+ PVOID pvParam
+);
+
+HRESULT WINAPI BluetoothRegisterForAuthenticationEx(
+ const BLUETOOTH_DEVICE_INFO *pbtdiln,
+ HBLUETOOTH_AUTHENTICATION_REGISTRATION *phRegHandleOut,
+ PFN_AUTHENTICATION_CALLBACK_EX pfnCallbackIn,
+ PVOID pvParam
+);
+
+DWORD WINAPI BluetoothRemoveDevice(
+ BLUETOOTH_ADDRESS *pAddress
+);
+
+WINBOOL WINAPI BluetoothSdpEnumAttributes(
+ LPBYTE pSDPStream,
+ ULONG cbStreamSize,
+ PFN_BLUETOOTH_ENUM_ATTRIBUTES_CALLBACK pfnCallback,
+ LPVOID pvParam
+);
+
+DWORD WINAPI BluetoothSdpGetAttributeValue(
+ LPBYTE pRecordStream,
+ ULONG cbRecordLength,
+ USHORT usAttributeId,
+ PSDP_ELEMENT_DATA pAttributeData
+);
+
+DWORD WINAPI BluetoothSdpGetContainerElementData(
+ LPBYTE pContainerStream,
+ ULONG cbContainerLength,
+ HBLUETOOTH_CONTAINER_ELEMENT *pElement,
+ PSDP_ELEMENT_DATA pData
+);
+
+DWORD BluetoothSdpGetElementData(
+ LPBYTE pSdpStream,
+ ULONG cbSpdStreamLength,
+ PSDP_ELEMENT_DATA pData
+);
+
+DWORD BluetoothSdpGetString(
+ LPBYTE pRecordStream,
+ ULONG cbRecordLength,
+ PSDP_STRING_DATA_TYPE pStringData,
+ USHORT usStringOffset,
+ PWCHAR pszString,
+ PULONG pcchStringLength
+);
+
+WINBOOL WINAPI BluetoothSelectDevices(
+ BLUETOOTH_SELECT_DEVICE_PARAMS *pbtsdp
+);
+
+WINBOOL WINAPI BluetoothSelectDevicesFree(
+ BLUETOOTH_SELECT_DEVICE_PARAMS *pbtsdp
+);
+
+DWORD WINAPI BluetoothSendAuthenticationResponse(
+ HANDLE hRadio,
+ BLUETOOTH_DEVICE_INFO *pbtdi,
+ LPWSTR pszPasskey
+);
+
+HRESULT WINAPI BluetoothSendAuthenticationResponseEx(
+ HANDLE hRadioIn,
+ PBLUETOOTH_AUTHENTICATE_RESPONSE pauthResponse
+);
+
+DWORD WINAPI BluetoothSetLocalServiceInfo(
+ HANDLE hRadioIn,
+ const GUID *pClassGuid,
+ ULONG ulInstance,
+ const BLUETOOTH_LOCAL_SERVICE_INFO *pServiceInfoIn
+);
+
+DWORD WINAPI BluetoothSetServiceState(
+ HANDLE hRadio,
+ BLUETOOTH_DEVICE_INFO *pbtdi,
+ GUID *pGuidService,
+ DWORD dwServiceFlags
+);
+
+WINBOOL WINAPI BluetoothUnregisterAuthentication(
+ HBLUETOOTH_AUTHENTICATION_REGISTRATION hRegHandle
+);
+
+DWORD WINAPI BluetoothUpdateDeviceRecord(
+ BLUETOOTH_DEVICE_INFO *pbtdi
+);
+
+#if (_WIN32_WINNT >= 0x0600)
+
+typedef struct _BLUETOOTH_LOCAL_SERVICE_INFO {
+ BOOL Enabled;
+ BLUETOOTH_ADDRESS btAddr;
+ WCHAR szName[BLUETOOTH_MAX_SERVICE_NAME_SIZE];
+ WCHAR szDeviceString[BLUETOOTH_DEVICE_NAME_SIZE];
+} BLUETOOTH_LOCAL_SERVICE_INFO;
+
+typedef enum AUTHENTICATION_REQUIREMENTS {
+ MITMProtectionNotRequired = 0x00,
+ MITMProtectionRequired = 0x01,
+ MITMProtectionNotRequiredBonding = 0x02,
+ MITMProtectionRequiredBonding = 0x03,
+ MITMProtectionNotRequiredGeneralBonding = 0x04,
+ MITMProtectionRequiredGeneralBonding = 0x05,
+ MITMProtectionNotDefined = 0xff
+} AUTHENTICATION_REQUIREMENTS;
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*_INC_BLUETOOTHAPIS*/
+
diff --git a/mingw-w64-headers/include/bthsdpdef.h b/mingw-w64-headers/include/bthsdpdef.h
new file mode 100644
index 0000000..19340b9
--- /dev/null
+++ b/mingw-w64-headers/include/bthsdpdef.h
@@ -0,0 +1,39 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_BTHSDPDEF
+#define _INC_BTHSDPDEF
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef union SdpQueryUuidUnion {
+ GUID uuid128;
+ ULONG uuid32;
+ USHORT uuid16;
+} SdpQueryUuidUnion;
+
+typedef struct _SdpAttributeRange {
+ USHORT minAttribute;
+ USHORT maxAttribute;
+} SdpAttributeRange;
+
+typedef struct _SdpQueryUuid {
+ SdpQueryUuidUnion u;
+ USHORT uuidType;
+} SdpQueryUuid;
+
+typedef struct _BTH_L2CAP_EVENT_INFO {
+ BTH_ADDR bthAddress;
+ USHORT psm;
+ UCHAR connected;
+ UCHAR initiated;
+} BTH_L2CAP_EVENT_INFO, *PBTH_L2CAP_EVENT_INFO;
+
+#ifdef __cplusplus
+}
+#endif
+#endif /*_INC_BTHSDPDEF*/
diff --git a/mingw-w64-headers/include/cardmod.h b/mingw-w64-headers/include/cardmod.h
new file mode 100644
index 0000000..0575a20
--- /dev/null
+++ b/mingw-w64-headers/include/cardmod.h
@@ -0,0 +1,414 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+
+#ifndef _INC_CARDMOD
+#define _INC_CARDMOD
+#include <wincrypt.h>
+
+#define CARD_BUFFER_SIZE_ONLY 0x20000000
+#define CARD_PADDING_INFO_PRESENT 0x40000000
+
+#define CARD_PADDING_NONE 0
+#define CARD_PADDING_PKCS1 1
+#define CARD_PADDING_PSS 4
+
+#define CARD_CREATE_CONTAINER_KEY_GEN 1
+#define CARD_CREATE_CONTAINER_KEY_IMPORT 2
+
+#define AT_KEYEXCHANGE 1
+#define AT_SIGNATURE 2
+#define AT_ECDSA_P256 3
+#define AT_ECDSA_P384 4
+#define AT_ECDSA_P521 5
+#define AT_ECDHE_P256 6
+#define AT_ECDHE_P384 7
+#define AT_ECDHE_P521 8
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum _CARD_DIRECTORY_ACCESS_CONDITION {
+ DInvalidAc = 0, /*Fixme: Should be InvalidAc, conflict with CARD_FILE_ACCESS_CONDITION*/
+ UserCreateDeleteDirAc = 1,
+ AdminCreateDeleteDirAc = 2
+} CARD_DIRECTORY_ACCESS_CONDITION;
+
+typedef enum _CARD_FILE_ACCESS_CONDITION {
+ FInvalidAc = 0, /*Fixme: Should be InvalidAc, conflict with CARD_DIRECTORY_ACCESS_CONDITION*/
+ EveryoneReadUserWriteAc = 1,
+ UserWriteExecuteAc = 2,
+ EveryoneReadAdminWriteAc = 3,
+ UnknownAc = 4
+} CARD_FILE_ACCESS_CONDITION;
+
+typedef struct _CARD_SIGNING_INFO {
+ DWORD dwVersion;
+ BYTE bContainerIndex;
+ DWORD dwKeySpec;
+ DWORD dwSigningFlags;
+ ALG_ID aiHashAlg;
+ PBYTE pbData;
+ DWORD cbData;
+ PBYTE pbSignedData;
+ DWORD cbSignedData;
+ LPVOID pPaddingInfo;
+ DWORD dwPaddingType;
+} CARD_SIGNING_INFO, *PCARD_SIGNING_INFO;
+
+typedef struct _CARD_CAPABILITIES {
+ DWORD dwVersion;
+ WINBOOL fCertificateCompression;
+ WINBOOL fKeyGen;
+} CARD_CAPABILITIES, *PCARD_CAPABILITIES;
+
+typedef struct _CONTAINER_INFO {
+ DWORD dwVersion;
+ DWORD dwReserved;
+ DWORD cbSigPublicKey;
+ PBYTE pbSigPublicKey;
+ DWORD cbKeyExPublicKey;
+ PBYTE pbKeyExPublicKey;
+} CONTAINER_INFO, *PCONTAINER_INFO;
+
+typedef LPVOID ( WINAPI *PFN_CSP_ALLOC )(SIZE_T Size);
+typedef LPVOID ( WINAPI *PFN_CSP_REALLOC )(LPVOID Address,SIZE_T Size);
+typedef VOID ( WINAPI *PFN_CSP_FREE )(LPVOID Address);
+typedef DWORD ( WINAPI *PFN_CSP_CACHE_ADD_FILE )(
+ PVOID pvCacheContext,
+ LPWSTR wszTag,
+ DWORD dwFlags,
+ PBYTE pbData,
+ DWORD cbData
+);
+
+typedef DWORD ( WINAPI *PFN_CSP_CACHE_LOOKUP_FILE )(
+ PVOID pvCacheContext,
+ LPWSTR wszTag,
+ DWORD dwFlags,
+ PBYTE *ppbData,
+ PDWORD pcbData
+);
+
+typedef DWORD ( WINAPI *PFN_CSP_CACHE_DELETE_FILE )(
+ PVOID pvCacheContext,
+ LPWSTR wszTag,
+ DWORD dwFlags
+);
+
+typedef DWORD ( WINAPI *PFN_CSP_PAD_DATA )(
+ PCARD_SIGNING_INFO pSigningInfo,
+ DWORD cbMaxWidth,
+ DWORD *pcbPaddedBuffer,
+ PBYTE *ppbPaddedBuffer
+);
+
+typedef struct _CARD_DERIVE_KEY {
+ DWORD dwVersion;
+ DWORD dwFlags;
+ LPCWSTR pwszKDF;
+ BYTE bSecretAgreementIndex;
+ PVOID pParameterList;
+ PUCHAR pbDerivedKey;
+ DWORD cbDerivedKey;
+} CARD_DERIVE_KEY, *PCARD_DERIVE_KEY;
+
+typedef struct _CARD_FILE_INFO {
+ DWORD dwVersion;
+ DWORD cbFileSize;
+ CARD_FILE_ACCESS_CONDITION AccessCondition;
+} CARD_FILE_INFO, *PCARD_FILE_INFO;
+
+typedef struct _CARD_FREE_SPACE_INFO {
+ DWORD dwVersion;
+ DWORD dwBytesAvailable;
+ DWORD dwKeyContainersAvailable;
+ DWORD dwMaxKeyContainers;
+} CARD_FREE_SPACE_INFO, *PCARD_FREE_SPACE_INFO;
+
+typedef struct _CARD_RSA_DECRYPT_INFO {
+ DWORD dwVersion;
+ BYTE bContainerIndex;
+ DWORD dwKeySpec;
+ PBYTE pbData;
+ DWORD cbData;
+} CARD_RSA_DECRYPT_INFO, *PCARD_RSA_DECRYPT_INFO;
+
+typedef struct _CARD_DH_AGREEMENT_INFO {
+ DWORD dwVersion;
+ BYTE bContainerIndex;
+ DWORD dwFlags;
+ DWORD dwPublicKey;
+ PBYTE pbPublicKey;
+ PBYTE pbReserved;
+ DWORD cbReserved;
+ BYTE bSecretAgreementIndex;
+} CARD_DH_AGREEMENT_INFO, *PCARD_DH_AGREEMENT_INFO;
+
+typedef struct _CARD_KEY_SIZES {
+ DWORD dwVersion;
+ DWORD dwMinimumBitlen;
+ DWORD dwMaximumBitlen;
+ DWORD dwIncrementalBitlen;
+} CARD_KEY_SIZES, *PCARD_KEY_SIZES;
+
+typedef struct _CARD_DATA *PCARD_DATA;
+
+typedef DWORD (WINAPI *PFN_CARD_DELETE_CONTEXT)(
+ PCARD_DATA pCardData
+);
+
+typedef DWORD (WINAPI *PFN_CARD_QUERY_CAPABILITIES)(
+ PCARD_DATA pCardData,
+ PCARD_CAPABILITIES pCardCapabilities
+);
+
+typedef DWORD (WINAPI *PFN_CARD_DELETE_CONTAINER)(
+ PCARD_DATA pCardData,
+ BYTE bContainerIndex,
+ DWORD dwReserved
+);
+
+typedef DWORD (WINAPI *PFN_CARD_CREATE_CONTAINER)(
+ PCARD_DATA pCardData,
+ BYTE bContainerIndex,
+ DWORD dwFlags,
+ DWORD dwKeySpec,
+ DWORD dwKeySize,
+ PBYTE pbKeyData
+);
+
+typedef DWORD (WINAPI *PFN_CARD_GET_CONTAINER_INFO)(
+ PCARD_DATA pCardData,
+ BYTE bContainerIndex,
+ DWORD dwFlags,
+ PCONTAINER_INFO pContainerInfo
+);
+
+typedef DWORD (WINAPI *PFN_CARD_AUTHENTICATE_PIN)(
+ PCARD_DATA pCardData,
+ LPWSTR pwszUserId,
+ PBYTE pbPin,
+ DWORD cbPin,
+ PDWORD pcAttemptsRemaining
+);
+
+typedef DWORD (WINAPI *PFN_CARD_GET_CHALLENGE)(
+ PCARD_DATA pCardData,
+ PBYTE *ppbChallengeData,
+ PDWORD pcbChallengeData
+);
+
+typedef DWORD (WINAPI *PFN_CARD_AUTHENTICATE_CHALLENGE)(
+ PCARD_DATA pCardData,
+ PBYTE pbResponseData,
+ DWORD cbResponseData,
+ PDWORD pcAttemptsRemaining
+);
+
+typedef DWORD (WINAPI *PFN_CARD_UNBLOCK_PIN)(
+ PCARD_DATA pCardData,
+ LPWSTR pwszUserId,
+ PBYTE pbAuthenticationData,
+ DWORD cbAuthenticationData,
+ PBYTE pbNewPinData,
+ DWORD cbNewPinData,
+ DWORD cRetryCount,
+ DWORD dwFlags
+);
+
+typedef DWORD (WINAPI *PFN_CARD_CHANGE_AUTHENTICATOR)(
+ PCARD_DATA pCardData,
+ LPWSTR pwszUserId,
+ PBYTE pbCurrentAuthenticator,
+ DWORD cbCurrentAuthenticator,
+ PBYTE pbNewAuthenticator,
+ DWORD cbNewAuthenticator,
+ DWORD cRetryCount,
+ DWORD dwFlags,
+ PDWORD pcAttemptsRemaining
+);
+
+typedef DWORD (WINAPI *PFN_CARD_DEAUTHENTICATE)(
+ PCARD_DATA pCardData,
+ LPWSTR pwszUserId,
+ DWORD dwFlags
+);
+
+typedef DWORD (WINAPI *PFN_CARD_CREATE_DIRECTORY)(
+ PCARD_DATA pCardData,
+ LPSTR pszDirectory,
+ CARD_DIRECTORY_ACCESS_CONDITION AccessCondition
+);
+
+typedef DWORD (WINAPI *PFN_CARD_DELETE_DIRECTORY)(
+ PCARD_DATA pCardData,
+ LPSTR pszDirectoryName
+);
+
+typedef DWORD (WINAPI *PFN_CARD_CREATE_FILE)(
+ PCARD_DATA pCardData,
+ LPSTR pszDirectoryName,
+ LPSTR pszFileName,
+ DWORD cbInitialCreationSize,
+ CARD_FILE_ACCESS_CONDITION AccessCondition
+);
+
+typedef DWORD (WINAPI *PFN_CARD_READ_FILE)(
+ PCARD_DATA pCardData,
+ LPSTR pszDirectoryName,
+ LPSTR pszFileName,
+ DWORD dwFlags,
+ PBYTE *ppbData,
+ PDWORD pcbData
+);
+
+typedef DWORD (WINAPI *PFN_CARD_WRITE_FILE)(
+ PCARD_DATA pCardData,
+ LPSTR pszDirectoryName,
+ LPSTR pszFileName,
+ DWORD dwFlags,
+ PBYTE pbData,
+ DWORD cbData
+);
+
+typedef DWORD (WINAPI *PFN_CARD_DELETE_FILE)(
+ PCARD_DATA pCardData,
+ LPSTR pszDirectoryName,
+ LPSTR pszFileName,
+ DWORD dwFlags
+);
+
+typedef DWORD (WINAPI *PFN_CARD_ENUM_FILES)(
+ PCARD_DATA pCardData,
+ LPSTR pszDirectoryName,
+ LPSTR *pmszFileNames,
+ LPDWORD pdwcbFileName,
+ DWORD dwFlags
+);
+
+typedef DWORD (WINAPI *PFN_CARD_GET_FILE_INFO)(
+ PCARD_DATA pCardData,
+ LPSTR pszDirectoryName,
+ LPSTR pszFileName,
+ PCARD_FILE_INFO pCardFileInfo
+);
+
+typedef DWORD (WINAPI *PFN_CARD_QUERY_FREE_SPACE)(
+ PCARD_DATA pCardData,
+ DWORD dwFlags,
+ PCARD_FREE_SPACE_INFO pCardFreeSpaceInfo
+);
+
+typedef DWORD (WINAPI *PFN_CARD_QUERY_KEY_SIZES)(
+ PCARD_DATA pCardData,
+ DWORD dwKeySpec,
+ DWORD dwFlags,
+ PCARD_KEY_SIZES pKeySizes
+);
+
+typedef DWORD (WINAPI *PFN_CARD_SIGN_DATA)(
+ PCARD_DATA pCardData,
+ PCARD_SIGNING_INFO pInfo
+);
+
+typedef DWORD (WINAPI *PFN_CARD_RSA_DECRYPT)(
+ PCARD_DATA pCardData,
+ PCARD_RSA_DECRYPT_INFO pInfo
+);
+
+typedef DWORD (WINAPI *PFN_CARD_CONSTRUCT_DH_AGREEMENT)(
+ PCARD_DATA pCardData,
+ PCARD_DH_AGREEMENT_INFO pAgreementInfo
+);
+
+#if (_WIN32_WINNT >= 0x0600)
+typedef DWORD (WINAPI *PFN_CARD_DERIVE_KEY)(
+ PCARD_DATA pCardData,
+ PCARD_DERIVE_KEY pAgreementInfo
+);
+
+typedef DWORD (WINAPI *PFN_CARD_DESTROY_DH_AGREEMENT)(
+ PCARD_DATA pCardData,
+ BYTE bSecretAgreementIndex,
+ DWORD dwFlags
+);
+
+typedef DWORD (WINAPI *PFN_CSP_GET_DH_AGREEMENT)(
+ PCARD_DATA pCardData,
+ PVOID hSecretAgreement,
+ BYTE *pbSecretAgreementIndex,
+ DWORD dwFlags
+);
+
+#else
+typedef LPVOID PFN_CARD_DERIVE_KEY;
+typedef LPVOID PFN_CARD_DESTROY_DH_AGREEMENT;
+typedef LPVOID PFN_CSP_GET_DH_AGREEMENT;
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
+typedef struct _CARD_DATA {
+ DWORD dwVersion;
+ PBYTE pbAtr;
+ DWORD cbAtr;
+ LPWSTR pwszCardName;
+ PFN_CSP_ALLOC pfnCspAlloc;
+ PFN_CSP_REALLOC pfnCspReAlloc;
+ PFN_CSP_FREE pfnCspFree;
+ PFN_CSP_CACHE_ADD_FILE pfnCspCacheAddFile;
+ PFN_CSP_CACHE_LOOKUP_FILE pfnCspCacheLookupFile;
+ PFN_CSP_CACHE_DELETE_FILE pfnCspCacheDeleteFile;
+ PVOID pvCacheContext;
+ PFN_CSP_PAD_DATA pfnCspPadData;
+ SCARDCONTEXT hSCardCtx;
+ SCARDHANDLE hScard;
+ PVOID pvVendorSpecific;
+ PFN_CARD_DELETE_CONTEXT pfnCardDeleteContext;
+ PFN_CARD_QUERY_CAPABILITIES pfnCardQueryCapabilities;
+ PFN_CARD_DELETE_CONTAINER pfnCardDeleteContainer;
+ PFN_CARD_CREATE_CONTAINER pfnCardCreateContainer;
+ PFN_CARD_GET_CONTAINER_INFO pfnCardGetContainerInfo;
+ PFN_CARD_AUTHENTICATE_PIN pfnCardAuthenticatePin;
+ PFN_CARD_GET_CHALLENGE pfnCardGetChallenge;
+ PFN_CARD_AUTHENTICATE_CHALLENGE pfnCardAuthenticateChallenge;
+ PFN_CARD_UNBLOCK_PIN pfnCardUnblockPin;
+ PFN_CARD_CHANGE_AUTHENTICATOR pfnCardChangeAuthenticator;
+ PFN_CARD_DEAUTHENTICATE pfnCardDeauthenticate;
+ PFN_CARD_CREATE_DIRECTORY pfnCardCreateDirectory;
+ PFN_CARD_DELETE_DIRECTORY pfnCardDeleteDirectory;
+ LPVOID pvUnused3;
+ LPVOID pvUnused4;
+ PFN_CARD_CREATE_FILE pfnCardCreateFile;
+ PFN_CARD_READ_FILE pfnCardReadFile;
+ PFN_CARD_WRITE_FILE pfnCardWriteFile;
+ PFN_CARD_DELETE_FILE pfnCardDeleteFile;
+ PFN_CARD_ENUM_FILES pfnCardEnumFiles;
+ PFN_CARD_GET_FILE_INFO pfnCardGetFileInfo;
+ PFN_CARD_QUERY_FREE_SPACE pfnCardQueryFreeSpace;
+ PFN_CARD_QUERY_KEY_SIZES pfnCardQueryKeySizes;
+ PFN_CARD_SIGN_DATA pfnCardSignData;
+ PFN_CARD_RSA_DECRYPT pfnCardRSADecrypt;
+ PFN_CARD_CONSTRUCT_DH_AGREEMENT pfnCardConstructDHAgreement;
+ PFN_CARD_DERIVE_KEY pfnCardDeriveKey;
+ PFN_CARD_DESTROY_DH_AGREEMENT pfnCardDestroyDHAgreement;
+ PFN_CSP_GET_DH_AGREEMENT pfnCspGetDHAgreement;
+} CARD_DATA, *PCARD_DATA;
+
+DWORD WINAPI CardAcquireContext(
+ PCARD_DATA pCardData,
+ DWORD dwFlags
+);
+
+DWORD WINAPI CardDeleteContainer(
+ PCARD_DATA pCardData,
+ BYTE bContainerIndex,
+ DWORD dwReserved
+);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /*_INC_CARDMOD*/
diff --git a/mingw-w64-headers/include/casetup.h b/mingw-w64-headers/include/casetup.h
new file mode 100644
index 0000000..60d6134
--- /dev/null
+++ b/mingw-w64-headers/include/casetup.h
@@ -0,0 +1,59 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_CASETUP
+#define _INC_CASETUP
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if (_WIN32_WINNT >= 0x0600)
+
+typedef enum _CASetupProperty {
+ ENUM_SETUPPROP_INVALID = -1,
+ ENUM_SETUPPROP_CATYPE = 0,
+ ENUM_SETUPPROP_CAKEYINFORMATION = 1,
+ ENUM_SETUPPROP_INTERACTIVE = 2,
+ ENUM_SETUPPROP_CANAME = 3,
+ ENUM_SETUPPROP_CADSSUFFIX = 4,
+ ENUM_SETUPPROP_VALIDITYPERIOD = 5,
+ ENUM_SETUPPROP_VALIDITYPERIODUNIT = 6,
+ ENUM_SETUPPROP_EXPIRATIONDATE = 7,
+ ENUM_SETUPPROP_PRESERVEDATABASE = 8,
+ ENUM_SETUPPROP_DATABASEDIRECTORY = 9,
+ ENUM_SETUPPROP_LOGDIRECTORY = 10,
+ ENUM_SETUPPROP_SHAREDFOLDER = 11,
+ ENUM_SETUPPROP_PARENTCAMACHINE = 12,
+ ENUM_SETUPPROP_PARENTCANAME = 13,
+ ENUM_SETUPPROP_REQUESTFILE = 14,
+ ENUM_SETUPPROP_WEBCAMACHINE = 15,
+ ENUM_SETUPPROP_WEBCANAME = 16
+} CASetupProperty;
+
+typedef enum _MSCEPSetupProperty {
+ ENUM_CEPSETUPPROP_USELOCALSYSTEM = 0,
+ ENUM_CEPSETUPPROP_USECHALLENGE = 1,
+ ENUM_CEPSETUPPROP_RANAME_CN = 2,
+ ENUM_CEPSETUPPROP_RANAME_EMAIL = 3,
+ ENUM_CEPSETUPPROP_RANAME_COMPANY = 4,
+ ENUM_CEPSETUPPROP_RANAME_DEPT = 5,
+ ENUM_CEPSETUPPROP_RANAME_CITY = 6,
+ ENUM_CEPSETUPPROP_RANAME_STATE = 7,
+ ENUM_CEPSETUPPROP_RANAME_COUNTRY = 8,
+ ENUM_CEPSETUPPROP_SIGNINGKEYINFORMATION = 9,
+ ENUM_CEPSETUPPROP_EXCHANGEKEYINFORMATION = 10,
+ ENUM_CEPSETUPPROP_CAINFORMATION = 11,
+ ENUM_CEPSETUPPROP_MSCEPURL = 12,
+ ENUM_CEPSETUPPROP_CHALLENGEURL = 13
+} MSCEPSetupProperty;
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*_INC_CASETUP*/
diff --git a/mingw-w64-headers/include/certca.h b/mingw-w64-headers/include/certca.h
new file mode 100644
index 0000000..5417cf2
--- /dev/null
+++ b/mingw-w64-headers/include/certca.h
@@ -0,0 +1,15 @@
+#ifndef _INC_CERTCA
+#define _INC_CERTCA
+
+typedef enum {
+ ENUM_PERIOD_INVALID = -1,
+ ENUM_PERIOD_SECONDS = 0,
+ ENUM_PERIOD_MINUTES,
+ ENUM_PERIOD_HOURS,
+ ENUM_PERIOD_DAYS,
+ ENUM_PERIOD_WEEKS,
+ ENUM_PERIOD_MONTHS,
+ ENUM_PERIOD_YEARS
+} ENUM_PERIOD;
+
+#endif /*_INC_CERTCA*/
diff --git a/mingw-w64-headers/include/certenroll.h b/mingw-w64-headers/include/certenroll.h
new file mode 100644
index 0000000..61daac0
--- /dev/null
+++ b/mingw-w64-headers/include/certenroll.h
@@ -0,0 +1,912 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_CERTENROLL
+#define _INC_CERTENROLL
+
+#if (_WIN32_WINNT >= 0x0600)
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+ typedef enum AlgorithmFlags {
+ AlgorithmFlagsNone = 0x00000000,
+ AlgorithmFlagsWrap = 0x00000001
+ } AlgorithmFlags;
+
+ typedef enum AlgorithmOperationFlags {
+ XCN_NCRYPT_NO_OPERATION = 0,
+ XCN_NCRYPT_CIPHER_OPERATION = 0x1,
+ XCN_NCRYPT_HASH_OPERATION = 0x2,
+ XCN_NCRYPT_ASYMMETRIC_ENCRYPTION_OPERATION = 0x4,
+ XCN_NCRYPT_SECRET_AGREEMENT_OPERATION = 0x8,
+ XCN_NCRYPT_SIGNATURE_OPERATION = 0x10,
+ XCN_NCRYPT_RNG_OPERATION = 0x20,
+ XCN_NCRYPT_ANY_ASYMMETRIC_OPERATION = ( ( 0x4 | 0x8 ) | 0x10 ),
+ XCN_NCRYPT_PREFER_SIGNATURE_ONLY_OPERATION = 0x00200000,
+ XCN_NCRYPT_PREFER_NON_SIGNATURE_OPERATION = 0x00400000,
+ XCN_NCRYPT_EXACT_MATCH_OPERATION = 0x00800000,
+ XCN_NCRYPT_PREFERENCE_MASK_OPERATION = 0x00e00000
+ } AlgorithmOperationFlags;
+
+ typedef enum AlgorithmType {
+ XCN_BCRYPT_UNKNOWN_INTERFACE = 0,
+ XCN_BCRYPT_SIGNATURE_INTERFACE = 0x5,
+ XCN_BCRYPT_ASYMMETRIC_ENCRYPTION_INTERFACE = 0x3,
+ XCN_BCRYPT_CIPHER_INTERFACE = 0x1,
+ XCN_BCRYPT_HASH_INTERFACE = 0x2,
+ XCN_BCRYPT_SECRET_AGREEMENT_INTERFACE = 0x4,
+ XCN_BCRYPT_RNG_INTERFACE = 0x6
+ } AlgorithmType;
+
+ typedef enum AlternativeNameType {
+ XCN_CERT_ALT_NAME_UNKNOWN = 0,
+ XCN_CERT_ALT_NAME_OTHER_NAME = 1,
+ XCN_CERT_ALT_NAME_RFC822_NAME = 2,
+ XCN_CERT_ALT_NAME_DNS_NAME = 3,
+ XCN_CERT_ALT_NAME_DIRECTORY_NAME = 5,
+ XCN_CERT_ALT_NAME_URL = 7,
+ XCN_CERT_ALT_NAME_IP_ADDRESS = 8,
+ XCN_CERT_ALT_NAME_REGISTERED_ID = 9,
+ XCN_CERT_ALT_NAME_GUID = 10,
+ XCN_CERT_ALT_NAME_USER_PRINCIPLE_NAME = 11
+ } AlternativeNameType;
+
+ typedef enum CERTENROLL_PROPERTYID {
+ XCN_PROPERTYID_NONE = 0,
+ XCN_CERT_KEY_PROV_HANDLE_PROP_ID = 1,
+ XCN_CERT_KEY_PROV_INFO_PROP_ID = 2,
+ XCN_CERT_SHA1_HASH_PROP_ID = 3,
+ XCN_CERT_MD5_HASH_PROP_ID = 4,
+ XCN_CERT_HASH_PROP_ID = 3,
+ XCN_CERT_KEY_CONTEXT_PROP_ID = 5,
+ XCN_CERT_KEY_SPEC_PROP_ID = 6,
+ XCN_CERT_IE30_RESERVED_PROP_ID = 7,
+ XCN_CERT_PUBKEY_HASH_RESERVED_PROP_ID = 8,
+ XCN_CERT_ENHKEY_USAGE_PROP_ID = 9,
+ XCN_CERT_CTL_USAGE_PROP_ID = 9,
+ XCN_CERT_NEXT_UPDATE_LOCATION_PROP_ID = 10,
+ XCN_CERT_FRIENDLY_NAME_PROP_ID = 11,
+ XCN_CERT_PVK_FILE_PROP_ID = 12,
+ XCN_CERT_DESCRIPTION_PROP_ID = 13,
+ XCN_CERT_ACCESS_STATE_PROP_ID = 14,
+ XCN_CERT_SIGNATURE_HASH_PROP_ID = 15,
+ XCN_CERT_SMART_CARD_DATA_PROP_ID = 16,
+ XCN_CERT_EFS_PROP_ID = 17,
+ XCN_CERT_FORTEZZA_DATA_PROP_ID = 18,
+ XCN_CERT_ARCHIVED_PROP_ID = 19,
+ XCN_CERT_KEY_IDENTIFIER_PROP_ID = 20,
+ XCN_CERT_AUTO_ENROLL_PROP_ID = 21,
+ XCN_CERT_PUBKEY_ALG_PARA_PROP_ID = 22,
+ XCN_CERT_CROSS_CERT_DIST_POINTS_PROP_ID = 23,
+ XCN_CERT_ISSUER_PUBLIC_KEY_MD5_HASH_PROP_ID = 24,
+ XCN_CERT_SUBJECT_PUBLIC_KEY_MD5_HASH_PROP_ID = 25,
+ XCN_CERT_ENROLLMENT_PROP_ID = 26,
+ XCN_CERT_DATE_STAMP_PROP_ID = 27,
+ XCN_CERT_ISSUER_SERIAL_NUMBER_MD5_HASH_PROP_ID = 28,
+ XCN_CERT_SUBJECT_NAME_MD5_HASH_PROP_ID = 29,
+ XCN_CERT_EXTENDED_ERROR_INFO_PROP_ID = 30,
+ XCN_CERT_RENEWAL_PROP_ID = 64,
+ XCN_CERT_ARCHIVED_KEY_HASH_PROP_ID = 65,
+ XCN_CERT_AUTO_ENROLL_RETRY_PROP_ID = 66,
+ XCN_CERT_AIA_URL_RETRIEVED_PROP_ID = 67,
+ XCN_CERT_AUTHORITY_INFO_ACCESS_PROP_ID = 68,
+ XCN_CERT_BACKED_UP_PROP_ID = 69,
+ XCN_CERT_OCSP_RESPONSE_PROP_ID = 70,
+ XCN_CERT_REQUEST_ORIGINATOR_PROP_ID = 71,
+ XCN_CERT_SOURCE_LOCATION_PROP_ID = 72,
+ XCN_CERT_SOURCE_URL_PROP_ID = 73,
+ XCN_CERT_NEW_KEY_PROP_ID = 74,
+ XCN_CERT_FIRST_RESERVED_PROP_ID = 87,
+ XCN_CERT_LAST_RESERVED_PROP_ID = 0x7fff,
+ XCN_CERT_FIRST_USER_PROP_ID = 0x8000,
+ XCN_CERT_LAST_USER_PROP_ID = 0xffff,
+ XCN_CERT_STORE_LOCALIZED_NAME_PROP_ID = 0x1000,
+ XCN_CERT_CEP_PROP_ID = 87
+ } CERTENROLL_PROPERTYID;
+
+ typedef enum CERTENROLL_OBJECTID {
+ XCN_OID_NONE = 0,
+ XCN_OID_RSA = 1,
+ XCN_OID_PKCS = 2,
+ XCN_OID_RSA_HASH = 3,
+ XCN_OID_RSA_ENCRYPT = 4,
+ XCN_OID_PKCS_1 = 5,
+ XCN_OID_PKCS_2 = 6,
+ XCN_OID_PKCS_3 = 7,
+ XCN_OID_PKCS_4 = 8,
+ XCN_OID_PKCS_5 = 9,
+ XCN_OID_PKCS_6 = 10,
+ XCN_OID_PKCS_7 = 11,
+ XCN_OID_PKCS_8 = 12,
+ XCN_OID_PKCS_9 = 13,
+ XCN_OID_PKCS_10 = 14,
+ XCN_OID_PKCS_12 = 15,
+ XCN_OID_RSA_RSA = 16,
+ XCN_OID_RSA_MD2RSA = 17,
+ XCN_OID_RSA_MD4RSA = 18,
+ XCN_OID_RSA_MD5RSA = 19,
+ XCN_OID_RSA_SHA1RSA = 20,
+ XCN_OID_RSA_SETOAEP_RSA = 21,
+ XCN_OID_RSA_DH = 22,
+ XCN_OID_RSA_data = 23,
+ XCN_OID_RSA_signedData = 24,
+ XCN_OID_RSA_envelopedData = 25,
+ XCN_OID_RSA_signEnvData = 26,
+ XCN_OID_RSA_digestedData = 27,
+ XCN_OID_RSA_hashedData = 28,
+ XCN_OID_RSA_encryptedData = 29,
+ XCN_OID_RSA_emailAddr = 30,
+ XCN_OID_RSA_unstructName = 31,
+ XCN_OID_RSA_contentType = 32,
+ XCN_OID_RSA_messageDigest = 33,
+ XCN_OID_RSA_signingTime = 34,
+ XCN_OID_RSA_counterSign = 35,
+ XCN_OID_RSA_challengePwd = 36,
+ XCN_OID_RSA_unstructAddr = 37,
+ XCN_OID_RSA_extCertAttrs = 38,
+ XCN_OID_RSA_certExtensions = 39,
+ XCN_OID_RSA_SMIMECapabilities = 40,
+ XCN_OID_RSA_preferSignedData = 41,
+ XCN_OID_RSA_SMIMEalg = 42,
+ XCN_OID_RSA_SMIMEalgESDH = 43,
+ XCN_OID_RSA_SMIMEalgCMS3DESwrap = 44,
+ XCN_OID_RSA_SMIMEalgCMSRC2wrap = 45,
+ XCN_OID_RSA_MD2 = 46,
+ XCN_OID_RSA_MD4 = 47,
+ XCN_OID_RSA_MD5 = 48,
+ XCN_OID_RSA_RC2CBC = 49,
+ XCN_OID_RSA_RC4 = 50,
+ XCN_OID_RSA_DES_EDE3_CBC = 51,
+ XCN_OID_RSA_RC5_CBCPad = 52,
+ XCN_OID_ANSI_X942 = 53,
+ XCN_OID_ANSI_X942_DH = 54,
+ XCN_OID_X957 = 55,
+ XCN_OID_X957_DSA = 56,
+ XCN_OID_X957_SHA1DSA = 57,
+ XCN_OID_DS = 58,
+ XCN_OID_DSALG = 59,
+ XCN_OID_DSALG_CRPT = 60,
+ XCN_OID_DSALG_HASH = 61,
+ XCN_OID_DSALG_SIGN = 62,
+ XCN_OID_DSALG_RSA = 63,
+ XCN_OID_OIW = 64,
+ XCN_OID_OIWSEC = 65,
+ XCN_OID_OIWSEC_md4RSA = 66,
+ XCN_OID_OIWSEC_md5RSA = 67,
+ XCN_OID_OIWSEC_md4RSA2 = 68,
+ XCN_OID_OIWSEC_desECB = 69,
+ XCN_OID_OIWSEC_desCBC = 70,
+ XCN_OID_OIWSEC_desOFB = 71,
+ XCN_OID_OIWSEC_desCFB = 72,
+ XCN_OID_OIWSEC_desMAC = 73,
+ XCN_OID_OIWSEC_rsaSign = 74,
+ XCN_OID_OIWSEC_dsa = 75,
+ XCN_OID_OIWSEC_shaDSA = 76,
+ XCN_OID_OIWSEC_mdc2RSA = 77,
+ XCN_OID_OIWSEC_shaRSA = 78,
+ XCN_OID_OIWSEC_dhCommMod = 79,
+ XCN_OID_OIWSEC_desEDE = 80,
+ XCN_OID_OIWSEC_sha = 81,
+ XCN_OID_OIWSEC_mdc2 = 82,
+ XCN_OID_OIWSEC_dsaComm = 83,
+ XCN_OID_OIWSEC_dsaCommSHA = 84,
+ XCN_OID_OIWSEC_rsaXchg = 85,
+ XCN_OID_OIWSEC_keyHashSeal = 86,
+ XCN_OID_OIWSEC_md2RSASign = 87,
+ XCN_OID_OIWSEC_md5RSASign = 88,
+ XCN_OID_OIWSEC_sha1 = 89,
+ XCN_OID_OIWSEC_dsaSHA1 = 90,
+ XCN_OID_OIWSEC_dsaCommSHA1 = 91,
+ XCN_OID_OIWSEC_sha1RSASign = 92,
+ XCN_OID_OIWDIR = 93,
+ XCN_OID_OIWDIR_CRPT = 94,
+ XCN_OID_OIWDIR_HASH = 95,
+ XCN_OID_OIWDIR_SIGN = 96,
+ XCN_OID_OIWDIR_md2 = 97,
+ XCN_OID_OIWDIR_md2RSA = 98,
+ XCN_OID_INFOSEC = 99,
+ XCN_OID_INFOSEC_sdnsSignature = 100,
+ XCN_OID_INFOSEC_mosaicSignature = 101,
+ XCN_OID_INFOSEC_sdnsConfidentiality = 102,
+ XCN_OID_INFOSEC_mosaicConfidentiality = 103,
+ XCN_OID_INFOSEC_sdnsIntegrity = 104,
+ XCN_OID_INFOSEC_mosaicIntegrity = 105,
+ XCN_OID_INFOSEC_sdnsTokenProtection = 106,
+ XCN_OID_INFOSEC_mosaicTokenProtection = 107,
+ XCN_OID_INFOSEC_sdnsKeyManagement = 108,
+ XCN_OID_INFOSEC_mosaicKeyManagement = 109,
+ XCN_OID_INFOSEC_sdnsKMandSig = 110,
+ XCN_OID_INFOSEC_mosaicKMandSig = 111,
+ XCN_OID_INFOSEC_SuiteASignature = 112,
+ XCN_OID_INFOSEC_SuiteAConfidentiality = 113,
+ XCN_OID_INFOSEC_SuiteAIntegrity = 114,
+ XCN_OID_INFOSEC_SuiteATokenProtection = 115,
+ XCN_OID_INFOSEC_SuiteAKeyManagement = 116,
+ XCN_OID_INFOSEC_SuiteAKMandSig = 117,
+ XCN_OID_INFOSEC_mosaicUpdatedSig = 118,
+ XCN_OID_INFOSEC_mosaicKMandUpdSig = 119,
+ XCN_OID_INFOSEC_mosaicUpdatedInteg = 120,
+ XCN_OID_COMMON_NAME = 121,
+ XCN_OID_SUR_NAME = 122,
+ XCN_OID_DEVICE_SERIAL_NUMBER = 123,
+ XCN_OID_COUNTRY_NAME = 124,
+ XCN_OID_LOCALITY_NAME = 125,
+ XCN_OID_STATE_OR_PROVINCE_NAME = 126,
+ XCN_OID_STREET_ADDRESS = 127,
+ XCN_OID_ORGANIZATION_NAME = 128,
+ XCN_OID_ORGANIZATIONAL_UNIT_NAME = 129,
+ XCN_OID_TITLE = 130,
+ XCN_OID_DESCRIPTION = 131,
+ XCN_OID_SEARCH_GUIDE = 132,
+ XCN_OID_BUSINESS_CATEGORY = 133,
+ XCN_OID_POSTAL_ADDRESS = 134,
+ XCN_OID_POSTAL_CODE = 135,
+ XCN_OID_POST_OFFICE_BOX = 136,
+ XCN_OID_PHYSICAL_DELIVERY_OFFICE_NAME = 137,
+ XCN_OID_TELEPHONE_NUMBER = 138,
+ XCN_OID_TELEX_NUMBER = 139,
+ XCN_OID_TELETEXT_TERMINAL_IDENTIFIER = 140,
+ XCN_OID_FACSIMILE_TELEPHONE_NUMBER = 141,
+ XCN_OID_X21_ADDRESS = 142,
+ XCN_OID_INTERNATIONAL_ISDN_NUMBER = 143,
+ XCN_OID_REGISTERED_ADDRESS = 144,
+ XCN_OID_DESTINATION_INDICATOR = 145,
+ XCN_OID_PREFERRED_DELIVERY_METHOD = 146,
+ XCN_OID_PRESENTATION_ADDRESS = 147,
+ XCN_OID_SUPPORTED_APPLICATION_CONTEXT = 148,
+ XCN_OID_MEMBER = 149,
+ XCN_OID_OWNER = 150,
+ XCN_OID_ROLE_OCCUPANT = 151,
+ XCN_OID_SEE_ALSO = 152,
+ XCN_OID_USER_PASSWORD = 153,
+ XCN_OID_USER_CERTIFICATE = 154,
+ XCN_OID_CA_CERTIFICATE = 155,
+ XCN_OID_AUTHORITY_REVOCATION_LIST = 156,
+ XCN_OID_CERTIFICATE_REVOCATION_LIST = 157,
+ XCN_OID_CROSS_CERTIFICATE_PAIR = 158,
+ XCN_OID_GIVEN_NAME = 159,
+ XCN_OID_INITIALS = 160,
+ XCN_OID_DN_QUALIFIER = 161,
+ XCN_OID_DOMAIN_COMPONENT = 162,
+ XCN_OID_PKCS_12_FRIENDLY_NAME_ATTR = 163,
+ XCN_OID_PKCS_12_LOCAL_KEY_ID = 164,
+ XCN_OID_PKCS_12_KEY_PROVIDER_NAME_ATTR = 165,
+ XCN_OID_LOCAL_MACHINE_KEYSET = 166,
+ XCN_OID_PKCS_12_EXTENDED_ATTRIBUTES = 167,
+ XCN_OID_KEYID_RDN = 168,
+ XCN_OID_AUTHORITY_KEY_IDENTIFIER = 169,
+ XCN_OID_KEY_ATTRIBUTES = 170,
+ XCN_OID_CERT_POLICIES_95 = 171,
+ XCN_OID_KEY_USAGE_RESTRICTION = 172,
+ XCN_OID_SUBJECT_ALT_NAME = 173,
+ XCN_OID_ISSUER_ALT_NAME = 174,
+ XCN_OID_BASIC_CONSTRAINTS = 175,
+ XCN_OID_KEY_USAGE = 176,
+ XCN_OID_PRIVATEKEY_USAGE_PERIOD = 177,
+ XCN_OID_BASIC_CONSTRAINTS2 = 178,
+ XCN_OID_CERT_POLICIES = 179,
+ XCN_OID_ANY_CERT_POLICY = 180,
+ XCN_OID_AUTHORITY_KEY_IDENTIFIER2 = 181,
+ XCN_OID_SUBJECT_KEY_IDENTIFIER = 182,
+ XCN_OID_SUBJECT_ALT_NAME2 = 183,
+ XCN_OID_ISSUER_ALT_NAME2 = 184,
+ XCN_OID_CRL_REASON_CODE = 185,
+ XCN_OID_REASON_CODE_HOLD = 186,
+ XCN_OID_CRL_DIST_POINTS = 187,
+ XCN_OID_ENHANCED_KEY_USAGE = 188,
+ XCN_OID_CRL_NUMBER = 189,
+ XCN_OID_DELTA_CRL_INDICATOR = 190,
+ XCN_OID_ISSUING_DIST_POINT = 191,
+ XCN_OID_FRESHEST_CRL = 192,
+ XCN_OID_NAME_CONSTRAINTS = 193,
+ XCN_OID_POLICY_MAPPINGS = 194,
+ XCN_OID_LEGACY_POLICY_MAPPINGS = 195,
+ XCN_OID_POLICY_CONSTRAINTS = 196,
+ XCN_OID_RENEWAL_CERTIFICATE = 197,
+ XCN_OID_ENROLLMENT_NAME_VALUE_PAIR = 198,
+ XCN_OID_ENROLLMENT_CSP_PROVIDER = 199,
+ XCN_OID_OS_VERSION = 200,
+ XCN_OID_ENROLLMENT_AGENT = 201,
+ XCN_OID_PKIX = 202,
+ XCN_OID_PKIX_PE = 203,
+ XCN_OID_AUTHORITY_INFO_ACCESS = 204,
+ XCN_OID_BIOMETRIC_EXT = 205,
+ XCN_OID_LOGOTYPE_EXT = 206,
+ XCN_OID_CERT_EXTENSIONS = 207,
+ XCN_OID_NEXT_UPDATE_LOCATION = 208,
+ XCN_OID_REMOVE_CERTIFICATE = 209,
+ XCN_OID_CROSS_CERT_DIST_POINTS = 210,
+ XCN_OID_CTL = 211,
+ XCN_OID_SORTED_CTL = 212,
+ XCN_OID_SERIALIZED = 213,
+ XCN_OID_NT_PRINCIPAL_NAME = 214,
+ XCN_OID_PRODUCT_UPDATE = 215,
+ XCN_OID_ANY_APPLICATION_POLICY = 216,
+ XCN_OID_AUTO_ENROLL_CTL_USAGE = 217,
+ XCN_OID_ENROLL_CERTTYPE_EXTENSION = 218,
+ XCN_OID_CERT_MANIFOLD = 219,
+ XCN_OID_CERTSRV_CA_VERSION = 220,
+ XCN_OID_CERTSRV_PREVIOUS_CERT_HASH = 221,
+ XCN_OID_CRL_VIRTUAL_BASE = 222,
+ XCN_OID_CRL_NEXT_PUBLISH = 223,
+ XCN_OID_KP_CA_EXCHANGE = 224,
+ XCN_OID_KP_KEY_RECOVERY_AGENT = 225,
+ XCN_OID_CERTIFICATE_TEMPLATE = 226,
+ XCN_OID_ENTERPRISE_OID_ROOT = 227,
+ XCN_OID_RDN_DUMMY_SIGNER = 228,
+ XCN_OID_APPLICATION_CERT_POLICIES = 229,
+ XCN_OID_APPLICATION_POLICY_MAPPINGS = 230,
+ XCN_OID_APPLICATION_POLICY_CONSTRAINTS = 231,
+ XCN_OID_ARCHIVED_KEY_ATTR = 232,
+ XCN_OID_CRL_SELF_CDP = 233,
+ XCN_OID_REQUIRE_CERT_CHAIN_POLICY = 234,
+ XCN_OID_ARCHIVED_KEY_CERT_HASH = 235,
+ XCN_OID_ISSUED_CERT_HASH = 236,
+ XCN_OID_DS_EMAIL_REPLICATION = 237,
+ XCN_OID_REQUEST_CLIENT_INFO = 238,
+ XCN_OID_ENCRYPTED_KEY_HASH = 239,
+ XCN_OID_CERTSRV_CROSSCA_VERSION = 240,
+ XCN_OID_NTDS_REPLICATION = 241,
+ XCN_OID_SUBJECT_DIR_ATTRS = 242,
+ XCN_OID_PKIX_KP = 243,
+ XCN_OID_PKIX_KP_SERVER_AUTH = 244,
+ XCN_OID_PKIX_KP_CLIENT_AUTH = 245,
+ XCN_OID_PKIX_KP_CODE_SIGNING = 246,
+ XCN_OID_PKIX_KP_EMAIL_PROTECTION = 247,
+ XCN_OID_PKIX_KP_IPSEC_END_SYSTEM = 248,
+ XCN_OID_PKIX_KP_IPSEC_TUNNEL = 249,
+ XCN_OID_PKIX_KP_IPSEC_USER = 250,
+ XCN_OID_PKIX_KP_TIMESTAMP_SIGNING = 251,
+ XCN_OID_PKIX_KP_OCSP_SIGNING = 252,
+ XCN_OID_PKIX_OCSP_NOCHECK = 253,
+ XCN_OID_IPSEC_KP_IKE_INTERMEDIATE = 254,
+ XCN_OID_KP_CTL_USAGE_SIGNING = 255,
+ XCN_OID_KP_TIME_STAMP_SIGNING = 256,
+ XCN_OID_SERVER_GATED_CRYPTO = 257,
+ XCN_OID_SGC_NETSCAPE = 258,
+ XCN_OID_KP_EFS = 259,
+ XCN_OID_EFS_RECOVERY = 260,
+ XCN_OID_WHQL_CRYPTO = 261,
+ XCN_OID_NT5_CRYPTO = 262,
+ XCN_OID_OEM_WHQL_CRYPTO = 263,
+ XCN_OID_EMBEDDED_NT_CRYPTO = 264,
+ XCN_OID_ROOT_LIST_SIGNER = 265,
+ XCN_OID_KP_QUALIFIED_SUBORDINATION = 266,
+ XCN_OID_KP_KEY_RECOVERY = 267,
+ XCN_OID_KP_DOCUMENT_SIGNING = 268,
+ XCN_OID_KP_LIFETIME_SIGNING = 269,
+ XCN_OID_KP_MOBILE_DEVICE_SOFTWARE = 270,
+ XCN_OID_KP_SMART_DISPLAY = 271,
+ XCN_OID_KP_CSP_SIGNATURE = 272,
+ XCN_OID_DRM = 273,
+ XCN_OID_DRM_INDIVIDUALIZATION = 274,
+ XCN_OID_LICENSES = 275,
+ XCN_OID_LICENSE_SERVER = 276,
+ XCN_OID_KP_SMARTCARD_LOGON = 277,
+ XCN_OID_YESNO_TRUST_ATTR = 278,
+ XCN_OID_PKIX_POLICY_QUALIFIER_CPS = 279,
+ XCN_OID_PKIX_POLICY_QUALIFIER_USERNOTICE = 280,
+ XCN_OID_CERT_POLICIES_95_QUALIFIER1 = 281,
+ XCN_OID_PKIX_ACC_DESCR = 282,
+ XCN_OID_PKIX_OCSP = 283,
+ XCN_OID_PKIX_CA_ISSUERS = 284,
+ XCN_OID_VERISIGN_PRIVATE_6_9 = 285,
+ XCN_OID_VERISIGN_ONSITE_JURISDICTION_HASH = 286,
+ XCN_OID_VERISIGN_BITSTRING_6_13 = 287,
+ XCN_OID_VERISIGN_ISS_STRONG_CRYPTO = 288,
+ XCN_OID_NETSCAPE = 289,
+ XCN_OID_NETSCAPE_CERT_EXTENSION = 290,
+ XCN_OID_NETSCAPE_CERT_TYPE = 291,
+ XCN_OID_NETSCAPE_BASE_URL = 292,
+ XCN_OID_NETSCAPE_REVOCATION_URL = 293,
+ XCN_OID_NETSCAPE_CA_REVOCATION_URL = 294,
+ XCN_OID_NETSCAPE_CERT_RENEWAL_URL = 295,
+ XCN_OID_NETSCAPE_CA_POLICY_URL = 296,
+ XCN_OID_NETSCAPE_SSL_SERVER_NAME = 297,
+ XCN_OID_NETSCAPE_COMMENT = 298,
+ XCN_OID_NETSCAPE_DATA_TYPE = 299,
+ XCN_OID_NETSCAPE_CERT_SEQUENCE = 300,
+ XCN_OID_CT_PKI_DATA = 301,
+ XCN_OID_CT_PKI_RESPONSE = 302,
+ XCN_OID_PKIX_NO_SIGNATURE = 303,
+ XCN_OID_CMC = 304,
+ XCN_OID_CMC_STATUS_INFO = 305,
+ XCN_OID_CMC_IDENTIFICATION = 306,
+ XCN_OID_CMC_IDENTITY_PROOF = 307,
+ XCN_OID_CMC_DATA_RETURN = 308,
+ XCN_OID_CMC_TRANSACTION_ID = 309,
+ XCN_OID_CMC_SENDER_NONCE = 310,
+ XCN_OID_CMC_RECIPIENT_NONCE = 311,
+ XCN_OID_CMC_ADD_EXTENSIONS = 312,
+ XCN_OID_CMC_ENCRYPTED_POP = 313,
+ XCN_OID_CMC_DECRYPTED_POP = 314,
+ XCN_OID_CMC_LRA_POP_WITNESS = 315,
+ XCN_OID_CMC_GET_CERT = 316,
+ XCN_OID_CMC_GET_CRL = 317,
+ XCN_OID_CMC_REVOKE_REQUEST = 318,
+ XCN_OID_CMC_REG_INFO = 319,
+ XCN_OID_CMC_RESPONSE_INFO = 320,
+ XCN_OID_CMC_QUERY_PENDING = 321,
+ XCN_OID_CMC_ID_POP_LINK_RANDOM = 322,
+ XCN_OID_CMC_ID_POP_LINK_WITNESS = 323,
+ XCN_OID_CMC_ID_CONFIRM_CERT_ACCEPTANCE = 324,
+ XCN_OID_CMC_ADD_ATTRIBUTES = 325,
+ XCN_OID_LOYALTY_OTHER_LOGOTYPE = 326,
+ XCN_OID_BACKGROUND_OTHER_LOGOTYPE = 327,
+ XCN_OID_PKIX_OCSP_BASIC_SIGNED_RESPONSE = 328,
+ XCN_OID_PKCS_7_DATA = 329,
+ XCN_OID_PKCS_7_SIGNED = 330,
+ XCN_OID_PKCS_7_ENVELOPED = 331,
+ XCN_OID_PKCS_7_SIGNEDANDENVELOPED = 332,
+ XCN_OID_PKCS_7_DIGESTED = 333,
+ XCN_OID_PKCS_7_ENCRYPTED = 334,
+ XCN_OID_PKCS_9_CONTENT_TYPE = 335,
+ XCN_OID_PKCS_9_MESSAGE_DIGEST = 336,
+ XCN_OID_CERT_PROP_ID_PREFIX = 337,
+ XCN_OID_CERT_KEY_IDENTIFIER_PROP_ID = 338,
+ XCN_OID_CERT_ISSUER_SERIAL_NUMBER_MD5_HASH_PROP_ID = 339,
+ XCN_OID_CERT_SUBJECT_NAME_MD5_HASH_PROP_ID = 340,
+ XCN_OID_CERT_MD5_HASH_PROP_ID = 341,
+ XCN_OID_RSA_SHA256RSA = 342,
+ XCN_OID_RSA_SHA384RSA = 343,
+ XCN_OID_RSA_SHA512RSA = 344,
+ XCN_OID_NIST_sha256 = 345,
+ XCN_OID_NIST_sha384 = 346,
+ XCN_OID_NIST_sha512 = 347,
+ XCN_OID_RSA_MGF1 = 348,
+ XCN_OID_ECC_PUBLIC_KEY = 349,
+ XCN_OID_RSA_SSA_PSS = 353,
+ XCN_OID_ECDSA_SHA1 = 354,
+ XCN_OID_ECDSA_SPECIFIED = 354
+ } CERTENROLL_OBJECTID;
+
+ typedef enum EnrollmentCAProperty {
+ CAPropCommonName = 1,
+ CAPropDistinguishedName = 2,
+ CAPropSanitizedName = 3,
+ CAPropSanitizedShortName = 4,
+ CAPropDNSName = 5,
+ CAPropCertificateTypes = 6,
+ CAPropCertificate = 7,
+ CAPropDescription = 8,
+ CAPropWebServers = 9,
+ CAPropSiteName = 10,
+ CAPropSecurity = 11,
+ CAPropRenewalOnly = 12
+ } EnrollmentCAProperty;
+
+ typedef enum EncodingType {
+ XCN_CRYPT_STRING_BASE64HEADER = 0,
+ XCN_CRYPT_STRING_BASE64 = 0x1,
+ XCN_CRYPT_STRING_BINARY = 0x2,
+ XCN_CRYPT_STRING_BASE64REQUESTHEADER = 0x3,
+ XCN_CRYPT_STRING_HEX = 0x4,
+ XCN_CRYPT_STRING_HEXASCII = 0x5,
+ XCN_CRYPT_STRING_BASE64_ANY = 0x6,
+ XCN_CRYPT_STRING_ANY = 0x7,
+ XCN_CRYPT_STRING_HEX_ANY = 0x8,
+ XCN_CRYPT_STRING_BASE64X509CRLHEADER = 0x9,
+ XCN_CRYPT_STRING_HEXADDR = 0xa,
+ XCN_CRYPT_STRING_HEXASCIIADDR = 0xb,
+ XCN_CRYPT_STRING_HEXRAW = 0xc,
+ XCN_CRYPT_STRING_NOCRLF = 0x40000000,
+ XCN_CRYPT_STRING_NOCR = 0x80000000
+ } EncodingType;
+
+ typedef enum CommitTemplateFlags {
+ CommitFlagSaveTemplateGenerateOID = 1,
+ CommitFlagSaveTemplateUseCurrentOID = 2,
+ CommitFlagSaveTemplateOverwrite = 3,
+ CommitFlagDeleteTemplate = 4
+ } CommitTemplateFlags;
+
+ typedef enum EnrollmentDisplayStatus {
+ DisplayNo = 0,
+ DisplayYes = 1
+ } EnrollmentDisplayStatus;
+
+ typedef enum EnrollmentEnrollStatus {
+ Enrolled = 0x00000001,
+ EnrollPended = 0x00000002,
+ EnrollUIDeferredEnrollmentRequired = 0x00000004,
+ EnrollError = 0x00000010,
+ EnrollUnknown = 0x00000020,
+ EnrollSkipped = 0x00000040,
+ EnrollDenied = 0x00000100
+ } EnrollmentEnrollStatus;
+
+#ifdef (_WIN32_WINNT >= 0x0601)
+ enum EnrollmentPolicyFlags {
+ DisableGroupPolicyList = 0x2,
+ DisableUserServerList = 0x4
+ };
+
+ typedef enum EnrollmentPolicyServerPropertyFlags {
+ DefaultNone = 0x00000000,
+ DefaultPolicyServer = 0x00000001
+ } EnrollmentPolicyServerPropertyFlags;
+
+#endif /*(_WIN32_WINNT >= 0x0601)*/
+
+ typedef enum EnrollmentSelectionStatus {
+ SelectedNo = 0,
+ SelectedYes = 1
+ } EnrollmentSelectionStatus;
+
+#ifdef (_WIN32_WINNT >= 0x0601)
+
+ typedef enum EnrollmentTemplateProperty {
+ TemplatePropCommonName = 1,
+ TemplatePropFriendlyName = 2,
+ TemplatePropEKUs = 3,
+ TemplatePropCryptoProviders = 4,
+ TemplatePropMajorRevision = 5,
+ TemplatePropDescription = 6,
+ TemplatePropKeySpec = 7,
+ TemplatePropSchemaVersion = 8,
+ TemplatePropMinorRevision = 9,
+ TemplatePropRASignatureCount = 10,
+ TemplatePropMinimumKeySize = 11,
+ TemplatePropOID = 12,
+ TemplatePropSupersede = 13,
+ TemplatePropRACertificatePolicies = 14,
+ TemplatePropRAEKUs = 15,
+ TemplatePropCertificatePolicies = 16,
+ TemplatePropV1ApplicationPolicy = 17,
+ TemplatePropAsymmetricAlgorithm = 18,
+ TemplatePropKeySecurityDescriptor = 19,
+ TemplatePropSymmetricAlgorithm = 20,
+ TemplatePropSymmetricKeyLength = 21,
+ TemplatePropHashAlgorithm = 22,
+ TemplatePropEnrollmentFlags = 23,
+ TemplatePropSubjectNameFlags = 24,
+ TemplatePropPrivateKeyFlags = 25,
+ TemplatePropGeneralFlags = 26,
+ TemplatePropSecurityDescriptor = 27,
+ TemplatePropExtensions = 28,
+ TemplatePropValidityPeriod = 29,
+ TemplatePropRenewalPeriod = 30
+ } EnrollmentTemplateProperty;
+#endif /*(_WIN32_WINNT >= 0x0601)*/
+
+ typedef enum InnerRequestLevel {
+ LevelInnermost = 0,
+ LevelNext = 1
+ } InnerRequestLevel;
+
+ typedef enum InstallResponseRestrictionFlags {
+ AllowNone = 0x00000000,
+ AllowNoOutstandingRequest = 0x00000001,
+ AllowUntrustedCertificate = 0x00000002,
+ AllowUntrustedRoot = 0x00000004
+ } InstallResponseRestrictionFlags;
+
+ typedef enum KeyIdentifierHashAlgorithm {
+ SKIHashDefault = 0,
+ SKIHashSha1 = 1,
+ SKIHashCapiSha1 = 2
+ } KeyIdentifierHashAlgorithm;
+
+ typedef enum ObjectIdGroupId {
+ XCN_CRYPT_ANY_GROUP_ID = 0,
+ XCN_CRYPT_HASH_ALG_OID_GROUP_ID = 1,
+ XCN_CRYPT_ENCRYPT_ALG_OID_GROUP_ID = 2,
+ XCN_CRYPT_PUBKEY_ALG_OID_GROUP_ID = 3,
+ XCN_CRYPT_SIGN_ALG_OID_GROUP_ID = 4,
+ XCN_CRYPT_RDN_ATTR_OID_GROUP_ID = 5,
+ XCN_CRYPT_EXT_OR_ATTR_OID_GROUP_ID = 6,
+ XCN_CRYPT_ENHKEY_USAGE_OID_GROUP_ID = 7,
+ XCN_CRYPT_POLICY_OID_GROUP_ID = 8,
+ XCN_CRYPT_TEMPLATE_OID_GROUP_ID = 9,
+ XCN_CRYPT_LAST_OID_GROUP_ID = 9,
+ XCN_CRYPT_FIRST_ALG_OID_GROUP_ID = 1,
+ XCN_CRYPT_LAST_ALG_OID_GROUP_ID = 4,
+ XCN_CRYPT_OID_DISABLE_SEARCH_DS_FLAG = 0x80000000,
+ XCN_CRYPT_KEY_LENGTH_MASK = 0xffff0000
+ } ObjectIdGroupId;
+
+ typedef enum ObjectIdPublicKeyFlags {
+ XCN_CRYPT_OID_INFO_PUBKEY_ANY = 0,
+ XCN_CRYPT_OID_INFO_PUBKEY_SIGN_KEY_FLAG = 0x80000000,
+ XCN_CRYPT_OID_INFO_PUBKEY_ENCRYPT_KEY_FLAG = 0x40000000
+ } ObjectIdPublicKeyFlags;
+
+ typedef enum PFXExportOptions {
+ PFXExportEEOnly = 0,
+ PFXExportChainNoRoot = 1,
+ PFXExportChainWithRoot = 2
+ } PFXExportOptions;
+
+ typedef enum Pkcs10AllowedSignatureTypes {
+ AllowedKeySignature = 0x1,
+ AllowedNullSignature = 0x2
+ } Pkcs10AllowedSignatureTypes;
+
+ typedef enum PolicyQualifierType {
+ PolicyQualifierTypeUnknown = 0,
+ PolicyQualifierTypeUrl = 1,
+ PolicyQualifierTypeUserNotice = 2
+ } PolicyQualifierType;
+
+ typedef enum PolicyServerUrlFlags {
+ PsfNone = 0,
+ PsfLocationGroupPolicy = 1,
+ PsfLocationRegistry = 2,
+ PsfUseClientId = 4,
+ PsfAutoEnrollmentEnabled = 16,
+ PsfAllowUnTrustedCA = 32
+ } PolicyServerUrlFlags;
+
+#ifdef (_WIN32_WINNT >= 0x0601)
+
+ typedef enum PolicyServerUrlPropertyID {
+ PsPolicyID = 0,
+ PsFriendlyName = 1
+ } PolicyServerUrlPropertyID;
+
+#endif /*(_WIN32_WINNT >= 0x0601)*/
+
+ typedef enum RequestClientInfoClientId {
+ ClientIdNone = 0,
+ ClientIdXEnroll2003 = 1,
+ ClientIdAutoEnroll2003 = 2,
+ ClientIdWizard2003 = 3,
+ ClientIdCertReq2003 = 4,
+ ClientIdDefaultRequest = 5,
+ ClientIdAutoEnroll = 6,
+ ClientIdRequestWizard = 7,
+ ClientIdEOBO = 8,
+ ClientIdCertReq = 9,
+ ClientIdTest = 10,
+ ClientIdUserStart = 1000
+ } RequestClientInfoClientId;
+
+#ifdef (_WIN32_WINNT >= 0x0601)
+
+ typedef enum WebEnrollmentFlags {
+ EnrollPrompt = 0x00000001
+ } WebEnrollmentFlags;
+
+#endif /*(_WIN32_WINNT >= 0x0601)*/
+
+ typedef enum WebSecurityLevel {
+ LevelUnsafe = 0,
+ LevelSafe = 1
+ } WebSecurityLevel;
+
+ typedef enum X500NameFlags {
+ XCN_CERT_NAME_STR_NONE = 0,
+ XCN_CERT_SIMPLE_NAME_STR = 1,
+ XCN_CERT_OID_NAME_STR = 2,
+ XCN_CERT_X500_NAME_STR = 3,
+ XCN_CERT_XML_NAME_STR = 4,
+ XCN_CERT_NAME_STR_SEMICOLON_FLAG = 0x40000000,
+ XCN_CERT_NAME_STR_NO_PLUS_FLAG = 0x20000000,
+ XCN_CERT_NAME_STR_NO_QUOTING_FLAG = 0x10000000,
+ XCN_CERT_NAME_STR_CRLF_FLAG = 0x8000000,
+ XCN_CERT_NAME_STR_COMMA_FLAG = 0x4000000,
+ XCN_CERT_NAME_STR_REVERSE_FLAG = 0x2000000,
+ XCN_CERT_NAME_STR_DISABLE_IE4_UTF8_FLAG = 0x10000,
+ XCN_CERT_NAME_STR_ENABLE_T61_UNICODE_FLAG = 0x20000,
+ XCN_CERT_NAME_STR_ENABLE_UTF8_UNICODE_FLAG = 0x40000,
+ XCN_CERT_NAME_STR_FORCE_UTF8_DIR_STR_FLAG = 0x80000,
+ XCN_CERT_NAME_STR_DISABLE_UTF8_DIR_STR_FLAG = 0x100000
+ } X500NameFlags;
+
+ typedef enum X509CertificateEnrollmentContext {
+ ContextUser = 0x1,
+ ContextMachine = 0x2,
+ ContextAdministratorForceMachine = 0x3
+ } X509CertificateEnrollmentContext;
+
+#ifdef (_WIN32_WINNT >= 0x0601)
+
+ typedef enum X509CertificateTemplateEnrollmentFlag {
+ EnrollmentIncludeSymmetricAlgorithms = CT_FLAG_INCLUDE_SYMMETRIC_ALGORITHMS,
+ EnrollmentPendAllRequests = CT_FLAG_PEND_ALL_REQUESTS,
+ EnrollmentPublishToKRAContainer = CT_FLAG_PUBLISH_TO_KRA_CONTAINER,
+ EnrollmentPublishToDS = CT_FLAG_PUBLISH_TO_DS,
+ EnrollmentAutoEnrollmentCheckUserDSCertificate = CT_FLAG_AUTO_ENROLLMENT_CHECK_USER_DS_CERTIFICATE,
+ EnrollmentAutoEnrollment = CT_FLAG_AUTO_ENROLLMENT,
+ EnrollmentDomainAuthenticationNotRequired = CT_FLAG_DOMAIN_AUTHENTICATION_NOT_REQUIRED,
+ EnrollmentPreviousApprovalValidateReenrollment = CT_FLAG_PREVIOUS_APPROVAL_VALIDATE_REENROLLMENT,
+ EnrollmentUserInteractionRequired = CT_FLAG_USER_INTERACTION_REQUIRED,
+ EnrollmentAddTemplateName = CT_FLAG_ADD_TEMPLATE_NAME,
+ EnrollmentRemoveInvalidCertificateFromPersonalStore = CT_FLAG_REMOVE_INVALID_CERTIFICATE_FROM_PERSONAL_STORE,
+ EnrollmentAllowEnrollOnBehalfOf = CT_FLAG_ALLOW_ENROLL_ON_BEHALF_OF,
+ EnrollmentAddOCSPNoCheck = CT_FLAG_ADD_OCSP_NOCHECK,
+ EnrollmentReuseKeyOnFullSmartCard = CT_FLAG_ENABLE_KEY_REUSE_ON_NT_TOKEN_KEYSET_STORAGE_FULL,
+ EnrollmentNoRevocationInfoInCerts = CT_FLAG_NOREVOCATIONINFOINISSUEDCERTS,
+ EnrollmentIncludeBasicConstraintsForEECerts = CT_FLAG_INCLUDE_BASIC_CONSTRAINTS_FOR_EE_CERTS
+ } X509CertificateTemplateEnrollmentFlag;
+
+ typedef enum X509CertificateTemplateGeneralFlag {
+ GeneralMachineType = CT_FLAG_MACHINE_TYPE,
+ GeneralCA = CT_FLAG_IS_CA,
+ GeneralCrossCA = CT_FLAG_IS_CROSS_CA,
+ GeneralDefault = CT_FLAG_IS_DEFAULT,
+ GeneralModified = CT_FLAG_IS_MODIFIED,
+ GeneralDonotPersist = CT_FLAG_DONOTPERSISTINDB
+ } X509CertificateTemplateGeneralFlag;
+
+ typedef enum X509CertificateTemplatePrivateKeyFlag {
+ PrivateKeyRequireArchival = CT_FLAG_REQUIRE_PRIVATE_KEY_ARCHIVAL,
+ PrivateKeyExportable = CT_FLAG_EXPORTABLE_KEY,
+ PrivateKeyRequireStrongKeyProtection = CT_FLAG_STRONG_KEY_PROTECTION_REQUIRED,
+ PrivateKeyRequireAlternateSignatureAlgorithm = CT_FLAG_REQUIRE_ALTERNATE_SIGNATURE_ALGORITHM
+ } X509CertificateTemplatePrivateKeyFlag;
+
+ typedef enum X509CertificateTemplateSubjectNameFlag {
+ SubjectNameEnrolleeSupplies = CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT,
+ SubjectNameRequireDirectoryPath = CT_FLAG_SUBJECT_REQUIRE_DIRECTORY_PATH,
+ SubjectNameRequireCommonName = CT_FLAG_SUBJECT_REQUIRE_COMMON_NAME,
+ SubjectNameRequireEmail = CT_FLAG_SUBJECT_REQUIRE_EMAIL,
+ SubjectNameRequireDNS = CT_FLAG_SUBJECT_REQUIRE_DNS_AS_CN,
+ SubjectNameAndAlternativeNameOldCertSupplies = CT_FLAG_OLD_CERT_SUPPLIES_SUBJECT_AND_ALT_NAME,
+ SubjectAlternativeNameEnrolleeSupplies = CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT_ALT_NAME,
+ SubjectAlternativeNameRequireDirectoryGUID = CT_FLAG_SUBJECT_ALT_REQUIRE_DIRECTORY_GUID,
+ SubjectAlternativeNameRequireUPN = CT_FLAG_SUBJECT_ALT_REQUIRE_UPN,
+ SubjectAlternativeNameRequireEmail = CT_FLAG_SUBJECT_ALT_REQUIRE_EMAIL,
+ SubjectAlternativeNameRequireSPN = CT_FLAG_SUBJECT_ALT_REQUIRE_SPN,
+ SubjectAlternativeNameRequireDNS = CT_FLAG_SUBJECT_ALT_REQUIRE_DNS,
+ SubjectAlternativeNameRequireDomainDNS = CT_FLAG_SUBJECT_ALT_REQUIRE_DOMAIN_DNS
+ } X509CertificateTemplateSubjectNameFlag;
+
+ typedef enum X509EnrollmentPolicyExportFlags {
+ ExportTemplates = 0x1,
+ ExportOIDs = 0x2,
+ ExportCAs = 0x4
+ } X509EnrollmentPolicyExportFlags;
+
+ typedef enum X509EnrollmentPolicyLoadOption {
+ LoadOptionDefault = 0,
+ LoadOptionCacheOnly = 1,
+ LoadOptionReload = 2,
+ LoadOptionRegisterForADChanges = 4
+ } X509EnrollmentPolicyLoadOption;
+
+
+#endif /*(_WIN32_WINNT >= 0x0601)*/
+
+ typedef enum X509KeySpec {
+ XCN_AT_NONE = 0,
+ XCN_AT_KEYEXCHANGE = 1,
+ XCN_AT_SIGNATURE = 2
+ } X509KeySpec;
+
+ typedef enum X509KeyUsageFlags {
+ XCN_CERT_NO_KEY_USAGE = 0,
+ XCN_CERT_DIGITAL_SIGNATURE_KEY_USAGE = 0x80,
+ XCN_CERT_NON_REPUDIATION_KEY_USAGE = 0x40,
+ XCN_CERT_KEY_ENCIPHERMENT_KEY_USAGE = 0x20,
+ XCN_CERT_DATA_ENCIPHERMENT_KEY_USAGE = 0x10,
+ XCN_CERT_KEY_AGREEMENT_KEY_USAGE = 0x8,
+ XCN_CERT_KEY_CERT_SIGN_KEY_USAGE = 0x4,
+ XCN_CERT_OFFLINE_CRL_SIGN_KEY_USAGE = 0x2,
+ XCN_CERT_CRL_SIGN_KEY_USAGE = 0x2,
+ XCN_CERT_ENCIPHER_ONLY_KEY_USAGE = 0x1,
+ XCN_CERT_DECIPHER_ONLY_KEY_USAGE = ( 0x80 << 8 )
+ } X509KeyUsageFlags;
+
+ typedef enum X509PrivateKeyExportFlags {
+ XCN_NCRYPT_ALLOW_EXPORT_NONE = 0,
+ XCN_NCRYPT_ALLOW_EXPORT_FLAG = 0x1,
+ XCN_NCRYPT_ALLOW_PLAINTEXT_EXPORT_FLAG = 0x2,
+ XCN_NCRYPT_ALLOW_ARCHIVING_FLAG = 0x4,
+ XCN_NCRYPT_ALLOW_PLAINTEXT_ARCHIVING_FLAG = 0x8
+ } X509PrivateKeyExportFlags;
+
+ typedef enum X509PrivateKeyProtection {
+ XCN_NCRYPT_UI_NO_PROTECTION_FLAG = 0,
+ XCN_NCRYPT_UI_PROTECT_KEY_FLAG = 0x1,
+ XCN_NCRYPT_UI_FORCE_HIGH_PROTECTION_FLAG = 0x2
+ } X509PrivateKeyProtection;
+
+ typedef enum X509RequestType {
+ TypeAny = 0,
+ TypePkcs10 = 1,
+ TypePkcs7 = 2,
+ TypeCmc = 3,
+ TypeCertificate = 4
+ } X509RequestType;
+
+ typedef enum X509RequestInheritOptions {
+ InheritDefault = 0x00000000,
+ InheritNewDefaultKey = 0x00000001,
+ InheritNewSimilarKey = 0x00000002,
+ InheritPrivateKey = 0x00000003,
+ InheritPublicKey = 0x00000004,
+ InheritKeyMask = 0x0000000f,
+ InheritNone = 0x00000010,
+ InheritRenewalCertificateFlag = 0x00000020,
+ InheritTemplateFlag = 0x00000040,
+ InheritSubjectFlag = 0x00000080,
+ InheritExtensionsFlag = 0x00000100,
+ InheritSubjectAltNameFlag = 0x00000200,
+ InheritValidityPeriodFlag = 0x00000400
+ } X509RequestInheritOptions;
+
+ typedef enum X509ProviderType {
+ XCN_PROV_NONE = 0,
+ XCN_PROV_RSA_FULL = 1,
+ XCN_PROV_RSA_SIG = 2,
+ XCN_PROV_DSS = 3,
+ XCN_PROV_FORTEZZA = 4,
+ XCN_PROV_MS_EXCHANGE = 5,
+ XCN_PROV_SSL = 6,
+ XCN_PROV_RSA_SCHANNEL = 12,
+ XCN_PROV_DSS_DH = 13,
+ XCN_PROV_EC_ECDSA_SIG = 14,
+ XCN_PROV_EC_ECNRA_SIG = 15,
+ XCN_PROV_EC_ECDSA_FULL = 16,
+ XCN_PROV_EC_ECNRA_FULL = 17,
+ XCN_PROV_DH_SCHANNEL = 18,
+ XCN_PROV_SPYRUS_LYNKS = 20,
+ XCN_PROV_RNG = 21,
+ XCN_PROV_INTEL_SEC = 22,
+ XCN_PROV_REPLACE_OWF = 23,
+ XCN_PROV_RSA_AES = 24
+ } X509ProviderType;
+
+ typedef enum X509PrivateKeyVerify {
+ VerifyNone = 0,
+ VerifySilent = 1,
+ VerifySmartCardNone = 2,
+ VerifySmartCardSilent = 3,
+ VerifyAllowUI = 4
+ } X509PrivateKeyVerify;
+
+ typedef enum X509PrivateKeyUsageFlags {
+ XCN_NCRYPT_ALLOW_USAGES_NONE = 0,
+ XCN_NCRYPT_ALLOW_DECRYPT_FLAG = 0x1,
+ XCN_NCRYPT_ALLOW_SIGNING_FLAG = 0x2,
+ XCN_NCRYPT_ALLOW_KEY_AGREEMENT_FLAG = 0x4,
+ XCN_NCRYPT_ALLOW_ALL_USAGES = 0xffffff
+ } X509PrivateKeyUsageFlags;
+
+ typedef enum EncodingType {
+ XCN_CRYPT_STRING_BASE64HEADER = 0,
+ XCN_CRYPT_STRING_BASE64 = 0x1,
+ XCN_CRYPT_STRING_BINARY = 0x2,
+ XCN_CRYPT_STRING_BASE64REQUESTHEADER = 0x3,
+ XCN_CRYPT_STRING_HEX = 0x4,
+ XCN_CRYPT_STRING_HEXASCII = 0x5,
+ XCN_CRYPT_STRING_BASE64_ANY = 0x6,
+ XCN_CRYPT_STRING_ANY = 0x7,
+ XCN_CRYPT_STRING_HEX_ANY = 0x8,
+ XCN_CRYPT_STRING_BASE64X509CRLHEADER = 0x9,
+ XCN_CRYPT_STRING_HEXADDR = 0xa,
+ XCN_CRYPT_STRING_HEXASCIIADDR = 0xb,
+ XCN_CRYPT_STRING_HEXRAW = 0xc,
+ XCN_CRYPT_STRING_NOCRLF = 0x40000000,
+ XCN_CRYPT_STRING_NOCR = 0x80000000
+} EncodingType;
+
+typedef enum EnrollmentDisplayStatus {
+ DisplayNo = 0,
+ DisplayYes = 1
+} EnrollmentDisplayStatus;
+
+typedef enum EnrollmentEnrollStatus {
+ Enrolled = 0x00000001,
+ EnrollPended = 0x00000002,
+ EnrollUIDeferredEnrollmentRequired = 0x00000004,
+ EnrollError = 0x00000010,
+ EnrollUnknown = 0x00000020,
+ EnrollSkipped = 0x00000040,
+ EnrollDenied = 0x00000100
+} EnrollmentEnrollStatus;
+
+typedef enum EnrollmentSelectionStatus {
+ SelectedNo = 0,
+ SelectedYes = 1
+} EnrollmentSelectionStatus;
+
+#ifdef __cplusplus
+}
+#endif
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_CERTENROLL*/
diff --git a/mingw-w64-headers/include/clfs.h b/mingw-w64-headers/include/clfs.h
new file mode 100644
index 0000000..461e6b6
--- /dev/null
+++ b/mingw-w64-headers/include/clfs.h
@@ -0,0 +1,162 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_CLFS
+#define _INC_CLFS
+#if (_WIN32_WINNT >= 0x0600)
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum {
+ ClfsContextNone = 0x00,
+ ClfsContextUndoNext,
+ ClfsContextPrevious,
+ ClfsContextForward
+} CLFS_CONTEXT_MODE, *PCLFS_CONTEXT_MODE, **PPCLFS_CONTEXT_MODE;
+
+typedef enum _CLFS_IOSTATS_CLASS {
+ ClfsIoStatsDefault = 0x0000,
+ ClfsIoStatsMax = 0xFFFF
+} CLFS_IOSTATS_CLASS, *PCLFS_IOSTATS_CLASS, **PPCLFS_IOSTATS_CLASS;
+
+typedef enum _CLFS_LOG_ARCHIVE_MODE {
+ ClfsLogArchiveEnabled = 0x01,
+ ClfsLogArchiveDisabled = 0x02
+} CLFS_LOG_ARCHIVE_MODE, *PCLFS_LOG_ARCHIVE_MODE;
+
+typedef enum _CLFS_RECORD_TYPE {
+ ClfsDataRecord = 0x01,
+ ClfsRestartRecord = 0x02,
+ ClfsClientRecord = 0x3F
+} CLFS_RECORD_TYPE, *PCLFS_RECORD_TYPE;
+
+typedef union _CLFS_LSN {
+ ULONGLONG Internal;
+} CLFS_LSN, *PCLFS_LSN;
+
+/*http://msdn.microsoft.com/en-us/library/bb540355%28VS.85%29.aspx*/
+typedef enum _CLFS_SCAN_MODE {
+ CLFS_SCAN_INIT = 0x01,
+ CLFS_SCAN_FORWARD = 0x02,
+ CLFS_SCAN_BACKWARD = 0x04,
+ CLFS_SCAN_CLOSE = 0x08,
+ CLFS_SCAN_INITIALIZED = 0x10,
+ CLFS_SCAN_BUFFERED = 0x20
+} CLFS_SCAN_MODE;
+
+/* enum guessed from http://msdn.microsoft.com/en-us/library/bb540336%28VS.85%29.aspx */
+typedef enum _CLFS_CONTAINER_STATE {
+ ClfsContainerInitializing,
+ ClfsContainerInactive,
+ ClfsContainerActive,
+ ClfsContainerActivePendingDelete,
+ ClfsContainerPendingArchive,
+ ClfsContainerPendingArchiveAndDelete
+} CLFS_CONTAINER_STATE;
+typedef DWORD CLFS_CONTAINER_ID;
+
+/* Goes in wdm.h */
+typedef struct _CLFS_CONTAINER_INFORMATION {
+ ULONG FileAttributes;
+ ULONGLONG CreationTime;
+ ULONGLONG LastAccessTime;
+ ULONGLONG LastWriteTime;
+ LONGLONG ContainerSize;
+ ULONG FileNameActualLength;
+ ULONG FileNameLength;
+ WCHAR FileName[MAX_PATH];
+ CLFS_CONTAINER_STATE State;
+ CLFS_CONTAINER_ID PhysicalContainerId;
+ CLFS_CONTAINER_ID LogicalContainerId;
+} CLFS_CONTAINER_INFORMATION, *PCLFS_CONTAINER_INFORMATION, **PPCLFS_CONTAINER_INFORMATION;
+/**/
+
+typedef struct _CLFS_IO_STATISTICS_HEADER {
+ UCHAR ubMajorVersion;
+ UCHAR ubMinorVersion;
+ CLFS_IOSTATS_CLASS eStatsClass;
+ USHORT cbLength;
+ ULONG coffData;
+} CLFS_IO_STATISTICS_HEADER, *PCLFS_IO_STATISTICS_HEADER, **PPCLFS_IO_STATISTICS_HEADER;
+
+typedef struct _CLFS_ARCHIVE_DESCRIPTOR {
+ ULONGLONG coffLow;
+ ULONGLONG coffHigh;
+ CLFS_CONTAINER_INFORMATION infoContainer;
+} CLFS_ARCHIVE_DESCRIPTOR, *PCLFS_ARCHIVE_DESCRIPTOR, **PPCLFS_ARCHIVE_DESCRIPTOR;
+
+typedef struct _CLFS_INFORMATION {
+ LONGLONG TotalAvailable;
+ LONGLONG CurrentAvailable;
+ LONGLONG TotalReservation;
+ ULONGLONG BaseFileSize;
+ ULONGLONG ContainerSize;
+ ULONG TotalContainers;
+ ULONG FreeContainers;
+ ULONG TotalClients;
+ ULONG Attributes;
+ ULONG FlushThreshold;
+ ULONG SectorSize;
+ CLFS_LSN MinArchiveTailLsn;
+ CLFS_LSN BaseLsn;
+ CLFS_LSN LastFlushedLsn;
+ CLFS_LSN LastLsn;
+ CLFS_LSN RestartLsn;
+ GUID Identity;
+} CLFS_INFORMATION, *PCLFS_INFORMATION, **PPCLFS_INFORMATION;
+
+typedef struct _CLFS_IO_STATISTICS {
+ CLFS_IO_STATISTICS_HEADER hdrIoStats;
+ ULONGLONG cFlush;
+ ULONGLONG cbFlush;
+ ULONGLONG cMetaFlush;
+ ULONGLONG cbMetaFlush;
+} CLFS_IO_STATISTICS, *PCLFS_IO_STATISTICS, **PPCLFS_IO_STATISTICS;
+
+typedef struct _CLFS_NODE_ID {
+ ULONG cType;
+ ULONG cbNode;
+} CLFS_NODE_ID, *PCLFS_NODE_ID;
+
+typedef struct _CLFS_SCAN_CONTEXT {
+ CLFS_NODE_ID cidNode;
+ HANDLE hLog;
+ ULONG cIndex;
+ ULONG cContainers;
+ ULONG cContainersReturned;
+ CLFS_SCAN_MODE eScanMode;
+ PCLFS_CONTAINER_INFORMATION pinfoContainer;
+} CLFS_SCAN_CONTEXT, *PCLFS_SCAN_CONTEXT;
+
+typedef struct _CLFS_WRITE_ENTRY {
+ PVOID Buffer;
+ ULONG ByteLength;
+} CLFS_WRITE_ENTRY, *PCLFS_WRITE_ENTRY;
+
+WINBOOL WINAPI LsnEqual(
+ const CLFS_LSN *plsn1,
+ const CLFS_LSN *plsn2
+);
+
+WINBOOL WINAPI LsnGreater(
+ const CLFS_LSN *plsn1,
+ const CLFS_LSN *plsn2
+);
+
+WINBOOL WINAPI LsnLess(
+ const CLFS_LSN *plsn1,
+ const CLFS_LSN *plsn2
+);
+
+WINBOOL WINAPI LsnNull(
+ const CLFS_LSN *plsn
+);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_CLFS*/
diff --git a/mingw-w64-headers/include/clfsmgmt.h b/mingw-w64-headers/include/clfsmgmt.h
new file mode 100644
index 0000000..ccdbe57
--- /dev/null
+++ b/mingw-w64-headers/include/clfsmgmt.h
@@ -0,0 +1,131 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_CLFSMGMT
+#define _INC_CLFSMGMT
+#if (_WIN32_WINNT >= 0x0600)
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum _CLFS_MGMT_POLICY_TYPE {
+ ClfsMgmtPolicyMaximumSize = 0x0,
+ ClfsMgmtPolicyMinimumSize = 0x1,
+ ClfsMgmtPolicyNewContainerSize = 0x2,
+ ClfsMgmtPolicyGrowthRate = 0x3,
+ ClfsMgmtPolicyLogTail = 0x4,
+ ClfsMgmtPolicyAutoShrink = 0x5,
+ ClfsMgmtPolicyAutoGrow = 0x6,
+ ClfsMgmtPolicyNewContainerPrefix = 0x7,
+ ClfsMgmtPolicyNewContainerSuffix = 0x8,
+ ClfsMgmtPolicyNewContainerExtension
+} CLFS_MGMT_POLICY_TYPE, *PCLFS_MGMT_POLICY_TYPE;
+
+typedef enum _CLFS_MGMT_NOTIFICATION_TYPE {
+ ClfsMgmtAdvanceTailNotification = 0,
+ ClfsMgmtLogFullHandlerNotification,
+ ClfsMgmtLogUnpinnedNotification,
+ ClfsMgmtLogWriteNotification
+} CLFS_MGMT_NOTIFICATION_TYPE;
+
+typedef struct _CLFS_MGMT_NOTIFICATION {
+ CLFS_MGMT_NOTIFICATION_TYPE Notification;
+ CLFS_LSN Lsn;
+ USHORT LogIsPinned;
+} CLFS_MGMT_NOTIFICATION, *PCLFS_MGMT_NOTIFICATION;
+
+typedef struct _CLFS_MGMT_POLICY {
+ ULONG Version;
+ ULONG LengthInBytes;
+ ULONG PolicyFlags;
+ CLFS_MGMT_POLICY_TYPE PolicyType;
+ __MINGW_EXTENSION union {
+ __MINGW_EXTENSION struct {
+ ULONG Containers;
+ } MaximumSize;
+ __MINGW_EXTENSION struct {
+ ULONG Containers;
+ } MinimumSize;
+ __MINGW_EXTENSION struct {
+ ULONG SizeInBytes;
+ } NewContainerSize;
+ __MINGW_EXTENSION struct {
+ ULONG AbsoluteGrowthInContainers;
+ ULONG RelativeGrowthPercentage;
+ } GrowthRate;
+ __MINGW_EXTENSION struct {
+ ULONG MinimumAvailablePercentage;
+ ULONG MinimumAvailableContainers;
+ } LogTail;
+ __MINGW_EXTENSION struct {
+ ULONG Percentage;
+ } AutoShrink;
+ __MINGW_EXTENSION struct {
+ ULONG Enabled;
+ } AutoGrow;
+ __MINGW_EXTENSION struct {
+ USHORT PrefixLengthInBytes;
+ WCHAR PrefixString[1];
+ } NewContainerPrefix;
+ __MINGW_EXTENSION struct {
+ ULONGLONG NextContainerSuffix;
+ } NewContainerSuffix;
+ __MINGW_EXTENSION struct {
+ USHORT ExtensionLengthInBytes;
+ WCHAR ExtensionString[1];
+ } NewContainerExtension;
+ } PolicyParameters;
+} CLFS_MGMT_POLICY, *PCLFS_MGMT_POLICY;
+
+/* Conflict with CLFS_MGMT_POLICY_TYPE
+typedef struct _ClfsMgmtPolicyAutoGrow {
+ ULONG Enabled;
+} ClfsMgmtPolicyAutoGrow;
+
+typedef struct _ClfsMgmtPolicyAutoShrink {
+ ULONG Percentage;
+} ClfsMgmtPolicyAutoShrink;
+
+typedef struct _ClfsMgmtPolicyGrowthRate {
+ ULONG AbsoluteGrowthInContainers;
+ ULONG RelativeGrowthPercentage;
+} ClfsMgmtPolicyGrowthRate;
+
+typedef struct _ClfsMgmtPolicyLogTail {
+ ULONG MinimumAvailablePercentage;
+ ULONG MinimumAvailableContainers;
+} ClfsMgmtPolicyLogTail;
+
+typedef struct _ClfsMgmtPolicyMinimumSize {
+ ULONG Containers;
+} ClfsMgmtPolicyMinimumSize;
+
+typedef struct _ClfsMgmtPolicyMaximumSize {
+ ULONG Containers;
+} ClfsMgmtPolicyMaximumSize;
+
+typedef struct _ClfsMgmtPolicyNewContainerExtension {
+ ULONG ExtensionLengthInBytes;
+ WCHAR ExtensionString[1];
+} ClfsMgmtPolicyNewContainerExtension, *PClfsMgmtPolicyNewContainerExtension;
+
+typedef struct _ClfsMgmtPolicyNewContainerPrefix {
+ USHORT PrefixLengthInBytes;
+ WCHAR PrefixString[1];
+} ClfsMgmtPolicyNewContainerPrefix;
+
+typedef struct _ClfsMgmtPolicyNewContainerSize {
+ ULONG SizeInBytes;
+} ClfsMgmtPolicyNewContainerSize;
+
+typedef struct _ClfsMgmtPolicyNewContainerSuffix {
+ ULONGLONG NextContainerSuffix;
+} ClfsMgmtPolicyNewContainerSuffix, *PClfsMgmtPolicyNewContainerSuffix;
+*/
+#ifdef __cplusplus
+}
+#endif
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_CLFSMGMT*/
diff --git a/mingw-w64-headers/include/clfsmgmtw32.h b/mingw-w64-headers/include/clfsmgmtw32.h
new file mode 100644
index 0000000..16ea5f7
--- /dev/null
+++ b/mingw-w64-headers/include/clfsmgmtw32.h
@@ -0,0 +1,78 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_CLFSMGMTW32
+#define _INC_CLFSMGMTW32
+#if (_WIN32_WINNT >= 0x0600)
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef VOID (CALLBACK * PLOG_UNPINNED_CALLBACK )(
+ HANDLE hLogFile,
+ PVOID pvClientContext
+);
+
+typedef VOID (CALLBACK * PLOG_FULL_HANDLER_CALLBACK )(
+ HANDLE hLogFile,
+ DWORD dwError,
+ WINBOOL fLogIsPinned,
+ PVOID pvClientContext
+);
+
+typedef VOID (CALLBACK * PLOG_TAIL_ADVANCE_CALLBACK )(
+ HANDLE hLogFile,
+ CLFS_LSN lsnTarget,
+ PVOID pvClientContext
+);
+
+typedef struct _LOG_MANAGEMENT_CALLBACKS {
+ PVOID CallbackContext;
+ PLOG_TAIL_ADVANCE_CALLBACK AdvanceTailCallback;
+ PLOG_FULL_HANDLER_CALLBACK LogFullHandlerCallback;
+ PLOG_UNPINNED_CALLBACK LogUnpinnedCallback;
+} LOG_MANAGEMENT_CALLBACKS, *PLOG_MANAGEMENT_CALLBACKS;
+
+WINBOOL WINAPI HandleLogFull(
+ HANDLE hLog
+);
+
+WINBOOL WINAPI RegisterManageableLogClient(
+ HANDLE hLog,
+ PLOG_MANAGEMENT_CALLBACKS pCallbacks
+);
+
+WINBOOL WINAPI ReadLogNotification(
+ HANDLE hLog,
+ PCLFS_MGMT_NOTIFICATION pNotification,
+ LPOVERLAPPED lpOverlapped
+);
+
+WINBOOL WINAPI LogTailAdvanceFailure(
+ HANDLE hLog,
+ DWORD dwReason
+);
+
+WINBOOL WINAPI RegisterForLogWriteNotification(
+ HANDLE hLog,
+ ULONG cbThreshold,
+ WINBOOL fEnable
+);
+
+WINBOOL WINAPI RemoveLogPolicy(
+ HANDLE hLog,
+ CLFS_MANAGEMENT_POLICY_TYPE ePolicyType
+);
+
+WINBOOL WINAPI SetLogFileSizeWithPolicy(
+ HANDLE hLog,
+ PULONGLONG pDesiredSize,
+ PULONGLONG pResultingSize
+);
+#ifdef __cplusplus
+}
+#endif
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_CLFSMGMTW32*/
diff --git a/mingw-w64-headers/include/clfsw32.h b/mingw-w64-headers/include/clfsw32.h
new file mode 100644
index 0000000..c458c16
--- /dev/null
+++ b/mingw-w64-headers/include/clfsw32.h
@@ -0,0 +1,329 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_CLFSW32
+#define _INC_CLFSW32
+#include <clfs.h>
+#include <clfsmgmt.h>
+
+#if (_WIN32_WINNT >= 0x0600)
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef PVOID (* CLFS_BLOCK_ALLOCATION) (ULONG cbBufferSize, PVOID pvUserContext);
+typedef void (* CLFS_BLOCK_DEALLOCATION) (PVOID pvBuffer, PVOID pvUserContext);
+typedef LPVOID PFILE;
+typedef LPVOID CLFS_PRINT_RECORD_ROUTINE; /*Unknown Callback*/
+
+WINBOOL WINAPI AdvanceLogBase(PVOID pvMarshal,PCLFS_LSN plsnBase,ULONG fFlags,LPOVERLAPPED pOverlapped);
+
+WINBOOL WINAPI AlignReservedLog(PVOID pvMarshal,ULONG cReservedRecords,LONGLONG rgcbReservation,PLONGLONG pcbAlignReservation);
+WINBOOL WINAPI AllocReservedLog(PVOID pvMarshal,ULONG cReservedRecords,PLONGLONG pcbAdjustment);
+
+WINBOOL WINAPI AddLogContainer(HANDLE hLog,PULONGLONG pcbContainer,LPWSTR pwszContainerPath,LPVOID pReserved);
+WINBOOL WINAPI AddLogContainerSet(HANDLE hLog,USHORT cContainers,PULONGLONG pcbContainer,LPWSTR *rgwszContainerPath,PVOID Reserved);
+WINBOOL WINAPI CloseAndResetLogFile(HANDLE hLog);
+
+WINBOOL WINAPI CreateLogContainerScanContext(
+ HANDLE hLog,
+ ULONG cFromContainer,
+ ULONG cContainers,
+ CLFS_SCAN_MODE eScanMode,
+ PCLFS_SCAN_CONTEXT pcxScan,
+ LPOVERLAPPED pOverlapped
+);
+
+HANDLE WINAPI CreateLogFile(
+ LPCWSTR pszLogFileName,
+ ACCESS_MASK fDesiredAccess,
+ DWORD dwShareMode,
+ LPSECURITY_ATTRIBUTES psaLogFile,
+ ULONG fCreateDisposition,
+ ULONG fFlagsAndAttributes
+);
+
+WINBOOL WINAPI ScanLogContainers(
+ PCLFS_SCAN_CONTEXT pcxScan,
+ CLFS_SCAN_MODE eScanMode,
+ LPVOID pReserved
+);
+
+WINBOOL WINAPI CreateLogMarshallingArea(
+ HANDLE hLog,
+ CLFS_BLOCK_ALLOCATION pfnAllocBuffer,
+ CLFS_BLOCK_DEALLOCATION pfnFreeBuffer,
+ PVOID pvBlockAllocContext,
+ ULONG cbMarshallingBuffer,
+ ULONG cMaxWriteBuffers,
+ ULONG cMaxReadBuffers,
+ PVOID *ppvMarshal
+);
+
+WINBOOL WINAPI DeleteLogMarshallingArea(
+ PVOID pvMarshal
+);
+
+WINBOOL WINAPI DeleteLogByHandle(
+ HANDLE hLog
+);
+
+WINBOOL WINAPI DeleteLogFile(
+ LPCWSTR pszLogFileName,
+ PVOID pvReserved
+);
+
+WINBOOL WINAPI DeregisterManageableLogClient(
+ HANDLE hLog
+);
+
+WINBOOL WINAPI DumpLogRecords(
+ PWSTR pwszLogFileName,
+ CLFS_RECORD_TYPE fRecordType,
+ PCLFS_LSN plsnStart,
+ PCLFS_LSN plsnEnd,
+ PFILE pstrmOut,
+ CLFS_PRINT_RECORD_ROUTINE pfnPrintRecord,
+ CLFS_BLOCK_ALLOCATION pfnAllocBlock,
+ CLFS_BLOCK_DEALLOCATION pfnFreeBlock,
+ PVOID pvBlockAllocContext,
+ ULONG cbBlock,
+ ULONG cMaxBlocks
+);
+
+WINBOOL WINAPI ReadLogRecord(
+ PVOID pvMarshal,
+ PCLFS_LSN plsnFirst,
+ CLFS_CONTEXT_MODE eContextMode,
+ PVOID *ppvReadBuffer,
+ PULONG pcbReadBuffer,
+ PCLFS_RECORD_TYPE peRecordType,
+ PCLFS_LSN plsnUndoNext,
+ PCLFS_LSN plsnPrevious,
+ PVOID *ppvReadContext,
+ LPOVERLAPPED pOverlapped
+);
+
+WINBOOL WINAPI ReadNextLogRecord(
+ PVOID pvReadContext,
+ PVOID *ppvBuffer,
+ PULONG pcbBuffer,
+ PCLFS_RECORD_TYPE peRecordType,
+ PCLFS_LSN plsnUser,
+ PCLFS_LSN plsnUndoNext,
+ PCLFS_LSN plsnPrevious,
+ PCLFS_LSN plsnRecord,
+ LPOVERLAPPED pOverlapped
+);
+
+WINBOOL WINAPI FlushLogBuffers(
+ PVOID pvMarshal,
+ LPOVERLAPPED pOverlapped
+);
+
+WINBOOL WINAPI FlushLogToLsn(
+ PVOID pvMarshalContext,
+ PCLFS_LSN plsnFlush,
+ PCLFS_LSN plsnLastFlushed,
+ LPOVERLAPPED pOverlapped
+);
+
+WINBOOL WINAPI FreeReservedLog(
+ PVOID pvMarshal,
+ ULONG cReservedRecords,
+ PLONGLONG pcbAdjustment
+);
+
+WINBOOL WINAPI GetLogContainerName(
+ HANDLE hLog,
+ CLFS_CONTAINER_ID cidLogicalContainer,
+ LPCWSTR pwstrContainerName,
+ ULONG cLenContainerName,
+ PULONG pcActualLenContainerName
+);
+
+WINBOOL WINAPI GetLogFileInformation(
+ HANDLE hLog,
+ PCLFS_INFORMATION pinfoBuffer,
+ PULONG cbBuffer
+);
+
+WINBOOL WINAPI GetLogIoStatistics(
+ HANDLE hLog,
+ PVOID pvStatsBuffer,
+ ULONG cbStatsBuffer,
+ CLFS_IOSTATS_CLASS eStatsClass,
+ PULONG pcbStatsWritten
+);
+
+typedef LPVOID CLFS_LOG_ARCHIVE_CONTEXT;
+typedef CLFS_LOG_ARCHIVE_CONTEXT *PCLFS_LOG_ARCHIVE_CONTEXT;
+
+WINBOOL WINAPI GetNextLogArchiveExtent(
+ CLFS_LOG_ARCHIVE_CONTEXT pvArchiveContext,
+ CLFS_ARCHIVE_DESCRIPTOR rgadExtent[],
+ ULONG cDescriptors,
+ PULONG pcDescriptorsReturned
+);
+
+WINBOOL WINAPI PrepareLogArchive(
+ HANDLE hLog,
+ PWSTR pszBaseLogFileName,
+ ULONG cLen,
+ const PCLFS_LSN plsnLow,
+ const PCLFS_LSN plsnHigh,
+ PULONG pcActualLength,
+ PULONGLONG poffBaseLogFileData,
+ PULONGLONG pcbBaseLogFileLength,
+ PCLFS_LSN plsnBase,
+ PCLFS_LSN plsnLast,
+ PCLFS_LSN plsnCurrentArchiveTail,
+ PCLFS_LOG_ARCHIVE_CONTEXT ppvArchiveContext
+);
+
+WINBOOL WINAPI TerminateLogArchive(
+ CLFS_LOG_ARCHIVE_CONTEXT pvArchiveContext
+);
+
+ULONG WINAPI LsnBlockOffset(
+ const CLFS_LSN *plsn
+);
+
+CLFS_CONTAINER_ID WINAPI LsnContainer(
+ const CLFS_LSN *plsn
+);
+
+CLFS_LSN WINAPI LsnCreate(
+ CLFS_CONTAINER_ID cidContainer,
+ ULONG offBlock,
+ ULONG cRecord
+);
+
+ULONG WINAPI LsnRecordSequence(
+ const CLFS_LSN *plsn
+);
+
+WINBOOL WINAPI PrepareLogArchive(
+ HANDLE hLog,
+ PWSTR pszBaseLogFileName,
+ ULONG cLen,
+ const PCLFS_LSN plsnLow,
+ const PCLFS_LSN plsnHigh,
+ PULONG pcActualLength,
+ PULONGLONG poffBaseLogFileData,
+ PULONGLONG pcbBaseLogFileLength,
+ PCLFS_LSN plsnBase,
+ PCLFS_LSN plsnLast,
+ PCLFS_LSN plsnCurrentArchiveTail,
+ PCLFS_LOG_ARCHIVE_CONTEXT ppvArchiveContext
+);
+
+WINBOOL WINAPI QueryLogPolicy(
+ HANDLE hLog,
+ CLFS_MGMT_POLICY_TYPE ePolicyType,
+ PCLFS_MGMT_POLICY pPolicyBuffer,
+ PULONG pcbPolicyBuffer
+);
+
+WINBOOL WINAPI ReadLogArchiveMetadata(
+ CLFS_LOG_ARCHIVE_CONTEXT pvArchiveContext,
+ ULONG cbOffset,
+ ULONG cbBytesToRead,
+ PBYTE pbReadBuffer,
+ PULONG pcbBytesRead
+);
+
+WINBOOL WINAPI ReadLogRestartArea(
+ PVOID pvMarshal,
+ PVOID *ppvRestartBuffer,
+ PULONG pcbRestartBuffer,
+ PCLFS_LSN plsn,
+ PVOID *ppvContext,
+ LPOVERLAPPED pOverlapped
+);
+
+WINBOOL WINAPI ReadPreviousLogRestartArea(
+ PVOID pvReadContext,
+ PVOID *ppvRestartBuffer,
+ PULONG pcbRestartBuffer,
+ PCLFS_LSN plsnRestart,
+ LPOVERLAPPED pOverlapped
+);
+
+WINBOOL WINAPI RemoveLogContainer(
+ HANDLE hLog,
+ LPWSTR pwszContainerPath,
+ WINBOOL fForce,
+ LPVOID pReserved
+);
+
+WINBOOL WINAPI RemoveLogContainerSet(
+ HANDLE hLog,
+ USHORT cContainers,
+ LPWSTR *rgwszContainerPath,
+ WINBOOL fForce,
+ LPVOID pReserved
+);
+
+WINBOOL WINAPI ReserveAndAppendLog(
+ PVOID pvMarshal,
+ PCLFS_WRITE_ENTRY rgWriteEntries,
+ ULONG cWriteEntries,
+ PCLFS_LSN plsnUndoNext,
+ PCLFS_LSN plsnPrevious,
+ ULONG cReserveRecords,
+ LONGLONG rgcbReservation[],
+ ULONG fFlags,
+ PCLFS_LSN plsn,
+ LPOVERLAPPED pOverlapped
+);
+
+WINBOOL WINAPI ReserveAndAppendLogAligned(
+ PVOID pvMarshal,
+ PCLFS_WRITE_ENTRY rgWriteEntries,
+ ULONG cWriteEntries,
+ ULONG cbEntryAlignment,
+ PCLFS_LSN plsnUndoNext,
+ PCLFS_LSN plsnPrevious,
+ ULONG cReserveRecords,
+ LONGLONG rgcbReservation[],
+ ULONG fFlags,
+ PCLFS_LSN plsn,
+ LPOVERLAPPED overlapped
+);
+
+WINBOOL WINAPI SetEndOfLog(
+ HANDLE hLog,
+ PCLFS_LSN plsnEnd,
+ LPOVERLAPPED lpOverlapped
+);
+
+WINBOOL WINAPI SetLogArchiveMode(
+ HANDLE hLog,
+ CLFS_LOG_ARCHIVE_MODE eMode
+);
+
+WINBOOL WINAPI SetLogArchiveTail(
+ HANDLE hLog,
+ PCLFS_LSN plsnArchiveTail,
+ LPVOID pReserved
+);
+
+WINBOOL WINAPI TerminateReadLog(
+ PVOID pvCursorContext
+);
+
+WINBOOL WINAPI ValidateLog(
+ LPCWSTR pszLogFileName,
+ LPSECURITY_ATTRIBUTES psaLogFile,
+ PCLFS_INFORMATION pinfoBuffer,
+ PULONG pcbBuffer
+);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* (_WIN32_WINNT >= 0x0600) */
+#endif /*_INC_CLFSW32*/
diff --git a/mingw-w64-headers/include/clusapi.h b/mingw-w64-headers/include/clusapi.h
index e8af49e..46570e6 100644
--- a/mingw-w64-headers/include/clusapi.h
+++ b/mingw-w64-headers/include/clusapi.h
@@ -1407,6 +1407,36 @@
HGROUP hGroup
);
+typedef enum _FILESHARE_CHANGE_ENUM {
+ FILESHARE_CHANGE_NONE = 0,
+ FILESHARE_CHANGE_ADD = 1,
+ FILESHARE_CHANGE_DEL = 2,
+ FILESHARE_CHANGE_MODIFY = 3
+} FILESHARE_CHANGE_ENUM;
+
+#define NNLEN 80 // Net name length (share name)
+
+typedef struct _FILESHARE_CHANGE {
+ FILESHARE_CHANGE_ENUM Change;
+ WCHAR ShareName[NNLEN+4];
+} FILESHARE_CHANGE, *PFILESHARE_CHANGE;
+
+typedef struct _FILESHARE_CHANGE_LIST {
+ DWORD NumEntries;
+ FILESHARE_CHANGE ChangeEntry[];
+} FILESHARE_CHANGE_LIST, *PFILESHARE_CHANGE_LIST;
+
+DWORD WINAPI GetClusterResourceDependencyExpression(
+ HRESOURCE hResource,
+ LPWSTR lpszDependencyExpression,
+ LPDWORD lpcchDependencyExpression
+);
+
+DWORD WINAPI SetClusterResourceDependencyExpression(
+ HRESOURCE hResource,
+ LPCWSTR lpszDependencyExpression
+);
+
#endif /* (_WIN32_WINNT >= 0x0600) */
#ifdef __cplusplus
diff --git a/mingw-w64-headers/include/codecapi.h b/mingw-w64-headers/include/codecapi.h
new file mode 100644
index 0000000..a79c064
--- /dev/null
+++ b/mingw-w64-headers/include/codecapi.h
@@ -0,0 +1,42 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_CODECAPI
+#define _INC_CODECAPI
+
+#if (_WIN32_WINNT >= 0x0601)
+ enum eAVEncH264VLevel {
+ eAVEncH264VLevel1 = 10,
+ eAVEncH264VLevel1_b = 11,
+ eAVEncH264VLevel1_1 = 11,
+ eAVEncH264VLevel1_2 = 12,
+ eAVEncH264VLevel1_3 = 13,
+ eAVEncH264VLevel2 = 20,
+ eAVEncH264VLevel2_1 = 21,
+ eAVEncH264VLevel2_2 = 22,
+ eAVEncH264VLevel3 = 30,
+ eAVEncH264VLevel3_1 = 31,
+ eAVEncH264VLevel3_2 = 32,
+ eAVEncH264VLevel4 = 40,
+ eAVEncH264VLevel4_1 = 41,
+ eAVEncH264VLevel4_2 = 42,
+ eAVEncH264VLevel5 = 50,
+ eAVEncH264VLevel5_1 = 51
+ };
+
+ enum eAVEncH264VProfile {
+ eAVEncH264VProfile_unknown = 0,
+ eAVEncH264VProfile_Simple = 66,
+ eAVEncH264VProfile_Base = 66,
+ eAVEncH264VProfile_Main = 77,
+ eAVEncH264VProfile_High = 100,
+ eAVEncH264VProfile_422 = 122,
+ eAVEncH264VProfile_High10 = 110,
+ eAVEncH264VProfile_444 = 144,
+ eAVEncH264VProfile_Extended = 88
+ };
+
+#endif /*(_WIN32_WINNT >= 0x0601)*/
+#endif /*_INC_CODECAPI*/
diff --git a/mingw-w64-headers/include/credssp.h b/mingw-w64-headers/include/credssp.h
new file mode 100644
index 0000000..b0605cb
--- /dev/null
+++ b/mingw-w64-headers/include/credssp.h
@@ -0,0 +1,40 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_CREDSSP
+#define _INC_CREDSSP
+
+#if (_WIN32_WINNT >= 0x0600)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum _CREDSSP_SUBMIT_TYPE {
+ CredsspPasswordCreds = 2,
+ CredsspSchannelCreds = 4,
+ CredsspCertificateCreds = 13,
+ CredsspSubmitBufferBoth = 50,
+ CredsspSubmitBufferBothOld = 51
+} CREDSPP_SUBMIT_TYPE;
+
+typedef struct _CREDSSP_CRED {
+ CREDSPP_SUBMIT_TYPE Type;
+ PVOID pSchannelCred;
+ PVOID pSpnegoCred;
+} CREDSSP_CRED, *PCREDSSP_CRED;
+
+typedef struct _SecPkgContext_ClientCreds {
+ ULONG AuthBufferLen;
+ PUCHAR AuthBuffer;
+} SecPkgContext_ClientCreds, *PSecPkgContext_ClientCreds;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
+#endif /*_INC_CREDSSP*/
diff --git a/mingw-w64-headers/include/cscapi.h b/mingw-w64-headers/include/cscapi.h
new file mode 100644
index 0000000..9ae03da
--- /dev/null
+++ b/mingw-w64-headers/include/cscapi.h
@@ -0,0 +1,27 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_CSCAPI
+#define _INC_CSCAPI
+#include <windows.h>
+#if (_WIN32_WINNT >= 0x0600)
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+DWORD OfflineFilesEnable(
+ WINBOOL bEnable,
+ WINBOOL *pbRebootRequired
+);
+DWORD OfflineFilesQueryStatus(
+ WINBOOL *pbActive,
+ WINBOOL *pbEnabled
+);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_CSCAPI*/
diff --git a/mingw-w64-headers/include/cscobj.h b/mingw-w64-headers/include/cscobj.h
new file mode 100644
index 0000000..4b6b7da
--- /dev/null
+++ b/mingw-w64-headers/include/cscobj.h
@@ -0,0 +1,213 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_CSCOBJ
+#define _INC_CSCOBJ
+#if (_WIN32_WINNT >= 0x0600)
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum _OFFLINEFILES_CACHING_MODE {
+ OFFLINEFILES_CACHING_MODE_NONE = 0,
+ OFFLINEFILES_CACHING_MODE_NOCACHING = 1,
+ OFFLINEFILES_CACHING_MODE_MANUAL = 2,
+ OFFLINEFILES_CACHING_MODE_AUTO_DOC = 3,
+ OFFLINEFILES_CACHING_MODE_AUTO_PROGANDDOC = 4
+} OFFLINEFILES_CACHING_MODE;
+
+typedef enum _OFFLINEFILES_COMPARE {
+ OFFLINEFILES_COMPARE_EQ = 0,
+ OFFLINEFILES_COMPARE_NEQ = 1,
+ OFFLINEFILES_COMPARE_LT = 2,
+ OFFLINEFILES_COMPARE_GT = 3,
+ OFFLINEFILES_COMPARE_LTE = 4,
+ OFFLINEFILES_COMPARE_GTE = 5
+} OFFLINEFILES_COMPARE;
+
+typedef enum _OFFLINEFILES_CONNECT_STATE {
+ OFFLINEFILES_CONNECT_STATE_UNKNOWN = 0,
+ OFFLINEFILES_CONNECT_STATE_OFFLINE = 1,
+ OFFLINEFILES_CONNECT_STATE_ONLINE = 2,
+ OFFLINEFILES_CONNECT_STATE_TRANSPARENTLY_CACHED = 3,
+ OFFLINEFILES_CONNECT_STATE_PARTLY_TRANSPARENTLY_CACHED = 4
+} OFFLINEFILES_CONNECT_STATE;
+
+typedef enum _OFFLINEFILES_EVENTS {
+ OFFLINEFILES_EVENT_CACHEMOVED = 0,
+ OFFLINEFILES_EVENT_CACHEISFULL = 1,
+ OFFLINEFILES_EVENT_CACHEISCORRUPTED = 2,
+ OFFLINEFILES_EVENT_ENABLED = 3,
+ OFFLINEFILES_EVENT_ENCRYPTIONCHANGED = 4,
+ OFFLINEFILES_EVENT_SYNCBEGIN = 5,
+ OFFLINEFILES_EVENT_SYNCFILERESULT = 6,
+ OFFLINEFILES_EVENT_SYNCCONFLICTRECADDED = 7,
+ OFFLINEFILES_EVENT_SYNCCONFLICTRECUPDATED = 8,
+ OFFLINEFILES_EVENT_SYNCCONFLICTRECREMOVED = 9,
+ OFFLINEFILES_EVENT_SYNCEND = 10,
+ OFFLINEFILES_EVENT_BACKGROUNDSYNCBEGIN = 11,
+ OFFLINEFILES_EVENT_BACKGROUNDSYNCEND = 12,
+ OFFLINEFILES_EVENT_NETTRANSPORTARRIVED = 13,
+ OFFLINEFILES_EVENT_NONETTRANSPORTS = 14,
+ OFFLINEFILES_EVENT_ITEMDISCONNECTED = 15,
+ OFFLINEFILES_EVENT_ITEMRECONNECTED = 16,
+ OFFLINEFILES_EVENT_ITEMAVAILABLEOFFLINE = 17,
+ OFFLINEFILES_EVENT_ITEMNOTAVAILABLEOFFLINE = 18,
+ OFFLINEFILES_EVENT_ITEMPINNED = 19,
+ OFFLINEFILES_EVENT_ITEMNOTPINNED = 20,
+ OFFLINEFILES_EVENT_ITEMMODIFIED = 21,
+ OFFLINEFILES_EVENT_ITEMADDEDTOCACHE = 22,
+ OFFLINEFILES_EVENT_ITEMDELETEDFROMCACHE = 23,
+ OFFLINEFILES_EVENT_ITEMRENAMED = 24,
+ OFFLINEFILES_EVENT_DATALOST = 25,
+ OFFLINEFILES_EVENT_PING = 26,
+ OFFLINEFILES_EVENT_ITEMRECONNECTBEGIN = 27,
+ OFFLINEFILES_EVENT_ITEMRECONNECTEND = 28,
+ OFFLINEFILES_EVENT_CACHEEVICTBEGIN = 29,
+ OFFLINEFILES_EVENT_CACHEEVICTEND = 30,
+ OFFLINEFILES_EVENT_POLICYCHANGEDETECTED = 31,
+ OFFLINEFILES_EVENT_PREFERENCECHANGEDETECTED = 32,
+ OFFLINEFILES_EVENT_SETTINGSCHANGESAPPLIED = 33,
+ OFFLINEFILES_EVENT_TRANSPARENTCACHEITEMNOTIFY = 34,
+ OFFLINEFILES_EVENT_PREFETCHFILEBEGIN = 35,
+ OFFLINEFILES_EVENT_PREFETCHFILEEND = 36
+} OFFLINEFILES_EVENTS;
+
+typedef enum _OFFLINEFILES_ITEM_COPY {
+ OFFLINEFILES_ITEM_COPY_LOCAL = 0,
+ OFFLINEFILES_ITEM_COPY_REMOTE = 1,
+ OFFLINEFILES_ITEM_COPY_ORIGINAL = 2
+} OFFLINEFILES_ITEM_COPY;
+
+typedef enum _OFFLINEFILES_ITEM_TIME {
+ OFFLINEFILES_ITEM_TIME_CREATION = 0,
+ OFFLINEFILES_ITEM_TIME_LASTACCESS = 1,
+ OFFLINEFILES_ITEM_TIME_LASTWRITE = 2
+} OFFLINEFILES_ITEM_TIME;
+
+typedef enum _OFFLINEFILES_ITEM_TYPE {
+ OFFLINEFILES_ITEM_TYPE_FILE = 0,
+ OFFLINEFILES_ITEM_TYPE_DIRECTORY = 1,
+ OFFLINEFILES_ITEM_TYPE_SHARE = 2,
+ OFFLINEFILES_ITEM_TYPE_SERVER = 3
+} OFFLINEFILES_ITEM_TYPE;
+
+typedef enum _OFFLINEFILES_OFFLINE_REASON {
+ OFFLINEFILES_OFFLINE_REASON_UNKNOWN = 0,
+ OFFLINEFILES_OFFLINE_REASON_NOT_APPLICABLE = 1,
+ OFFLINEFILES_OFFLINE_REASON_CONNECTION_FORCED = 2,
+ OFFLINEFILES_OFFLINE_REASON_CONNECTION_SLOW = 3,
+ OFFLINEFILES_OFFLINE_REASON_CONNECTION_ERROR = 4,
+ OFFLINEFILES_OFFLINE_REASON_ITEM_VERSION_CONFLICT = 5,
+ OFFLINEFILES_OFFLINE_REASON_ITEM_SUSPENDED = 6
+} OFFLINEFILES_OFFLINE_REASON;
+
+typedef enum _OFFLINEFILES_OP_RESPONSE {
+ OFFLINEFILES_OP_CONTINUE = 0,
+ OFFLINEFILES_OP_RETRY = 1,
+ OFFLINEFILES_OP_ABORT = 2
+} OFFLINEFILES_OP_RESPONSE;
+
+typedef enum _OFFLINEFILES_PATHFILTER_MATCH {
+ OFFLINEFILES_PATHFILTER_SELF = 0,
+ OFFLINEFILES_PATHFILTER_CHILD = 1,
+ OFFLINEFILES_PATHFILTER_DESCENDENT = 2,
+ OFFLINEFILES_PATHFILTER_SELFORCHILD = 3,
+ OFFLINEFILES_PATHFILTER_SELFORDESCENDENT = 4
+} OFFLINEFILES_PATHFILTER_MATCH;
+
+typedef enum _OFFLINEFILES_SETTING_VALUE_TYPE {
+ OFFLINEFILES_SETTING_VALUE_UI4 = 0,
+ OFFLINEFILES_SETTING_VALUE_BSTR = 1,
+ OFFLINEFILES_SETTING_VALUE_BSTR_DBLNULTERM = 2,
+ OFFLINEFILES_SETTING_VALUE_2DIM_ARRAY_BSTR_UI4 = 3,
+ OFFLINEFILES_SETTING_VALUE_2DIM_ARRAY_BSTR_BSTR = 4
+} OFFLINEFILES_SETTING_VALUE_TYPE;
+
+typedef enum _OFFLINEFILES_SYNC_CONFLICT_RESOLVE {
+ OFFLINEFILES_SYNC_CONFLICT_RESOLVE_NONE = 0,
+ OFFLINEFILES_SYNC_CONFLICT_RESOLVE_KEEPLOCAL = 1,
+ OFFLINEFILES_SYNC_CONFLICT_RESOLVE_KEEPREMOTE = 2,
+ OFFLINEFILES_SYNC_CONFLICT_RESOLVE_KEEPALLCHANGES = 3,
+ OFFLINEFILES_SYNC_CONFLICT_RESOLVE_KEEPLATEST = 4,
+ OFFLINEFILES_SYNC_CONFLICT_RESOLVE_LOG = 5,
+ OFFLINEFILES_SYNC_CONFLICT_RESOLVE_SKIP = 6,
+ OFFLINEFILES_SYNC_CONFLICT_ABORT = 7
+} OFFLINEFILES_SYNC_CONFLICT_RESOLVE;
+
+typedef enum _OFFLINEFILES_SYNC_OPERATION {
+ OFFLINEFILES_SYNC_OPERATION_CREATE_COPY_ON_SERVER = 0,
+ OFFLINEFILES_SYNC_OPERATION_CREATE_COPY_ON_CLIENT = 1,
+ OFFLINEFILES_SYNC_OPERATION_SYNC_TO_SERVER = 2,
+ OFFLINEFILES_SYNC_OPERATION_SYNC_TO_CLIENT = 3,
+ OFFLINEFILES_SYNC_OPERATION_DELETE_SERVER_COPY = 4,
+ OFFLINEFILES_SYNC_OPERATION_DELETE_CLIENT_COPY = 5,
+ OFFLINEFILES_SYNC_OPERATION_PIN = 6,
+ OFFLINEFILES_SYNC_OPERATION_PREPARE = 7
+} OFFLINEFILES_SYNC_OPERATION;
+
+typedef enum _OFFLINEFILES_SYNC_STATE {
+ OFFLINEFILES_SYNC_STATE_Stable = 0,
+ OFFLINEFILES_SYNC_STATE_FileOnClient_DirOnServer = 1,
+ OFFLINEFILES_SYNC_STATE_FileOnClient_NoServerCopy = 2,
+ OFFLINEFILES_SYNC_STATE_DirOnClient_FileOnServer = 3,
+ OFFLINEFILES_SYNC_STATE_DirOnClient_FileChangedOnServer = 4,
+ OFFLINEFILES_SYNC_STATE_DirOnClient_NoServerCopy = 5,
+ OFFLINEFILES_SYNC_STATE_FileCreatedOnClient_NoServerCopy = 6,
+ OFFLINEFILES_SYNC_STATE_FileCreatedOnClient_FileChangedOnServer = 7,
+ OFFLINEFILES_SYNC_STATE_FileCreatedOnClient_DirChangedOnServer = 8,
+ OFFLINEFILES_SYNC_STATE_FileCreatedOnClient_FileOnServer = 9,
+ OFFLINEFILES_SYNC_STATE_FileCreatedOnClient_DirOnServer = 10,
+ OFFLINEFILES_SYNC_STATE_FileCreatedOnClient_DeletedOnServer = 11,
+ OFFLINEFILES_SYNC_STATE_FileChangedOnClient_ChangedOnServer = 12,
+ OFFLINEFILES_SYNC_STATE_FileChangedOnClient_DirOnServer = 13,
+ OFFLINEFILES_SYNC_STATE_FileChangedOnClient_DirChangedOnServer = 14,
+ OFFLINEFILES_SYNC_STATE_FileChangedOnClient_DeletedOnServer = 15,
+ OFFLINEFILES_SYNC_STATE_FileSparseOnClient_ChangedOnServer = 16,
+ OFFLINEFILES_SYNC_STATE_FileSparseOnClient_DeletedOnServer = 17,
+ OFFLINEFILES_SYNC_STATE_FileSparseOnClient_DirOnServer = 18,
+ OFFLINEFILES_SYNC_STATE_FileSparseOnClient_DirChangedOnServer = 19,
+ OFFLINEFILES_SYNC_STATE_DirCreatedOnClient_NoServerCopy = 20,
+ OFFLINEFILES_SYNC_STATE_DirCreatedOnClient_DirOnServer = 21,
+ OFFLINEFILES_SYNC_STATE_DirCreatedOnClient_FileOnServer = 22,
+ OFFLINEFILES_SYNC_STATE_DirCreatedOnClient_FileChangedOnServer = 23,
+ OFFLINEFILES_SYNC_STATE_DirCreatedOnClient_DirChangedOnServer = 24,
+ OFFLINEFILES_SYNC_STATE_DirCreatedOnClient_DeletedOnServer = 25,
+ OFFLINEFILES_SYNC_STATE_DirChangedOnClient_FileOnServer = 26,
+ OFFLINEFILES_SYNC_STATE_DirChangedOnClient_FileChangedOnServer = 27,
+ OFFLINEFILES_SYNC_STATE_DirChangedOnClient_ChangedOnServer = 28,
+ OFFLINEFILES_SYNC_STATE_DirChangedOnClient_DeletedOnServer = 29,
+ OFFLINEFILES_SYNC_STATE_NoClientCopy_FileOnServer = 30,
+ OFFLINEFILES_SYNC_STATE_NoClientCopy_DirOnServer = 31,
+ OFFLINEFILES_SYNC_STATE_NoClientCopy_FileChangedOnServer = 32,
+ OFFLINEFILES_SYNC_STATE_NoClientCopy_DirChangedOnServer = 33,
+ OFFLINEFILES_SYNC_STATE_DeletedOnClient_FileOnServer = 34,
+ OFFLINEFILES_SYNC_STATE_DeletedOnClient_DirOnServer = 35,
+ OFFLINEFILES_SYNC_STATE_DeletedOnClient_FileChangedOnServer = 36,
+ OFFLINEFILES_SYNC_STATE_DeletedOnClient_DirChangedOnServer = 37,
+ OFFLINEFILES_SYNC_STATE_FileSparseOnClient = 38,
+ OFFLINEFILES_SYNC_STATE_FileChangedOnClient = 39,
+ OFFLINEFILES_SYNC_STATE_FileRenamedOnClient = 40,
+ OFFLINEFILES_SYNC_STATE_DirSparseOnClient = 41,
+ OFFLINEFILES_SYNC_STATE_DirChangedOnClient = 42,
+ OFFLINEFILES_SYNC_STATE_DirRenamedOnClient = 43,
+ OFFLINEFILES_SYNC_STATE_FileChangedOnServer = 44,
+ OFFLINEFILES_SYNC_STATE_FileRenamedOnServer = 45,
+ OFFLINEFILES_SYNC_STATE_FileDeletedOnServer = 46,
+ OFFLINEFILES_SYNC_STATE_DirChangedOnServer = 47,
+ OFFLINEFILES_SYNC_STATE_DirRenamedOnServer = 48,
+ OFFLINEFILES_SYNC_STATE_DirDeletedOnServer = 49,
+ OFFLINEFILES_SYNC_STATE_FileReplacedAndDeletedOnClient_FileOnServer = 50,
+ OFFLINEFILES_SYNC_STATE_FileReplacedAndDeletedOnClient_FileChangedOnServer = 51,
+ OFFLINEFILES_SYNC_STATE_FileReplacedAndDeletedOnClient_DirOnServer = 52,
+ OFFLINEFILES_SYNC_STATE_FileReplacedAndDeletedOnClient_DirChangedOnServer = 53
+} OFFLINEFILES_SYNC_STATE;
+
+#ifdef __cplusplus
+}
+#endif
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_CSCOBJ*/
+
diff --git a/mingw-w64-headers/include/d2d1.h b/mingw-w64-headers/include/d2d1.h
new file mode 100644
index 0000000..547a93c
--- /dev/null
+++ b/mingw-w64-headers/include/d2d1.h
@@ -0,0 +1,2053 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+
+ * d2d1.h - Header file for the Direct2D API
+ * No original Microsoft headers were used in the creation of this
+ * file.
+ *API docs available at: http://msdn.microsoft.com/en-us/library/dd372349%28v=VS.85%29.aspx
+ */
+
+#ifndef _D2D1_H
+#define _D2D1_H
+
+#include <objbase.h>
+
+#include <d2dbasetypes.h>
+#include <d2derr.h>
+
+#ifndef _COM_interface
+#define _COM_interface struct
+#endif
+
+typedef UINT64 D2D1_TAG;
+
+#define D2D1_DEFAULT_FLATTENING_TOLERANCE 0.25f
+#define D2D1_INVALID_TAG ULONGLONG_MAX
+
+/* enumerations */
+
+/* todo - remove when d3d10 headers become available */
+typedef enum D3D10_FEATURE_LEVEL1 {
+ D3D10_FEATURE_LEVEL_10_0 = 0xa000,
+ D3D10_FEATURE_LEVEL_10_1 = 0xa100,
+ D3D10_FEATURE_LEVEL_9_1 = 0x9100,
+ D3D10_FEATURE_LEVEL_9_2 = 0x9200,
+ D3D10_FEATURE_LEVEL_9_3 = 0x9300
+} D3D10_FEATURE_LEVEL1;
+/* */
+
+/* todo - remove when dxgi.h becomes available */
+typedef enum DXGI_FORMAT {
+ DXGI_FORMAT_UNKNOWN = 0,
+ DXGI_FORMAT_R32G32B32A32_TYPELESS = 1,
+ DXGI_FORMAT_R32G32B32A32_FLOAT = 2,
+ DXGI_FORMAT_R32G32B32A32_UINT = 3,
+ DXGI_FORMAT_R32G32B32A32_SINT = 4,
+ DXGI_FORMAT_R32G32B32_TYPELESS = 5,
+ DXGI_FORMAT_R32G32B32_FLOAT = 6,
+ DXGI_FORMAT_R32G32B32_UINT = 7,
+ DXGI_FORMAT_R32G32B32_SINT = 8,
+ DXGI_FORMAT_R16G16B16A16_TYPELESS = 9,
+ DXGI_FORMAT_R16G16B16A16_FLOAT = 10,
+ DXGI_FORMAT_R16G16B16A16_UNORM = 11,
+ DXGI_FORMAT_R16G16B16A16_UINT = 12,
+ DXGI_FORMAT_R16G16B16A16_SNORM = 13,
+ DXGI_FORMAT_R16G16B16A16_SINT = 14,
+ DXGI_FORMAT_R32G32_TYPELESS = 15,
+ DXGI_FORMAT_R32G32_FLOAT = 16,
+ DXGI_FORMAT_R32G32_UINT = 17,
+ DXGI_FORMAT_R32G32_SINT = 18,
+ DXGI_FORMAT_R32G8X24_TYPELESS = 19,
+ DXGI_FORMAT_D32_FLOAT_S8X24_UINT = 20,
+ DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS = 21,
+ DXGI_FORMAT_X32_TYPELESS_G8X24_UINT = 22,
+ DXGI_FORMAT_R10G10B10A2_TYPELESS = 23,
+ DXGI_FORMAT_R10G10B10A2_UNORM = 24,
+ DXGI_FORMAT_R10G10B10A2_UINT = 25,
+ DXGI_FORMAT_R11G11B10_FLOAT = 26,
+ DXGI_FORMAT_R8G8B8A8_TYPELESS = 27,
+ DXGI_FORMAT_R8G8B8A8_UNORM = 28,
+ DXGI_FORMAT_R8G8B8A8_UNORM_SRGB = 29,
+ DXGI_FORMAT_R8G8B8A8_UINT = 30,
+ DXGI_FORMAT_R8G8B8A8_SNORM = 31,
+ DXGI_FORMAT_R8G8B8A8_SINT = 32,
+ DXGI_FORMAT_R16G16_TYPELESS = 33,
+ DXGI_FORMAT_R16G16_FLOAT = 34,
+ DXGI_FORMAT_R16G16_UNORM = 35,
+ DXGI_FORMAT_R16G16_UINT = 36,
+ DXGI_FORMAT_R16G16_SNORM = 37,
+ DXGI_FORMAT_R16G16_SINT = 38,
+ DXGI_FORMAT_R32_TYPELESS = 39,
+ DXGI_FORMAT_D32_FLOAT = 40,
+ DXGI_FORMAT_R32_FLOAT = 41,
+ DXGI_FORMAT_R32_UINT = 42,
+ DXGI_FORMAT_R32_SINT = 43,
+ DXGI_FORMAT_R24G8_TYPELESS = 44,
+ DXGI_FORMAT_D24_UNORM_S8_UINT = 45,
+ DXGI_FORMAT_R24_UNORM_X8_TYPELESS = 46,
+ DXGI_FORMAT_X24_TYPELESS_G8_UINT = 47,
+ DXGI_FORMAT_R8G8_TYPELESS = 48,
+ DXGI_FORMAT_R8G8_UNORM = 49,
+ DXGI_FORMAT_R8G8_UINT = 50,
+ DXGI_FORMAT_R8G8_SNORM = 51,
+ DXGI_FORMAT_R8G8_SINT = 52,
+ DXGI_FORMAT_R16_TYPELESS = 53,
+ DXGI_FORMAT_R16_FLOAT = 54,
+ DXGI_FORMAT_D16_UNORM = 55,
+ DXGI_FORMAT_R16_UNORM = 56,
+ DXGI_FORMAT_R16_UINT = 57,
+ DXGI_FORMAT_R16_SNORM = 58,
+ DXGI_FORMAT_R16_SINT = 59,
+ DXGI_FORMAT_R8_TYPELESS = 60,
+ DXGI_FORMAT_R8_UNORM = 61,
+ DXGI_FORMAT_R8_UINT = 62,
+ DXGI_FORMAT_R8_SNORM = 63,
+ DXGI_FORMAT_R8_SINT = 64,
+ DXGI_FORMAT_A8_UNORM = 65,
+ DXGI_FORMAT_R1_UNORM = 66,
+ DXGI_FORMAT_R9G9B9E5_SHAREDEXP = 67,
+ DXGI_FORMAT_R8G8_B8G8_UNORM = 68,
+ DXGI_FORMAT_G8R8_G8B8_UNORM = 69,
+ DXGI_FORMAT_BC1_TYPELESS = 70,
+ DXGI_FORMAT_BC1_UNORM = 71,
+ DXGI_FORMAT_BC1_UNORM_SRGB = 72,
+ DXGI_FORMAT_BC2_TYPELESS = 73,
+ DXGI_FORMAT_BC2_UNORM = 74,
+ DXGI_FORMAT_BC2_UNORM_SRGB = 75,
+ DXGI_FORMAT_BC3_TYPELESS = 76,
+ DXGI_FORMAT_BC3_UNORM = 77,
+ DXGI_FORMAT_BC3_UNORM_SRGB = 78,
+ DXGI_FORMAT_BC4_TYPELESS = 79,
+ DXGI_FORMAT_BC4_UNORM = 80,
+ DXGI_FORMAT_BC4_SNORM = 81,
+ DXGI_FORMAT_BC5_TYPELESS = 82,
+ DXGI_FORMAT_BC5_UNORM = 83,
+ DXGI_FORMAT_BC5_SNORM = 84,
+ DXGI_FORMAT_B5G6R5_UNORM = 85,
+ DXGI_FORMAT_B5G5R5A1_UNORM = 86,
+ DXGI_FORMAT_B8G8R8A8_UNORM = 87,
+ DXGI_FORMAT_B8G8R8X8_UNORM = 88,
+ DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM = 89,
+ DXGI_FORMAT_B8G8R8A8_TYPELESS = 90,
+ DXGI_FORMAT_B8G8R8A8_UNORM_SRGB = 91,
+ DXGI_FORMAT_B8G8R8X8_TYPELESS = 92,
+ DXGI_FORMAT_B8G8R8X8_UNORM_SRGB = 93,
+ DXGI_FORMAT_BC6H_TYPELESS = 94,
+ DXGI_FORMAT_BC6H_UF16 = 95,
+ DXGI_FORMAT_BC6H_SF16 = 96,
+ DXGI_FORMAT_BC7_TYPELESS = 97,
+ DXGI_FORMAT_BC7_UNORM = 98,
+ DXGI_FORMAT_BC7_UNORM_SRGB = 99,
+ DXGI_FORMAT_FORCE_UINT = 0xffffffffUL
+} DXGI_FORMAT, *LPDXGI_FORMAT;
+/* */
+
+/* todo - remove other temporary defines for unavailable interfaces */
+#define IWICBitmapSource void
+#define IDWriteRenderingParams void
+#define IDXGISurface void
+#define IWICBitmap void
+#define IDWriteTextFormat void
+#define IDWriteTextLayout void
+#define IDWriteFontFace void
+/* */
+
+/* todo - remove when dwrite headers becomes available */
+typedef enum DWRITE_MEASURING_MODE {
+ DWRITE_MEASURING_MODE_NATURAL,
+ DWRITE_MEASURING_MODE_GDI_CLASSIC,
+ DWRITE_MEASURING_MODE_GDI_NATURAL
+} DWRITE_MEASURING_MODE;
+
+typedef struct DWRITE_GLYPH_OFFSET {
+ FLOAT advanceOffset;
+ FLOAT ascenderOffset;
+} DWRITE_GLYPH_OFFSET;
+
+typedef struct DWRITE_GLYPH_RUN {
+ IDWriteFontFace *fontFace;
+ FLOAT fontEmSize;
+ UINT32 glyphCount;
+ const short *glyphIndices;
+ const FLOAT *glyphAdvances;
+ const DWRITE_GLYPH_OFFSET *glyphOffsets;
+ BOOL isSideways;
+ UINT32 bidiLevel;
+} DWRITE_GLYPH_RUN;
+/* */
+
+typedef enum {
+ D2D1_ALPHA_MODE_UNKNOWN = 0,
+ D2D1_ALPHA_MODE_PREMULTIPLIED = 1,
+ D2D1_ALPHA_MODE_STRAIGHT = 2,
+ D2D1_ALPHA_MODE_IGNORE = 3
+} D2D1_ALPHA_MODE;
+
+typedef enum {
+ D2D1_ANTIALIAS_MODE_PER_PRIMITIVE = 0,
+ D2D1_ANTIALIAS_MODE_ALIASED = 1
+} D2D1_ANTIALIAS_MODE;
+
+typedef enum {
+ D2D1_ARC_SIZE_SMALL = 0,
+ D2D1_ARC_SIZE_LARGE = 1
+} D2D1_ARC_SIZE;
+
+typedef enum {
+ D2D1_BITMAP_INTERPOLATION_MODE_NEAREST_NEIGHBOR = 0,
+ D2D1_BITMAP_INTERPOLATION_MODE_LINEAR = 1
+} D2D1_BITMAP_INTERPOLATION_MODE;
+
+typedef enum {
+ D2D1_CAP_STYLE_FLAT = 0,
+ D2D1_CAP_STYLE_SQUARE = 1,
+ D2D1_CAP_STYLE_ROUND = 2,
+ D2D1_CAP_STYLE_TRIANGLE = 3
+} D2D1_CAP_STYLE;
+
+typedef enum {
+ D2D1_COMBINE_MODE_UNION = 0,
+ D2D1_COMBINE_MODE_INTERSECT = 1,
+ D2D1_COMBINE_MODE_XOR = 2,
+ D2D1_COMBINE_MODE_EXCLUDE = 3
+} D2D1_COMBINE_MODE;
+
+typedef enum {
+ D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_NONE = 0x00000000,
+ D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_GDI_COMPATIBLE = 0x00000001
+} D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS;
+
+typedef enum {
+ D2D1_DASH_STYLE_SOLID = 0,
+ D2D1_DASH_STYLE_DASH = 1,
+ D2D1_DASH_STYLE_DOT = 2,
+ D2D1_DASH_STYLE_DASH_DOT = 3,
+ D2D1_DASH_STYLE_DASH_DOT_DOT = 4,
+ D2D1_DASH_STYLE_CUSTOM = 5
+} D2D1_DASH_STYLE;
+
+typedef enum {
+ D2D1_DC_INITIALIZE_MODE_COPY = 0,
+ D2D1_DC_INITIALIZE_MODE_CLEAR = 1
+} D2D1_DC_INITIALIZE_MODE;
+
+typedef enum {
+ D2D1_DEBUG_LEVEL_NONE = 0,
+ D2D1_DEBUG_LEVEL_ERROR = 1,
+ D2D1_DEBUG_LEVEL_WARNING = 2,
+ D2D1_DEBUG_LEVEL_INFORMATION = 3
+} D2D1_DEBUG_LEVEL;
+
+typedef enum {
+ D2D1_DRAW_TEXT_OPTIONS_NO_SNAP = 0x00000001,
+ D2D1_DRAW_TEXT_OPTIONS_CLIP = 0x00000002,
+ D2D1_DRAW_TEXT_OPTIONS_NONE = 0x00000000
+} D2D1_DRAW_TEXT_OPTIONS;
+
+typedef enum {
+ D2D1_EXTEND_MODE_CLAMP = 0,
+ D2D1_EXTEND_MODE_WRAP = 1,
+ D2D1_EXTEND_MODE_MIRROR = 2
+} D2D1_EXTEND_MODE;
+
+typedef enum {
+ D2D1_FACTORY_TYPE_SINGLE_THREADED = 0,
+ D2D1_FACTORY_TYPE_MULTI_THREADED = 1
+} D2D1_FACTORY_TYPE;
+
+typedef enum {
+ D2D1_FEATURE_LEVEL_DEFAULT = 0,
+ D2D1_FEATURE_LEVEL_9 = D3D10_FEATURE_LEVEL_9_1,
+ D2D1_FEATURE_LEVEL_10 = D3D10_FEATURE_LEVEL_10_0
+} D2D1_FEATURE_LEVEL;
+
+typedef enum {
+ D2D1_FIGURE_BEGIN_FILLED = 0,
+ D2D1_FIGURE_BEGIN_HOLLOW = 1
+} D2D1_FIGURE_BEGIN;
+
+typedef enum {
+ D2D1_FIGURE_END_OPEN = 0,
+ D2D1_FIGURE_END_CLOSED = 1
+} D2D1_FIGURE_END;
+
+typedef enum {
+ D2D1_FILL_MODE_ALTERNATE = 0,
+ D2D1_FILL_MODE_WINDING = 1
+} D2D1_FILL_MODE;
+
+typedef enum {
+ D2D1_GAMMA_2_2 = 0,
+ D2D1_GAMMA_1_0 = 1
+} D2D1_GAMMA;
+
+typedef enum {
+ D2D1_GEOMETRY_RELATION_UNKNOWN = 0,
+ D2D1_GEOMETRY_RELATION_DISJOINT = 1,
+ D2D1_GEOMETRY_RELATION_IS_CONTAINED = 2,
+ D2D1_GEOMETRY_RELATION_CONTAINS = 3,
+ D2D1_GEOMETRY_RELATION_OVERLAP = 4
+} D2D1_GEOMETRY_RELATION;
+
+typedef enum {
+ D2D1_GEOMETRY_SIMPLIFICATION_OPTION_CUBICS_AND_LINES = 0,
+ D2D1_GEOMETRY_SIMPLIFICATION_OPTION_LINES = 1
+} D2D1_GEOMETRY_SIMPLIFICATION_OPTION;
+
+typedef enum {
+ D2D1_LAYER_OPTIONS_NONE = 0x00000000,
+ D2D1_LAYER_OPTIONS_INITIALIZE_FOR_CLEARTYPE = 0x00000001
+} D2D1_LAYER_OPTIONS;
+
+typedef enum {
+ D2D1_LINE_JOIN_MITER = 0,
+ D2D1_LINE_JOIN_BEVEL = 1,
+ D2D1_LINE_JOIN_ROUND = 2,
+ D2D1_LINE_JOIN_MITER_OR_BEVEL = 3
+} D2D1_LINE_JOIN;
+
+typedef enum {
+ D2D1_OPACITY_MASK_CONTENT_GRAPHICS = 0,
+ D2D1_OPACITY_MASK_CONTENT_TEXT_NATURAL = 1,
+ D2D1_OPACITY_MASK_CONTENT_TEXT_GDI_COMPATIBLE = 2
+} D2D1_OPACITY_MASK_CONTENT;
+
+typedef enum {
+ D2D1_PATH_SEGMENT_NONE = 0x00000000,
+ D2D1_PATH_SEGMENT_FORCE_UNSTROKED = 0x00000001,
+ D2D1_PATH_SEGMENT_FORCE_ROUND_LINE_JOIN = 0x00000002
+} D2D1_PATH_SEGMENT;
+
+typedef enum {
+ D2D1_PRESENT_OPTIONS_NONE = 0x00000000,
+ D2D1_PRESENT_OPTIONS_RETAIN_CONTENTS = 0x00000001,
+ D2D1_PRESENT_OPTIONS_IMMEDIATELY = 0x00000002
+} D2D1_PRESENT_OPTIONS;
+
+typedef enum {
+ D2D1_RENDER_TARGET_TYPE_DEFAULT = 0,
+ D2D1_RENDER_TARGET_TYPE_SOFTWARE = 1,
+ D2D1_RENDER_TARGET_TYPE_HARDWARE = 2
+} D2D1_RENDER_TARGET_TYPE;
+
+typedef enum {
+ D2D1_RENDER_TARGET_USAGE_NONE = 0x00000000,
+ D2D1_RENDER_TARGET_USAGE_FORCE_BITMAP_REMOTING = 0x00000001,
+ D2D1_RENDER_TARGET_USAGE_GDI_COMPATIBLE = 0x00000002
+} D2D1_RENDER_TARGET_USAGE;
+
+typedef enum {
+ D2D1_SWEEP_DIRECTION_COUNTER_CLOCKWISE = 0,
+ D2D1_SWEEP_DIRECTION_CLOCKWISE = 1
+} D2D1_SWEEP_DIRECTION;
+
+typedef enum {
+ D2D1_TEXT_ANTIALIAS_MODE_DEFAULT = 0,
+ D2D1_TEXT_ANTIALIAS_MODE_CLEARTYPE = 1,
+ D2D1_TEXT_ANTIALIAS_MODE_GRAYSCALE = 2,
+ D2D1_TEXT_ANTIALIAS_MODE_ALIASED = 3
+} D2D1_TEXT_ANTIALIAS_MODE;
+
+typedef enum {
+ D2D1_WINDOW_STATE_NONE = 0x0000000,
+ D2D1_WINDOW_STATE_OCCLUDED = 0x0000001
+} D2D1_WINDOW_STATE;
+
+/* this is a hack so we can use forward declares in C (easier than reordering interfaces) */
+#if !defined(__cplusplus)
+#undef DECLARE_INTERFACE
+#define DECLARE_INTERFACE(iface) struct iface { struct iface##Vtbl *lpVtbl; }; typedef struct iface##Vtbl iface##Vtbl; struct iface##Vtbl
+#endif
+
+/* interface forward declares */
+
+typedef _COM_interface ID2D1Bitmap ID2D1Bitmap;
+typedef _COM_interface ID2D1BitmapBrush ID2D1BitmapBrush;
+typedef _COM_interface ID2D1BitmapRenderTarget ID2D1BitmapRenderTarget;
+typedef _COM_interface ID2D1Brush ID2D1Brush;
+typedef _COM_interface ID2D1DCRenderTarget ID2D1DCRenderTarget;
+typedef _COM_interface ID2D1DrawingStateBlock ID2D1DrawingStateBlock;
+typedef _COM_interface ID2D1EllipseGeometry ID2D1EllipseGeometry;
+typedef _COM_interface ID2D1Factory ID2D1Factory;
+typedef _COM_interface ID2D1GdiInteropRenderTarget ID2D1GdiInteropRenderTarget;
+typedef _COM_interface ID2D1Geometry ID2D1Geometry;
+typedef _COM_interface ID2D1GeometryGroup ID2D1GeometryGroup;
+typedef _COM_interface ID2D1GeometrySink ID2D1GeometrySink;
+typedef _COM_interface ID2D1GradientStopCollection ID2D1GradientStopCollection;
+typedef _COM_interface ID2D1HwndRenderTarget ID2D1HwndRenderTarget;
+typedef _COM_interface ID2D1Layer ID2D1Layer;
+typedef _COM_interface ID2D1LinearGradientBrush ID2D1LinearGradientBrush;
+typedef _COM_interface ID2D1Mesh ID2D1Mesh;
+typedef _COM_interface ID2D1PathGeometry ID2D1PathGeometry;
+typedef _COM_interface ID2D1RadialGradientBrush ID2D1RadialGradientBrush;
+typedef _COM_interface ID2D1RectangleGeometry ID2D1RectangleGeometry;
+typedef _COM_interface ID2D1RenderTarget ID2D1RenderTarget;
+typedef _COM_interface ID2D1Resource ID2D1Resource;
+typedef _COM_interface ID2D1RoundedRectangleGeometry ID2D1RoundedRectangleGeometry;
+typedef _COM_interface ID2D1SimplifiedGeometrySink ID2D1SimplifiedGeometrySink;
+typedef _COM_interface ID2D1SolidColorBrush ID2D1SolidColorBrush;
+typedef _COM_interface ID2D1StrokeStyle ID2D1StrokeStyle;
+typedef _COM_interface ID2D1TessellationSink ID2D1TessellationSink;
+typedef _COM_interface ID2D1TransformedGeometry ID2D1TransformedGeometry;
+
+/* structures */
+
+typedef struct D2D_MATRIX_3X2_F D2D1_MATRIX_3X2_F;
+
+typedef struct D2D1_ARC_SEGMENT D2D1_ARC_SEGMENT;
+typedef struct D2D1_BEZIER_SEGMENT D2D1_BEZIER_SEGMENT;
+typedef struct D2D1_BITMAP_BRUSH_PROPERTIES D2D1_BITMAP_BRUSH_PROPERTIES;
+typedef struct D2D1_BITMAP_PROPERTIES D2D1_BITMAP_PROPERTIES;
+typedef struct D2D1_BRUSH_PROPERTIES D2D1_BRUSH_PROPERTIES;
+typedef struct D2D1_DRAWING_STATE_DESCRIPTION D2D1_DRAWING_STATE_DESCRIPTION;
+typedef struct D2D1_ELLIPSE D2D1_ELLIPSE;
+typedef struct D2D1_FACTORY_OPTIONS D2D1_FACTORY_OPTIONS;
+typedef struct D2D1_GRADIENT_STOP D2D1_GRADIENT_STOP;
+typedef struct D2D1_HWND_RENDER_TARGET_PROPERTIES D2D1_HWND_RENDER_TARGET_PROPERTIES;
+typedef struct D2D1_LAYER_PARAMETERS D2D1_LAYER_PARAMETERS;
+typedef struct D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES;
+typedef struct D2D1_PIXEL_FORMAT D2D1_PIXEL_FORMAT;
+typedef struct D2D1_QUADRATIC_BEZIER_SEGMENT D2D1_QUADRATIC_BEZIER_SEGMENT;
+typedef struct D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES;
+typedef struct D2D1_RENDER_TARGET_PROPERTIES D2D1_RENDER_TARGET_PROPERTIES;
+typedef struct D2D1_ROUNDED_RECT D2D1_ROUNDED_RECT;
+typedef struct D2D1_STROKE_STYLE_PROPERTIES D2D1_STROKE_STYLE_PROPERTIES;
+typedef struct D2D1_TRIANGLE D2D1_TRIANGLE;
+
+struct D2D1_ARC_SEGMENT {
+ D2D1_POINT_2F point;
+ D2D1_SIZE_F size;
+ FLOAT rotationAngle;
+ D2D1_SWEEP_DIRECTION sweepDirection;
+ D2D1_ARC_SIZE arcSize;
+};
+
+struct D2D1_BEZIER_SEGMENT {
+ D2D1_POINT_2F point1;
+ D2D1_POINT_2F point2;
+ D2D1_POINT_2F point3;
+};
+
+struct D2D1_BITMAP_BRUSH_PROPERTIES {
+ D2D1_EXTEND_MODE extendModeX;
+ D2D1_EXTEND_MODE extendModeY;
+ D2D1_BITMAP_INTERPOLATION_MODE interpolationMode;
+};
+
+struct D2D1_PIXEL_FORMAT {
+ DXGI_FORMAT format;
+ D2D1_ALPHA_MODE alphaMode;
+};
+
+struct D2D1_BITMAP_PROPERTIES {
+ D2D1_PIXEL_FORMAT pixelFormat;
+ FLOAT dpiX;
+ FLOAT dpiY;
+};
+
+struct D2D1_BRUSH_PROPERTIES {
+ FLOAT opacity;
+ D2D1_MATRIX_3X2_F transform;
+};
+
+struct D2D1_DRAWING_STATE_DESCRIPTION {
+ D2D1_ANTIALIAS_MODE antialiasMode;
+ D2D1_TEXT_ANTIALIAS_MODE textAntialiasMode;
+ D2D1_TAG tag1;
+ D2D1_TAG tag2;
+ D2D1_MATRIX_3X2_F transform;
+};
+
+struct D2D1_ELLIPSE {
+ D2D1_POINT_2F point;
+ FLOAT radiusX;
+ FLOAT radiusY;
+};
+
+struct D2D1_FACTORY_OPTIONS {
+ D2D1_DEBUG_LEVEL debugLevel;
+};
+
+struct D2D1_GRADIENT_STOP {
+ FLOAT position;
+ D2D1_COLOR_F color;
+};
+
+struct D2D1_HWND_RENDER_TARGET_PROPERTIES {
+ HWND hwnd;
+ D2D1_SIZE_U pixelSize;
+ D2D1_PRESENT_OPTIONS presentOptions;
+};
+
+struct D2D1_LAYER_PARAMETERS {
+ D2D1_RECT_F contentBounds;
+ ID2D1Geometry *geometricMask;
+ D2D1_ANTIALIAS_MODE maskAntialiasMode;
+ D2D1_MATRIX_3X2_F maskTransform;
+ FLOAT opacity;
+ ID2D1Brush *opacityBrush;
+ D2D1_LAYER_OPTIONS layerOptions;
+};
+
+struct D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES {
+ D2D1_POINT_2F startPoint;
+ D2D1_POINT_2F endPoint;
+};
+
+struct D2D1_QUADRATIC_BEZIER_SEGMENT {
+ D2D1_POINT_2F point1;
+ D2D1_POINT_2F point2;
+};
+
+struct D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES {
+ D2D1_POINT_2F center;
+ D2D1_POINT_2F gradientOriginOffset;
+ FLOAT radiusX;
+ FLOAT radiusY;
+};
+
+struct D2D1_RENDER_TARGET_PROPERTIES {
+ D2D1_RENDER_TARGET_TYPE type;
+ D2D1_PIXEL_FORMAT pixelFormat;
+ FLOAT dpiX;
+ FLOAT dpiY;
+ D2D1_RENDER_TARGET_USAGE usage;
+ D2D1_FEATURE_LEVEL minLevel;
+};
+
+struct D2D1_ROUNDED_RECT {
+ D2D1_RECT_F rect;
+ FLOAT radiusX;
+ FLOAT radiusY;
+};
+
+struct D2D1_STROKE_STYLE_PROPERTIES {
+ D2D1_CAP_STYLE startCap;
+ D2D1_CAP_STYLE endCap;
+ D2D1_CAP_STYLE dashCap;
+ D2D1_LINE_JOIN lineJoin;
+ FLOAT miterLimit;
+ D2D1_DASH_STYLE dashStyle;
+ FLOAT dashOffset;
+};
+
+struct D2D1_TRIANGLE {
+ D2D1_POINT_2F point1;
+ D2D1_POINT_2F point2;
+ D2D1_POINT_2F point3;
+};
+
+/* interfaces */
+
+/**
+ * Header generated from msdn for the purposes of allowing
+ * 3rd party compiler compatibility with the Microsoft API
+ */
+#undef INTERFACE
+#define INTERFACE ID2D1Resource
+DECLARE_INTERFACE_(ID2D1Resource, IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* ID2D1Resource methods */
+ STDMETHOD_(void, GetFactory)(THIS_ ID2D1Factory **factory) PURE;
+
+ END_INTERFACE
+};
+#undef INTERFACE
+
+#define ID2D1Resource_QueryInterface(this,A,B) (this)->lpVtbl->QueryInterface(this,A,B)
+#define ID2D1Resource_AddRef(this) (this)->lpVtbl->AddRef(this)
+#define ID2D1Resource_Release(this) (this)->lpVtbl->Release(this)
+#define ID2D1Resource_GetFactory(this,A) (this)->lpVtbl->GetFactory(this,A)
+
+#define INTERFACE ID2D1Brush
+DECLARE_INTERFACE_(ID2D1Brush, ID2D1Resource)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* ID2D1Resource methods */
+ STDMETHOD_(void, GetFactory)(THIS_ ID2D1Factory **factory) PURE;
+
+ /* ID2D1Brush methods */
+ STDMETHOD_(FLOAT, GetOpacity)(THIS) PURE;
+ STDMETHOD_(void, GetTransform)(THIS_ D2D1_MATRIX_3X2_F *transform) PURE;
+ STDMETHOD_(void, SetOpacity)(THIS_ FLOAT opacity) PURE;
+ STDMETHOD_(void, SetTransform)(THIS_ D2D1_MATRIX_3X2_F *transform) PURE;
+
+ END_INTERFACE
+};
+#undef INTERFACE
+
+#define ID2D1Brush_QueryInterface(this,A,B) (this)->lpVtbl->QueryInterface(this,A,B)
+#define ID2D1Brush_AddRef(this) (this)->lpVtbl->AddRef(this)
+#define ID2D1Brush_Release(this) (this)->lpVtbl->Release(this)
+#define ID2D1Brush_GetFactory(this,A) (this)->lpVtbl->GetFactory(this,A)
+#define ID2D1Brush_GetOpacity(this) (this)->lpVtbl->GetOpacity(this)
+#define ID2D1Brush_GetTransform(this,A) (this)->lpVtbl->GetTransform(this,A)
+#define ID2D1Brush_SetOpacity(this,A) (this)->lpVtbl->SetOpacity(this,A)
+#define ID2D1Brush_SetTransform(this,A) (this)->lpVtbl->SetTransform(this,A)
+
+#define INTERFACE ID2D1Bitmap
+DECLARE_INTERFACE_(ID2D1Bitmap, ID2D1Resource)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* ID2D1Resource methods */
+ STDMETHOD_(void, GetFactory)(THIS_ ID2D1Factory **factory) PURE;
+
+ /* ID2D1Bitmap methods */
+ STDMETHOD(CopyFromBitmap)(THIS_ D2D1_POINT_2U *destPoint, ID2D1Bitmap *bitmap, D2D1_RECT_U *srcRect) PURE;
+ STDMETHOD(CopyFromRenderTarget)(THIS_ D2D1_POINT_2U *destPoint, ID2D1RenderTarget *renderTarget, D2D1_RECT_U *srcRect) PURE;
+ STDMETHOD(CopyFromMemory)(THIS_ D2D1_RECT_U *dstRect, void *srcData, UINT32 pitch) PURE;
+ STDMETHOD_(void, GetDpi)(THIS_ FLOAT *dpiX, FLOAT *dpiY) PURE;
+ STDMETHOD_(D2D1_PIXEL_FORMAT, GetPixelFormat)(THIS) PURE;
+ STDMETHOD_(D2D1_SIZE_U, GetPixelSize)(THIS) PURE;
+ STDMETHOD_(D2D1_SIZE_F, GetSize)(THIS) PURE;
+
+ END_INTERFACE
+};
+#undef INTERFACE
+
+#define ID2D1Bitmap_QueryInterface(this,A,B) (this)->lpVtbl->QueryInterface(this,A,B)
+#define ID2D1Bitmap_AddRef(this) (this)->lpVtbl->AddRef(this)
+#define ID2D1Bitmap_Release(this) (this)->lpVtbl->Release(this)
+#define ID2D1Bitmap_GetFactory(this,A) (this)->lpVtbl->GetFactory(this,A)
+#define ID2D1Bitmap_CopyFromBitmap(this,A,B,C) (this)->lpVtbl->CopyFromBitmap(this,A,B,C)
+#define ID2D1Bitmap_CopyFromRenderTarget(this,A,B,C) (this)->lpVtbl->CopyFromRenderTarget(this,A,B,C)
+#define ID2D1Bitmap_CopyFromMemory(this,A,B,C) (this)->lpVtbl->CopyFromMemory(this,A,B,C)
+#define ID2D1Bitmap_GetDpi(this,A,B) (this)->lpVtbl->GetDpi(this,A,B)
+#define ID2D1Bitmap_GetPixelFormat(this) (this)->lpVtbl->GetPixelFormat(this)
+#define ID2D1Bitmap_GetPixelSize(this) (this)->lpVtbl->GetPixelSize(this)
+#define ID2D1Bitmap_GetSize(this) (this)->lpVtbl->GetSize(this)
+
+#define INTERFACE ID2D1BitmapBrush
+DECLARE_INTERFACE_(ID2D1BitmapBrush, ID2D1Brush)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* ID2D1Resource methods */
+ STDMETHOD_(void, GetFactory)(THIS_ ID2D1Factory **factory) PURE;
+
+ /* ID2D1Brush methods */
+ STDMETHOD_(FLOAT, GetOpacity)(THIS) PURE;
+ STDMETHOD_(void, GetTransform)(THIS_ D2D1_MATRIX_3X2_F *transform) PURE;
+ STDMETHOD_(void, SetOpacity)(THIS_ FLOAT opacity) PURE;
+ STDMETHOD_(void, SetTransform)(THIS_ D2D1_MATRIX_3X2_F *transform) PURE;
+
+ /* ID2D1BitmapBrush methods */
+ STDMETHOD_(void, GetBitmap)(THIS_ ID2D1Bitmap **bitmap) PURE;
+ STDMETHOD_(D2D1_EXTEND_MODE, GetExtendModeX)(THIS) PURE;
+ STDMETHOD_(D2D1_EXTEND_MODE, GetExtendModeY)(THIS) PURE;
+ STDMETHOD_(D2D1_BITMAP_INTERPOLATION_MODE, GetInterpolationMode)(THIS) PURE;
+ STDMETHOD_(void, SetBitmap)(THIS_ ID2D1Bitmap *bitmap) PURE;
+ STDMETHOD_(void, SetExtendModeX)(THIS_ D2D1_EXTEND_MODE extendModeX) PURE;
+ STDMETHOD_(void, SetExtendModeY)(THIS_ D2D1_EXTEND_MODE extendModeY) PURE;
+ STDMETHOD_(void, SetInterpolationMode)(THIS_ D2D1_BITMAP_INTERPOLATION_MODE interpolationMode) PURE;
+
+ END_INTERFACE
+};
+#undef INTERFACE
+
+#define ID2D1BitmapBrush_GetOpacity(this) (this)->lpVtbl->GetOpacity(this)
+#define ID2D1BitmapBrush_GetTransform(this,A) (this)->lpVtbl->GetTransform(this,A)
+#define ID2D1BitmapBrush_SetOpacity(this,A) (this)->lpVtbl->SetOpacity(this,A)
+#define ID2D1BitmapBrush_SetTransform(this,A) (this)->lpVtbl->SetTransform(this,A)
+#define ID2D1BitmapBrush_GetBitmap(this,A) (this)->lpVtbl->GetBitmap(this,A)
+#define ID2D1BitmapBrush_GetExtendModeX(this) (this)->lpVtbl->GetExtendModeX(this)
+#define ID2D1BitmapBrush_GetExtendModeY(this) (this)->lpVtbl->GetExtendModeY(this)
+#define ID2D1BitmapBrush_GetInterpolationMode(this) (this)->lpVtbl->GetInterpolationMode(this)
+#define ID2D1BitmapBrush_SetBitmap(this,A) (this)->lpVtbl->SetBitmap(this,A)
+#define ID2D1BitmapBrush_SetExtendModeX(this,A) (this)->lpVtbl->SetExtendModeX(this,A)
+#define ID2D1BitmapBrush_SetExtendModeY(this,A) (this)->lpVtbl->SetExtendModeY(this,A)
+#define ID2D1BitmapBrush_SetInterpolationMode(this,A) (this)->lpVtbl->SetInterpolationMode(this,A)
+
+#define INTERFACE ID2D1RenderTarget
+DECLARE_INTERFACE_(ID2D1RenderTarget, ID2D1Resource)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* ID2D1Resource methods */
+ STDMETHOD_(void, GetFactory)(THIS_ ID2D1Factory **factory) PURE;
+
+ /* ID2D1RenderTarget methods */
+ STDMETHOD_(void, BeginDraw)(THIS) PURE;
+ STDMETHOD_(void, Clear)(THIS_ D2D1_COLOR_F *clearColor) PURE;
+ STDMETHOD(CreateBitmap)(THIS_ D2D1_SIZE_U size, void *srcData, UINT32 pitch, D2D1_BITMAP_PROPERTIES *bitmapProperties, ID2D1Bitmap **bitmap) PURE;
+ STDMETHOD(CreateBitmapBrush)(THIS_ ID2D1Bitmap *bitmap, ID2D1BitmapBrush **bitmapBrush) PURE;
+ STDMETHOD(CreateBitmapFromWicBitmap)(THIS_ IWICBitmapSource *wicBitmapSource, ID2D1Bitmap **bitmap) PURE;
+ STDMETHOD(CreateCompatibleRenderTarget)(THIS_ ID2D1BitmapRenderTarget **bitmapRenderTarget) PURE;
+ STDMETHOD(CreateGradientStopCollection)(THIS_ D2D1_GRADIENT_STOP *gradientStops, UINT gradientStopsCount, ID2D1GradientStopCollection **gradientStopCollection) PURE;
+ STDMETHOD(CreateLayer)(THIS_ ID2D1Layer **layer) PURE;
+ STDMETHOD(CreateLinearGradientBrush)(THIS_ D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES *linearGradientBrushProperties, D2D1_BRUSH_PROPERTIES *brushProperties, ID2D1GradientStopCollection *gradientStopCollection, ID2D1LinearGradientBrush **linearGradientBrush) PURE;
+ STDMETHOD(CreateMesh)(THIS_ ID2D1Mesh **mesh) PURE;
+ STDMETHOD(CreateRadialGradientBrush)(THIS_ D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES *radialGradientBrushProperties, D2D1_BRUSH_PROPERTIES *brushProperties, ID2D1GradientStopCollection *gradientStopCollection, ID2D1RadialGradientBrush **radialGradientBrush) PURE;
+ STDMETHOD(CreateSharedBitmap)(THIS_ REFIID riid, void *data, D2D1_BITMAP_PROPERTIES *bitmapProperties, ID2D1Bitmap **bitmap) PURE;
+ STDMETHOD(CreateSolidColorBrush)(THIS_ D2D1_COLOR_F *color, D2D1_BRUSH_PROPERTIES *brushProperties, ID2D1SolidColorBrush **solidColorBrush) PURE;
+ STDMETHOD_(void, DrawBitmap)(THIS_ ID2D1Bitmap *bitmap, D2D1_RECT_F *destinationRectangle, FLOAT opacity, D2D1_BITMAP_INTERPOLATION_MODE interpolationMode , D2D1_RECT_F *sourceRectangle) PURE;
+ STDMETHOD_(void, DrawEllipse)(THIS_ D2D1_ELLIPSE *ellipse, ID2D1Brush *brush, FLOAT strokeWidth, ID2D1StrokeStyle *strokeStyle) PURE;
+ STDMETHOD_(void, DrawGeometry)(THIS_ ID2D1Geometry *geometry, ID2D1Brush *brush, FLOAT strokeWidth, ID2D1StrokeStyle *strokeStyle) PURE;
+ STDMETHOD_(void, DrawGlyphRun)(THIS_ D2D1_POINT_2F baselineOrigin, DWRITE_GLYPH_RUN *glyphRun, ID2D1Brush *foregroundBrush, DWRITE_MEASURING_MODE measuringMode) PURE;
+ STDMETHOD_(void, DrawLine)(THIS_ D2D1_POINT_2F point0, D2D1_POINT_2F point1, ID2D1Brush *brush, FLOAT strokeWidth, ID2D1StrokeStyle *strokeStyle) PURE;
+ STDMETHOD_(void, DrawRectangle)(THIS_ D2D1_RECT_F *rect, ID2D1Brush *brush, FLOAT strokeWidth, ID2D1StrokeStyle *strokeStyle) PURE;
+ STDMETHOD_(void, DrawRoundedRectangle)(THIS_ D2D1_ROUNDED_RECT *roundedRect, ID2D1Brush *brush, FLOAT strokeWidth, ID2D1StrokeStyle *strokeStyle) PURE;
+ STDMETHOD_(void, DrawText)(THIS_ WCHAR *string, UINT stringLength, IDWriteTextFormat *textFormat, D2D1_RECT_F *layoutRect, ID2D1Brush *defaultForegroundBrush, D2D1_DRAW_TEXT_OPTIONS options , DWRITE_MEASURING_MODE measuringMode) PURE;
+ STDMETHOD_(void, DrawTextLayout)(THIS_ D2D1_POINT_2F origin, IDWriteTextLayout *textLayout, ID2D1Brush *defaultForegroundBrush, D2D1_DRAW_TEXT_OPTIONS options) PURE;
+ STDMETHOD(EndDraw)(THIS_ D2D1_TAG *tag1, D2D1_TAG *tag2) PURE;
+ STDMETHOD_(void, FillEllipse)(THIS_ D2D1_ELLIPSE *ellipse, ID2D1Brush *brush) PURE;
+ STDMETHOD_(void, FillGeometry)(THIS_ ID2D1Geometry *geometry, ID2D1Brush *brush, ID2D1Brush *opacityBrush) PURE;
+ STDMETHOD_(void, FillMesh)(THIS_ ID2D1Mesh *mesh, ID2D1Brush *brush) PURE;
+ STDMETHOD_(void, FillOpacityMask)(THIS_ ID2D1Bitmap *opacityMask, ID2D1Brush *brush, D2D1_OPACITY_MASK_CONTENT content, D2D1_RECT_F *destinationRectangle, D2D1_RECT_F *sourceRectangle) PURE;
+ STDMETHOD_(void, FillRectangle)(THIS_ D2D1_RECT_F *rect, ID2D1Brush *brush) PURE;
+ STDMETHOD_(void, FillRoundedRectangle)(THIS_ D2D1_ROUNDED_RECT *roundedRect, ID2D1Brush *brush) PURE;
+ STDMETHOD(Flush)(THIS_ D2D1_TAG *tag1, D2D1_TAG *tag2) PURE;
+ STDMETHOD_(D2D1_ANTIALIAS_MODE, GetAntialiasMode)(THIS) PURE;
+ STDMETHOD_(void, GetDpi)(THIS_ FLOAT *dpiX, FLOAT *dpiY) PURE;
+ STDMETHOD_(UINT32, GetMaximumBitmapSize)(THIS) PURE;
+ STDMETHOD_(D2D1_PIXEL_FORMAT, GetPixelFormat)(THIS) PURE;
+ STDMETHOD_(D2D1_SIZE_U, GetPixelSize)(THIS) PURE;
+ STDMETHOD_(D2D1_SIZE_F, GetSize)(THIS) PURE;
+ STDMETHOD_(void, GetTags)(THIS_ D2D1_TAG *tag1, D2D1_TAG *tag2) PURE;
+ STDMETHOD_(D2D1_TEXT_ANTIALIAS_MODE, GetTextAntialiasMode)(THIS) PURE;
+ STDMETHOD_(void, GetTextRenderingParams)(THIS_ IDWriteRenderingParams **textRenderingParams) PURE;
+ STDMETHOD_(void, GetTransform)(THIS_ D2D1_MATRIX_3X2_F *transform) PURE;
+ STDMETHOD_(BOOL, IsSupported)(THIS_ D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties) PURE;
+ STDMETHOD_(void, PopAxisAlignedClip)(THIS) PURE;
+ STDMETHOD_(void, PopLayer)(THIS) PURE;
+ STDMETHOD_(void, PushAxisAlignedClip)(THIS_ D2D1_RECT_F *clipRect, D2D1_ANTIALIAS_MODE antialiasMode) PURE;
+ STDMETHOD_(void, PushLayer)(THIS_ D2D1_LAYER_PARAMETERS *layerParameters, ID2D1Layer *layer) PURE;
+ STDMETHOD_(void, RestoreDrawingState)(THIS_ ID2D1DrawingStateBlock *drawingStateBlock) PURE;
+ STDMETHOD_(void, SaveDrawingState)(THIS_ ID2D1DrawingStateBlock *drawingStateBlock) PURE;
+ STDMETHOD_(void, SetAntialiasMode)(THIS_ D2D1_ANTIALIAS_MODE antialiasMode) PURE;
+ STDMETHOD_(void, SetDpi)(THIS_ FLOAT dpiX, FLOAT dpiY) PURE;
+ STDMETHOD_(void, SetTags)(THIS_ D2D1_TAG tag1, D2D1_TAG tag2) PURE;
+ STDMETHOD_(void, SetTextAntialiasMode)(THIS_ D2D1_TEXT_ANTIALIAS_MODE textAntialiasMode) PURE;
+ STDMETHOD_(void, SetTextRenderingParams)(THIS_ IDWriteRenderingParams *textRenderingParams) PURE;
+ STDMETHOD_(void, SetTransform)(THIS_ D2D1_MATRIX_3X2_F *transform) PURE;
+
+ END_INTERFACE
+};
+#undef INTERFACE
+
+#define ID2D1RenderTarget_QueryInterface(this,A,B) (this)->lpVtbl->QueryInterface(this,A,B)
+#define ID2D1RenderTarget_AddRef(this) (this)->lpVtbl->AddRef(this)
+#define ID2D1RenderTarget_Release(this) (this)->lpVtbl->Release(this)
+#define ID2D1RenderTarget_GetFactory(this,A) (this)->lpVtbl->GetFactory(this,A)
+#define ID2D1RenderTarget_BeginDraw(this) (this)->lpVtbl->BeginDraw(this)
+#define ID2D1RenderTarget_Clear(this,A) (this)->lpVtbl->Clear(this,A)
+#define ID2D1RenderTarget_CreateBitmap(this,A,B,C,D,E) (this)->lpVtbl->CreateBitmap(this,A,B,C,D,E)
+#define ID2D1RenderTarget_CreateBitmapBrush(this,A,B) (this)->lpVtbl->CreateBitmapBrush(this,A,B)
+#define ID2D1RenderTarget_CreateBitmapFromWicBitmap(this,A,B) (this)->lpVtbl->CreateBitmapFromWicBitmap(this,A,B)
+#define ID2D1RenderTarget_CreateCompatibleRenderTarget(this,A) (this)->lpVtbl->CreateCompatibleRenderTarget(this,A)
+#define ID2D1RenderTarget_CreateGradientStopCollection(this,A,B,C) (this)->lpVtbl->CreateGradientStopCollection(this,A,B,C)
+#define ID2D1RenderTarget_CreateLayer(this,A) (this)->lpVtbl->CreateLayer(this,A)
+#define ID2D1RenderTarget_CreateLinearGradientBrush(this,A,B,C,D) (this)->lpVtbl->CreateLinearGradientBrush(this,A,B,C,D)
+#define ID2D1RenderTarget_CreateMesh(this,A) (this)->lpVtbl->CreateMesh(this,A)
+#define ID2D1RenderTarget_CreateRadialGradientBrush(this,A,B,C,D) (this)->lpVtbl->CreateRadialGradientBrush(this,A,B,C,D)
+#define ID2D1RenderTarget_CreateSharedBitmap(this,A,B,C,D) (this)->lpVtbl->CreateSharedBitmap(this,A,B,C,D)
+#define ID2D1RenderTarget_CreateSolidColorBrush(this,A,B,C) (this)->lpVtbl->CreateSolidColorBrush(this,A,B,C)
+#define ID2D1RenderTarget_DrawBitmap(this,A,B,C,D,E) (this)->lpVtbl->DrawBitmap(this,A,B,C,D,E)
+#define ID2D1RenderTarget_DrawEllipse(this,A,B,C,D) (this)->lpVtbl->DrawEllipse(this,A,B,C,D)
+#define ID2D1RenderTarget_DrawGeometry(this,A,B,C,D) (this)->lpVtbl->DrawGeometry(this,A,B,C,D)
+#define ID2D1RenderTarget_DrawGlyphRun(this,A,B,C,D) (this)->lpVtbl->DrawGlyphRun(this,A,B,C,D)
+#define ID2D1RenderTarget_DrawLine(this,A,B,C,D,E) (this)->lpVtbl->DrawLine(this,A,B,C,D,E)
+#define ID2D1RenderTarget_DrawRectangle(this,A,B,C,D) (this)->lpVtbl->DrawRectangle(this,A,B,C,D)
+#define ID2D1RenderTarget_DrawRoundedRectangle(this,A,B,C,D) (this)->lpVtbl->DrawRoundedRectangle(this,A,B,C,D)
+#define ID2D1RenderTarget_DrawText(this,A,B,C,D,E,F,G) (this)->lpVtbl->DrawText(this,A,B,C,D,E,F,G)
+#define ID2D1RenderTarget_DrawTextLayout(this,A,B,C,D) (this)->lpVtbl->DrawTextLayout(this,A,B,C,D)
+#define ID2D1RenderTarget_EndDraw(this,A,B) (this)->lpVtbl->EndDraw(this,A,B)
+#define ID2D1RenderTarget_FillEllipse(this,A,B) (this)->lpVtbl->FillEllipse(this,A,B)
+#define ID2D1RenderTarget_FillGeometry(this,A,B,C) (this)->lpVtbl->FillGeometry(this,A,B,C)
+#define ID2D1RenderTarget_FillMesh(this,A,B) (this)->lpVtbl->FillMesh(this,A,B)
+#define ID2D1RenderTarget_FillOpacityMask(this,A,B,C,D,E) (this)->lpVtbl->FillOpacityMask(this,A,B,C,D,E)
+#define ID2D1RenderTarget_FillRectangle(this,A,B) (this)->lpVtbl->FillRectangle(this,A,B)
+#define ID2D1RenderTarget_FillRoundedRectangle(this,A,B) (this)->lpVtbl->FillRoundedRectangle(this,A,B)
+#define ID2D1RenderTarget_Flush(this,A,B) (this)->lpVtbl->Flush(this,A,B)
+#define ID2D1RenderTarget_GetAntialiasMode(this) (this)->lpVtbl->GetAntialiasMode(this)
+#define ID2D1RenderTarget_GetDpi(this,A,B) (this)->lpVtbl->GetDpi(this,A,B)
+#define ID2D1RenderTarget_GetMaximumBitmapSize(this) (this)->lpVtbl->GetMaximumBitmapSize(this)
+#define ID2D1RenderTarget_GetPixelFormat(this) (this)->lpVtbl->GetPixelFormat(this)
+#define ID2D1RenderTarget_GetPixelSize(this) (this)->lpVtbl->GetPixelSize(this)
+#define ID2D1RenderTarget_GetSize(this) (this)->lpVtbl->GetSize(this)
+#define ID2D1RenderTarget_GetTags(this,A,B) (this)->lpVtbl->GetTags(this,A,B)
+#define ID2D1RenderTarget_GetTextAntialiasMode(this) (this)->lpVtbl->GetTextAntialiasMode(this)
+#define ID2D1RenderTarget_GetTextRenderingParams(this,A) (this)->lpVtbl->GetTextRenderingParams(this,A)
+#define ID2D1RenderTarget_GetTransform(this,A) (this)->lpVtbl->GetTransform(this,A)
+#define ID2D1RenderTarget_IsSupported(this,A) (this)->lpVtbl->IsSupported(this,A)
+#define ID2D1RenderTarget_PopAxisAlignedClip(this) (this)->lpVtbl->PopAxisAlignedClip(this)
+#define ID2D1RenderTarget_PopLayer(this) (this)->lpVtbl->PopLayer(this)
+#define ID2D1RenderTarget_PushAxisAlignedClip(this,A,B) (this)->lpVtbl->PushAxisAlignedClip(this,A,B)
+#define ID2D1RenderTarget_PushLayer(this,A,B) (this)->lpVtbl->PushLayer(this,A,B)
+#define ID2D1RenderTarget_RestoreDrawingState(this,A) (this)->lpVtbl->RestoreDrawingState(this,A)
+#define ID2D1RenderTarget_SaveDrawingState(this,A) (this)->lpVtbl->SaveDrawingState(this,A)
+#define ID2D1RenderTarget_SetAntialiasMode(this,A) (this)->lpVtbl->SetAntialiasMode(this,A)
+#define ID2D1RenderTarget_SetDpi(this,A,B) (this)->lpVtbl->SetDpi(this,A,B)
+#define ID2D1RenderTarget_SetTags(this,A,B) (this)->lpVtbl->SetTags(this,A,B)
+#define ID2D1RenderTarget_SetTextAntialiasMode(this,A) (this)->lpVtbl->SetTextAntialiasMode(this,A)
+#define ID2D1RenderTarget_SetTextRenderingParams(this,A) (this)->lpVtbl->SetTextRenderingParams(this,A)
+#define ID2D1RenderTarget_SetTransform(this,A) (this)->lpVtbl->SetTransform(this,A)
+
+
+#define INTERFACE ID2D1Geometry
+DECLARE_INTERFACE_(ID2D1Geometry, ID2D1Resource)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* ID2D1Resource methods */
+ STDMETHOD_(void, GetFactory)(THIS_ ID2D1Factory **factory) PURE;
+
+ /* ID2D1Geometry methods */
+ STDMETHOD(CombineWithGeometry)(THIS_ ID2D1Geometry *inputGeometry, D2D1_COMBINE_MODE combineMode, D2D1_MATRIX_3X2_F *inputGeometryTransform, ID2D1SimplifiedGeometrySink *geometrySink) PURE;
+ STDMETHOD(CompareWithGeometry)(THIS_ ID2D1Geometry *inputGeometry, D2D1_MATRIX_3X2_F *inputGeometryTransform, D2D1_GEOMETRY_RELATION *relation) PURE;
+ STDMETHOD(ComputeArea)(THIS_ D2D1_MATRIX_3X2_F *worldTransform, FLOAT *area) PURE;
+ STDMETHOD(ComputeLength)(THIS_ D2D1_MATRIX_3X2_F *worldTransform, FLOAT *length) PURE;
+ STDMETHOD(ComputePointAtLength)(THIS_ FLOAT length, D2D1_MATRIX_3X2_F *worldTransform, D2D1_POINT_2F *point, D2D1_POINT_2F *unitTangentVector) PURE;
+ STDMETHOD(FillContainsPoint)(THIS_ D2D1_POINT_2F point, D2D1_MATRIX_3X2_F *worldTransform, BOOL *contains) PURE;
+ STDMETHOD(GetBounds)(THIS_ D2D1_MATRIX_3X2_F *worldTransform, D2D1_RECT_F *bounds) PURE;
+ STDMETHOD(GetWidenedBounds)(THIS_ FLOAT strokeWidth, ID2D1StrokeStyle *strokeStyle, D2D1_MATRIX_3X2_F *worldTransform, D2D1_RECT_F *bounds) PURE;
+ STDMETHOD(Outline)(THIS_ D2D1_MATRIX_3X2_F *worldTransform, ID2D1SimplifiedGeometrySink *geometrySink) PURE;
+ STDMETHOD(StrokeContainsPoint)(THIS_ D2D1_POINT_2F point, FLOAT strokeWidth, ID2D1StrokeStyle *strokeStyle, D2D1_MATRIX_3X2_F *worldTransform, BOOL *contains) PURE;
+ STDMETHOD(Simplify)(THIS_ D2D1_GEOMETRY_SIMPLIFICATION_OPTION simplificationOption, D2D1_MATRIX_3X2_F *worldTransform, ID2D1SimplifiedGeometrySink *geometrySink) PURE;
+ STDMETHOD(Tessellate)(THIS_ D2D1_MATRIX_3X2_F *worldTransform, ID2D1TessellationSink *tessellationSink) PURE;
+ STDMETHOD(Widen)(THIS_ FLOAT strokeWidth, ID2D1StrokeStyle *strokeStyle, D2D1_MATRIX_3X2_F *worldTransform, ID2D1SimplifiedGeometrySink *geometrySink) PURE;
+
+ END_INTERFACE
+};
+#undef INTERFACE
+
+#define ID2D1Geometry_QueryInterface(this,A,B) (this)->lpVtbl->QueryInterface(this,A,B)
+#define ID2D1Geometry_AddRef(this) (this)->lpVtbl->AddRef(this)
+#define ID2D1Geometry_Release(this) (this)->lpVtbl->Release(this)
+#define ID2D1Geometry_GetFactory(this,A) (this)->lpVtbl->GetFactory(this,A)
+#define ID2D1Geometry_CombineWithGeometry(this,A,B,C,D) (this)->lpVtbl->CombineWithGeometry(this,A,B,C,D)
+#define ID2D1Geometry_CompareWithGeometry(this,A,B,C) (this)->lpVtbl->CompareWithGeometry(this,A,B,C)
+#define ID2D1Geometry_ComputeArea(this,A,B) (this)->lpVtbl->ComputeArea(this,A,B)
+#define ID2D1Geometry_ComputeLength(this,A,B) (this)->lpVtbl->ComputeLength(this,A,B)
+#define ID2D1Geometry_ComputePointAtLength(this,A,B,C,D) (this)->lpVtbl->ComputePointAtLength(this,A,B,C,D)
+#define ID2D1Geometry_FillContainsPoint(this,A,B,C) (this)->lpVtbl->FillContainsPoint(this,A,B,C)
+#define ID2D1Geometry_GetBounds(this,A,B) (this)->lpVtbl->GetBounds(this,A,B)
+#define ID2D1Geometry_GetWidenedBounds(this,A,B,C,D) (this)->lpVtbl->GetWidenedBounds(this,A,B,C,D)
+#define ID2D1Geometry_Outline(this,A,B) (this)->lpVtbl->Outline(this,A,B)
+#define ID2D1Geometry_StrokeContainsPoint(this,A,B,C,D,E) (this)->lpVtbl->StrokeContainsPoint(this,A,B,C,D,E)
+#define ID2D1Geometry_Simplify(this,A,B,C) (this)->lpVtbl->Simplify(this,A,B,C)
+#define ID2D1Geometry_Tessellate(this,A,B) (this)->lpVtbl->Tessellate(this,A,B)
+#define ID2D1Geometry_Widen(this,A,B,C,D) (this)->lpVtbl->Widen(this,A,B,C,D)
+
+#define INTERFACE ID2D1BitmapRenderTarget
+DECLARE_INTERFACE_(ID2D1BitmapRenderTarget, ID2D1RenderTarget)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* ID2D1Resource methods */
+ STDMETHOD_(void, GetFactory)(THIS_ ID2D1Factory **factory) PURE;
+
+ /* ID2D1RenderTarget methods */
+ STDMETHOD_(void, BeginDraw)(THIS) PURE;
+ STDMETHOD_(void, Clear)(THIS_ D2D1_COLOR_F *clearColor) PURE;
+ STDMETHOD(CreateBitmap)(THIS_ D2D1_SIZE_U size, void *srcData, UINT32 pitch, D2D1_BITMAP_PROPERTIES *bitmapProperties, ID2D1Bitmap **bitmap) PURE;
+ STDMETHOD(CreateBitmapBrush)(THIS_ ID2D1Bitmap *bitmap, ID2D1BitmapBrush **bitmapBrush) PURE;
+ STDMETHOD(CreateBitmapFromWicBitmap)(THIS_ IWICBitmapSource *wicBitmapSource, ID2D1Bitmap **bitmap) PURE;
+ STDMETHOD(CreateCompatibleRenderTarget)(THIS_ ID2D1BitmapRenderTarget **bitmapRenderTarget) PURE;
+ STDMETHOD(CreateGradientStopCollection)(THIS_ D2D1_GRADIENT_STOP *gradientStops, UINT gradientStopsCount, ID2D1GradientStopCollection **gradientStopCollection) PURE;
+ STDMETHOD(CreateLayer)(THIS_ ID2D1Layer **layer) PURE;
+ STDMETHOD(CreateLinearGradientBrush)(THIS_ D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES *linearGradientBrushProperties, D2D1_BRUSH_PROPERTIES *brushProperties, ID2D1GradientStopCollection *gradientStopCollection, ID2D1LinearGradientBrush **linearGradientBrush) PURE;
+ STDMETHOD(CreateMesh)(THIS_ ID2D1Mesh **mesh) PURE;
+ STDMETHOD(CreateRadialGradientBrush)(THIS_ D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES *radialGradientBrushProperties, D2D1_BRUSH_PROPERTIES *brushProperties, ID2D1GradientStopCollection *gradientStopCollection, ID2D1RadialGradientBrush **radialGradientBrush) PURE;
+ STDMETHOD(CreateSharedBitmap)(THIS_ REFIID riid, void *data, D2D1_BITMAP_PROPERTIES *bitmapProperties, ID2D1Bitmap **bitmap) PURE;
+ STDMETHOD(CreateSolidColorBrush)(THIS_ D2D1_COLOR_F *color, D2D1_BRUSH_PROPERTIES *brushProperties, ID2D1SolidColorBrush **solidColorBrush) PURE;
+ STDMETHOD_(void, DrawBitmap)(THIS_ ID2D1Bitmap *bitmap, D2D1_RECT_F *destinationRectangle, FLOAT opacity, D2D1_BITMAP_INTERPOLATION_MODE interpolationMode, D2D1_RECT_F *sourceRectangle) PURE;
+ STDMETHOD_(void, DrawEllipse)(THIS_ D2D1_ELLIPSE *ellipse, ID2D1Brush *brush, FLOAT strokeWidth, ID2D1StrokeStyle *strokeStyle) PURE;
+ STDMETHOD_(void, DrawGeometry)(THIS_ ID2D1Geometry *geometry, ID2D1Brush *brush, FLOAT strokeWidth, ID2D1StrokeStyle *strokeStyle) PURE;
+ STDMETHOD_(void, DrawGlyphRun)(THIS_ D2D1_POINT_2F baselineOrigin, DWRITE_GLYPH_RUN *glyphRun, ID2D1Brush *foregroundBrush, DWRITE_MEASURING_MODE measuringMode) PURE;
+ STDMETHOD_(void, DrawLine)(THIS_ D2D1_POINT_2F point0, D2D1_POINT_2F point1, ID2D1Brush *brush, FLOAT strokeWidth, ID2D1StrokeStyle *strokeStyle) PURE;
+ STDMETHOD_(void, DrawRectangle)(THIS_ D2D1_RECT_F *rect, ID2D1Brush *brush, FLOAT strokeWidth, ID2D1StrokeStyle *strokeStyle) PURE;
+ STDMETHOD_(void, DrawRoundedRectangle)(THIS_ D2D1_ROUNDED_RECT *roundedRect, ID2D1Brush *brush, FLOAT strokeWidth, ID2D1StrokeStyle *strokeStyle) PURE;
+ STDMETHOD_(void, DrawText)(THIS_ WCHAR *string, UINT stringLength, IDWriteTextFormat *textFormat, D2D1_RECT_F *layoutRect, ID2D1Brush *defaultForegroundBrush, D2D1_DRAW_TEXT_OPTIONS options , DWRITE_MEASURING_MODE measuringMode) PURE;
+ STDMETHOD_(void, DrawTextLayout)(THIS_ D2D1_POINT_2F origin, IDWriteTextLayout *textLayout, ID2D1Brush *defaultForegroundBrush, D2D1_DRAW_TEXT_OPTIONS options) PURE;
+ STDMETHOD(EndDraw)(THIS_ D2D1_TAG *tag1, D2D1_TAG *tag2) PURE;
+ STDMETHOD_(void, FillEllipse)(THIS_ D2D1_ELLIPSE *ellipse, ID2D1Brush *brush) PURE;
+ STDMETHOD_(void, FillGeometry)(THIS_ ID2D1Geometry *geometry, ID2D1Brush *brush, ID2D1Brush *opacityBrush) PURE;
+ STDMETHOD_(void, FillMesh)(THIS_ ID2D1Mesh *mesh, ID2D1Brush *brush) PURE;
+ STDMETHOD_(void, FillOpacityMask)(THIS_ ID2D1Bitmap *opacityMask, ID2D1Brush *brush, D2D1_OPACITY_MASK_CONTENT content, D2D1_RECT_F *destinationRectangle, D2D1_RECT_F *sourceRectangle) PURE;
+ STDMETHOD_(void, FillRectangle)(THIS_ D2D1_RECT_F *rect, ID2D1Brush *brush) PURE;
+ STDMETHOD_(void, FillRoundedRectangle)(THIS_ D2D1_ROUNDED_RECT *roundedRect, ID2D1Brush *brush) PURE;
+ STDMETHOD(Flush)(THIS_ D2D1_TAG *tag1, D2D1_TAG *tag2) PURE;
+ STDMETHOD_(D2D1_ANTIALIAS_MODE, GetAntialiasMode)(THIS) PURE;
+ STDMETHOD_(void, GetDpi)(THIS_ FLOAT *dpiX, FLOAT *dpiY) PURE;
+ STDMETHOD_(UINT32, GetMaximumBitmapSize)(THIS) PURE;
+ STDMETHOD_(D2D1_PIXEL_FORMAT, GetPixelFormat)(THIS) PURE;
+ STDMETHOD_(D2D1_SIZE_U, GetPixelSize)(THIS) PURE;
+ STDMETHOD_(D2D1_SIZE_F, GetSize)(THIS) PURE;
+ STDMETHOD_(void, GetTags)(THIS_ D2D1_TAG *tag1, D2D1_TAG *tag2) PURE;
+ STDMETHOD_(D2D1_TEXT_ANTIALIAS_MODE, GetTextAntialiasMode)(THIS) PURE;
+ STDMETHOD_(void, GetTextRenderingParams)(THIS_ IDWriteRenderingParams **textRenderingParams) PURE;
+ STDMETHOD_(void, GetTransform)(THIS_ D2D1_MATRIX_3X2_F *transform) PURE;
+ STDMETHOD_(BOOL, IsSupported)(THIS_ D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties) PURE;
+ STDMETHOD_(void, PopAxisAlignedClip)(THIS) PURE;
+ STDMETHOD_(void, PopLayer)(THIS) PURE;
+ STDMETHOD_(void, PushAxisAlignedClip)(THIS_ D2D1_RECT_F *clipRect, D2D1_ANTIALIAS_MODE antialiasMode) PURE;
+ STDMETHOD_(void, PushLayer)(THIS_ D2D1_LAYER_PARAMETERS *layerParameters, ID2D1Layer *layer) PURE;
+ STDMETHOD_(void, RestoreDrawingState)(THIS_ ID2D1DrawingStateBlock *drawingStateBlock) PURE;
+ STDMETHOD_(void, SaveDrawingState)(THIS_ ID2D1DrawingStateBlock *drawingStateBlock) PURE;
+ STDMETHOD_(void, SetAntialiasMode)(THIS_ D2D1_ANTIALIAS_MODE antialiasMode) PURE;
+ STDMETHOD_(void, SetDpi)(THIS_ FLOAT dpiX, FLOAT dpiY) PURE;
+ STDMETHOD_(void, SetTags)(THIS_ D2D1_TAG tag1, D2D1_TAG tag2) PURE;
+ STDMETHOD_(void, SetTextAntialiasMode)(THIS_ D2D1_TEXT_ANTIALIAS_MODE textAntialiasMode) PURE;
+ STDMETHOD_(void, SetTextRenderingParams)(THIS_ IDWriteRenderingParams *textRenderingParams) PURE;
+ STDMETHOD_(void, SetTransform)(THIS_ D2D1_MATRIX_3X2_F *transform) PURE;
+
+ /* ID2D1BitmapRenderTarget methods */
+ STDMETHOD(GetBitmap)(THIS_ ID2D1Bitmap **bitmap) PURE;
+
+ END_INTERFACE
+};
+#undef INTERFACE
+
+#define ID2D1BitmapRenderTarget_BeginDraw(this) (this)->lpVtbl->BeginDraw(this)
+#define ID2D1BitmapRenderTarget_Clear(this,A) (this)->lpVtbl->Clear(this,A)
+#define ID2D1BitmapRenderTarget_CreateBitmap(this,A,B,C,D,E) (this)->lpVtbl->CreateBitmap(this,A,B,C,D,E)
+#define ID2D1BitmapRenderTarget_CreateBitmapBrush(this,A,B) (this)->lpVtbl->CreateBitmapBrush(this,A,B)
+#define ID2D1BitmapRenderTarget_CreateBitmapFromWicBitmap(this,A,B) (this)->lpVtbl->CreateBitmapFromWicBitmap(this,A,B)
+#define ID2D1BitmapRenderTarget_CreateCompatibleRenderTarget(this,A) (this)->lpVtbl->CreateCompatibleRenderTarget(this,A)
+#define ID2D1BitmapRenderTarget_CreateGradientStopCollection(this,A,B,C) (this)->lpVtbl->CreateGradientStopCollection(this,A,B,C)
+#define ID2D1BitmapRenderTarget_CreateLayer(this,A) (this)->lpVtbl->CreateLayer(this,A)
+#define ID2D1BitmapRenderTarget_CreateLinearGradientBrush(this,A,B,C,D) (this)->lpVtbl->CreateLinearGradientBrush(this,A,B,C,D)
+#define ID2D1BitmapRenderTarget_CreateMesh(this,A) (this)->lpVtbl->CreateMesh(this,A)
+#define ID2D1BitmapRenderTarget_CreateRadialGradientBrush(this,A,B,C,D) (this)->lpVtbl->CreateRadialGradientBrush(this,A,B,C,D)
+#define ID2D1BitmapRenderTarget_CreateSharedBitmap(this,A,B,C,D) (this)->lpVtbl->CreateSharedBitmap(this,A,B,C,D)
+#define ID2D1BitmapRenderTarget_CreateSolidColorBrush(this,A,B,C) (this)->lpVtbl->CreateSolidColorBrush(this,A,B,C)
+#define ID2D1BitmapRenderTarget_DrawBitmap(this,A,B,C,D,E) (this)->lpVtbl->DrawBitmap(this,A,B,C,D,E)
+#define ID2D1BitmapRenderTarget_DrawEllipse(this,A,B,C,D) (this)->lpVtbl->DrawEllipse(this,A,B,C,D)
+#define ID2D1BitmapRenderTarget_DrawGeometry(this,A,B,C,D) (this)->lpVtbl->DrawGeometry(this,A,B,C,D)
+#define ID2D1BitmapRenderTarget_DrawGlyphRun(this,A,B,C,D) (this)->lpVtbl->DrawGlyphRun(this,A,B,C,D)
+#define ID2D1BitmapRenderTarget_DrawLine(this,A,B,C,D,E) (this)->lpVtbl->DrawLine(this,A,B,C,D,E)
+#define ID2D1BitmapRenderTarget_DrawRectangle(this,A,B,C,D) (this)->lpVtbl->DrawRectangle(this,A,B,C,D)
+#define ID2D1BitmapRenderTarget_DrawRoundedRectangle(this,A,B,C,D) (this)->lpVtbl->DrawRoundedRectangle(this,A,B,C,D)
+#define ID2D1BitmapRenderTarget_DrawText(this,A,B,C,D,E,F,G) (this)->lpVtbl->DrawText(this,A,B,C,D,E,F,G)
+#define ID2D1BitmapRenderTarget_DrawTextLayout(this,A,B,C,D) (this)->lpVtbl->DrawTextLayout(this,A,B,C,D)
+#define ID2D1BitmapRenderTarget_EndDraw(this,A,B) (this)->lpVtbl->EndDraw(this,A,B)
+#define ID2D1BitmapRenderTarget_FillEllipse(this,A,B) (this)->lpVtbl->FillEllipse(this,A,B)
+#define ID2D1BitmapRenderTarget_FillGeometry(this,A,B,C) (this)->lpVtbl->FillGeometry(this,A,B,C)
+#define ID2D1BitmapRenderTarget_FillMesh(this,A,B) (this)->lpVtbl->FillMesh(this,A,B)
+#define ID2D1BitmapRenderTarget_FillOpacityMask(this,A,B,C,D,E) (this)->lpVtbl->FillOpacityMask(this,A,B,C,D,E)
+#define ID2D1BitmapRenderTarget_FillRectangle(this,A,B) (this)->lpVtbl->FillRectangle(this,A,B)
+#define ID2D1BitmapRenderTarget_FillRoundedRectangle(this,A,B) (this)->lpVtbl->FillRoundedRectangle(this,A,B)
+#define ID2D1BitmapRenderTarget_Flush(this,A,B) (this)->lpVtbl->Flush(this,A,B)
+#define ID2D1BitmapRenderTarget_GetAntialiasMode(this) (this)->lpVtbl->GetAntialiasMode(this)
+#define ID2D1BitmapRenderTarget_GetDpi(this,A,B) (this)->lpVtbl->GetDpi(this,A,B)
+#define ID2D1BitmapRenderTarget_GetMaximumBitmapSize(this) (this)->lpVtbl->GetMaximumBitmapSize(this)
+#define ID2D1BitmapRenderTarget_GetPixelFormat(this) (this)->lpVtbl->GetPixelFormat(this)
+#define ID2D1BitmapRenderTarget_GetPixelSize(this) (this)->lpVtbl->GetPixelSize(this)
+#define ID2D1BitmapRenderTarget_GetSize(this) (this)->lpVtbl->GetSize(this)
+#define ID2D1BitmapRenderTarget_GetTags(this,A,B) (this)->lpVtbl->GetTags(this,A,B)
+#define ID2D1BitmapRenderTarget_GetTextAntialiasMode(this) (this)->lpVtbl->GetTextAntialiasMode(this)
+#define ID2D1BitmapRenderTarget_GetTextRenderingParams(this,A) (this)->lpVtbl->GetTextRenderingParams(this,A)
+#define ID2D1BitmapRenderTarget_GetTransform(this,A) (this)->lpVtbl->GetTransform(this,A)
+#define ID2D1BitmapRenderTarget_IsSupported(this,A) (this)->lpVtbl->IsSupported(this,A)
+#define ID2D1BitmapRenderTarget_PopAxisAlignedClip(this) (this)->lpVtbl->PopAxisAlignedClip(this)
+#define ID2D1BitmapRenderTarget_PopLayer(this) (this)->lpVtbl->PopLayer(this)
+#define ID2D1BitmapRenderTarget_PushAxisAlignedClip(this,A,B) (this)->lpVtbl->PushAxisAlignedClip(this,A,B)
+#define ID2D1BitmapRenderTarget_PushLayer(this,A,B) (this)->lpVtbl->PushLayer(this,A,B)
+#define ID2D1BitmapRenderTarget_RestoreDrawingState(this,A) (this)->lpVtbl->RestoreDrawingState(this,A)
+#define ID2D1BitmapRenderTarget_SaveDrawingState(this,A) (this)->lpVtbl->SaveDrawingState(this,A)
+#define ID2D1BitmapRenderTarget_SetAntialiasMode(this,A) (this)->lpVtbl->SetAntialiasMode(this,A)
+#define ID2D1BitmapRenderTarget_SetDpi(this,A,B) (this)->lpVtbl->SetDpi(this,A,B)
+#define ID2D1BitmapRenderTarget_SetTags(this,A,B) (this)->lpVtbl->SetTags(this,A,B)
+#define ID2D1BitmapRenderTarget_SetTextAntialiasMode(this,A) (this)->lpVtbl->SetTextAntialiasMode(this,A)
+#define ID2D1BitmapRenderTarget_SetTextRenderingParams(this,A) (this)->lpVtbl->SetTextRenderingParams(this,A)
+#define ID2D1BitmapRenderTarget_SetTransform(this,A) (this)->lpVtbl->SetTransform(this,A)
+#define ID2D1BitmapRenderTarget_GetBitmap(this,A) (this)->lpVtbl->GetBitmap(this,A)
+
+#define INTERFACE ID2D1DCRenderTarget
+DECLARE_INTERFACE_(ID2D1DCRenderTarget, ID2D1RenderTarget)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* ID2D1Resource methods */
+ STDMETHOD_(void, GetFactory)(THIS_ ID2D1Factory **factory) PURE;
+
+ /* ID2D1RenderTarget methods */
+ STDMETHOD_(void, BeginDraw)(THIS) PURE;
+ STDMETHOD_(void, Clear)(THIS_ D2D1_COLOR_F *clearColor) PURE;
+ STDMETHOD(CreateBitmap)(THIS_ D2D1_SIZE_U size, void *srcData, UINT32 pitch, D2D1_BITMAP_PROPERTIES *bitmapProperties, ID2D1Bitmap **bitmap) PURE;
+ STDMETHOD(CreateBitmapBrush)(THIS_ ID2D1Bitmap *bitmap, ID2D1BitmapBrush **bitmapBrush) PURE;
+ STDMETHOD(CreateBitmapFromWicBitmap)(THIS_ IWICBitmapSource *wicBitmapSource, ID2D1Bitmap **bitmap) PURE;
+ STDMETHOD(CreateCompatibleRenderTarget)(THIS_ ID2D1BitmapRenderTarget **bitmapRenderTarget) PURE;
+ STDMETHOD(CreateGradientStopCollection)(THIS_ D2D1_GRADIENT_STOP *gradientStops, UINT gradientStopsCount, ID2D1GradientStopCollection **gradientStopCollection) PURE;
+ STDMETHOD(CreateLayer)(THIS_ ID2D1Layer **layer) PURE;
+ STDMETHOD(CreateLinearGradientBrush)(THIS_ D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES *linearGradientBrushProperties, D2D1_BRUSH_PROPERTIES *brushProperties, ID2D1GradientStopCollection *gradientStopCollection, ID2D1LinearGradientBrush **linearGradientBrush) PURE;
+ STDMETHOD(CreateMesh)(THIS_ ID2D1Mesh **mesh) PURE;
+ STDMETHOD(CreateRadialGradientBrush)(THIS_ D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES *radialGradientBrushProperties, D2D1_BRUSH_PROPERTIES *brushProperties, ID2D1GradientStopCollection *gradientStopCollection, ID2D1RadialGradientBrush **radialGradientBrush) PURE;
+ STDMETHOD(CreateSharedBitmap)(THIS_ REFIID riid, void *data, D2D1_BITMAP_PROPERTIES *bitmapProperties, ID2D1Bitmap **bitmap) PURE;
+ STDMETHOD(CreateSolidColorBrush)(THIS_ D2D1_COLOR_F *color, D2D1_BRUSH_PROPERTIES *brushProperties, ID2D1SolidColorBrush **solidColorBrush) PURE;
+ STDMETHOD_(void, DrawBitmap)(THIS_ ID2D1Bitmap *bitmap, D2D1_RECT_F *destinationRectangle, FLOAT opacity, D2D1_BITMAP_INTERPOLATION_MODE interpolationMode , D2D1_RECT_F *sourceRectangle) PURE;
+ STDMETHOD_(void, DrawEllipse)(THIS_ D2D1_ELLIPSE *ellipse, ID2D1Brush *brush, FLOAT strokeWidth, ID2D1StrokeStyle *strokeStyle) PURE;
+ STDMETHOD_(void, DrawGeometry)(THIS_ ID2D1Geometry *geometry, ID2D1Brush *brush, FLOAT strokeWidth, ID2D1StrokeStyle *strokeStyle) PURE;
+ STDMETHOD_(void, DrawGlyphRun)(THIS_ D2D1_POINT_2F baselineOrigin, DWRITE_GLYPH_RUN *glyphRun, ID2D1Brush *foregroundBrush, DWRITE_MEASURING_MODE measuringMode) PURE;
+ STDMETHOD_(void, DrawLine)(THIS_ D2D1_POINT_2F point0, D2D1_POINT_2F point1, ID2D1Brush *brush, FLOAT strokeWidth, ID2D1StrokeStyle *strokeStyle) PURE;
+ STDMETHOD_(void, DrawRectangle)(THIS_ D2D1_RECT_F *rect, ID2D1Brush *brush, FLOAT strokeWidth, ID2D1StrokeStyle *strokeStyle) PURE;
+ STDMETHOD_(void, DrawRoundedRectangle)(THIS_ D2D1_ROUNDED_RECT *roundedRect, ID2D1Brush *brush, FLOAT strokeWidth, ID2D1StrokeStyle *strokeStyle) PURE;
+ STDMETHOD_(void, DrawText)(THIS_ WCHAR *string, UINT stringLength, IDWriteTextFormat *textFormat, D2D1_RECT_F *layoutRect, ID2D1Brush *defaultForegroundBrush, D2D1_DRAW_TEXT_OPTIONS options , DWRITE_MEASURING_MODE measuringMode) PURE;
+ STDMETHOD_(void, DrawTextLayout)(THIS_ D2D1_POINT_2F origin, IDWriteTextLayout *textLayout, ID2D1Brush *defaultForegroundBrush, D2D1_DRAW_TEXT_OPTIONS options) PURE;
+ STDMETHOD(EndDraw)(THIS_ D2D1_TAG *tag1, D2D1_TAG *tag2) PURE;
+ STDMETHOD_(void, FillEllipse)(THIS_ D2D1_ELLIPSE *ellipse, ID2D1Brush *brush) PURE;
+ STDMETHOD_(void, FillGeometry)(THIS_ ID2D1Geometry *geometry, ID2D1Brush *brush, ID2D1Brush *opacityBrush) PURE;
+ STDMETHOD_(void, FillMesh)(THIS_ ID2D1Mesh *mesh, ID2D1Brush *brush) PURE;
+ STDMETHOD_(void, FillOpacityMask)(THIS_ ID2D1Bitmap *opacityMask, ID2D1Brush *brush, D2D1_OPACITY_MASK_CONTENT content, D2D1_RECT_F *destinationRectangle, D2D1_RECT_F *sourceRectangle) PURE;
+ STDMETHOD_(void, FillRectangle)(THIS_ D2D1_RECT_F *rect, ID2D1Brush *brush) PURE;
+ STDMETHOD_(void, FillRoundedRectangle)(THIS_ D2D1_ROUNDED_RECT *roundedRect, ID2D1Brush *brush) PURE;
+ STDMETHOD(Flush)(THIS_ D2D1_TAG *tag1, D2D1_TAG *tag2) PURE;
+ STDMETHOD_(D2D1_ANTIALIAS_MODE, GetAntialiasMode)(THIS) PURE;
+ STDMETHOD_(void, GetDpi)(THIS_ FLOAT *dpiX, FLOAT *dpiY) PURE;
+ STDMETHOD_(UINT32, GetMaximumBitmapSize)(THIS) PURE;
+ STDMETHOD_(D2D1_PIXEL_FORMAT, GetPixelFormat)(THIS) PURE;
+ STDMETHOD_(D2D1_SIZE_U, GetPixelSize)(THIS) PURE;
+ STDMETHOD_(D2D1_SIZE_F, GetSize)(THIS) PURE;
+ STDMETHOD_(void, GetTags)(THIS_ D2D1_TAG *tag1, D2D1_TAG *tag2) PURE;
+ STDMETHOD_(D2D1_TEXT_ANTIALIAS_MODE, GetTextAntialiasMode)(THIS) PURE;
+ STDMETHOD_(void, GetTextRenderingParams)(THIS_ IDWriteRenderingParams **textRenderingParams) PURE;
+ STDMETHOD_(void, GetTransform)(THIS_ D2D1_MATRIX_3X2_F *transform) PURE;
+ STDMETHOD_(BOOL, IsSupported)(THIS_ D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties) PURE;
+ STDMETHOD_(void, PopAxisAlignedClip)(THIS) PURE;
+ STDMETHOD_(void, PopLayer)(THIS) PURE;
+ STDMETHOD_(void, PushAxisAlignedClip)(THIS_ D2D1_RECT_F *clipRect, D2D1_ANTIALIAS_MODE antialiasMode) PURE;
+ STDMETHOD_(void, PushLayer)(THIS_ D2D1_LAYER_PARAMETERS *layerParameters, ID2D1Layer *layer) PURE;
+ STDMETHOD_(void, RestoreDrawingState)(THIS_ ID2D1DrawingStateBlock *drawingStateBlock) PURE;
+ STDMETHOD_(void, SaveDrawingState)(THIS_ ID2D1DrawingStateBlock *drawingStateBlock) PURE;
+ STDMETHOD_(void, SetAntialiasMode)(THIS_ D2D1_ANTIALIAS_MODE antialiasMode) PURE;
+ STDMETHOD_(void, SetDpi)(THIS_ FLOAT dpiX, FLOAT dpiY) PURE;
+ STDMETHOD_(void, SetTags)(THIS_ D2D1_TAG tag1, D2D1_TAG tag2) PURE;
+ STDMETHOD_(void, SetTextAntialiasMode)(THIS_ D2D1_TEXT_ANTIALIAS_MODE textAntialiasMode) PURE;
+ STDMETHOD_(void, SetTextRenderingParams)(THIS_ IDWriteRenderingParams *textRenderingParams) PURE;
+ STDMETHOD_(void, SetTransform)(THIS_ D2D1_MATRIX_3X2_F *transform) PURE;
+
+ /* ID2D1DCRenderTarget methods */
+ STDMETHOD(BindDC)(THIS_ HDC hDC, RECT *pSubRect) PURE;
+
+ END_INTERFACE
+};
+#undef INTERFACE
+
+#define ID2D1DCRenderTarget_BeginDraw(this) (this)->lpVtbl->BeginDraw(this)
+#define ID2D1DCRenderTarget_Clear(this,A) (this)->lpVtbl->Clear(this,A)
+#define ID2D1DCRenderTarget_CreateBitmap(this,A,B,C,D,E) (this)->lpVtbl->CreateBitmap(this,A,B,C,D,E)
+#define ID2D1DCRenderTarget_CreateBitmapBrush(this,A,B) (this)->lpVtbl->CreateBitmapBrush(this,A,B)
+#define ID2D1DCRenderTarget_CreateBitmapFromWicBitmap(this,A,B) (this)->lpVtbl->CreateBitmapFromWicBitmap(this,A,B)
+#define ID2D1DCRenderTarget_CreateCompatibleRenderTarget(this,A) (this)->lpVtbl->CreateCompatibleRenderTarget(this,A)
+#define ID2D1DCRenderTarget_CreateGradientStopCollection(this,A,B,C) (this)->lpVtbl->CreateGradientStopCollection(this,A,B,C)
+#define ID2D1DCRenderTarget_CreateLayer(this,A) (this)->lpVtbl->CreateLayer(this,A)
+#define ID2D1DCRenderTarget_CreateLinearGradientBrush(this,A,B,C,D) (this)->lpVtbl->CreateLinearGradientBrush(this,A,B,C,D)
+#define ID2D1DCRenderTarget_CreateMesh(this,A) (this)->lpVtbl->CreateMesh(this,A)
+#define ID2D1DCRenderTarget_CreateRadialGradientBrush(this,A,B,C,D) (this)->lpVtbl->CreateRadialGradientBrush(this,A,B,C,D)
+#define ID2D1DCRenderTarget_CreateSharedBitmap(this,A,B,C,D) (this)->lpVtbl->CreateSharedBitmap(this,A,B,C,D)
+#define ID2D1DCRenderTarget_CreateSolidColorBrush(this,A,B,C) (this)->lpVtbl->CreateSolidColorBrush(this,A,B,C)
+#define ID2D1DCRenderTarget_DrawBitmap(this,A,B,C,D,E) (this)->lpVtbl->DrawBitmap(this,A,B,C,D,E)
+#define ID2D1DCRenderTarget_DrawEllipse(this,A,B,C,D) (this)->lpVtbl->DrawEllipse(this,A,B,C,D)
+#define ID2D1DCRenderTarget_DrawGeometry(this,A,B,C,D) (this)->lpVtbl->DrawGeometry(this,A,B,C,D)
+#define ID2D1DCRenderTarget_DrawGlyphRun(this,A,B,C,D) (this)->lpVtbl->DrawGlyphRun(this,A,B,C,D)
+#define ID2D1DCRenderTarget_DrawLine(this,A,B,C,D,E) (this)->lpVtbl->DrawLine(this,A,B,C,D,E)
+#define ID2D1DCRenderTarget_DrawRectangle(this,A,B,C,D) (this)->lpVtbl->DrawRectangle(this,A,B,C,D)
+#define ID2D1DCRenderTarget_DrawRoundedRectangle(this,A,B,C,D) (this)->lpVtbl->DrawRoundedRectangle(this,A,B,C,D)
+#define ID2D1DCRenderTarget_DrawText(this,A,B,C,D,E,F,G) (this)->lpVtbl->DrawText(this,A,B,C,D,E,F,G)
+#define ID2D1DCRenderTarget_DrawTextLayout(this,A,B,C,D) (this)->lpVtbl->DrawTextLayout(this,A,B,C,D)
+#define ID2D1DCRenderTarget_EndDraw(this,A,B) (this)->lpVtbl->EndDraw(this,A,B)
+#define ID2D1DCRenderTarget_FillEllipse(this,A,B) (this)->lpVtbl->FillEllipse(this,A,B)
+#define ID2D1DCRenderTarget_FillGeometry(this,A,B,C) (this)->lpVtbl->FillGeometry(this,A,B,C)
+#define ID2D1DCRenderTarget_FillMesh(this,A,B) (this)->lpVtbl->FillMesh(this,A,B)
+#define ID2D1DCRenderTarget_FillOpacityMask(this,A,B,C,D,E) (this)->lpVtbl->FillOpacityMask(this,A,B,C,D,E)
+#define ID2D1DCRenderTarget_FillRectangle(this,A,B) (this)->lpVtbl->FillRectangle(this,A,B)
+#define ID2D1DCRenderTarget_FillRoundedRectangle(this,A,B) (this)->lpVtbl->FillRoundedRectangle(this,A,B)
+#define ID2D1DCRenderTarget_Flush(this,A,B) (this)->lpVtbl->Flush(this,A,B)
+#define ID2D1DCRenderTarget_GetAntialiasMode(this) (this)->lpVtbl->GetAntialiasMode(this)
+#define ID2D1DCRenderTarget_GetDpi(this,A,B) (this)->lpVtbl->GetDpi(this,A,B)
+#define ID2D1DCRenderTarget_GetMaximumBitmapSize(this) (this)->lpVtbl->GetMaximumBitmapSize(this)
+#define ID2D1DCRenderTarget_GetPixelFormat(this) (this)->lpVtbl->GetPixelFormat(this)
+#define ID2D1DCRenderTarget_GetPixelSize(this) (this)->lpVtbl->GetPixelSize(this)
+#define ID2D1DCRenderTarget_GetSize(this) (this)->lpVtbl->GetSize(this)
+#define ID2D1DCRenderTarget_GetTags(this,A,B) (this)->lpVtbl->GetTags(this,A,B)
+#define ID2D1DCRenderTarget_GetTextAntialiasMode(this) (this)->lpVtbl->GetTextAntialiasMode(this)
+#define ID2D1DCRenderTarget_GetTextRenderingParams(this,A) (this)->lpVtbl->GetTextRenderingParams(this,A)
+#define ID2D1DCRenderTarget_GetTransform(this,A) (this)->lpVtbl->GetTransform(this,A)
+#define ID2D1DCRenderTarget_IsSupported(this,A) (this)->lpVtbl->IsSupported(this,A)
+#define ID2D1DCRenderTarget_PopAxisAlignedClip(this) (this)->lpVtbl->PopAxisAlignedClip(this)
+#define ID2D1DCRenderTarget_PopLayer(this) (this)->lpVtbl->PopLayer(this)
+#define ID2D1DCRenderTarget_PushAxisAlignedClip(this,A,B) (this)->lpVtbl->PushAxisAlignedClip(this,A,B)
+#define ID2D1DCRenderTarget_PushLayer(this,A,B) (this)->lpVtbl->PushLayer(this,A,B)
+#define ID2D1DCRenderTarget_RestoreDrawingState(this,A) (this)->lpVtbl->RestoreDrawingState(this,A)
+#define ID2D1DCRenderTarget_SaveDrawingState(this,A) (this)->lpVtbl->SaveDrawingState(this,A)
+#define ID2D1DCRenderTarget_SetAntialiasMode(this,A) (this)->lpVtbl->SetAntialiasMode(this,A)
+#define ID2D1DCRenderTarget_SetDpi(this,A,B) (this)->lpVtbl->SetDpi(this,A,B)
+#define ID2D1DCRenderTarget_SetTags(this,A,B) (this)->lpVtbl->SetTags(this,A,B)
+#define ID2D1DCRenderTarget_SetTextAntialiasMode(this,A) (this)->lpVtbl->SetTextAntialiasMode(this,A)
+#define ID2D1DCRenderTarget_SetTextRenderingParams(this,A) (this)->lpVtbl->SetTextRenderingParams(this,A)
+#define ID2D1DCRenderTarget_SetTransform(this,A) (this)->lpVtbl->SetTransform(this,A)
+#define ID2D1DCRenderTarget_BindDC(this,A,B) (this)->lpVtbl->BindDC(this,A,B)
+
+#define INTERFACE ID2D1DrawingStateBlock
+DECLARE_INTERFACE_(ID2D1DrawingStateBlock, ID2D1Resource)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* ID2D1Resource methods */
+ STDMETHOD_(void, GetFactory)(THIS_ ID2D1Factory **factory) PURE;
+
+ /* ID2D1DrawingStateBlock methods */
+ STDMETHOD_(void, GetDescription)(THIS_ D2D1_DRAWING_STATE_DESCRIPTION *stateDescription) PURE;
+ STDMETHOD_(void, GetTextRenderingParams)(THIS_ IDWriteRenderingParams **textRenderingParams) PURE;
+ STDMETHOD_(void, SetDescription)(THIS_ D2D1_DRAWING_STATE_DESCRIPTION *stateDescription) PURE;
+ STDMETHOD_(void, SetTextRenderingParams)(THIS_ IDWriteRenderingParams *textRenderingParams) PURE;
+
+ END_INTERFACE
+};
+#undef INTERFACE
+
+#define ID2D1DrawingStateBlock_QueryInterface(this,A,B) (this)->lpVtbl->QueryInterface(this,A,B)
+#define ID2D1DrawingStateBlock_AddRef(this) (this)->lpVtbl->AddRef(this)
+#define ID2D1DrawingStateBlock_Release(this) (this)->lpVtbl->Release(this)
+#define ID2D1DrawingStateBlock_GetFactory(this,A) (this)->lpVtbl->GetFactory(this,A)
+#define ID2D1DrawingStateBlock_GetDescription(this,A) (this)->lpVtbl->GetDescription(this,A)
+#define ID2D1DrawingStateBlock_GetTextRenderingParams(this,A) (this)->lpVtbl->GetTextRenderingParams(this,A)
+#define ID2D1DrawingStateBlock_SetDescription(this,A) (this)->lpVtbl->SetDescription(this,A)
+#define ID2D1DrawingStateBlock_SetTextRenderingParams(this,A) (this)->lpVtbl->SetTextRenderingParams(this,A)
+
+#define INTERFACE ID2D1SimplifiedGeometrySink
+DECLARE_INTERFACE_(ID2D1SimplifiedGeometrySink, IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* ID2D1SimplifiedGeometrySink methods */
+ STDMETHOD_(void, AddBeziers)(THIS_ D2D1_BEZIER_SEGMENT *beziers, UINT beziersCount) PURE;
+ STDMETHOD_(void, AddLines)(THIS_ D2D1_POINT_2F *points, UINT pointsCount) PURE;
+ STDMETHOD_(void, BeginFigure)(THIS_ D2D1_POINT_2F startPoint, D2D1_FIGURE_BEGIN figureBegin) PURE;
+ STDMETHOD(Close)(THIS) PURE;
+ STDMETHOD_(void, EndFigure)(THIS_ D2D1_FIGURE_END figureEnd) PURE;
+ STDMETHOD_(void, SetFillMode)(THIS_ D2D1_FILL_MODE fillMode) PURE;
+ STDMETHOD_(void, SetSegmentFlags)(THIS_ D2D1_PATH_SEGMENT vertexFlags) PURE;
+
+ END_INTERFACE
+};
+#undef INTERFACE
+
+#define ID2D1SimplifiedGeometrySink_QueryInterface(this,A,B) (this)->lpVtbl->QueryInterface(this,A,B)
+#define ID2D1SimplifiedGeometrySink_AddRef(this) (this)->lpVtbl->AddRef(this)
+#define ID2D1SimplifiedGeometrySink_Release(this) (this)->lpVtbl->Release(this)
+#define ID2D1SimplifiedGeometrySink_AddBeziers(this,A,B) (this)->lpVtbl->AddBeziers(this,A,B)
+#define ID2D1SimplifiedGeometrySink_AddLines(this,A,B) (this)->lpVtbl->AddLines(this,A,B)
+#define ID2D1SimplifiedGeometrySink_BeginFigure(this,A,B) (this)->lpVtbl->BeginFigure(this,A,B)
+#define ID2D1SimplifiedGeometrySink_Close(this) (this)->lpVtbl->Close(this)
+#define ID2D1SimplifiedGeometrySink_EndFigure(this,A) (this)->lpVtbl->EndFigure(this,A)
+#define ID2D1SimplifiedGeometrySink_SetFillMode(this,A) (this)->lpVtbl->SetFillMode(this,A)
+#define ID2D1SimplifiedGeometrySink_SetSegmentFlags(this,A) (this)->lpVtbl->SetSegmentFlags(this,A)
+
+#define INTERFACE ID2D1EllipseGeometry
+DECLARE_INTERFACE_(ID2D1EllipseGeometry, ID2D1Geometry)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* ID2D1Resource methods */
+ STDMETHOD_(void, GetFactory)(THIS_ ID2D1Factory **factory) PURE;
+
+ /* ID2D1Geometry methods */
+ STDMETHOD(CombineWithGeometry)(THIS_ ID2D1Geometry *inputGeometry, D2D1_COMBINE_MODE combineMode, D2D1_MATRIX_3X2_F *inputGeometryTransform, ID2D1SimplifiedGeometrySink *geometrySink) PURE;
+ STDMETHOD(CompareWithGeometry)(THIS_ ID2D1Geometry *inputGeometry, D2D1_MATRIX_3X2_F *inputGeometryTransform, D2D1_GEOMETRY_RELATION *relation) PURE;
+ STDMETHOD(ComputeArea)(THIS_ D2D1_MATRIX_3X2_F *worldTransform, FLOAT *area) PURE;
+ STDMETHOD(ComputeLength)(THIS_ D2D1_MATRIX_3X2_F *worldTransform, FLOAT *length) PURE;
+ STDMETHOD(ComputePointAtLength)(THIS_ FLOAT length, D2D1_MATRIX_3X2_F *worldTransform, D2D1_POINT_2F *point, D2D1_POINT_2F *unitTangentVector) PURE;
+ STDMETHOD(FillContainsPoint)(THIS_ D2D1_POINT_2F point, D2D1_MATRIX_3X2_F *worldTransform, BOOL *contains) PURE;
+ STDMETHOD(GetBounds)(THIS_ D2D1_MATRIX_3X2_F *worldTransform, D2D1_RECT_F *bounds) PURE;
+ STDMETHOD(GetWidenedBounds)(THIS_ FLOAT strokeWidth, ID2D1StrokeStyle *strokeStyle, D2D1_MATRIX_3X2_F *worldTransform, D2D1_RECT_F *bounds) PURE;
+ STDMETHOD(Outline)(THIS_ D2D1_MATRIX_3X2_F *worldTransform, ID2D1SimplifiedGeometrySink *geometrySink) PURE;
+ STDMETHOD(StrokeContainsPoint)(THIS_ D2D1_POINT_2F point, FLOAT strokeWidth, ID2D1StrokeStyle *strokeStyle, D2D1_MATRIX_3X2_F *worldTransform, BOOL *contains) PURE;
+ STDMETHOD(Simplify)(THIS_ D2D1_GEOMETRY_SIMPLIFICATION_OPTION simplificationOption, D2D1_MATRIX_3X2_F *worldTransform, ID2D1SimplifiedGeometrySink *geometrySink) PURE;
+ STDMETHOD(Tessellate)(THIS_ D2D1_MATRIX_3X2_F *worldTransform, ID2D1TessellationSink *tessellationSink) PURE;
+ STDMETHOD(Widen)(THIS_ FLOAT strokeWidth, ID2D1StrokeStyle *strokeStyle, D2D1_MATRIX_3X2_F *worldTransform, ID2D1SimplifiedGeometrySink *geometrySink) PURE;
+
+ /* ID2D1EllipseGeometry methods */
+ STDMETHOD_(void, GetEllipse)(THIS_ D2D1_ELLIPSE *ellipse) PURE;
+
+ END_INTERFACE
+};
+#undef INTERFACE
+
+#define ID2D1EllipseGeometry_CombineWithGeometry(this,A,B,C,D) (this)->lpVtbl->CombineWithGeometry(this,A,B,C,D)
+#define ID2D1EllipseGeometry_CompareWithGeometry(this,A,B,C) (this)->lpVtbl->CompareWithGeometry(this,A,B,C)
+#define ID2D1EllipseGeometry_ComputeArea(this,A,B) (this)->lpVtbl->ComputeArea(this,A,B)
+#define ID2D1EllipseGeometry_ComputeLength(this,A,B) (this)->lpVtbl->ComputeLength(this,A,B)
+#define ID2D1EllipseGeometry_ComputePointAtLength(this,A,B,C,D) (this)->lpVtbl->ComputePointAtLength(this,A,B,C,D)
+#define ID2D1EllipseGeometry_FillContainsPoint(this,A,B,C) (this)->lpVtbl->FillContainsPoint(this,A,B,C)
+#define ID2D1EllipseGeometry_GetBounds(this,A,B) (this)->lpVtbl->GetBounds(this,A,B)
+#define ID2D1EllipseGeometry_GetWidenedBounds(this,A,B,C,D) (this)->lpVtbl->GetWidenedBounds(this,A,B,C,D)
+#define ID2D1EllipseGeometry_Outline(this,A,B) (this)->lpVtbl->Outline(this,A,B)
+#define ID2D1EllipseGeometry_StrokeContainsPoint(this,A,B,C,D,E) (this)->lpVtbl->StrokeContainsPoint(this,A,B,C,D,E)
+#define ID2D1EllipseGeometry_Simplify(this,A,B,C) (this)->lpVtbl->Simplify(this,A,B,C)
+#define ID2D1EllipseGeometry_Tessellate(this,A,B) (this)->lpVtbl->Tessellate(this,A,B)
+#define ID2D1EllipseGeometry_Widen(this,A,B,C,D) (this)->lpVtbl->Widen(this,A,B,C,D)
+#define ID2D1EllipseGeometry_GetEllipse(this,A) (this)->lpVtbl->GetEllipse(this,A)
+
+#define INTERFACE ID2D1Factory
+DECLARE_INTERFACE_(ID2D1Factory, IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* ID2D1Factory methods */
+ STDMETHOD(CreateDCRenderTarget)(THIS_ D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties, ID2D1DCRenderTarget **dcRenderTarget) PURE;
+ STDMETHOD(CreateDrawingStateBlock)(THIS_ D2D1_DRAWING_STATE_DESCRIPTION *drawingStateDescription, IDWriteRenderingParams *textRenderingParams, ID2D1DrawingStateBlock **drawingStateBlock) PURE;
+ STDMETHOD(CreateDxgiSurfaceRenderTarget)(THIS_ IDXGISurface *dxgiSurface, D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties, ID2D1RenderTarget **renderTarget) PURE;
+ STDMETHOD(CreateEllipseGeometry)(THIS_ D2D1_ELLIPSE *ellipse, ID2D1EllipseGeometry **ellipseGeometry) PURE;
+ STDMETHOD(CreateGeometryGroup)(THIS_ D2D1_FILL_MODE fillMode, ID2D1Geometry **geometries, UINT geometriesCount, ID2D1GeometryGroup **geometryGroup) PURE;
+ STDMETHOD(CreateHwndRenderTarget)(THIS_ D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties, D2D1_HWND_RENDER_TARGET_PROPERTIES *hwndRenderTargetProperties, ID2D1HwndRenderTarget **hwndRenderTarget) PURE;
+ STDMETHOD(CreatePathGeometry)(THIS_ ID2D1PathGeometry **pathGeometry) PURE;
+ STDMETHOD(CreateRectangleGeometry)(THIS_ D2D1_RECT_F *rectangle, ID2D1RectangleGeometry **rectangleGeometry) PURE;
+ STDMETHOD(CreateRoundedRectangleGeometry)(THIS_ D2D1_ROUNDED_RECT *roundedRectangle, ID2D1RoundedRectangleGeometry **roundedRectangleGeometry) PURE;
+ STDMETHOD(CreateStrokeStyle)(THIS_ D2D1_STROKE_STYLE_PROPERTIES *strokeStyleProperties, FLOAT *dashes, UINT dashesCount, ID2D1StrokeStyle **strokeStyle) PURE;
+ STDMETHOD(CreateTransformedGeometry)(THIS_ ID2D1Geometry *sourceGeometry, D2D1_MATRIX_3X2_F *transform, ID2D1TransformedGeometry **transformedGeometry) PURE;
+ STDMETHOD(CreateWicBitmapRenderTarget)(THIS_ IWICBitmap *target, D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties, ID2D1RenderTarget **renderTarget) PURE;
+ STDMETHOD_(void, GetDesktopDpi)(THIS_ FLOAT *dpiX, FLOAT *dpiY) PURE;
+ STDMETHOD(ReloadSystemMetrics)(THIS) PURE;
+
+ END_INTERFACE
+};
+#undef INTERFACE
+
+#define ID2D1Factory_QueryInterface(this,A,B) (this)->lpVtbl->QueryInterface(this,A,B)
+#define ID2D1Factory_AddRef(this) (this)->lpVtbl->AddRef(this)
+#define ID2D1Factory_Release(this) (this)->lpVtbl->Release(this)
+#define ID2D1Factory_CreateDCRenderTarget(this,A,B) (this)->lpVtbl->CreateDCRenderTarget(this,A,B)
+#define ID2D1Factory_CreateDrawingStateBlock(this,A,B,C) (this)->lpVtbl->CreateDrawingStateBlock(this,A,B,C)
+#define ID2D1Factory_CreateDxgiSurfaceRenderTarget(this,A,B,C) (this)->lpVtbl->CreateDxgiSurfaceRenderTarget(this,A,B,C)
+#define ID2D1Factory_CreateEllipseGeometry(this,A,B) (this)->lpVtbl->CreateEllipseGeometry(this,A,B)
+#define ID2D1Factory_CreateGeometryGroup(this,A,B,C,D) (this)->lpVtbl->CreateGeometryGroup(this,A,B,C,D)
+#define ID2D1Factory_CreateHwndRenderTarget(this,A,B,C) (this)->lpVtbl->CreateHwndRenderTarget(this,A,B,C)
+#define ID2D1Factory_CreatePathGeometry(this,A) (this)->lpVtbl->CreatePathGeometry(this,A)
+#define ID2D1Factory_CreateRectangleGeometry(this,A,B) (this)->lpVtbl->CreateRectangleGeometry(this,A,B)
+#define ID2D1Factory_CreateRoundedRectangleGeometry(this,A,B) (this)->lpVtbl->CreateRoundedRectangleGeometry(this,A,B)
+#define ID2D1Factory_CreateStrokeStyle(this,A,B,C,D) (this)->lpVtbl->CreateStrokeStyle(this,A,B,C,D)
+#define ID2D1Factory_CreateTransformedGeometry(this,A,B,C) (this)->lpVtbl->CreateTransformedGeometry(this,A,B,C)
+#define ID2D1Factory_CreateWicBitmapRenderTarget(this,A,B,C) (this)->lpVtbl->CreateWicBitmapRenderTarget(this,A,B,C)
+#define ID2D1Factory_GetDesktopDpi(this,A,B) (this)->lpVtbl->GetDesktopDpi(this,A,B)
+#define ID2D1Factory_ReloadSystemMetrics(this) (this)->lpVtbl->ReloadSystemMetrics(this)
+
+#define INTERFACE ID2D1GdiInteropRenderTarget
+DECLARE_INTERFACE_(ID2D1GdiInteropRenderTarget, IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* ID2D1GdiInteropRenderTarget methods */
+ STDMETHOD(GetDC)(THIS_ D2D1_DC_INITIALIZE_MODE mode, HDC *hdc) PURE;
+ STDMETHOD(ReleaseDC)(THIS_ RECT *update) PURE;
+
+ END_INTERFACE
+};
+#undef INTERFACE
+
+#define ID2D1GdiInteropRenderTarget_QueryInterface(this,A,B) (this)->lpVtbl->QueryInterface(this,A,B)
+#define ID2D1GdiInteropRenderTarget_AddRef(this) (this)->lpVtbl->AddRef(this)
+#define ID2D1GdiInteropRenderTarget_Release(this) (this)->lpVtbl->Release(this)
+#define ID2D1GdiInteropRenderTarget_GetDC(this,A,B) (this)->lpVtbl->GetDC(this,A,B)
+#define ID2D1GdiInteropRenderTarget_ReleaseDC(this,A) (this)->lpVtbl->ReleaseDC(this,A)
+
+#define INTERFACE ID2D1GeometryGroup
+DECLARE_INTERFACE_(ID2D1GeometryGroup, ID2D1Geometry)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* ID2D1Resource methods */
+ STDMETHOD_(void, GetFactory)(THIS_ ID2D1Factory **factory) PURE;
+
+ /* ID2D1Geometry methods */
+ STDMETHOD(CombineWithGeometry)(THIS_ ID2D1Geometry *inputGeometry, D2D1_COMBINE_MODE combineMode, D2D1_MATRIX_3X2_F *inputGeometryTransform, ID2D1SimplifiedGeometrySink *geometrySink) PURE;
+ STDMETHOD(CompareWithGeometry)(THIS_ ID2D1Geometry *inputGeometry, D2D1_MATRIX_3X2_F *inputGeometryTransform, D2D1_GEOMETRY_RELATION *relation) PURE;
+ STDMETHOD(ComputeArea)(THIS_ D2D1_MATRIX_3X2_F *worldTransform, FLOAT *area) PURE;
+ STDMETHOD(ComputeLength)(THIS_ D2D1_MATRIX_3X2_F *worldTransform, FLOAT *length) PURE;
+ STDMETHOD(ComputePointAtLength)(THIS_ FLOAT length, D2D1_MATRIX_3X2_F *worldTransform, D2D1_POINT_2F *point, D2D1_POINT_2F *unitTangentVector) PURE;
+ STDMETHOD(FillContainsPoint)(THIS_ D2D1_POINT_2F point, D2D1_MATRIX_3X2_F *worldTransform, BOOL *contains) PURE;
+ STDMETHOD(GetBounds)(THIS_ D2D1_MATRIX_3X2_F *worldTransform, D2D1_RECT_F *bounds) PURE;
+ STDMETHOD(GetWidenedBounds)(THIS_ FLOAT strokeWidth, ID2D1StrokeStyle *strokeStyle, D2D1_MATRIX_3X2_F *worldTransform, D2D1_RECT_F *bounds) PURE;
+ STDMETHOD(Outline)(THIS_ D2D1_MATRIX_3X2_F *worldTransform, ID2D1SimplifiedGeometrySink *geometrySink) PURE;
+ STDMETHOD(StrokeContainsPoint)(THIS_ D2D1_POINT_2F point, FLOAT strokeWidth, ID2D1StrokeStyle *strokeStyle, D2D1_MATRIX_3X2_F *worldTransform, BOOL *contains) PURE;
+ STDMETHOD(Simplify)(THIS_ D2D1_GEOMETRY_SIMPLIFICATION_OPTION simplificationOption, D2D1_MATRIX_3X2_F *worldTransform, ID2D1SimplifiedGeometrySink *geometrySink) PURE;
+ STDMETHOD(Tessellate)(THIS_ D2D1_MATRIX_3X2_F *worldTransform, ID2D1TessellationSink *tessellationSink) PURE;
+ STDMETHOD(Widen)(THIS_ FLOAT strokeWidth, ID2D1StrokeStyle *strokeStyle, D2D1_MATRIX_3X2_F *worldTransform, ID2D1SimplifiedGeometrySink *geometrySink) PURE;
+
+ /* ID2D1GeometryGroup methods */
+ STDMETHOD_(D2D1_FILL_MODE, GetFillMode)(THIS) PURE;
+ STDMETHOD_(void, GetSourceGeometries)(THIS_ ID2D1Geometry **geometries, UINT geometriesCount) PURE;
+ STDMETHOD_(UINT32, GetSourceGeometryCount)(THIS) PURE;
+
+ END_INTERFACE
+};
+#undef INTERFACE
+
+#define ID2D1GeometryGroup_CombineWithGeometry(this,A,B,C,D) (this)->lpVtbl->CombineWithGeometry(this,A,B,C,D)
+#define ID2D1GeometryGroup_CompareWithGeometry(this,A,B,C) (this)->lpVtbl->CompareWithGeometry(this,A,B,C)
+#define ID2D1GeometryGroup_ComputeArea(this,A,B) (this)->lpVtbl->ComputeArea(this,A,B)
+#define ID2D1GeometryGroup_ComputeLength(this,A,B) (this)->lpVtbl->ComputeLength(this,A,B)
+#define ID2D1GeometryGroup_ComputePointAtLength(this,A,B,C,D) (this)->lpVtbl->ComputePointAtLength(this,A,B,C,D)
+#define ID2D1GeometryGroup_FillContainsPoint(this,A,B,C) (this)->lpVtbl->FillContainsPoint(this,A,B,C)
+#define ID2D1GeometryGroup_GetBounds(this,A,B) (this)->lpVtbl->GetBounds(this,A,B)
+#define ID2D1GeometryGroup_GetWidenedBounds(this,A,B,C,D) (this)->lpVtbl->GetWidenedBounds(this,A,B,C,D)
+#define ID2D1GeometryGroup_Outline(this,A,B) (this)->lpVtbl->Outline(this,A,B)
+#define ID2D1GeometryGroup_StrokeContainsPoint(this,A,B,C,D,E) (this)->lpVtbl->StrokeContainsPoint(this,A,B,C,D,E)
+#define ID2D1GeometryGroup_Simplify(this,A,B,C) (this)->lpVtbl->Simplify(this,A,B,C)
+#define ID2D1GeometryGroup_Tessellate(this,A,B) (this)->lpVtbl->Tessellate(this,A,B)
+#define ID2D1GeometryGroup_Widen(this,A,B,C,D) (this)->lpVtbl->Widen(this,A,B,C,D)
+#define ID2D1GeometryGroup_GetFillMode(this) (this)->lpVtbl->GetFillMode(this)
+#define ID2D1GeometryGroup_GetSourceGeometries(this,A,B) (this)->lpVtbl->GetSourceGeometries(this,A,B)
+#define ID2D1GeometryGroup_GetSourceGeometryCount(this) (this)->lpVtbl->GetSourceGeometryCount(this)
+
+#define INTERFACE ID2D1GeometrySink
+DECLARE_INTERFACE_(ID2D1GeometrySink, ID2D1SimplifiedGeometrySink)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* ID2D1SimplifiedGeometrySink methods */
+ STDMETHOD_(void, AddBeziers)(THIS_ D2D1_BEZIER_SEGMENT *beziers, UINT beziersCount) PURE;
+ STDMETHOD_(void, AddLines)(THIS_ D2D1_POINT_2F *points, UINT pointsCount) PURE;
+ STDMETHOD_(void, BeginFigure)(THIS_ D2D1_POINT_2F startPoint, D2D1_FIGURE_BEGIN figureBegin) PURE;
+ STDMETHOD(Close)(THIS) PURE;
+ STDMETHOD_(void, EndFigure)(THIS_ D2D1_FIGURE_END figureEnd) PURE;
+ STDMETHOD_(void, SetFillMode)(THIS_ D2D1_FILL_MODE fillMode) PURE;
+ STDMETHOD_(void, SetSegmentFlags)(THIS_ D2D1_PATH_SEGMENT vertexFlags) PURE;
+
+ /* ID2D1GeometrySink methods */
+ STDMETHOD_(void, AddArc)(THIS_ D2D1_ARC_SEGMENT *arc) PURE;
+ STDMETHOD_(void, AddBezier)(THIS_ D2D1_BEZIER_SEGMENT *bezier) PURE;
+ STDMETHOD_(void, AddLine)(THIS_ D2D1_POINT_2F point) PURE;
+ STDMETHOD_(void, AddQuadraticBezier)(THIS_ D2D1_QUADRATIC_BEZIER_SEGMENT *bezier) PURE;
+ STDMETHOD_(void, AddQuadraticBeziers)(THIS_ D2D1_QUADRATIC_BEZIER_SEGMENT *beziers, UINT bezierCount) PURE;
+
+ END_INTERFACE
+};
+#undef INTERFACE
+
+#define ID2D1GeometrySink_QueryInterface(this,A,B) (this)->lpVtbl->QueryInterface(this,A,B)
+#define ID2D1GeometrySink_AddRef(this) (this)->lpVtbl->AddRef(this)
+#define ID2D1GeometrySink_Release(this) (this)->lpVtbl->Release(this)
+#define ID2D1GeometrySink_AddBeziers(this,A,B) (this)->lpVtbl->AddBeziers(this,A,B)
+#define ID2D1GeometrySink_AddLines(this,A,B) (this)->lpVtbl->AddLines(this,A,B)
+#define ID2D1GeometrySink_BeginFigure(this,A,B) (this)->lpVtbl->BeginFigure(this,A,B)
+#define ID2D1GeometrySink_Close(this) (this)->lpVtbl->Close(this)
+#define ID2D1GeometrySink_EndFigure(this,A) (this)->lpVtbl->EndFigure(this,A)
+#define ID2D1GeometrySink_SetFillMode(this,A) (this)->lpVtbl->SetFillMode(this,A)
+#define ID2D1GeometrySink_SetSegmentFlags(this,A) (this)->lpVtbl->SetSegmentFlags(this,A)
+#define ID2D1GeometrySink_AddArc(this,A) (this)->lpVtbl->AddArc(this,A)
+#define ID2D1GeometrySink_AddBezier(this,A) (this)->lpVtbl->AddBezier(this,A)
+#define ID2D1GeometrySink_AddLine(this,A) (this)->lpVtbl->AddLine(this,A)
+#define ID2D1GeometrySink_AddQuadraticBezier(this,A) (this)->lpVtbl->AddQuadraticBezier(this,A)
+#define ID2D1GeometrySink_AddQuadraticBeziers(this,A,B) (this)->lpVtbl->AddQuadraticBeziers(this,A,B)
+
+#define INTERFACE ID2D1GradientStopCollection
+DECLARE_INTERFACE_(ID2D1GradientStopCollection, ID2D1Resource)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* ID2D1Resource methods */
+ STDMETHOD_(void, GetFactory)(THIS_ ID2D1Factory **factory) PURE;
+
+ /* ID2D1GradientStopCollection methods */
+ STDMETHOD_(D2D1_GAMMA, GetColorInterpolationGamma)(THIS) PURE;
+ STDMETHOD_(D2D1_EXTEND_MODE, GetExtendMode)(THIS) PURE;
+ STDMETHOD_(UINT32, GetGradientStopCount)(THIS) PURE;
+ STDMETHOD_(void, GetGradientStops)(THIS_ D2D1_GRADIENT_STOP *gradientStops, UINT gradientStopsCount) PURE;
+
+ END_INTERFACE
+};
+#undef INTERFACE
+
+#define ID2D1GradientStopCollection_QueryInterface(this,A,B) (this)->lpVtbl->QueryInterface(this,A,B)
+#define ID2D1GradientStopCollection_AddRef(this) (this)->lpVtbl->AddRef(this)
+#define ID2D1GradientStopCollection_Release(this) (this)->lpVtbl->Release(this)
+#define ID2D1GradientStopCollection_GetFactory(this,A) (this)->lpVtbl->GetFactory(this,A)
+#define ID2D1GradientStopCollection_GetColorInterpolationGamma(this) (this)->lpVtbl->GetColorInterpolationGamma(this)
+#define ID2D1GradientStopCollection_GetExtendMode(this) (this)->lpVtbl->GetExtendMode(this)
+#define ID2D1GradientStopCollection_GetGradientStopCount(this) (this)->lpVtbl->GetGradientStopCount(this)
+#define ID2D1GradientStopCollection_GetGradientStops(this,A,B) (this)->lpVtbl->GetGradientStops(this,A,B)
+
+#define INTERFACE ID2D1HwndRenderTarget
+DECLARE_INTERFACE_(ID2D1HwndRenderTarget, ID2D1RenderTarget)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* ID2D1Resource methods */
+ STDMETHOD_(void, GetFactory)(THIS_ ID2D1Factory **factory) PURE;
+
+ /* ID2D1RenderTarget methods */
+ STDMETHOD_(void, BeginDraw)(THIS) PURE;
+ STDMETHOD_(void, Clear)(THIS_ D2D1_COLOR_F *clearColor) PURE;
+ STDMETHOD(CreateBitmap)(THIS_ D2D1_SIZE_U size, void *srcData, UINT32 pitch, D2D1_BITMAP_PROPERTIES *bitmapProperties, ID2D1Bitmap **bitmap) PURE;
+ STDMETHOD(CreateBitmapBrush)(THIS_ ID2D1Bitmap *bitmap, ID2D1BitmapBrush **bitmapBrush) PURE;
+ STDMETHOD(CreateBitmapFromWicBitmap)(THIS_ IWICBitmapSource *wicBitmapSource, ID2D1Bitmap **bitmap) PURE;
+ STDMETHOD(CreateCompatibleRenderTarget)(THIS_ ID2D1BitmapRenderTarget **bitmapRenderTarget) PURE;
+ STDMETHOD(CreateGradientStopCollection)(THIS_ D2D1_GRADIENT_STOP *gradientStops, UINT gradientStopsCount, ID2D1GradientStopCollection **gradientStopCollection) PURE;
+ STDMETHOD(CreateLayer)(THIS_ ID2D1Layer **layer) PURE;
+ STDMETHOD(CreateLinearGradientBrush)(THIS_ D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES *linearGradientBrushProperties, D2D1_BRUSH_PROPERTIES *brushProperties, ID2D1GradientStopCollection *gradientStopCollection, ID2D1LinearGradientBrush **linearGradientBrush) PURE;
+ STDMETHOD(CreateMesh)(THIS_ ID2D1Mesh **mesh) PURE;
+ STDMETHOD(CreateRadialGradientBrush)(THIS_ D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES *radialGradientBrushProperties, D2D1_BRUSH_PROPERTIES *brushProperties, ID2D1GradientStopCollection *gradientStopCollection, ID2D1RadialGradientBrush **radialGradientBrush) PURE;
+ STDMETHOD(CreateSharedBitmap)(THIS_ REFIID riid, void *data, D2D1_BITMAP_PROPERTIES *bitmapProperties, ID2D1Bitmap **bitmap) PURE;
+ STDMETHOD(CreateSolidColorBrush)(THIS_ D2D1_COLOR_F *color, D2D1_BRUSH_PROPERTIES *brushProperties, ID2D1SolidColorBrush **solidColorBrush) PURE;
+ STDMETHOD_(void, DrawBitmap)(THIS_ ID2D1Bitmap *bitmap, D2D1_RECT_F *destinationRectangle, FLOAT opacity, D2D1_BITMAP_INTERPOLATION_MODE interpolationMode , D2D1_RECT_F *sourceRectangle) PURE;
+ STDMETHOD_(void, DrawEllipse)(THIS_ D2D1_ELLIPSE *ellipse, ID2D1Brush *brush, FLOAT strokeWidth, ID2D1StrokeStyle *strokeStyle) PURE;
+ STDMETHOD_(void, DrawGeometry)(THIS_ ID2D1Geometry *geometry, ID2D1Brush *brush, FLOAT strokeWidth, ID2D1StrokeStyle *strokeStyle) PURE;
+ STDMETHOD_(void, DrawGlyphRun)(THIS_ D2D1_POINT_2F baselineOrigin, DWRITE_GLYPH_RUN *glyphRun, ID2D1Brush *foregroundBrush, DWRITE_MEASURING_MODE measuringMode) PURE;
+ STDMETHOD_(void, DrawLine)(THIS_ D2D1_POINT_2F point0, D2D1_POINT_2F point1, ID2D1Brush *brush, FLOAT strokeWidth, ID2D1StrokeStyle *strokeStyle) PURE;
+ STDMETHOD_(void, DrawRectangle)(THIS_ D2D1_RECT_F *rect, ID2D1Brush *brush, FLOAT strokeWidth, ID2D1StrokeStyle *strokeStyle) PURE;
+ STDMETHOD_(void, DrawRoundedRectangle)(THIS_ D2D1_ROUNDED_RECT *roundedRect, ID2D1Brush *brush, FLOAT strokeWidth, ID2D1StrokeStyle *strokeStyle) PURE;
+ STDMETHOD_(void, DrawText)(THIS_ WCHAR *string, UINT stringLength, IDWriteTextFormat *textFormat, D2D1_RECT_F *layoutRect, ID2D1Brush *defaultForegroundBrush, D2D1_DRAW_TEXT_OPTIONS options , DWRITE_MEASURING_MODE measuringMode) PURE;
+ STDMETHOD_(void, DrawTextLayout)(THIS_ D2D1_POINT_2F origin, IDWriteTextLayout *textLayout, ID2D1Brush *defaultForegroundBrush, D2D1_DRAW_TEXT_OPTIONS options) PURE;
+ STDMETHOD(EndDraw)(THIS_ D2D1_TAG *tag1, D2D1_TAG *tag2) PURE;
+ STDMETHOD_(void, FillEllipse)(THIS_ D2D1_ELLIPSE *ellipse, ID2D1Brush *brush) PURE;
+ STDMETHOD_(void, FillGeometry)(THIS_ ID2D1Geometry *geometry, ID2D1Brush *brush, ID2D1Brush *opacityBrush) PURE;
+ STDMETHOD_(void, FillMesh)(THIS_ ID2D1Mesh *mesh, ID2D1Brush *brush) PURE;
+ STDMETHOD_(void, FillOpacityMask)(THIS_ ID2D1Bitmap *opacityMask, ID2D1Brush *brush, D2D1_OPACITY_MASK_CONTENT content, D2D1_RECT_F *destinationRectangle, D2D1_RECT_F *sourceRectangle) PURE;
+ STDMETHOD_(void, FillRectangle)(THIS_ D2D1_RECT_F *rect, ID2D1Brush *brush) PURE;
+ STDMETHOD_(void, FillRoundedRectangle)(THIS_ D2D1_ROUNDED_RECT *roundedRect, ID2D1Brush *brush) PURE;
+ STDMETHOD(Flush)(THIS_ D2D1_TAG *tag1, D2D1_TAG *tag2) PURE;
+ STDMETHOD_(D2D1_ANTIALIAS_MODE, GetAntialiasMode)(THIS) PURE;
+ STDMETHOD_(void, GetDpi)(THIS_ FLOAT *dpiX, FLOAT *dpiY) PURE;
+ STDMETHOD_(UINT32, GetMaximumBitmapSize)(THIS) PURE;
+ STDMETHOD_(D2D1_PIXEL_FORMAT, GetPixelFormat)(THIS) PURE;
+ STDMETHOD_(D2D1_SIZE_U, GetPixelSize)(THIS) PURE;
+ STDMETHOD_(D2D1_SIZE_F, GetSize)(THIS) PURE;
+ STDMETHOD_(void, GetTags)(THIS_ D2D1_TAG *tag1, D2D1_TAG *tag2) PURE;
+ STDMETHOD_(D2D1_TEXT_ANTIALIAS_MODE, GetTextAntialiasMode)(THIS) PURE;
+ STDMETHOD_(void, GetTextRenderingParams)(THIS_ IDWriteRenderingParams **textRenderingParams) PURE;
+ STDMETHOD_(void, GetTransform)(THIS_ D2D1_MATRIX_3X2_F *transform) PURE;
+ STDMETHOD_(BOOL, IsSupported)(THIS_ D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties) PURE;
+ STDMETHOD_(void, PopAxisAlignedClip)(THIS) PURE;
+ STDMETHOD_(void, PopLayer)(THIS) PURE;
+ STDMETHOD_(void, PushAxisAlignedClip)(THIS_ D2D1_RECT_F *clipRect, D2D1_ANTIALIAS_MODE antialiasMode) PURE;
+ STDMETHOD_(void, PushLayer)(THIS_ D2D1_LAYER_PARAMETERS *layerParameters, ID2D1Layer *layer) PURE;
+ STDMETHOD_(void, RestoreDrawingState)(THIS_ ID2D1DrawingStateBlock *drawingStateBlock) PURE;
+ STDMETHOD_(void, SaveDrawingState)(THIS_ ID2D1DrawingStateBlock *drawingStateBlock) PURE;
+ STDMETHOD_(void, SetAntialiasMode)(THIS_ D2D1_ANTIALIAS_MODE antialiasMode) PURE;
+ STDMETHOD_(void, SetDpi)(THIS_ FLOAT dpiX, FLOAT dpiY) PURE;
+ STDMETHOD_(void, SetTags)(THIS_ D2D1_TAG tag1, D2D1_TAG tag2) PURE;
+ STDMETHOD_(void, SetTextAntialiasMode)(THIS_ D2D1_TEXT_ANTIALIAS_MODE textAntialiasMode) PURE;
+ STDMETHOD_(void, SetTextRenderingParams)(THIS_ IDWriteRenderingParams *textRenderingParams) PURE;
+ STDMETHOD_(void, SetTransform)(THIS_ D2D1_MATRIX_3X2_F *transform) PURE;
+
+ /* ID2D1HwndRenderTarget methods */
+ STDMETHOD_(D2D1_WINDOW_STATE, CheckWindowState)(THIS) PURE;
+ STDMETHOD_(HWND, GetHwnd)(THIS) PURE;
+ STDMETHOD(Resize)(THIS_ D2D1_SIZE_U *pixelSize) PURE;
+
+ END_INTERFACE
+};
+#undef INTERFACE
+
+#define ID2D1HwndRenderTarget_QueryInterface(this,A,B) (this)->lpVtbl->QueryInterface(this,A,B)
+#define ID2D1HwndRenderTarget_AddRef(this) (this)->lpVtbl->AddRef(this)
+#define ID2D1HwndRenderTarget_Release(this) (this)->lpVtbl->Release(this)
+#define ID2D1HwndRenderTarget_BeginDraw(this) (this)->lpVtbl->BeginDraw(this)
+#define ID2D1HwndRenderTarget_Clear(this,A) (this)->lpVtbl->Clear(this,A)
+#define ID2D1HwndRenderTarget_CreateBitmap(this,A,B,C,D,E) (this)->lpVtbl->CreateBitmap(this,A,B,C,D,E)
+#define ID2D1HwndRenderTarget_CreateBitmapBrush(this,A,B) (this)->lpVtbl->CreateBitmapBrush(this,A,B)
+#define ID2D1HwndRenderTarget_CreateBitmapFromWicBitmap(this,A,B) (this)->lpVtbl->CreateBitmapFromWicBitmap(this,A,B)
+#define ID2D1HwndRenderTarget_CreateCompatibleRenderTarget(this,A) (this)->lpVtbl->CreateCompatibleRenderTarget(this,A)
+#define ID2D1HwndRenderTarget_CreateGradientStopCollection(this,A,B,C) (this)->lpVtbl->CreateGradientStopCollection(this,A,B,C)
+#define ID2D1HwndRenderTarget_CreateLayer(this,A) (this)->lpVtbl->CreateLayer(this,A)
+#define ID2D1HwndRenderTarget_CreateLinearGradientBrush(this,A,B,C,D) (this)->lpVtbl->CreateLinearGradientBrush(this,A,B,C,D)
+#define ID2D1HwndRenderTarget_CreateMesh(this,A) (this)->lpVtbl->CreateMesh(this,A)
+#define ID2D1HwndRenderTarget_CreateRadialGradientBrush(this,A,B,C,D) (this)->lpVtbl->CreateRadialGradientBrush(this,A,B,C,D)
+#define ID2D1HwndRenderTarget_CreateSharedBitmap(this,A,B,C,D) (this)->lpVtbl->CreateSharedBitmap(this,A,B,C,D)
+#define ID2D1HwndRenderTarget_CreateSolidColorBrush(this,A,B,C) (this)->lpVtbl->CreateSolidColorBrush(this,A,B,C)
+#define ID2D1HwndRenderTarget_DrawBitmap(this,A,B,C,D,E) (this)->lpVtbl->DrawBitmap(this,A,B,C,D,E)
+#define ID2D1HwndRenderTarget_DrawEllipse(this,A,B,C,D) (this)->lpVtbl->DrawEllipse(this,A,B,C,D)
+#define ID2D1HwndRenderTarget_DrawGeometry(this,A,B,C,D) (this)->lpVtbl->DrawGeometry(this,A,B,C,D)
+#define ID2D1HwndRenderTarget_DrawGlyphRun(this,A,B,C,D) (this)->lpVtbl->DrawGlyphRun(this,A,B,C,D)
+#define ID2D1HwndRenderTarget_DrawLine(this,A,B,C,D,E) (this)->lpVtbl->DrawLine(this,A,B,C,D,E)
+#define ID2D1HwndRenderTarget_DrawRectangle(this,A,B,C,D) (this)->lpVtbl->DrawRectangle(this,A,B,C,D)
+#define ID2D1HwndRenderTarget_DrawRoundedRectangle(this,A,B,C,D) (this)->lpVtbl->DrawRoundedRectangle(this,A,B,C,D)
+#define ID2D1HwndRenderTarget_DrawText(this,A,B,C,D,E,F,G) (this)->lpVtbl->DrawText(this,A,B,C,D,E,F,G)
+#define ID2D1HwndRenderTarget_DrawTextLayout(this,A,B,C,D) (this)->lpVtbl->DrawTextLayout(this,A,B,C,D)
+#define ID2D1HwndRenderTarget_EndDraw(this,A,B) (this)->lpVtbl->EndDraw(this,A,B)
+#define ID2D1HwndRenderTarget_FillEllipse(this,A,B) (this)->lpVtbl->FillEllipse(this,A,B)
+#define ID2D1HwndRenderTarget_FillGeometry(this,A,B,C) (this)->lpVtbl->FillGeometry(this,A,B,C)
+#define ID2D1HwndRenderTarget_FillMesh(this,A,B) (this)->lpVtbl->FillMesh(this,A,B)
+#define ID2D1HwndRenderTarget_FillOpacityMask(this,A,B,C,D,E) (this)->lpVtbl->FillOpacityMask(this,A,B,C,D,E)
+#define ID2D1HwndRenderTarget_FillRectangle(this,A,B) (this)->lpVtbl->FillRectangle(this,A,B)
+#define ID2D1HwndRenderTarget_FillRoundedRectangle(this,A,B) (this)->lpVtbl->FillRoundedRectangle(this,A,B)
+#define ID2D1HwndRenderTarget_Flush(this,A,B) (this)->lpVtbl->Flush(this,A,B)
+#define ID2D1HwndRenderTarget_GetAntialiasMode(this) (this)->lpVtbl->GetAntialiasMode(this)
+#define ID2D1HwndRenderTarget_GetDpi(this,A,B) (this)->lpVtbl->GetDpi(this,A,B)
+#define ID2D1HwndRenderTarget_GetMaximumBitmapSize(this) (this)->lpVtbl->GetMaximumBitmapSize(this)
+#define ID2D1HwndRenderTarget_GetPixelFormat(this) (this)->lpVtbl->GetPixelFormat(this)
+#define ID2D1HwndRenderTarget_GetPixelSize(this) (this)->lpVtbl->GetPixelSize(this)
+#define ID2D1HwndRenderTarget_GetSize(this) (this)->lpVtbl->GetSize(this)
+#define ID2D1HwndRenderTarget_GetTags(this,A,B) (this)->lpVtbl->GetTags(this,A,B)
+#define ID2D1HwndRenderTarget_GetTextAntialiasMode(this) (this)->lpVtbl->GetTextAntialiasMode(this)
+#define ID2D1HwndRenderTarget_GetTextRenderingParams(this,A) (this)->lpVtbl->GetTextRenderingParams(this,A)
+#define ID2D1HwndRenderTarget_GetTransform(this,A) (this)->lpVtbl->GetTransform(this,A)
+#define ID2D1HwndRenderTarget_IsSupported(this,A) (this)->lpVtbl->IsSupported(this,A)
+#define ID2D1HwndRenderTarget_PopAxisAlignedClip(this) (this)->lpVtbl->PopAxisAlignedClip(this)
+#define ID2D1HwndRenderTarget_PopLayer(this) (this)->lpVtbl->PopLayer(this)
+#define ID2D1HwndRenderTarget_PushAxisAlignedClip(this,A,B) (this)->lpVtbl->PushAxisAlignedClip(this,A,B)
+#define ID2D1HwndRenderTarget_PushLayer(this,A,B) (this)->lpVtbl->PushLayer(this,A,B)
+#define ID2D1HwndRenderTarget_RestoreDrawingState(this,A) (this)->lpVtbl->RestoreDrawingState(this,A)
+#define ID2D1HwndRenderTarget_SaveDrawingState(this,A) (this)->lpVtbl->SaveDrawingState(this,A)
+#define ID2D1HwndRenderTarget_SetAntialiasMode(this,A) (this)->lpVtbl->SetAntialiasMode(this,A)
+#define ID2D1HwndRenderTarget_SetDpi(this,A,B) (this)->lpVtbl->SetDpi(this,A,B)
+#define ID2D1HwndRenderTarget_SetTags(this,A,B) (this)->lpVtbl->SetTags(this,A,B)
+#define ID2D1HwndRenderTarget_SetTextAntialiasMode(this,A) (this)->lpVtbl->SetTextAntialiasMode(this,A)
+#define ID2D1HwndRenderTarget_SetTextRenderingParams(this,A) (this)->lpVtbl->SetTextRenderingParams(this,A)
+#define ID2D1HwndRenderTarget_SetTransform(this,A) (this)->lpVtbl->SetTransform(this,A)
+#define ID2D1HwndRenderTarget_CheckWindowState(this) (this)->lpVtbl->CheckWindowState(this)
+#define ID2D1HwndRenderTarget_GetHwnd(this) (this)->lpVtbl->GetHwnd(this)
+#define ID2D1HwndRenderTarget_Resize(this,A) (this)->lpVtbl->Resize(this,A)
+
+#define INTERFACE ID2D1Layer
+DECLARE_INTERFACE_(ID2D1Layer, ID2D1Resource)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* ID2D1Resource methods */
+ STDMETHOD_(void, GetFactory)(THIS_ ID2D1Factory **factory) PURE;
+
+ /* ID2D1Layer methods */
+ STDMETHOD_(D2D1_SIZE_F, GetSize)(THIS) PURE;
+
+ END_INTERFACE
+};
+#undef INTERFACE
+
+#define ID2D1Layer_QueryInterface(this,A,B) (this)->lpVtbl->QueryInterface(this,A,B)
+#define ID2D1Layer_AddRef(this) (this)->lpVtbl->AddRef(this)
+#define ID2D1Layer_Release(this) (this)->lpVtbl->Release(this)
+#define ID2D1Layer_GetFactory(this,A) (this)->lpVtbl->GetFactory(this,A)
+#define ID2D1Layer_GetSize(this) (this)->lpVtbl->GetSize(this)
+
+#define INTERFACE ID2D1LinearGradientBrush
+DECLARE_INTERFACE_(ID2D1LinearGradientBrush, ID2D1Brush)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* ID2D1Resource methods */
+ STDMETHOD_(void, GetFactory)(THIS_ ID2D1Factory **factory) PURE;
+
+ /* ID2D1Brush methods */
+ STDMETHOD_(FLOAT, GetOpacity)(THIS) PURE;
+ STDMETHOD_(void, GetTransform)(THIS_ D2D1_MATRIX_3X2_F *transform) PURE;
+ STDMETHOD_(void, SetOpacity)(THIS_ FLOAT opacity) PURE;
+ STDMETHOD_(void, SetTransform)(THIS_ D2D1_MATRIX_3X2_F *transform) PURE;
+
+ /* ID2D1LinearGradientBrush methods */
+ STDMETHOD_(D2D1_POINT_2F, GetEndPoint)(THIS) PURE;
+ STDMETHOD_(void, GetGradientStopCollection)(THIS_ ID2D1GradientStopCollection **gradientStopCollection) PURE;
+ STDMETHOD_(D2D1_POINT_2F, GetStartPoint)(THIS) PURE;
+ STDMETHOD_(void, SetEndPoint)(THIS_ D2D1_POINT_2F endPoint) PURE;
+ STDMETHOD_(void, SetStartPoint)(THIS_ D2D1_POINT_2F startPoint) PURE;
+
+ END_INTERFACE
+};
+#undef INTERFACE
+
+#define ID2D1LinearGradientBrush_GetOpacity(this) (this)->lpVtbl->GetOpacity(this)
+#define ID2D1LinearGradientBrush_GetTransform(this,A) (this)->lpVtbl->GetTransform(this,A)
+#define ID2D1LinearGradientBrush_SetOpacity(this,A) (this)->lpVtbl->SetOpacity(this,A)
+#define ID2D1LinearGradientBrush_SetTransform(this,A) (this)->lpVtbl->SetTransform(this,A)
+#define ID2D1LinearGradientBrush_GetEndPoint(this) (this)->lpVtbl->GetEndPoint(this)
+#define ID2D1LinearGradientBrush_GetGradientStopCollection(this,A) (this)->lpVtbl->GetGradientStopCollection(this,A)
+#define ID2D1LinearGradientBrush_GetStartPoint(this) (this)->lpVtbl->GetStartPoint(this)
+#define ID2D1LinearGradientBrush_SetEndPoint(this,A) (this)->lpVtbl->SetEndPoint(this,A)
+#define ID2D1LinearGradientBrush_SetStartPoint(this,A) (this)->lpVtbl->SetStartPoint(this,A)
+
+#define INTERFACE ID2D1Mesh
+DECLARE_INTERFACE_(ID2D1Mesh, ID2D1Resource)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* ID2D1Resource methods */
+ STDMETHOD_(void, GetFactory)(THIS_ ID2D1Factory **factory) PURE;
+
+ /* ID2D1Mesh methods */
+ STDMETHOD(Open)(THIS_ ID2D1TessellationSink **tessellationSink) PURE;
+
+ END_INTERFACE
+};
+#undef INTERFACE
+
+#define ID2D1Mesh_QueryInterface(this,A,B) (this)->lpVtbl->QueryInterface(this,A,B)
+#define ID2D1Mesh_AddRef(this) (this)->lpVtbl->AddRef(this)
+#define ID2D1Mesh_Release(this) (this)->lpVtbl->Release(this)
+#define ID2D1Mesh_GetFactory(this,A) (this)->lpVtbl->GetFactory(this,A)
+#define ID2D1Mesh_Open(this,A) (this)->lpVtbl->Open(this,A)
+
+#define INTERFACE ID2D1PathGeometry
+DECLARE_INTERFACE_(ID2D1PathGeometry, ID2D1Geometry)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* ID2D1Resource methods */
+ STDMETHOD_(void, GetFactory)(THIS_ ID2D1Factory **factory) PURE;
+
+ /* ID2D1Geometry methods */
+ STDMETHOD(CombineWithGeometry)(THIS_ ID2D1Geometry *inputGeometry, D2D1_COMBINE_MODE combineMode, D2D1_MATRIX_3X2_F *inputGeometryTransform, ID2D1SimplifiedGeometrySink *geometrySink) PURE;
+ STDMETHOD(CompareWithGeometry)(THIS_ ID2D1Geometry *inputGeometry, D2D1_MATRIX_3X2_F *inputGeometryTransform, D2D1_GEOMETRY_RELATION *relation) PURE;
+ STDMETHOD(ComputeArea)(THIS_ D2D1_MATRIX_3X2_F *worldTransform, FLOAT *area) PURE;
+ STDMETHOD(ComputeLength)(THIS_ D2D1_MATRIX_3X2_F *worldTransform, FLOAT *length) PURE;
+ STDMETHOD(ComputePointAtLength)(THIS_ FLOAT length, D2D1_MATRIX_3X2_F *worldTransform, D2D1_POINT_2F *point, D2D1_POINT_2F *unitTangentVector) PURE;
+ STDMETHOD(FillContainsPoint)(THIS_ D2D1_POINT_2F point, D2D1_MATRIX_3X2_F *worldTransform, BOOL *contains) PURE;
+ STDMETHOD(GetBounds)(THIS_ D2D1_MATRIX_3X2_F *worldTransform, D2D1_RECT_F *bounds) PURE;
+ STDMETHOD(GetWidenedBounds)(THIS_ FLOAT strokeWidth, ID2D1StrokeStyle *strokeStyle, D2D1_MATRIX_3X2_F *worldTransform, D2D1_RECT_F *bounds) PURE;
+ STDMETHOD(Outline)(THIS_ D2D1_MATRIX_3X2_F *worldTransform, ID2D1SimplifiedGeometrySink *geometrySink) PURE;
+ STDMETHOD(StrokeContainsPoint)(THIS_ D2D1_POINT_2F point, FLOAT strokeWidth, ID2D1StrokeStyle *strokeStyle, D2D1_MATRIX_3X2_F *worldTransform, BOOL *contains) PURE;
+ STDMETHOD(Simplify)(THIS_ D2D1_GEOMETRY_SIMPLIFICATION_OPTION simplificationOption, D2D1_MATRIX_3X2_F *worldTransform, ID2D1SimplifiedGeometrySink *geometrySink) PURE;
+ STDMETHOD(Tessellate)(THIS_ D2D1_MATRIX_3X2_F *worldTransform, ID2D1TessellationSink *tessellationSink) PURE;
+ STDMETHOD(Widen)(THIS_ FLOAT strokeWidth, ID2D1StrokeStyle *strokeStyle, D2D1_MATRIX_3X2_F *worldTransform, ID2D1SimplifiedGeometrySink *geometrySink) PURE;
+
+ /* ID2D1PathGeometry methods */
+ STDMETHOD(GetFigureCount)(THIS_ UINT32 *count) PURE;
+ STDMETHOD(GetSegmentCount)(THIS_ UINT32 *count) PURE;
+ STDMETHOD(Open)(THIS_ ID2D1GeometrySink **geometrySink) PURE;
+ STDMETHOD(Stream)(THIS_ ID2D1GeometrySink *geometrySink) PURE;
+
+ END_INTERFACE
+};
+#undef INTERFACE
+
+#define ID2D1PathGeometry_CombineWithGeometry(this,A,B,C,D) (this)->lpVtbl->CombineWithGeometry(this,A,B,C,D)
+#define ID2D1PathGeometry_CompareWithGeometry(this,A,B,C) (this)->lpVtbl->CompareWithGeometry(this,A,B,C)
+#define ID2D1PathGeometry_ComputeArea(this,A,B) (this)->lpVtbl->ComputeArea(this,A,B)
+#define ID2D1PathGeometry_ComputeLength(this,A,B) (this)->lpVtbl->ComputeLength(this,A,B)
+#define ID2D1PathGeometry_ComputePointAtLength(this,A,B,C,D) (this)->lpVtbl->ComputePointAtLength(this,A,B,C,D)
+#define ID2D1PathGeometry_FillContainsPoint(this,A,B,C) (this)->lpVtbl->FillContainsPoint(this,A,B,C)
+#define ID2D1PathGeometry_GetBounds(this,A,B) (this)->lpVtbl->GetBounds(this,A,B)
+#define ID2D1PathGeometry_GetWidenedBounds(this,A,B,C,D) (this)->lpVtbl->GetWidenedBounds(this,A,B,C,D)
+#define ID2D1PathGeometry_Outline(this,A,B) (this)->lpVtbl->Outline(this,A,B)
+#define ID2D1PathGeometry_StrokeContainsPoint(this,A,B,C,D,E) (this)->lpVtbl->StrokeContainsPoint(this,A,B,C,D,E)
+#define ID2D1PathGeometry_Simplify(this,A,B,C) (this)->lpVtbl->Simplify(this,A,B,C)
+#define ID2D1PathGeometry_Tessellate(this,A,B) (this)->lpVtbl->Tessellate(this,A,B)
+#define ID2D1PathGeometry_Widen(this,A,B,C,D) (this)->lpVtbl->Widen(this,A,B,C,D)
+#define ID2D1PathGeometry_GetFigureCount(this,A) (this)->lpVtbl->GetFigureCount(this,A)
+#define ID2D1PathGeometry_GetSegmentCount(this,A) (this)->lpVtbl->GetSegmentCount(this,A)
+#define ID2D1PathGeometry_Open(this,A) (this)->lpVtbl->Open(this,A)
+#define ID2D1PathGeometry_Stream(this,A) (this)->lpVtbl->Stream(this,A)
+
+#define INTERFACE ID2D1RadialGradientBrush
+DECLARE_INTERFACE_(ID2D1RadialGradientBrush, ID2D1Brush)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* ID2D1Resource methods */
+ STDMETHOD_(void, GetFactory)(THIS_ ID2D1Factory **factory) PURE;
+
+ /* ID2D1Brush methods */
+ STDMETHOD_(FLOAT, GetOpacity)(THIS) PURE;
+ STDMETHOD_(void, GetTransform)(THIS_ D2D1_MATRIX_3X2_F *transform) PURE;
+ STDMETHOD_(void, SetOpacity)(THIS_ FLOAT opacity) PURE;
+ STDMETHOD_(void, SetTransform)(THIS_ D2D1_MATRIX_3X2_F *transform) PURE;
+
+ /* ID2D1RadialGradientBrush methods */
+ STDMETHOD_(D2D1_POINT_2F, GetCenter)(THIS) PURE;
+ STDMETHOD_(D2D1_POINT_2F, GetGradientOriginOffset)(THIS) PURE;
+ STDMETHOD_(void, GetGradientStopCollection)(THIS_ ID2D1GradientStopCollection **gradientStopCollection) PURE;
+ STDMETHOD_(FLOAT, GetRadiusX)(THIS) PURE;
+ STDMETHOD_(FLOAT, GetRadiusY)(THIS) PURE;
+ STDMETHOD_(void, SetCenter)(THIS_ D2D1_POINT_2F center) PURE;
+ STDMETHOD_(void, SetGradientOriginOffset)(THIS_ D2D1_POINT_2F gradientOriginOffset) PURE;
+ STDMETHOD_(void, SetRadiusX)(THIS_ FLOAT radiusX) PURE;
+ STDMETHOD_(void, SetRadiusY)(THIS_ FLOAT radiusY) PURE;
+
+ END_INTERFACE
+};
+#undef INTERFACE
+
+#define ID2D1RadialGradientBrush_GetOpacity(this) (this)->lpVtbl->GetOpacity(this)
+#define ID2D1RadialGradientBrush_GetTransform(this,A) (this)->lpVtbl->GetTransform(this,A)
+#define ID2D1RadialGradientBrush_SetOpacity(this,A) (this)->lpVtbl->SetOpacity(this,A)
+#define ID2D1RadialGradientBrush_SetTransform(this,A) (this)->lpVtbl->SetTransform(this,A)
+#define ID2D1RadialGradientBrush_GetCenter(this) (this)->lpVtbl->GetCenter(this)
+#define ID2D1RadialGradientBrush_GetGradientOriginOffset(this) (this)->lpVtbl->GetGradientOriginOffset(this)
+#define ID2D1RadialGradientBrush_GetGradientStopCollection(this,A) (this)->lpVtbl->GetGradientStopCollection(this,A)
+#define ID2D1RadialGradientBrush_GetRadiusX(this) (this)->lpVtbl->GetRadiusX(this)
+#define ID2D1RadialGradientBrush_GetRadiusY(this) (this)->lpVtbl->GetRadiusY(this)
+#define ID2D1RadialGradientBrush_SetCenter(this,A) (this)->lpVtbl->SetCenter(this,A)
+#define ID2D1RadialGradientBrush_SetGradientOriginOffset(this,A) (this)->lpVtbl->SetGradientOriginOffset(this,A)
+#define ID2D1RadialGradientBrush_SetRadiusX(this,A) (this)->lpVtbl->SetRadiusX(this,A)
+#define ID2D1RadialGradientBrush_SetRadiusY(this,A) (this)->lpVtbl->SetRadiusY(this,A)
+
+#define INTERFACE ID2D1RectangleGeometry
+DECLARE_INTERFACE_(ID2D1RectangleGeometry, ID2D1Geometry)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* ID2D1Resource methods */
+ STDMETHOD_(void, GetFactory)(THIS_ ID2D1Factory **factory) PURE;
+
+ /* ID2D1Geometry methods */
+ STDMETHOD(CombineWithGeometry)(THIS_ ID2D1Geometry *inputGeometry, D2D1_COMBINE_MODE combineMode, D2D1_MATRIX_3X2_F *inputGeometryTransform, ID2D1SimplifiedGeometrySink *geometrySink) PURE;
+ STDMETHOD(CompareWithGeometry)(THIS_ ID2D1Geometry *inputGeometry, D2D1_MATRIX_3X2_F *inputGeometryTransform, D2D1_GEOMETRY_RELATION *relation) PURE;
+ STDMETHOD(ComputeArea)(THIS_ D2D1_MATRIX_3X2_F *worldTransform, FLOAT *area) PURE;
+ STDMETHOD(ComputeLength)(THIS_ D2D1_MATRIX_3X2_F *worldTransform, FLOAT *length) PURE;
+ STDMETHOD(ComputePointAtLength)(THIS_ FLOAT length, D2D1_MATRIX_3X2_F *worldTransform, D2D1_POINT_2F *point, D2D1_POINT_2F *unitTangentVector) PURE;
+ STDMETHOD(FillContainsPoint)(THIS_ D2D1_POINT_2F point, D2D1_MATRIX_3X2_F *worldTransform, BOOL *contains) PURE;
+ STDMETHOD(GetBounds)(THIS_ D2D1_MATRIX_3X2_F *worldTransform, D2D1_RECT_F *bounds) PURE;
+ STDMETHOD(GetWidenedBounds)(THIS_ FLOAT strokeWidth, ID2D1StrokeStyle *strokeStyle, D2D1_MATRIX_3X2_F *worldTransform, D2D1_RECT_F *bounds) PURE;
+ STDMETHOD(Outline)(THIS_ D2D1_MATRIX_3X2_F *worldTransform, ID2D1SimplifiedGeometrySink *geometrySink) PURE;
+ STDMETHOD(StrokeContainsPoint)(THIS_ D2D1_POINT_2F point, FLOAT strokeWidth, ID2D1StrokeStyle *strokeStyle, D2D1_MATRIX_3X2_F *worldTransform, BOOL *contains) PURE;
+ STDMETHOD(Simplify)(THIS_ D2D1_GEOMETRY_SIMPLIFICATION_OPTION simplificationOption, D2D1_MATRIX_3X2_F *worldTransform, ID2D1SimplifiedGeometrySink *geometrySink) PURE;
+ STDMETHOD(Tessellate)(THIS_ D2D1_MATRIX_3X2_F *worldTransform, ID2D1TessellationSink *tessellationSink) PURE;
+ STDMETHOD(Widen)(THIS_ FLOAT strokeWidth, ID2D1StrokeStyle *strokeStyle, D2D1_MATRIX_3X2_F *worldTransform, ID2D1SimplifiedGeometrySink *geometrySink) PURE;
+
+ /* ID2D1RectangleGeometry methods */
+ STDMETHOD_(void, GetRect)(THIS_ D2D1_RECT_F *rect) PURE;
+
+ END_INTERFACE
+};
+#undef INTERFACE
+
+#define ID2D1RectangleGeometry_CombineWithGeometry(this,A,B,C,D) (this)->lpVtbl->CombineWithGeometry(this,A,B,C,D)
+#define ID2D1RectangleGeometry_CompareWithGeometry(this,A,B,C) (this)->lpVtbl->CompareWithGeometry(this,A,B,C)
+#define ID2D1RectangleGeometry_ComputeArea(this,A,B) (this)->lpVtbl->ComputeArea(this,A,B)
+#define ID2D1RectangleGeometry_ComputeLength(this,A,B) (this)->lpVtbl->ComputeLength(this,A,B)
+#define ID2D1RectangleGeometry_ComputePointAtLength(this,A,B,C,D) (this)->lpVtbl->ComputePointAtLength(this,A,B,C,D)
+#define ID2D1RectangleGeometry_FillContainsPoint(this,A,B,C) (this)->lpVtbl->FillContainsPoint(this,A,B,C)
+#define ID2D1RectangleGeometry_GetBounds(this,A,B) (this)->lpVtbl->GetBounds(this,A,B)
+#define ID2D1RectangleGeometry_GetWidenedBounds(this,A,B,C,D) (this)->lpVtbl->GetWidenedBounds(this,A,B,C,D)
+#define ID2D1RectangleGeometry_Outline(this,A,B) (this)->lpVtbl->Outline(this,A,B)
+#define ID2D1RectangleGeometry_StrokeContainsPoint(this,A,B,C,D,E) (this)->lpVtbl->StrokeContainsPoint(this,A,B,C,D,E)
+#define ID2D1RectangleGeometry_Simplify(this,A,B,C) (this)->lpVtbl->Simplify(this,A,B,C)
+#define ID2D1RectangleGeometry_Tessellate(this,A,B) (this)->lpVtbl->Tessellate(this,A,B)
+#define ID2D1RectangleGeometry_Widen(this,A,B,C,D) (this)->lpVtbl->Widen(this,A,B,C,D)
+#define ID2D1RectangleGeometry_GetRect(this,A) (this)->lpVtbl->GetRect(this,A)
+
+#define INTERFACE ID2D1RoundedRectangleGeometry
+DECLARE_INTERFACE_(ID2D1RoundedRectangleGeometry, ID2D1Geometry)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* ID2D1Resource methods */
+ STDMETHOD_(void, GetFactory)(THIS_ ID2D1Factory **factory) PURE;
+
+ /* ID2D1Geometry methods */
+ STDMETHOD(CombineWithGeometry)(THIS_ ID2D1Geometry *inputGeometry, D2D1_COMBINE_MODE combineMode, D2D1_MATRIX_3X2_F *inputGeometryTransform, ID2D1SimplifiedGeometrySink *geometrySink) PURE;
+ STDMETHOD(CompareWithGeometry)(THIS_ ID2D1Geometry *inputGeometry, D2D1_MATRIX_3X2_F *inputGeometryTransform, D2D1_GEOMETRY_RELATION *relation) PURE;
+ STDMETHOD(ComputeArea)(THIS_ D2D1_MATRIX_3X2_F *worldTransform, FLOAT *area) PURE;
+ STDMETHOD(ComputeLength)(THIS_ D2D1_MATRIX_3X2_F *worldTransform, FLOAT *length) PURE;
+ STDMETHOD(ComputePointAtLength)(THIS_ FLOAT length, D2D1_MATRIX_3X2_F *worldTransform, D2D1_POINT_2F *point, D2D1_POINT_2F *unitTangentVector) PURE;
+ STDMETHOD(FillContainsPoint)(THIS_ D2D1_POINT_2F point, D2D1_MATRIX_3X2_F *worldTransform, BOOL *contains) PURE;
+ STDMETHOD(GetBounds)(THIS_ D2D1_MATRIX_3X2_F *worldTransform, D2D1_RECT_F *bounds) PURE;
+ STDMETHOD(GetWidenedBounds)(THIS_ FLOAT strokeWidth, ID2D1StrokeStyle *strokeStyle, D2D1_MATRIX_3X2_F *worldTransform, D2D1_RECT_F *bounds) PURE;
+ STDMETHOD(Outline)(THIS_ D2D1_MATRIX_3X2_F *worldTransform, ID2D1SimplifiedGeometrySink *geometrySink) PURE;
+ STDMETHOD(StrokeContainsPoint)(THIS_ D2D1_POINT_2F point, FLOAT strokeWidth, ID2D1StrokeStyle *strokeStyle, D2D1_MATRIX_3X2_F *worldTransform, BOOL *contains) PURE;
+ STDMETHOD(Simplify)(THIS_ D2D1_GEOMETRY_SIMPLIFICATION_OPTION simplificationOption, D2D1_MATRIX_3X2_F *worldTransform, ID2D1SimplifiedGeometrySink *geometrySink) PURE;
+ STDMETHOD(Tessellate)(THIS_ D2D1_MATRIX_3X2_F *worldTransform, ID2D1TessellationSink *tessellationSink) PURE;
+ STDMETHOD(Widen)(THIS_ FLOAT strokeWidth, ID2D1StrokeStyle *strokeStyle, D2D1_MATRIX_3X2_F *worldTransform, ID2D1SimplifiedGeometrySink *geometrySink) PURE;
+
+ /* ID2D1RoundedRectangleGeometry methods */
+ STDMETHOD_(void, GetRoundedRect)(THIS_ D2D1_ROUNDED_RECT *roundedRect) PURE;
+
+ END_INTERFACE
+};
+#undef INTERFACE
+
+#define ID2D1RoundedRectangleGeometry_CombineWithGeometry(this,A,B,C,D) (this)->lpVtbl->CombineWithGeometry(this,A,B,C,D)
+#define ID2D1RoundedRectangleGeometry_CompareWithGeometry(this,A,B,C) (this)->lpVtbl->CompareWithGeometry(this,A,B,C)
+#define ID2D1RoundedRectangleGeometry_ComputeArea(this,A,B) (this)->lpVtbl->ComputeArea(this,A,B)
+#define ID2D1RoundedRectangleGeometry_ComputeLength(this,A,B) (this)->lpVtbl->ComputeLength(this,A,B)
+#define ID2D1RoundedRectangleGeometry_ComputePointAtLength(this,A,B,C,D) (this)->lpVtbl->ComputePointAtLength(this,A,B,C,D)
+#define ID2D1RoundedRectangleGeometry_FillContainsPoint(this,A,B,C) (this)->lpVtbl->FillContainsPoint(this,A,B,C)
+#define ID2D1RoundedRectangleGeometry_GetBounds(this,A,B) (this)->lpVtbl->GetBounds(this,A,B)
+#define ID2D1RoundedRectangleGeometry_GetWidenedBounds(this,A,B,C,D) (this)->lpVtbl->GetWidenedBounds(this,A,B,C,D)
+#define ID2D1RoundedRectangleGeometry_Outline(this,A,B) (this)->lpVtbl->Outline(this,A,B)
+#define ID2D1RoundedRectangleGeometry_StrokeContainsPoint(this,A,B,C,D,E) (this)->lpVtbl->StrokeContainsPoint(this,A,B,C,D,E)
+#define ID2D1RoundedRectangleGeometry_Simplify(this,A,B,C) (this)->lpVtbl->Simplify(this,A,B,C)
+#define ID2D1RoundedRectangleGeometry_Tessellate(this,A,B) (this)->lpVtbl->Tessellate(this,A,B)
+#define ID2D1RoundedRectangleGeometry_Widen(this,A,B,C,D) (this)->lpVtbl->Widen(this,A,B,C,D)
+#define ID2D1RoundedRectangleGeometry_GetRoundedRect(this,A) (this)->lpVtbl->GetRoundedRect(this,A)
+
+#define INTERFACE ID2D1SolidColorBrush
+DECLARE_INTERFACE_(ID2D1SolidColorBrush, ID2D1Brush)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* ID2D1Resource methods */
+ STDMETHOD_(void, GetFactory)(THIS_ ID2D1Factory **factory) PURE;
+
+ /* ID2D1Brush methods */
+ STDMETHOD_(FLOAT, GetOpacity)(THIS) PURE;
+ STDMETHOD_(void, GetTransform)(THIS_ D2D1_MATRIX_3X2_F *transform) PURE;
+ STDMETHOD_(void, SetOpacity)(THIS_ FLOAT opacity) PURE;
+ STDMETHOD_(void, SetTransform)(THIS_ D2D1_MATRIX_3X2_F *transform) PURE;
+
+ /* ID2D1SolidColorBrush methods */
+ STDMETHOD_(D2D1_COLOR_F, GetColor)(THIS) PURE;
+ STDMETHOD_(void, SetColor)(THIS_ D2D1_COLOR_F *color) PURE;
+
+ END_INTERFACE
+};
+#undef INTERFACE
+
+#define ID2D1SolidColorBrush_GetOpacity(this) (this)->lpVtbl->GetOpacity(this)
+#define ID2D1SolidColorBrush_GetTransform(this,A) (this)->lpVtbl->GetTransform(this,A)
+#define ID2D1SolidColorBrush_SetOpacity(this,A) (this)->lpVtbl->SetOpacity(this,A)
+#define ID2D1SolidColorBrush_SetTransform(this,A) (this)->lpVtbl->SetTransform(this,A)
+#define ID2D1SolidColorBrush_GetColor(this) (this)->lpVtbl->GetColor(this)
+#define ID2D1SolidColorBrush_SetColor(this,A) (this)->lpVtbl->SetColor(this,A)
+
+#define INTERFACE ID2D1StrokeStyle
+DECLARE_INTERFACE_(ID2D1StrokeStyle, ID2D1Resource)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* ID2D1Resource methods */
+ STDMETHOD_(void, GetFactory)(THIS_ ID2D1Factory **factory) PURE;
+
+ /* ID2D1StrokeStyle methods */
+ STDMETHOD_(D2D1_CAP_STYLE, GetDashCap)(THIS) PURE;
+ STDMETHOD_(void, GetDashes)(THIS_ FLOAT *dashes, UINT dashesCount) PURE;
+ STDMETHOD_(UINT32, GetDashesCount)(THIS) PURE;
+ STDMETHOD_(FLOAT, GetDashOffset)(THIS) PURE;
+ STDMETHOD_(D2D1_DASH_STYLE, GetDashStyle)(THIS) PURE;
+ STDMETHOD_(D2D1_CAP_STYLE, GetEndCap)(THIS) PURE;
+ STDMETHOD_(D2D1_LINE_JOIN, GetLineJoin)(THIS) PURE;
+ STDMETHOD_(FLOAT, GetMiterLimit)(THIS) PURE;
+ STDMETHOD_(D2D1_CAP_STYLE, GetStartCap)(THIS) PURE;
+
+ END_INTERFACE
+};
+#undef INTERFACE
+
+#define ID2D1StrokeStyle_QueryInterface(this,A,B) (this)->lpVtbl->QueryInterface(this,A,B)
+#define ID2D1StrokeStyle_AddRef(this) (this)->lpVtbl->AddRef(this)
+#define ID2D1StrokeStyle_Release(this) (this)->lpVtbl->Release(this)
+#define ID2D1StrokeStyle_GetFactory(this,A) (this)->lpVtbl->GetFactory(this,A)
+#define ID2D1StrokeStyle_GetDashCap(this) (this)->lpVtbl->GetDashCap(this)
+#define ID2D1StrokeStyle_GetDashes(this,A,B) (this)->lpVtbl->GetDashes(this,A,B)
+#define ID2D1StrokeStyle_GetDashesCount(this) (this)->lpVtbl->GetDashesCount(this)
+#define ID2D1StrokeStyle_GetDashOffset(this) (this)->lpVtbl->GetDashOffset(this)
+#define ID2D1StrokeStyle_GetDashStyle(this) (this)->lpVtbl->GetDashStyle(this)
+#define ID2D1StrokeStyle_GetEndCap(this) (this)->lpVtbl->GetEndCap(this)
+#define ID2D1StrokeStyle_GetLineJoin(this) (this)->lpVtbl->GetLineJoin(this)
+#define ID2D1StrokeStyle_GetMiterLimit(this) (this)->lpVtbl->GetMiterLimit(this)
+#define ID2D1StrokeStyle_GetStartCap(this) (this)->lpVtbl->GetStartCap(this)
+
+#define INTERFACE ID2D1TessellationSink
+DECLARE_INTERFACE_(ID2D1TessellationSink, IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* ID2D1TessellationSink methods */
+ STDMETHOD_(void, AddTriangles)(THIS_ D2D1_TRIANGLE *triangles, UINT trianglesCount) PURE;
+ STDMETHOD(Close)(THIS) PURE;
+
+ END_INTERFACE
+};
+#undef INTERFACE
+
+#define ID2D1TessellationSink_QueryInterface(this,A,B) (this)->lpVtbl->QueryInterface(this,A,B)
+#define ID2D1TessellationSink_AddRef(this) (this)->lpVtbl->AddRef(this)
+#define ID2D1TessellationSink_Release(this) (this)->lpVtbl->Release(this)
+#define ID2D1TessellationSink_AddTriangles(this,A,B) (this)->lpVtbl->AddTriangles(this,A,B)
+#define ID2D1TessellationSink_Close(this) (this)->lpVtbl->Close(this)
+
+#define INTERFACE ID2D1TransformedGeometry
+DECLARE_INTERFACE_(ID2D1TransformedGeometry, ID2D1Geometry)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* ID2D1Resource methods */
+ STDMETHOD_(void, GetFactory)(THIS_ ID2D1Factory **factory) PURE;
+
+ /* ID2D1Geometry methods */
+ STDMETHOD(CombineWithGeometry)(THIS_ ID2D1Geometry *inputGeometry, D2D1_COMBINE_MODE combineMode, D2D1_MATRIX_3X2_F *inputGeometryTransform, ID2D1SimplifiedGeometrySink *geometrySink) PURE;
+ STDMETHOD(CompareWithGeometry)(THIS_ ID2D1Geometry *inputGeometry, D2D1_MATRIX_3X2_F *inputGeometryTransform, D2D1_GEOMETRY_RELATION *relation) PURE;
+ STDMETHOD(ComputeArea)(THIS_ D2D1_MATRIX_3X2_F *worldTransform, FLOAT *area) PURE;
+ STDMETHOD(ComputeLength)(THIS_ D2D1_MATRIX_3X2_F *worldTransform, FLOAT *length) PURE;
+ STDMETHOD(ComputePointAtLength)(THIS_ FLOAT length, D2D1_MATRIX_3X2_F *worldTransform, D2D1_POINT_2F *point, D2D1_POINT_2F *unitTangentVector) PURE;
+ STDMETHOD(FillContainsPoint)(THIS_ D2D1_POINT_2F point, D2D1_MATRIX_3X2_F *worldTransform, BOOL *contains) PURE;
+ STDMETHOD(GetBounds)(THIS_ D2D1_MATRIX_3X2_F *worldTransform, D2D1_RECT_F *bounds) PURE;
+ STDMETHOD(GetWidenedBounds)(THIS_ FLOAT strokeWidth, ID2D1StrokeStyle *strokeStyle, D2D1_MATRIX_3X2_F *worldTransform, D2D1_RECT_F *bounds) PURE;
+ STDMETHOD(Outline)(THIS_ D2D1_MATRIX_3X2_F *worldTransform, ID2D1SimplifiedGeometrySink *geometrySink) PURE;
+ STDMETHOD(StrokeContainsPoint)(THIS_ D2D1_POINT_2F point, FLOAT strokeWidth, ID2D1StrokeStyle *strokeStyle, D2D1_MATRIX_3X2_F *worldTransform, BOOL *contains) PURE;
+ STDMETHOD(Simplify)(THIS_ D2D1_GEOMETRY_SIMPLIFICATION_OPTION simplificationOption, D2D1_MATRIX_3X2_F *worldTransform, ID2D1SimplifiedGeometrySink *geometrySink) PURE;
+ STDMETHOD(Tessellate)(THIS_ D2D1_MATRIX_3X2_F *worldTransform, ID2D1TessellationSink *tessellationSink) PURE;
+ STDMETHOD(Widen)(THIS_ FLOAT strokeWidth, ID2D1StrokeStyle *strokeStyle, D2D1_MATRIX_3X2_F *worldTransform, ID2D1SimplifiedGeometrySink *geometrySink) PURE;
+
+ /* ID2D1TransformedGeometry methods */
+ STDMETHOD_(void, GetSourceGeometry)(THIS_ ID2D1Geometry **sourceGeometry) PURE;
+ STDMETHOD_(void, GetTransform)(THIS_ D2D1_MATRIX_3X2_F *transform) PURE;
+
+ END_INTERFACE
+};
+#undef INTERFACE
+
+#define ID2D1TransformedGeometry_CombineWithGeometry(this,A,B,C,D) (this)->lpVtbl->CombineWithGeometry(this,A,B,C,D)
+#define ID2D1TransformedGeometry_CompareWithGeometry(this,A,B,C) (this)->lpVtbl->CompareWithGeometry(this,A,B,C)
+#define ID2D1TransformedGeometry_ComputeArea(this,A,B) (this)->lpVtbl->ComputeArea(this,A,B)
+#define ID2D1TransformedGeometry_ComputeLength(this,A,B) (this)->lpVtbl->ComputeLength(this,A,B)
+#define ID2D1TransformedGeometry_ComputePointAtLength(this,A,B,C,D) (this)->lpVtbl->ComputePointAtLength(this,A,B,C,D)
+#define ID2D1TransformedGeometry_FillContainsPoint(this,A,B,C) (this)->lpVtbl->FillContainsPoint(this,A,B,C)
+#define ID2D1TransformedGeometry_GetBounds(this,A,B) (this)->lpVtbl->GetBounds(this,A,B)
+#define ID2D1TransformedGeometry_GetWidenedBounds(this,A,B,C,D) (this)->lpVtbl->GetWidenedBounds(this,A,B,C,D)
+#define ID2D1TransformedGeometry_Outline(this,A,B) (this)->lpVtbl->Outline(this,A,B)
+#define ID2D1TransformedGeometry_StrokeContainsPoint(this,A,B,C,D,E) (this)->lpVtbl->StrokeContainsPoint(this,A,B,C,D,E)
+#define ID2D1TransformedGeometry_Simplify(this,A,B,C) (this)->lpVtbl->Simplify(this,A,B,C)
+#define ID2D1TransformedGeometry_Tessellate(this,A,B) (this)->lpVtbl->Tessellate(this,A,B)
+#define ID2D1TransformedGeometry_Widen(this,A,B,C,D) (this)->lpVtbl->Widen(this,A,B,C,D)
+#define ID2D1TransformedGeometry_GetSourceGeometry(this,A) (this)->lpVtbl->GetSourceGeometry(this,A)
+#define ID2D1TransformedGeometry_GetTransform(this,A) (this)->lpVtbl->GetTransform(this,A)
+
+/* already exists in unknwn.h>
+#define INTERFACE IUnknown
+DECLARE_INTERFACE(IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods /
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ END_INTERFACE
+};
+#undef INTERFACE
+
+#define IUnknown_QueryInterface(this,A,B) (this)->lpVtbl->QueryInterface(this,A,B)
+#define IUnknown_AddRef(this) (this)->lpVtbl->AddRef(this)
+#define IUnknown_Release(this) (this)->lpVtbl->Release(this)
+*/
+
+#endif /* _D2D1_H */
diff --git a/mingw-w64-headers/include/d2d1helper.h b/mingw-w64-headers/include/d2d1helper.h
new file mode 100644
index 0000000..2e03744
--- /dev/null
+++ b/mingw-w64-headers/include/d2d1helper.h
@@ -0,0 +1,21 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_D2D1HELPER
+#define _INC_D2D1HELPER
+
+#if (_WIN32_WINNT >= 0x0600)
+#ifdef __cplusplus
+D2D1_ARC_SEGMENT ArcSegment(
+ const D2D1_POINT_2F &point,
+ const D2D1_SIZE_F &size,
+ FLOAT rotationAngle,
+ D2D1_SWEEP_DIRECTION sweepDirection,
+ D2D1_ARC_SIZE arcSize
+);
+#endif
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_D2D1HELPER*/
diff --git a/mingw-w64-headers/include/d2dbasetypes.h b/mingw-w64-headers/include/d2dbasetypes.h
new file mode 100644
index 0000000..7d7e9e5
--- /dev/null
+++ b/mingw-w64-headers/include/d2dbasetypes.h
@@ -0,0 +1,76 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+
+ * d2dbasetypes.h - Header file for the Direct2D API
+ * No original Microsoft headers were used in the creation of this
+ * file.
+ *API docs available at: http://msdn.microsoft.com/en-us/library/dd372349%28v=VS.85%29.aspx
+ */
+
+#ifndef _D2DBASETYPES_H
+#define _D2DBASETYPES_H
+
+#include <d3d9types.h>
+
+typedef D3DCOLORVALUE D2D_COLOR_F;
+
+struct D2D_MATRIX_3X2_F {
+ FLOAT _11;
+ FLOAT _12;
+ FLOAT _21;
+ FLOAT _22;
+ FLOAT _31;
+ FLOAT _32;
+};
+
+struct D2D_POINT_2F {
+ FLOAT x;
+ FLOAT y;
+};
+
+struct D2D_POINT_2U {
+ UINT32 x;
+ UINT32 y;
+};
+
+struct D2D_RECT_F {
+ FLOAT left;
+ FLOAT top;
+ FLOAT right;
+ FLOAT bottom;
+};
+
+struct D2D_RECT_U {
+ UINT32 left;
+ UINT32 top;
+ UINT32 right;
+ UINT32 bottom;
+};
+
+struct D2D_SIZE_F {
+ FLOAT width;
+ FLOAT height;
+};
+
+struct D2D_SIZE_U {
+ UINT32 width;
+ UINT32 height;
+};
+
+typedef D2D_COLOR_F D2D1_COLOR_F;
+
+typedef struct D2D_POINT_2F D2D1_POINT_2F;
+
+typedef struct D2D_POINT_2U D2D1_POINT_2U;
+
+typedef struct D2D_RECT_F D2D1_RECT_F;
+
+typedef struct D2D_RECT_U D2D1_RECT_U;
+
+typedef struct D2D_SIZE_F D2D1_SIZE_F;
+
+typedef struct D2D_SIZE_U D2D1_SIZE_U;
+
+#endif /* _D2DBASETYPES_H */
diff --git a/mingw-w64-headers/include/d2derr.h b/mingw-w64-headers/include/d2derr.h
new file mode 100644
index 0000000..4964267
--- /dev/null
+++ b/mingw-w64-headers/include/d2derr.h
@@ -0,0 +1,48 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+
+ * d2derr.h - Header file for the Direct2D API
+ * No original Microsoft headers were used in the creation of this
+ * file.
+ *API docs available at: http://msdn.microsoft.com/en-us/library/dd372349%28v=VS.85%29.aspx
+ */
+
+#ifndef _D2DERR_H
+#define _D2DERR_H
+
+/* error codes */
+#define D2DERR_BAD_NUMBER 0x88990011
+#define D2DERR_DISPLAY_FORMAT_NOT_SUPPORTED 0x88990009
+#define D2DERR_DISPLAY_STATE_INVALID 0x88990006
+#define D2DERR_EXCEEDS_MAX_BITMAP_SIZE 0x8899001D
+#define D2DERR_INCOMPATIBLE_BRUSH_TYPES 0x88990018
+#define D2DERR_INSUFFICIENT_BUFFER ERROR_INSUFFICIENT_BUFFER (Windows error)
+#define D2DERR_INTERNAL_ERROR 0x88990008
+#define D2DERR_INVALID_CALL 0x8899000A
+#define D2DERR_LAYER_ALREADY_IN_USE 0x88990013
+#define D2DERR_MAX_TEXTURE_SIZE_EXCEEDED 0x8899000F
+#define D2DERR_NO_HARDWARE_DEVICE 0x8899000B
+#define D2DERR_NOT_INITIALIZED 0x88990002
+#define D2DERR_POP_CALL_DID_NOT_MATCH_PUSH 0x88990014
+#define D2DERR_PUSH_POP_UNBALANCED 0x88990016
+#define D2DERR_RECREATE_TARGET 0x8899000C
+#define D2DERR_RENDER_TARGET_HAS_LAYER_OR_CLIPRECT 0x88990017
+#define D2DERR_SCANNER_FAILED 0x88990004
+#define D2DERR_SCREEN_ACCESS_DENIED 0x88990005
+#define D2DERR_SHADER_COMPILE_FAILED 0x8899000E
+#define D2DERR_TARGET_NOT_GDI_COMPATIBLE 0x8899001A
+#define D2DERR_TEXT_EFFECT_IS_WRONG_TYPE 0x8899001B
+#define D2DERR_TEXT_RENDERER_NOT_RELEASED 0x8899001C
+#define D2DERR_TOO_MANY_SHADER_ELEMENTS 0x8899000D
+#define D2DERR_UNSUPPORTED_OPERATION 0x88990003
+#define D2DERR_UNSUPPORTED_PIXEL_FORMAT WINCODEC_ERR_UNSUPPORTEDPIXELFORMAT
+#define D2DERR_UNSUPPORTED_VERSION 0x88990010
+#define D2DERR_WIN32_ERROR 0x88990019
+#define D2DERR_WRONG_FACTORY 0x88990012
+#define D2DERR_WRONG_RESOURCE_DOMAIN 0x88990015
+#define D2DERR_WRONG_STATE 0x88990001
+#define D2DERR_ZERO_VECTOR 0x88990007
+
+#endif /* _D2DERR_H */
diff --git a/mingw-w64-headers/include/davclnt.h b/mingw-w64-headers/include/davclnt.h
new file mode 100644
index 0000000..db80093
--- /dev/null
+++ b/mingw-w64-headers/include/davclnt.h
@@ -0,0 +1,139 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_DAVCLNT
+#define _INC_DAVCLNT
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if (_WIN32_WINNT >= 0x0600)
+#define DAV_AUTHN_SCHEME_BASIC 0x00000001
+#define DAV_AUTHN_SCHEME_NTLM 0x00000002
+#define DAV_AUTHN_SCHEME_PASSPORT 0x00000004
+#define DAV_AUTHN_SCHEME_DIGEST 0x00000008
+#define DAV_AUTHN_SCHEME_NEGOTIATE 0x00000010
+#define DAV_AUTHN_SCHEME_CERT 0x00010000
+#define DAV_AUTHN_SCHEME_FBA 0x00100000
+
+typedef DWORD OPAQUE_HANDLE;
+
+typedef enum AUTHNEXTSTEP {
+ DefaultBehavior = 0,
+ RetryRequest = 1,
+ CancelRequest = 2
+} AUTHNEXTSTEP;
+
+typedef struct _DAV_CALLBACK_AUTH_BLOB {
+ PVOID pBuffer;
+ ULONG ulSize;
+ ULONG ulType;
+}DAV_CALLBACK_AUTH_BLOB, *PDAV_CALLBACK_AUTH_BLOB;
+
+typedef struct _DAV_CALLBACK_AUTH_UNP {
+ LPWSTR pszUserName;
+ ULONG ulUserNameLength;
+ LPWSTR pszPassword;
+ ULONG ulPasswordLength;
+}DAV_CALLBACK_AUTH_UNP, *PDAV_CALLBACK_AUTH_UNP;
+
+typedef struct _DAV_CALLBACK_CRED {
+ DAV_CALLBACK_AUTH_BLOB AuthBlob;
+ DAV_CALLBACK_AUTH_UNP UNPBlob;
+ WINBOOL bAuthBlobValid;
+ WINBOOL bSave;
+}DAV_CALLBACK_CRED, *PDAV_CALLBACK_CRED;
+
+typedef DWORD (*PFNDAVAUTHCALLBACK_FREECRED)(
+ PVOID pbuffer
+);
+
+typedef DWORD (*PFNDAVAUTHCALLBACK)(
+ LPWSTR lpwzServerName,
+ LPWSTR lpwzRemoteName,
+ DWORD dwAuthScheme,
+ DWORD dwFlags,
+ PDAV_CALLBACK_CRED pCallbackCred,
+ AUTHNEXTSTEP *NextStep,
+ PFNDAVAUTHCALLBACK_FREECRED *pFreeCred
+);
+
+OPAQUE_HANDLE WINAPI DavRegisterAuthCallback(
+ PFNDAVAUTHCALLBACK CallBack,
+ ULONG Version
+);
+
+VOID WINAPI DavUnregisterAuthCallback(
+ OPAQUE_HANDLE hCallback
+);
+
+DWORD WINAPI DavAddConnection(
+ HANDLE *ConnectionHandle,
+ LPCWSTR RemoteName,
+ LPCWSTR UserName,
+ LPCWSTR Password,
+ PBYTE ClientCert,
+ DWORD CertSize
+);
+
+DWORD WINAPI DavCancelConnectionsToServer(
+ LPWSTR lpName,
+ WINBOOL fForce
+);
+
+DWORD WINAPI DavDeleteConnection(
+ HANDLE ConnectionHandle
+);
+
+DWORD WINAPI DavFlushFile(
+ HANDLE hFile
+);
+
+DWORD WINAPI DavGetExtendedError(
+ HANDLE hFile,
+ DWORD *ExtError,
+ LPWSTR ExtErrorString,
+ DWORD *cChSize
+);
+
+DWORD WINAPI DavGetHTTPFromUNCPath(
+ LPCWSTR UncPath,
+ LPWSTR HttpPath,
+ LPDWORD lpSize
+);
+
+DWORD WINAPI DavGetTheLockOwnerOfTheFile(
+ LPCWSTR FileName,
+ PWSTR LockOwnerName,
+ PULONG LockOwnerNameLengthInBytes
+);
+
+DWORD WINAPI DavGetUNCFromHTTPPath(
+ LPCWSTR HttpPath,
+ LPWSTR UncPath,
+ LPDWORD lpSize
+);
+
+DWORD WINAPI DavInvalidateCache(
+ LPWSTR URLName
+);
+
+OPAQUE_HANDLE WINAPI DavRegisterAuthCallback(
+ PFNDAVAUTHCALLBACK CallBack,
+ ULONG Version
+);
+
+VOID WINAPI DavUnregisterAuthCallback(
+ OPAQUE_HANDLE hCallback
+);
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*_INC_DAVCLNT*/
diff --git a/mingw-w64-headers/include/dbghelp.h b/mingw-w64-headers/include/dbghelp.h
index 894b9d6..eb35872 100644
--- a/mingw-w64-headers/include/dbghelp.h
+++ b/mingw-w64-headers/include/dbghelp.h
@@ -1133,6 +1133,7 @@
#define MINIDUMP_MISC1_PROCESS_ID 0x00000001
#define MINIDUMP_MISC1_PROCESS_TIMES 0x00000002
+#define MINIDUMP_MISC1_PROCESSOR_POWER_INFO 0x00000004
typedef struct _MINIDUMP_MISC_INFO {
ULONG32 SizeOfInfo;
@@ -1193,7 +1194,8 @@
ThreadWriteContext = 0x0004,
ThreadWriteBackingStore = 0x0008,
ThreadWriteInstructionWindow = 0x0010,
- ThreadWriteThreadData = 0x0020
+ ThreadWriteThreadData = 0x0020,
+ ThreadWriteThreadInfo = 0x0040
} THREAD_WRITE_FLAGS;
typedef struct _MINIDUMP_MODULE_CALLBACK {
@@ -1218,9 +1220,15 @@
ModuleWriteDataSeg = 0x0002,
ModuleWriteMiscRecord = 0x0004,
ModuleWriteCvRecord = 0x0008,
- ModuleReferencedByMemory = 0x0010
+ ModuleReferencedByMemory = 0x0010,
+ ModuleWriteTlsData = 0x0020,
+ ModuleWriteCodeSegs = 0x0040
} MODULE_WRITE_FLAGS;
+ typedef enum _MINIDUMP_SECONDARY_FLAGS {
+ MiniSecondaryWithoutPowerInfo = 0x00000001
+ } MINIDUMP_SECONDARY_FLAGS;
+
typedef struct _MINIDUMP_CALLBACK_INPUT {
ULONG ProcessId;
HANDLE ProcessHandle;
@@ -1238,11 +1246,22 @@
__MINGW_EXTENSION union {
ULONG ModuleWriteFlags;
ULONG ThreadWriteFlags;
+ ULONG SecondaryFlags;
__MINGW_EXTENSION struct {
ULONG64 MemoryBase;
ULONG MemorySize;
};
+ __MINGW_EXTENSION struct {
+ WINBOOL CheckCancel;
+ WINBOOL Cancel;
+ };
+ HANDLE Handle;
};
+ __MINGW_EXTENSION struct {
+ MINIDUMP_MEMORY_INFO VmRegion;
+ WINBOOL Continue;
+ };
+ HRESULT Status;
} MINIDUMP_CALLBACK_OUTPUT, *PMINIDUMP_CALLBACK_OUTPUT;
typedef enum _MINIDUMP_TYPE {
@@ -1257,9 +1276,68 @@
MiniDumpFilterModulePaths = 0x00000080,
MiniDumpWithProcessThreadData = 0x00000100,
MiniDumpWithPrivateReadWriteMemory = 0x00000200,
- MiniDumpWithoutOptionalData = 0x00000400
+ MiniDumpWithoutOptionalData = 0x00000400,
+ MiniDumpWithFullMemoryInfo = 0x00000800,
+ MiniDumpWithThreadInfo = 0x00001000,
+ MiniDumpWithCodeSegs = 0x00002000,
+ MiniDumpWithoutAuxiliaryState = 0x00004000,
+ MiniDumpWithFullAuxiliaryState = 0x00008000,
+ MiniDumpWithPrivateWriteCopyMemory = 0x00010000,
+ MiniDumpIgnoreInaccessibleMemory = 0x00020000,
+ MiniDumpWithTokenInformation = 0x00040000
} MINIDUMP_TYPE;
+typedef struct _MINIDUMP_MEMORY_INFO {
+ ULONG64 BaseAddress;
+ ULONG64 AllocationBase;
+ ULONG32 AllocationProtect;
+ ULONG32 __alignment1;
+ ULONG64 RegionSize;
+ ULONG32 State;
+ ULONG32 Protect;
+ ULONG32 Type;
+ ULONG32 __alignment2;
+} MINIDUMP_MEMORY_INFO, *PMINIDUMP_MEMORY_INFO;
+
+typedef struct _MINIDUMP_MISC_INFO_2 {
+ ULONG32 SizeOfInfo;
+ ULONG32 Flags1;
+ ULONG32 ProcessId;
+ ULONG32 ProcessCreateTime;
+ ULONG32 ProcessUserTime;
+ ULONG32 ProcessKernelTime;
+ ULONG32 ProcessorMaxMhz;
+ ULONG32 ProcessorCurrentMhz;
+ ULONG32 ProcessorMhzLimit;
+ ULONG32 ProcessorMaxIdleState;
+ ULONG32 ProcessorCurrentIdleState;
+} MINIDUMP_MISC_INFO_2, *PMINIDUMP_MISC_INFO_2;
+
+typedef struct _MINIDUMP_MEMORY_INFO_LIST {
+ ULONG SizeOfHeader;
+ ULONG SizeOfEntry;
+ ULONG64 NumberOfEntries;
+} MINIDUMP_MEMORY_INFO_LIST, *PMINIDUMP_MEMORY_INFO_LIST;
+
+typedef struct _MINIDUMP_THREAD_INFO {
+ ULONG32 ThreadId;
+ ULONG32 DumpFlags;
+ ULONG32 DumpError;
+ ULONG32 ExitStatus;
+ ULONG64 CreateTime;
+ ULONG64 ExitTime;
+ ULONG64 KernelTime;
+ ULONG64 UserTime;
+ ULONG64 StartAddress;
+ ULONG64 Affinity;
+} MINIDUMP_THREAD_INFO, *PMINIDUMP_THREAD_INFO;
+
+typedef struct _MINIDUMP_THREAD_INFO_LIST {
+ ULONG SizeOfHeader;
+ ULONG SizeOfEntry;
+ ULONG64 NumberOfEntries;
+} MINIDUMP_THREAD_INFO_LIST, *PMINIDUMP_THREAD_INFO_LIST;
+
typedef WINBOOL (WINAPI *MINIDUMP_CALLBACK_ROUTINE)(PVOID CallbackParam,CONST PMINIDUMP_CALLBACK_INPUT CallbackInput,PMINIDUMP_CALLBACK_OUTPUT CallbackOutput);
typedef struct _MINIDUMP_CALLBACK_INFORMATION {
diff --git a/mingw-w64-headers/include/dhcpsapi.h b/mingw-w64-headers/include/dhcpsapi.h
index 082a5ce..746f5c7 100644
--- a/mingw-w64-headers/include/dhcpsapi.h
+++ b/mingw-w64-headers/include/dhcpsapi.h
@@ -24,6 +24,11 @@
typedef DWORD DHCP_RESUME_HANDLE;
typedef DWORD DHCP_OPTION_ID;
+typedef enum _DHCP_OPTION_TYPE {
+ DhcpUnaryElementTypeOption,
+ DhcpArrayTypeOption
+} DHCP_OPTION_TYPE, *LPDHCP_OPTION_TYPE;
+
typedef struct _DATE_TIME {
DWORD dwLowDateTime;
DWORD dwHighDateTime;
@@ -159,6 +164,14 @@
DHCP_OPTION_DATA Value;
} DHCP_OPTION_VALUE,*LPDHCP_OPTION_VALUE;
+typedef struct _DHCP_OPTION {
+ DHCP_OPTION_ID OptionID;
+ LPWSTR OptionName;
+ LPWSTR OptionComment;
+ DHCP_OPTION_DATA DefaultValue;
+ DHCP_OPTION_TYPE OptionType;
+} DHCP_OPTION, *LPDHCP_OPTION;
+
DWORD WINAPI DhcpGetVersion(LPWSTR ServerIpAddress,LPDWORD MajorVersion,LPDWORD MinorVersion);
DWORD WINAPI DhcpSetServerBindingInfo(DHCP_CONST WCHAR *ServerIpAddress,ULONG Flags,LPDHCP_BIND_ELEMENT_ARRAY BindElementInfo);
DWORD WINAPI DhcpGetServerBindingInfo(DHCP_CONST WCHAR *ServerIpAddress,ULONG Flags,LPDHCP_BIND_ELEMENT_ARRAY *BindElementsInfo);
@@ -172,6 +185,334 @@
DWORD WINAPI DhcpGetOptionValue(DHCP_CONST WCHAR *ServerIpAddress,DHCP_OPTION_ID OptionID,DHCP_CONST DHCP_OPTION_SCOPE_INFO *ScopeInfo,LPDHCP_OPTION_VALUE *OptionValue);
VOID WINAPI DhcpRpcFreeMemory(PVOID BufferPointer);
+#define ERROR_DHCP_REGISTRY_INIT_FAILED 20000
+#define ERROR_DHCP_DATABASE_INIT_FAILED 20001
+#define ERROR_DHCP_RPC_INIT_FAILED 20002
+#define ERROR_DHCP_NETWORK_INIT_FAILED 20003
+#define ERROR_DHCP_SUBNET_EXISTS 20004
+#define ERROR_DHCP_SUBNET_NOT_PRESENT 20005
+#define ERROR_DHCP_PRIMARY_NOT_FOUND 20006
+#define ERROR_DHCP_ELEMENT_CANT_REMOVE 20007
+#define ERROR_DHCP_OPTION_EXISTS 20009
+#define ERROR_DHCP_OPTION_NOT_PRESENT 20010
+#define ERROR_DHCP_ADDRESS_NOT_AVAILABLE 20011
+#define ERROR_DHCP_RANGE_FULL 20012
+#define ERROR_DHCP_JET_ERROR 20013
+#define ERROR_DHCP_CLIENT_EXISTS 20014
+#define ERROR_DHCP_INVALID_DHCP_MESSAGE 20015
+#define ERROR_DHCP_INVALID_DHCP_CLIENT 20016
+#define ERROR_DHCP_SERVICE_PAUSED 20017
+#define ERROR_DHCP_NOT_RESERVED_CLIENT 20018
+#define ERROR_DHCP_RESERVED_CLIENT 20019
+#define ERROR_DHCP_RANGE_TOO_SMALL 20020
+#define ERROR_DHCP_IPRANGE_EXISTS 20021
+#define ERROR_DHCP_RESERVEDIP_EXISTS 20022
+#define ERROR_DHCP_INVALID_RANGE 20023
+#define ERROR_DHCP_RANGE_EXTENDED 20024
+#define ERROR_DHCP_RANGE_EXTENSION_TOO_SMALL 20025
+#define ERROR_DHCP_WARNING_RANGE_EXTENDED_LESS 20026
+#define ERROR_DHCP_JET_CONV_REQUIRED 20027
+#define ERROR_DHCP_SERVER_INVALID_BOOT_FILE_TABLE 20028
+#define ERROR_DHCP_SERVER_UNKNOWN_BOOT_FILE_NAME 20029
+#define ERROR_DHCP_SUPER_SCOPE_NAME_TOO_LONG 20030
+#define ERROR_DHCP_IP_ADDRESS_IN_USE 20032
+#define ERROR_DHCP_LOG_FILE_PATH_TOO_LONG 20033
+#define ERROR_DHCP_UNSUPPORTED_CLIENT 20034
+#define ERROR_DHCP_SERVER_INTERFACE_NOTIFICATION_EVENT 20035
+#define ERROR_DHCP_JET97_CONV_REQUIRED 20036
+#define ERROR_DHCP_ROGUE_INIT_FAILED 20037
+#define ERROR_DHCP_ROGUE_SAMSHUTDOWN 20038
+#define ERROR_DHCP_ROGUE_NOT_AUTHORIZED 20039
+#define ERROR_DHCP_ROGUE_DS_UNREACHABLE 20040
+#define ERROR_DHCP_ROGUE_DS_CONFLICT 20041
+#define ERROR_DHCP_ROGUE_NOT_OUR_ENTERPRISE 20042
+#define ERROR_DHCP_STANDALONE_IN_DS 20043
+#define ERROR_DHCP_CLASS_NOT_FOUND 20044
+#define ERROR_DHCP_CLASS_ALREADY_EXISTS 20045
+#define ERROR_DHCP_SCOPE_NAME_TOO_LONG 20046
+#define ERROR_DHCP_DEFAULT_SCOPE_EXISTS 20047
+#define ERROR_DHCP_CANT_CHANGE_ATTRIBUTE 20048
+#define ERROR_DHCP_IPRANGE_CONV_ILLEGAL 20049
+#define ERROR_DHCP_NETWORK_CHANGED 20050
+#define ERROR_DHCP_CANNOT_MODIFY_BINDINGS 20051
+#define ERROR_DHCP_SUBNET_EXISTS 20052
+#define ERROR_DHCP_MSCOPE_EXISTS 20053
+#define ERROR_DHCP_MSCOPE_RANGE_TOO_SMALL 20054
+#define ERROR_DHCP_MSCOPE_RANGE_TOO_SMALL 20054
+#define ERROR_DDS_NO_DS_AVAILABLE 20070
+#define ERROR_DDS_NO_DHCP_ROOT 20071
+#define ERROR_DDS_DHCP_SERVER_NOT_FOUND 20074
+#define ERROR_DDS_OPTION_ALREADY_EXISTS 20075
+#define ERROR_DDS_OPTION_ALREADY_EXISTS 20076
+#define ERROR_DDS_CLASS_EXISTS 20077
+#define ERROR_DDS_CLASS_DOES_NOT_EXIST 20078
+#define ERROR_DDS_SERVER_ALREADY_EXISTS 20079
+#define ERROR_DDS_SERVER_DOES_NOT_EXIST 20080
+#define ERROR_DDS_SERVER_ADDRESS_MISMATCH 20081
+#define ERROR_DDS_SUBNET_EXISTS 20082
+#define ERROR_DDS_SUBNET_HAS_DIFF_SUPER_SCOPE 20083
+#define ERROR_DDS_SUBNET_NOT_PRESENT 20084
+#define ERROR_DDS_RESERVATION_NOT_PRESENT 20085
+#define ERROR_DDS_RESERVATION_CONFLICT 20086
+#define ERROR_DDS_POSSIBLE_RANGE_CONFLICT 20087
+#define ERROR_DDS_RANGE_DOES_NOT_EXIST 20088
+
+typedef struct _DHCP_OPTION_ARRAY {
+ DWORD NumElements;
+ LPDHCP_OPTION Options;
+} DHCP_OPTION_ARRAY, *LPDHCP_OPTION_ARRAY;
+
+#if (_WIN32_WINNT >= 0x0600)
+typedef struct _DHCP_BINARY_DATA {
+ DWORD DataLength;
+ BYTE* Data;
+} DHCP_BINARY_DATA, *LPDHCP_BINARY_DATA;
+
+typedef DHCP_BINARY_DATA DHCP_CLIENT_UID;
+
+typedef enum _DHCP_OPTION_SCOPE_TYPE6 {
+ DhcpDefaultOptions6,
+ DhcpScopeOptions6,
+ DhcpReservedOptions6
+} DHCP_OPTION_SCOPE_TYPE6;
+
+typedef struct _DHCP_ALL_OPTIONS {
+ DWORD Flags;
+ LPDHCP_OPTION_ARRAY NonVendorOptions;
+ DWORD NumVendorOptions;
+ __MINGW_EXTENSION struct {
+ DHCP_OPTION Option;
+ LPWSTR VendorName;
+ LPWSTR ClassName;
+ } *VendorOptions;
+} DHCP_ALL_OPTIONS, *LPDHCP_ALL_OPTIONS;
+
+typedef struct _DHCP_IPV6_ADDRESS {
+ ULONGULONG HighOrderBits;
+ ULONGULONG LowOrderBits;
+} DHCP_IPV6_ADDRESS, *PDHCP_IPV6_ADDRESS, *LPDHCP_IPV6_ADDRESS, DHCP_RESUME_IPV6_HANDLE;
+
+typedef struct _DHCP_ALL_OPTION_VALUES {
+ DWORD Flags;
+ DWORD NumElements;
+ __MINGW_EXTENSION struct {
+ LPWSTR ClassName;
+ LPWSTR VendorName;
+ WINBOOL IsVendor;
+ LPDHCP_OPTION_VALUE_ARRAY OptionsArray;
+ } *Options;
+} DHCP_ALL_OPTION_VALUES, *LPDHCP_ALL_OPTION_VALUES;
+
+typedef struct _DHCP_OPTION_SCOPE_INFO6 {
+ DHCP_OPTION_SCOPE_TYPE6 ScopeType;
+ __MINGW_EXTENSION union {
+ PVOID DefaultScopeInfo;
+ DHCP_IPV6_ADDRESS SubnetScopeInfo;
+ DHCP_RESERVED_SCOPE6 ReservedScopeInfo;
+ } ScopeInfo;
+} DHCP_OPTION_SCOPE_INFO6, *PDHCP_OPTION_SCOPE_INFO6, *LPDHCP_OPTION_SCOPE_INFO6;
+
+typedef struct _DHCP_OPTION_VALUE_ARRAY {
+ DWORD NumElements;
+ LPDHCP_OPTION_VALUE Values;
+} DHCP_OPTION_VALUE_ARRAY, *LPDHCP_OPTION_VALUE_ARRAY;
+
+typedef enum _DHCP_SUBNET_ELEMENT_TYPE_V6 {
+ Dhcpv6IpRanges,
+ Dhcpv6ReservedIps,
+ Dhcpv6ExcludedIpRanges
+} DHCP_SUBNET_ELEMENT_TYPE_V6, *LPDHCP_SUBNET_ELEMENT_TYPE_V6;
+
+typedef struct _DHCP_IP_RANGE_V6 {
+ DHCP_IPV6_ADDRESS StartAddress;
+ DHCP_IPV6_ADDRESS EndAddress;
+} DHCP_IP_RANGE_V6, *LPDHCP_IP_RANGE_V6;
+
+typedef struct _DHCP_IP_RESERVATION_V6 {
+ DHCP_IPV6_ADDRESS ReservedIpAddress;
+ DHCP_CLIENT_UID* ReservedForClient;
+ DWORD InterfaceId;
+} DHCP_IP_RESERVATION_V6, *LPDHCP_IP_RESERVATION_V6;
+
+typedef struct DHCP_SUBNET_ELEMENT_DATA_V6 {
+ DHCP_SUBNET_ELEMENT_TYPE_V6 ElementType;
+ union _DHCP_SUBNET_ELEMENT_UNION_V6 {
+ DHCP_IP_RANGE_V6* IpRange;
+ DHCP_IP_RESERVATION_V6* ReservedIp;
+ DHCP_IP_RANGE_V6* ExcludeIpRange;
+ } Element;
+} DHCP_SUBNET_ELEMENT_DATA_V6, *LDHCP_SUBNET_ELEMENT_DATA_V6, *LPDHCP_SUBNET_ELEMENT_DATA_V6;
+
+typedef struct _DHCP_SUBNET_ELEMENT_INFO_ARRAY_V6 {
+ DWORD NumElements;
+ LPDHCP_SUBNET_ELEMENT_DATA_V6 Elements;
+} DHCP_SUBNET_ELEMENT_INFO_ARRAY_V6, *LPDHCP_SUBNET_ELEMENT_INFO_ARRAY_V6;
+
+typedef struct _DHCP_SUBNET_INFO_V6 {
+ DHCP_IPV6_ADDRESS SubnetAddress;
+ ULONG Prefix;
+ USHORT Preference;
+ LPWSTR SubnetName;
+ LPWSTR SubnetComment;
+ DWORD State;
+ DWORD ScopeId;
+} DHCP_SUBNET_INFO_V6, *PDHCP_SUBNET_INFO_V6, *LPDHCP_SUBNET_INFO_V6;
+
+DWORD DHCP_API_FUNCTION DhcpAddSubnetElementV6(
+ LPWSTR ServerIpAddress,
+ DHCP_IPV6_ADDRESS SubnetAddress,
+ LDHCP_SUBNET_ELEMENT_DATA_V6 *AddElementInfo
+);
+
+DWORD DHCP_API_FUNCTION DhcpCreateOptionV6(
+ LPWSTR ServerIpAddress,
+ DWORD Flags,
+ DHCP_OPTION_ID OptionId,
+ WCHAR *ClassName,
+ WCHAR *VendorName,
+ LPDHCP_OPTION OptionInfo
+);
+
+DWORD DHCP_API_FUNCTION DhcpDeleteSubnetV6(
+ LPWSTR ServerIpAddress,
+ DHCP_IPV6_ADDRESS SubnetAddress,
+ DHCP_FORCE_FLAG ForceFlag
+);
+
+DWORD DHCP_API_FUNCTION DhcpCreateSubnetV6(
+ LPWSTR ServerIpAddress,
+ DHCP_IPV6_ADDRESS SubnetAddress,
+ LDHCP_SUBNET_INFO_V6 *SubnetInfo
+);
+
+DWORD DHCP_API_FUNCTION DhcpEnumOptionsV6(
+ LPWSTR ServerIpAddress,
+ DWORD Flags,
+ WCHAR *ClassName,
+ WCHAR *VendorName,
+ DHCP_RESUME_HANDLE *ResumeHandle,
+ DWORD PreferredMaximum,
+ LPDHCP_OPTION_ARRAY *Options,
+ DWORD *OptionsRead,
+ DWORD *OptionsTotal
+);
+
+DWORD DHCP_API_FUNCTION DhcpEnumOptionValuesV6(
+ LPWSTR ServerIpAddress,
+ DWORD Flags,
+ WCHAR *ClassName,
+ WCHAR *VendorName,
+ DHCP_OPTION_SCOPE_INFO6 ScopeInfo,
+ DHCP_RESUME_HANDLE *ResumeHandle,
+ DWORD PreferredMaximum,
+ LPDHCP_OPTION_VALUE_ARRAY *OptionValues,
+ DWORD *OptionsRead,
+ DWORD *OptionsTotal
+);
+
+DWORD DHCP_API_FUNCTION DhcpEnumSubnetClientsV6(
+ LPWSTR ServerIpAddress,
+ DHCP_IPV6_ADDRESS SubnetAddress,
+ DHCP_RESUME_IPV6_HANDLE *ResumeHandle,
+ DWORD PreferredMaximum,
+ LPDHCP_CLIENT_INFO_ARRAY_V6 *ClientInfo,
+ DWORD *ClientsRead,
+ DWORD *ClientsTotal
+);
+
+DWORD DHCP_API_FUNCTION DhcpEnumSubnetElementsV6(
+ LPWSTR ServerIpAddress,
+ DHCP_IPV6_ADDRESS SubnetAddress,
+ DHCP_SUBNET_ELEMENT_TYPE_V6 EnumElementType,
+ DHCP_RESUME_HANDLE *ResumeHandle,
+ DWORD PreferredMaximum,
+ LPDHCP_SUBNET_ELEMENT_INFO_ARRAY_V6 *EnumElementInfo,
+ DWORD *ElementsRead,
+ DWORD *ElementsTotal
+);
+
+DWORD DHCP_API_FUNCTION DhcpEnumSubnetsV6(
+ LPWSTR ServerIpAddress,
+ DHCP_RESUME_HANDLE *ResumeHandle,
+ DWORD PreferredMaximum,
+ LPDHCPV6_IP_ARRAY *EnumInfo,
+ DWORD *ElementsRead,
+ DWORD *ElementsTotal
+);
+
+DWORD DHCP_API_FUNCTION DhcpGetAllOptionsV6(
+ LPWSTR ServerIpAddress,
+ DWORD Flags,
+ LPDHCP_ALL_OPTIONS *OptionStruct
+);
+
+DWORD DHCP_API_FUNCTION DhcpGetAllOptionValuesV6(
+ LPWSTR ServerIpAddress,
+ DWORD Flags,
+ LPDHCP_OPTION_SCOPE_INFO6 ScopeInfo,
+ LPDHCP_ALL_OPTION_VALUES *Values
+);
+
+DWORD DHCP_API_FUNCTION DhcpGetOptionInfoV6(
+ LPWSTR ServerIpAddress,
+ DWORD Flags,
+ DHCP_OPTION_ID OptionID,
+ WCHAR *ClassName,
+ WCHAR *VendorName,
+ LPDHCP_OPTION *OptionInfo
+);
+
+DWORD DHCP_API_FUNCTION DhcpGetSubnetInfoV6(
+ LPWSTR ServerIpAddress,
+ DHCP_IPV6_ADDRESS SubnetAddress,
+ LPDHCP_SUBNET_INFO_V6 *SubnetInfo
+);
+
+DWORD DHCP_API_FUNCTION DhcpRemoveOptionV6(
+ LPWSTR ServerIpAddress,
+ DWORD Flags,
+ DHCP_OPTION_ID OptionID,
+ WCHAR *ClassName,
+ WCHAR *VendorName
+);
+
+DWORD DHCP_API_FUNCTION DhcpRemoveOptionValueV6(
+ LPWSTR ServerIpAddress,
+ DWORD Flags,
+ DHCP_OPTION_ID OptionID,
+ WCHAR *ClassName,
+ WCHAR *VendorName,
+ DHCP_OPTION_SCOPE_INFO6 ScopeInfo
+);
+
+DWORD DHCP_API_FUNCTION DhcpRemoveSubnetElementV6(
+ LPWSTR ServerIpAddress,
+ DHCP_IPV6_ADDRESS SubnetAddress,
+ LDHCP_SUBNET_ELEMENT_DATA_V6 RemoveElementInfo,
+ DHCP_FORCE_FLAG ForceFlag
+);
+
+DWORD DHCP_API_FUNCTION DhcpSetOptionInfoV6(
+ LPWSTR ServerIpAddress,
+ DWORD Flags,
+ DHCP_OPTION_ID OptionID,
+ WCHAR *ClassName,
+ WCHAR *VendorName,
+ LPDHCP_OPTION OptionInfo
+);
+
+DWORD DHCP_API_FUNCTION DhcpSetOptionValueV6(
+ LPWSTR ServerIpAddress,
+ DWORD Flags,
+ DHCP_OPTION_ID OptionId,
+ WCHAR *ClassName,
+ WCHAR *VendorName,
+ LDHCP_OPTION_SCOPE_INFO6 ScopeInfo,
+ LDHCP_OPTION_DATA OptionValue
+);
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
#ifdef __cplusplus
}
#endif
diff --git a/mingw-w64-headers/include/dhcpv6csdk.h b/mingw-w64-headers/include/dhcpv6csdk.h
new file mode 100644
index 0000000..06f8639
--- /dev/null
+++ b/mingw-w64-headers/include/dhcpv6csdk.h
@@ -0,0 +1,95 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_DHCPV6CSDK
+#define _INC_DHCPV6CSDK
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if (_WIN32_WINNT >= 0x0600)
+
+typedef enum _StatusCode {
+ STATUS_NO_ERROR,
+ STATUS_UNSPECIFIED_FAILURE,
+ STATUS_NO_BINDING,
+ STATUS_NOPREFIX_AVAIL
+} StatusCode;
+
+typedef struct _DHCPV6CAPI_CLASSID {
+ ULONG Flags;
+ LPBYTE Data;
+ ULONG nBytesData;
+} DHCPV6CAPI_CLASSID, *PDHCPV6CAPI_CLASSID, *LPDHCPV6CAPI_CLASSID;
+
+typedef struct _DHCPV6CAPI_PARAMS {
+ ULONG Flags;
+ ULONG OptionId;
+ WINBOOL IsVendor;
+ LPBYTE Data;
+ DWORD nBytesData;
+} DHCPV6CAPI_PARAMS, *PDHCPV6CAPI_PARAMS, *LPDHCPV6CAPI_PARAMS;
+
+typedef struct _DHCPV6Prefix {
+ UCHAR prefix[16];
+ DWORD prefixLength;
+ DWORD preferredLifeTime;
+ DWORD validLifeTime;
+ StatusCode status;
+} DHCPV6Prefix, *PDHCPV6Prefix, *LPDHCPV6Prefix;
+
+typedef struct _DHCPV6CAPI_PARAMS_ARRAY {
+ ULONG nParams;
+ LPDHCPV6CAPI_PARAMS Params;
+} DHCPV6CAPI_PARAMS_ARRAY, *PDHCPV6CAPI_PARAMS_ARRAY, *LPDHCPV6CAPI_PARAMS_ARRAY;
+
+typedef struct _DHCPV6PrefixLeaseInformation {
+ DWORD nPrefixes;
+ LPDHCPV6Prefix prefixArray;
+ DWORD iaid;
+ time_t T1;
+ time_t T2;
+ time_t MaxLeaseExpirationTime;
+ time_t LastRenewalTime;
+ StatusCode status;
+ LPBYTE ServerId;
+ DWORD ServerIdLen;
+} DHCPV6PrefixLeaseInformation, *PDHCPV6PrefixLeaseInformation, *LPDHCPV6PrefixLeaseInformation, *LPDHCPV6CAPIPrefixLeaseInformation;
+
+VOID APIENTRY Dhcpv6CApiCleanup(void);
+
+DWORD APIENTRY Dhcpv6CApiInitialize(
+ LPDWORD Version
+);
+
+DWORD APIENTRY Dhcpv6RenewPrefix(
+ LPWSTR adapterName,
+ LPDHCPV6CAPI_CLASSID classId,
+ LPDHCPV6CAPIPrefixLeaseInformation prefixleaseInfo
+);
+
+DWORD APIENTRY Dhcpv6RenewPrefix(
+ LPWSTR adapterName,
+ LPDHCPV6CAPI_CLASSID classId,
+ LPDHCPV6PrefixLeaseInformation prefixleaseInfo,
+ DWORD pdwTimeToWait,
+ DWORD bValidatePrefix
+);
+
+DWORD APIENTRY Dhcpv6RequestPrefix(
+ LPWSTR adapterName,
+ LPDHCPV6CAPI_CLASSID classId,
+ LPDHCPV6PrefixLeaseInformation prefixleaseInfo,
+ DWORD pdwTimeToWait
+);
+
+#endif /* (_WIN32_WINNT >= 0x0600) */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*_INC_DHCPV6CSDK*/
diff --git a/mingw-w64-headers/include/dssec.h b/mingw-w64-headers/include/dssec.h
new file mode 100644
index 0000000..4f656f4
--- /dev/null
+++ b/mingw-w64-headers/include/dssec.h
@@ -0,0 +1,65 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_DSSEC
+#define _INC_DSSEC
+#if (_WIN32_WINNT >= 0x0600)
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef HRESULT (WINAPI *PFNREADOBJECTSECURITY)(
+ LPCWSTR, // Active Directory path of object
+ SECURITY_INFORMATION, // the security information to read
+ PSECURITY_DESCRIPTOR*, // the returned security descriptor
+ LPARAM // context parameter
+);
+
+typedef HRESULT (WINAPI *PFNWRITEOBJECTSECURITY)(
+ LPCWSTR, // Active Directory path of object
+ SECURITY_INFORMATION, // the security information to write
+ PSECURITY_DESCRIPTOR, // the security descriptor to write
+ LPARAM // context parameter
+);
+
+HRESULT WINAPI DSCreateISecurityInfoObject(
+ LPCWSTR pwszObjectPath,
+ LPCWSTR pwszObjectClass,
+ DWORD dwFlags,
+ LPSECURITYINFO *ppSI,
+ PFNREADOBJECTSECURITY pfnReadSD,
+ PFNWRITEOBJECTSECURITY pfnWriteSD,
+ LPARAM lpContext
+);
+
+HRESULT WINAPI DSCreateISecurityInfoObjectEx(
+ LPCWSTR pwszObjectPath,
+ LPCWSTR pwszObjectClass,
+ LPCWSTR pwszServer,
+ LPCWSTR pwszUserName,
+ LPCWSTR pwszPassword,
+ DWORD dwFlags,
+ LPSECURITYINFO *ppSI,
+ PFNREADOBJECTSECURITY pfnReadSD,
+ PFNWRITEOBJECTSECURITY pfnWriteSD,
+ LPARAM lpContext
+);
+
+HRESULT WINAPI DSEditSecurity(
+ HWND hwndOwner,
+ LPCWSTR pwszObjectPath,
+ LPCWSTR pwszObjectClass,
+ DWORD dwFlags,
+ LPCWSTR *pwszCaption,
+ PFNREADOBJECTSECURITY pfnReadSD,
+ PFNWRITEOBJECTSECURITY pfnWriteSD,
+ LPARAM lpContext
+);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_DSSEC*/
diff --git a/mingw-w64-headers/include/dxva2api.h b/mingw-w64-headers/include/dxva2api.h
new file mode 100644
index 0000000..345d269
--- /dev/null
+++ b/mingw-w64-headers/include/dxva2api.h
@@ -0,0 +1,684 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_DXVA2API
+#define _INC_DXVA2API
+#if (_WIN32_WINNT >= 0x0600)
+#include <objbase.h>
+#include <d3d9.h>
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct IDirect3DDeviceManager9 IDirect3DDeviceManager9;
+typedef struct IDirectXVideoDecoderService IDirectXVideoDecoderService;
+
+typedef enum _DXVA2_SampleFormat {
+ DXVA2_SampleFormatMask = 0x00FF,
+ DXVA2_SampleUnknown = 0,
+ DXVA2_SampleProgressiveFrame = 2,
+ DXVA2_SampleFieldInterleavedEvenFirst = 3,
+ DXVA2_SampleFieldInterleavedOddFirst = 4,
+ DXVA2_SampleFieldSingleEven = 5,
+ DXVA2_SampleFieldSingleOdd = 6,
+ DXVA2_SampleSubStream = 7
+} DXVA2_SampleFormat;
+
+typedef enum _DXVA2_VideoChromaSubSampling {
+ DXVA2_VideoChromaSubsamplingMask = 0x0F,
+ DXVA2_VideoChromaSubsampling_Unknown = 0,
+ DXVA2_VideoChromaSubsampling_ProgressiveChroma = 0x8,
+ DXVA2_VideoChromaSubsampling_Horizontally_Cosited = 0x4,
+ DXVA2_VideoChromaSubsampling_Vertically_Cosited = 0x2,
+ DXVA2_VideoChromaSubsampling_Vertically_AlignedChromaPlanes = 0x1,
+ DXVA2_VideoChromaSubsampling_MPEG2 =
+ DXVA2_VideoChromaSubsampling_Horizontally_Cosited |
+ DXVA2_VideoChromaSubsampling_Vertically_AlignedChromaPlanes,
+ DXVA2_VideoChromaSubsampling_MPEG1 =
+ DXVA2_VideoChromaSubsampling_Vertically_AlignedChromaPlanes,
+ DXVA2_VideoChromaSubsampling_DV_PAL =
+ DXVA2_VideoChromaSubsampling_Horizontally_Cosited |
+ DXVA2_VideoChromaSubsampling_Vertically_Cosited,
+ DXVA2_VideoChromaSubsampling_Cosited =
+ DXVA2_VideoChromaSubsampling_Horizontally_Cosited |
+ DXVA2_VideoChromaSubsampling_Vertically_Cosited |
+ DXVA2_VideoChromaSubsampling_Vertically_AlignedChromaPlanes
+} DXVA2_VideoChromaSubSampling;
+
+typedef enum _DXVA2_NominalRange {
+ DXVA2_NominalRangeMask = 0x07,
+ DXVA2_NominalRange_Unknown = 0,
+ DXVA2_NominalRange_Normal = 1,
+ DXVA2_NominalRange_Wide = 2,
+ DXVA2_NominalRange_0_255 = 1,
+ DXVA2_NominalRange_16_235 = 2,
+ DXVA2_NominalRange_48_208 = 3
+} DXVA2_NominalRange;
+
+typedef enum _DXVA2_VideoLighting {
+ DXVA2_VideoLightingMask = 0x0F,
+ DXVA2_VideoLighting_Unknown = 0,
+ DXVA2_VideoLighting_bright = 1,
+ DXVA2_VideoLighting_office = 2,
+ DXVA2_VideoLighting_dim = 3,
+ DXVA2_VideoLighting_dark = 4
+} DXVA2_VideoLighting;
+
+typedef enum _DXVA2_VideoPrimaries {
+ DXVA2_VideoPrimariesMask = 0x001f,
+ DXVA2_VideoPrimaries_Unknown = 0,
+ DXVA2_VideoPrimaries_reserved = 1,
+ DXVA2_VideoPrimaries_BT709 = 2,
+ DXVA2_VideoPrimaries_BT470_2_SysM = 3,
+ DXVA2_VideoPrimaries_BT470_2_SysBG = 4,
+ DXVA2_VideoPrimaries_SMPTE170M = 5,
+ DXVA2_VideoPrimaries_SMPTE240M = 6,
+ DXVA2_VideoPrimaries_EBU3213 = 7,
+ DXVA2_VideoPrimaries_SMPTE_C = 8
+} DXVA2_VideoPrimaries;
+
+typedef enum _DXVA2_VideoTransferFunction {
+ DXVA2_VideoTransFuncMask = 0x001f,
+ DXVA2_VideoTransFunc_Unknown = 0,
+ DXVA2_VideoTransFunc_10 = 1,
+ DXVA2_VideoTransFunc_18 = 2,
+ DXVA2_VideoTransFunc_20 = 3,
+ DXVA2_VideoTransFunc_22 = 4,
+ DXVA2_VideoTransFunc_709 = 5,
+ DXVA2_VideoTransFunc_240M = 6,
+ DXVA2_VideoTransFunc_sRGB = 7,
+ DXVA2_VideoTransFunc_28 = 8
+} DXVA2_VideoTransferFunction;
+
+typedef enum {
+ DXVA2_SurfaceType_DecoderRenderTarget = 0,
+ DXVA2_SurfaceType_ProcessorRenderTarget = 1,
+ DXVA2_SurfaceType_D3DRenderTargetTexture = 2
+} DXVA2_SurfaceType;
+
+typedef enum _DXVA2_VideoTransferMatrix {
+ DXVA2_VideoTransferMatrixMask = 0x07,
+ DXVA2_VideoTransferMatrix_Unknown = 0,
+ DXVA2_VideoTransferMatrix_BT709 = 1,
+ DXVA2_VideoTransferMatrix_BT601 = 2,
+ DXVA2_VideoTransferMatrix_SMPTE240M = 3
+} DXVA2_VideoTransferMatrix;
+
+#pragma pack(push, 1)
+typedef struct _DXVA2_AYUVSample16 {
+ USHORT Cr;
+ USHORT Cb;
+ USHORT Y;
+ USHORT Alpha;
+} DXVA2_AYUVSample16;
+
+typedef struct _DXVA2_AYUVSample8 {
+ UCHAR Cr;
+ UCHAR Cb;
+ UCHAR Y;
+ UCHAR Alpha;
+} DXVA2_AYUVSample8;
+
+typedef struct _DXVA2_ConfigPictureDecode {
+ GUID guidConfigBitstreamEncryption;
+ GUID guidConfigMBcontrolEncryption;
+ GUID guidConfigResidDiffEncryption;
+ UINT ConfigBitstreamRaw;
+ UINT ConfigMBcontrolRasterOrder;
+ UINT ConfigResidDiffHost;
+ UINT ConfigSpatialResid8;
+ UINT ConfigResid8Subtraction;
+ UINT ConfigSpatialHost8or9Clipping;
+ UINT ConfigSpatialResidInterleaved;
+ UINT ConfigIntraResidUnsigned;
+ UINT ConfigResidDiffAccelerator;
+ UINT ConfigHostInverseScan;
+ UINT ConfigSpecificIDCT;
+ UINT Config4GroupedCoefs;
+ UINT ConfigMinRenderTargetBuffCount;
+ USHORT ConfigDecoderSpecific;
+} DXVA2_ConfigPictureDecode;
+
+typedef struct _DXVA2_DecodeBufferDesc {
+ DWORD CompressedBufferType;
+ UINT BufferIndex;
+ UINT DataOffset;
+ UINT DataSize;
+ UINT FirstMBaddress;
+ UINT NumMBsInBuffer;
+ UINT Width;
+ UINT Height;
+ UINT Stride;
+ UINT ReservedBits;
+ PVOID pvPVPState;
+} DXVA2_DecodeBufferDesc;
+
+typedef struct _DXVA2_DecodeExtensionData {
+ UINT Function;
+ PVOID pPrivateInputData;
+ UINT PrivateInputDataSize;
+ PVOID pPrivateOutputData;
+ UINT PrivateOutputDataSize;
+} DXVA2_DecodeExtensionData;
+
+typedef struct _DXVA2_DecodeExecuteParams {
+ UINT NumCompBuffers;
+ DXVA2_DecodeBufferDesc *pCompressedBuffers;
+ DXVA2_DecodeExtensionData *pExtensionData;
+} DXVA2_DecodeExecuteParams;
+
+typedef struct {
+ __MINGW_EXTENSION union {
+ __MINGW_EXTENSION struct {
+ UINT SampleFormat :8;
+ UINT VideoChromaSubsampling :4;
+ UINT NominalRange :3;
+ UINT VideoTransferMatrix :3;
+ UINT VideoLighting :4;
+ UINT VideoPrimaries :5;
+ UINT VideoTransferFunction :5;
+ } DUMMYSTRUCTNAME;
+ UINT value;
+ } DUMMYUNIONNAME;
+} DXVA2_ExtendedFormat;
+
+typedef struct _DXVA2_Fixed32 {
+ __MINGW_EXTENSION union {
+ __MINGW_EXTENSION struct {
+ USHORT Fraction;
+ SHORT Value;
+ } DUMMYSTRUCTNAME;
+ LONG ll;
+ } DUMMYUNIONNAME;
+} DXVA2_Fixed32;
+
+typedef struct _DXVA2_FilterValues {
+ DXVA2_Fixed32 Level;
+ DXVA2_Fixed32 Threshold;
+ DXVA2_Fixed32 Radius;
+} DXVA2_FilterValues;
+
+typedef struct _DXVA2_Frequency {
+ UINT Numerator;
+ UINT Denominator;
+} DXVA2_Frequency;
+
+typedef struct _DXVA2_ProcAmpValues {
+ DXVA2_Fixed32 Brightness;
+ DXVA2_Fixed32 Contrast;
+ DXVA2_Fixed32 Hue;
+ DXVA2_Fixed32 Saturation;
+} DXVA2_ProcAmpValues;
+
+typedef struct _DXVA2_ValueRange {
+ DXVA2_Fixed32 MinValue;
+ DXVA2_Fixed32 MaxValue;
+ DXVA2_Fixed32 DefaultValue;
+ DXVA2_Fixed32 StepSize;
+} DXVA2_ValueRange;
+
+typedef struct _DXVA2_VideoDesc {
+ UINT SampleWidth;
+ UINT SampleHeight;
+ DXVA2_ExtendedFormat SampleFormat;
+ D3DFORMAT Format;
+ DXVA2_Frequency InputSampleFreq;
+ DXVA2_Frequency OutputFrameFreq;
+ UINT UABProtectionLevel;
+ UINT Reserved;
+} DXVA2_VideoDesc;
+
+/* DeviceCaps
+DXVA2_VPDev_EmulatedDXVA1
+DXVA2_VPDev_HardwareDevice
+DXVA2_VPDev_SoftwareDevice
+*/
+/* DeinterlaceTechnology
+DXVA2_DeinterlaceTech_Unknown
+DXVA2_DeinterlaceTech_BOBLineReplicate
+DXVA2_DeinterlaceTech_BOBVerticalStretch
+DXVA2_DeinterlaceTech_BOBVerticalStretch4Tap
+DXVA2_DeinterlaceTech_MedianFiltering
+DXVA2_DeinterlaceTech_EdgeFiltering
+DXVA2_DeinterlaceTech_FieldAdaptive
+DXVA2_DeinterlaceTech_PixelAdaptive
+DXVA2_DeinterlaceTech_MotionVectorSteered
+DXVA2_DeinterlaceTech_InverseTelecine
+*/
+
+/* VideoProcessorOperations
+DXVA2_VideoProcess_YUV2RGB
+DXVA2_VideoProcess_StretchX
+DXVA2_VideoProcess_StretchY
+DXVA2_VideoProcess_AlphaBlend
+DXVA2_VideoProcess_SubRects
+DXVA2_VideoProcess_SubStreams
+DXVA2_VideoProcess_SubStreamsExtended
+DXVA2_VideoProcess_YUV2RGBExtended
+DXVA2_VideoProcess_AlphaBlendExtended
+DXVA2_VideoProcess_Constriction
+DXVA2_VideoProcess_NoiseFilter
+DXVA2_VideoProcess_DetailFilter
+DXVA2_VideoProcess_PlanarAlpha
+DXVA2_VideoProcess_LinearScaling
+DXVA2_VideoProcess_GammaCompensated
+DXVA2_VideoProcess_MaintainsOriginalFieldData
+*/
+
+/*NoiseFilterTechnology
+DXVA2_NoiseFilterTech_Unsupported
+DXVA2_NoiseFilterTech_Unknown
+DXVA2_NoiseFilterTech_Median
+DXVA2_NoiseFilterTech_Temporal
+DXVA2_NoiseFilterTech_BlockNoise
+DXVA2_NoiseFilterTech_MosquitoNoise
+*/
+
+/* DetailFilterTechnology
+DXVA2_DetailFilterTech_Unsupported
+DXVA2_DetailFilterTech_Unknown
+DXVA2_DetailFilterTech_Edge
+DXVA2_DetailFilterTech_Sharpening
+*/
+typedef struct _DXVA2_VideoProcessBltParams {
+ REFERENCE_TIME TargetFrame;
+ RECT TargetRect;
+ SIZE ConstrictionSize;
+ UINT StreamingFlags;
+ DXVA2_AYUVSample16 BackgroundColor;
+ DXVA2_ExtendedFormat DestFormat;
+ DXVA2_ProcAmpValues ProcAmpValues;
+ DXVA2_Fixed32 Alpha;
+ DXVA2_FilterValues NoiseFilterLuma;
+ DXVA2_FilterValues NoiseFilterChroma;
+ DXVA2_FilterValues DetailFilterLuma;
+ DXVA2_FilterValues DetailFilterChroma;
+ DWORD DestData;
+} DXVA2_VideoProcessBltParams;
+
+typedef struct _DXVA2_VideoProcessorCaps {
+ UINT DeviceCaps;
+ D3DPOOL InputPool;
+ UINT NumForwardRefSamples;
+ UINT NumBackwardRefSamples;
+ UINT Reserved;
+ UINT DeinterlaceTechnology;
+ UINT ProcAmpControlCaps;
+ UINT VideoProcessorOperations;
+ UINT NoiseFilterTechnology;
+ UINT DetailFilterTechnology;
+} DXVA2_VideoProcessorCaps;
+
+/* SampleData
+DXVA2_SampleData_RFF
+DXVA2_SampleData_TFF
+DXVA2_SampleData_RFF_TFF_Present
+*/
+
+typedef struct _DXVA2_VideoSample {
+ REFERENCE_TIME Start;
+ REFERENCE_TIME End;
+ DXVA2_ExtendedFormat SampleFormat;
+ IDirect3DSurface9* SrcSurface;
+ RECT SrcRect;
+ RECT DstRect;
+ DXVA2_AYUVSample8 Pal[16];
+ DXVA2_Fixed32 PlanarAlpha;
+ DWORD SampleData;
+} DXVA2_VideoSample;
+
+/* DXVA H264 */
+typedef struct {
+ __MINGW_EXTENSION union {
+ __MINGW_EXTENSION struct {
+ UCHAR Index7Bits : 7;
+ UCHAR AssociatedFlag : 1;
+ };
+ UCHAR bPicEntry;
+ };
+} DXVA_PicEntry_H264;
+
+typedef struct {
+ USHORT wFrameWidthInMbsMinus1;
+ USHORT wFrameHeightInMbsMinus1;
+ DXVA_PicEntry_H264 InPic;
+ DXVA_PicEntry_H264 OutPic;
+ USHORT PicOrderCnt_offset;
+ INT CurrPicOrderCnt;
+ UINT StatusReportFeedbackNumber;
+ UCHAR model_id;
+ UCHAR separate_colour_description_present_flag;
+ UCHAR film_grain_bit_depth_luma_minus8;
+ UCHAR film_grain_bit_depth_chroma_minus8;
+ UCHAR film_grain_full_range_flag;
+ UCHAR film_grain_colour_primaries;
+ UCHAR film_grain_transfer_characteristics;
+ UCHAR film_grain_matrix_coefficients;
+ UCHAR blending_mode_id;
+ UCHAR log2_scale_factor;
+ UCHAR comp_model_present_flag[4];
+ UCHAR num_intensity_intervals_minus1[4];
+ UCHAR num_model_values_minus1[4];
+ UCHAR intensity_interval_lower_bound[3][16];
+ UCHAR intensity_interval_upper_bound[3][16];
+ SHORT comp_model_value[3][16][8];
+} DXVA_FilmGrainChar_H264;
+
+/* DXVA MPEG-I/II and VC-1 */
+typedef struct _DXVA_PictureParameters {
+ USHORT wDecodedPictureIndex;
+ USHORT wDeblockedPictureIndex;
+ USHORT wForwardRefPictureIndex;
+ USHORT wBackwardRefPictureIndex;
+ USHORT wPicWidthInMBminus1;
+ USHORT wPicHeightInMBminus1;
+ UCHAR bMacroblockWidthMinus1;
+ UCHAR bMacroblockHeightMinus1;
+ UCHAR bBlockWidthMinus1;
+ UCHAR bBlockHeightMinus1;
+ UCHAR bBPPminus1;
+ UCHAR bPicStructure;
+ UCHAR bSecondField;
+ UCHAR bPicIntra;
+ UCHAR bPicBackwardPrediction;
+ UCHAR bBidirectionalAveragingMode;
+ UCHAR bMVprecisionAndChromaRelation;
+ UCHAR bChromaFormat;
+ UCHAR bPicScanFixed;
+ UCHAR bPicScanMethod;
+ UCHAR bPicReadbackRequests;
+ UCHAR bRcontrol;
+ UCHAR bPicSpatialResid8;
+ UCHAR bPicOverflowBlocks;
+ UCHAR bPicExtrapolation;
+ UCHAR bPicDeblocked;
+ UCHAR bPicDeblockConfined;
+ UCHAR bPic4MVallowed;
+ UCHAR bPicOBMC;
+ UCHAR bPicBinPB;
+ UCHAR bMV_RPS;
+ UCHAR bReservedBits;
+ USHORT wBitstreamFcodes;
+ USHORT wBitstreamPCEelements;
+ UCHAR bBitstreamConcealmentNeed;
+ UCHAR bBitstreamConcealmentMethod;
+} DXVA_PictureParameters, *LPDXVA_PictureParameters;
+
+typedef struct _DXVA_QmatrixData {
+ BYTE bNewQmatrix[4];
+ WORD Qmatrix[4][8 * 8];
+} DXVA_QmatrixData, *LPDXVA_QmatrixData;
+
+typedef struct _DXVA_SliceInfo {
+ USHORT wHorizontalPosition;
+ USHORT wVerticalPosition;
+ UINT dwSliceBitsInBuffer;
+ UINT dwSliceDataLocation;
+ UCHAR bStartCodeBitOffset;
+ UCHAR bReservedBits;
+ USHORT wMBbitOffset;
+ USHORT wNumberMBsInSlice;
+ USHORT wQuantizerScaleCode;
+ USHORT wBadSliceChopping;
+} DXVA_SliceInfo, *LPDXVA_SliceInfo;
+
+typedef struct {
+ USHORT wFrameWidthInMbsMinus1;
+ USHORT wFrameHeightInMbsMinus1;
+ DXVA_PicEntry_H264 CurrPic;
+ UCHAR num_ref_frames;
+ __MINGW_EXTENSION union {
+ __MINGW_EXTENSION struct {
+ USHORT field_pic_flag : 1;
+ USHORT MbaffFrameFlag : 1;
+ USHORT residual_colour_transform_flag : 1;
+ USHORT sp_for_switch_flag : 1;
+ USHORT chroma_format_idc : 2;
+ USHORT RefPicFlag : 1;
+ USHORT constrained_intra_pred_flag : 1;
+ USHORT weighted_pred_flag : 1;
+ USHORT weighted_bipred_idc : 2;
+ USHORT MbsConsecutiveFlag : 1;
+ USHORT frame_mbs_only_flag : 1;
+ USHORT transform_8x8_mode_flag : 1;
+ USHORT MinLumaBipredSize8x8Flag : 1;
+ USHORT IntraPicFlag : 1;
+ };
+ USHORT wBitFields;
+ };
+ UCHAR bit_depth_luma_minus8;
+ UCHAR bit_depth_chroma_minus8;
+ USHORT Reserved16Bits;
+ UINT StatusReportFeedbackNumber;
+ DXVA_PicEntry_H264 RefFrameList[16];
+ INT CurrFieldOrderCnt[2];
+ INT FieldOrderCntList[16][2];
+ CHAR pic_init_qs_minus26;
+ CHAR chroma_qp_index_offset;
+ CHAR second_chroma_qp_index_offset;
+ UCHAR ContinuationFlag;
+ CHAR pic_init_qp_minus26;
+ UCHAR num_ref_idx_l0_active_minus1;
+ UCHAR num_ref_idx_l1_active_minus1;
+ UCHAR Reserved8BitsA;
+ USHORT FrameNumList[16];
+ UINT UsedForReferenceFlags;
+ USHORT NonExistingFrameFlags;
+ USHORT frame_num;
+ UCHAR log2_max_frame_num_minus4;
+ UCHAR pic_order_cnt_type;
+ UCHAR log2_max_pic_order_cnt_lsb_minus4;
+ UCHAR delta_pic_order_always_zero_flag;
+ UCHAR direct_8x8_inference_flag;
+ UCHAR entropy_coding_mode_flag;
+ UCHAR pic_order_present_flag;
+ UCHAR num_slice_groups_minus1;
+ UCHAR slice_group_map_type;
+ UCHAR deblocking_filter_control_present_flag;
+ UCHAR redundant_pic_cnt_present_flag;
+ UCHAR Reserved8BitsB;
+ USHORT slice_group_change_rate_minus1;
+ UCHAR SliceGroupMap[810];
+} DXVA_PicParams_H264;
+
+typedef struct {
+ UCHAR bScalingLists4x4[6][16];
+ UCHAR bScalingLists8x8[2][64];
+} DXVA_Qmatrix_H264;
+
+typedef struct {
+ UINT BSNALunitDataLocation;
+ UINT SliceBytesInBuffer;
+ USHORT wBadSliceChopping;
+ USHORT first_mb_in_slice;
+ USHORT NumMbsForSlice;
+ USHORT BitOffsetToSliceData;
+ UCHAR slice_type;
+ UCHAR luma_log2_weight_denom;
+ UCHAR chroma_log2_weight_denom;
+ UCHAR num_ref_idx_l0_active_minus1;
+ UCHAR num_ref_idx_l1_active_minus1;
+ CHAR slice_alpha_c0_offset_div2;
+ CHAR slice_beta_offset_div2;
+ UCHAR Reserved8Bits;
+ DXVA_PicEntry_H264 RefPicList[2][32];
+ SHORT Weights[2][32][3][2];
+ CHAR slice_qs_delta;
+ CHAR slice_qp_delta;
+ UCHAR redundant_pic_cnt;
+ UCHAR direct_spatial_mv_pred_flag;
+ UCHAR cabac_init_idc;
+ UCHAR disable_deblocking_filter_idc;
+ USHORT slice_id;
+} DXVA_Slice_H264_Long;
+
+typedef struct {
+ UINT BSNALunitDataLocation;
+ UINT SliceBytesInBuffer;
+ USHORT wBadSliceChopping;
+} DXVA_Slice_H264_Short;
+
+#pragma pack(pop)
+
+/* Constants */
+
+#define DXVA2_VideoDecoderRenderTarget 0
+#define DXVA2_VideoProcessorRenderTarget 1
+#define DXVA2_VideoSoftwareRenderTarget 2
+
+/* CompressedBufferType */
+#define DXVA2_PictureParametersBufferType 0
+#define DXVA2_MacroBlockControlBufferType 1
+#define DXVA2_ResidualDifferenceBufferType 2
+#define DXVA2_DeblockingControlBufferType 3
+#define DXVA2_InverseQuantizationMatrixBufferType 4
+#define DXVA2_SliceControlBufferType 5
+#define DXVA2_BitStreamDateBufferType 6
+#define DXVA2_MotionVectorBuffer 7
+#define DXVA2_FilmGrainBuffer 8
+
+/*Fixme: inlines?*/
+const DXVA2_Fixed32 DXVA2_Fixed32OpaqueAlpha(void);
+const DXVA2_Fixed32 DXVA2_Fixed32TransparentAlpha(void);
+float DXVA2FixedToFloat(const DXVA2_Fixed32 _fixed_);
+DXVA2_Fixed32 DXVA2FloatToFixed(const float _float_);
+
+HRESULT WINAPI DXVA2CreateDirect3DDeviceManager9(UINT *pResetToken,IDirect3DDeviceManager9 **ppDXVAManager);
+HRESULT WINAPI DXVA2CreateVideoService(IDirect3DDevice9 *pDD,REFIID riid,void **ppService);
+
+#ifdef __cplusplus
+}
+#endif
+
+/* COM Interfaces */
+
+#undef INTERFACE
+#define INTERFACE IDirectXVideoDecoder
+DECLARE_INTERFACE_(IDirectXVideoDecoder,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IDirectXVideoDecoder methods */
+ STDMETHOD_(HRESULT,GetVideoDecoderService)(THIS_ IDirectXVideoDecoderService **ppAccelServices) PURE;
+ STDMETHOD_(HRESULT,GetCreationParameters)(THIS_ GUID *pDeviceGuid,DXVA2_VideoDesc *pVideoDesc,DXVA2_ConfigPictureDecode *pConfig,IDirect3DSurface9 ***pppDecoderRenderTargets,UINT *pNumSurfaces) PURE;
+ STDMETHOD_(HRESULT,GetBuffer)(THIS_ UINT BufferType,void **ppBuffer,UINT *pBufferSize) PURE;
+ STDMETHOD_(HRESULT,ReleaseBuffer)(THIS_ UINT BufferType) PURE;
+ STDMETHOD_(HRESULT,BeginFrame)(THIS_ IDirect3DSurface9 *pRenderTarget,void *pvPVPData) PURE;
+ STDMETHOD_(HRESULT,EndFrame)(THIS_ HANDLE *pHandleComplete) PURE;
+ STDMETHOD_(HRESULT,Execute)(THIS_ const DXVA2_DecodeExecuteParams *pExecuteParams) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IDirectXVideoDecoder_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IDirectXVideoDecoder_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IDirectXVideoDecoder_Release(This) (This)->pVtbl->Release(This)
+#define IDirectXVideoDecoder_GetVideoDecoderService(This,ppAccelServices) (This)->lpVtbl->GetVideoDecoderService(This,ppAccelServices)
+#define IDirectXVideoDecoder_GetCreationParameters(This,pDeviceGuid,pVideoDesc,pConfig,pppDecoderRenderTargets,pNumSurfaces) (This)->lpVtbl->GetCreationParameters(This,pDeviceGuid,pVideoDesc,pConfig,pppDecoderRenderTargets,pNumSurfaces)
+#define IDirectXVideoDecoder_GetBuffer(This,BufferType,ppBuffer,pBufferSize) (This)->lpVtbl->GetBuffer(This,BufferType,ppBuffer,pBufferSize)
+#define IDirectXVideoDecoder_ReleaseBuffer(This,BufferType) (This)->lpVtbl->ReleaseBuffer(This,BufferType)
+#define IDirectXVideoDecoder_BeginFrame(This,pRenderTarget,pvPVPData) (This)->lpVtbl->BeginFrame(This,pRenderTarget,pvPVPData)
+#define IDirectXVideoDecoder_EndFrame(This,pHandleComplete) (This)->lpVtbl->EndFrame(This,pHandleComplete)
+#define IDirectXVideoDecoder_Execute(This,pExecuteParams) (This)->lpVtbl->Execute(This,pExecuteParams)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IDirectXVideoAccelerationService
+DECLARE_INTERFACE_(IDirectXVideoAccelerationService,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IDirectXVideoAccelerationService methods */
+ STDMETHOD_(HRESULT,CreateSurface)(THIS_ UINT Width,UINT Height,UINT BackBuffers,D3DFORMAT Format,D3DPOOL Pool,DWORD Usage,DWORD DxvaType,IDirect3DSurface9 **ppSurface,HANDLE *pSharedHandle) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IDirectXVideoAccelerationService_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IDirectXVideoAccelerationService_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IDirectXVideoAccelerationService_Release(This) (This)->pVtbl->Release(This)
+#define IDirectXVideoAccelerationService_CreateSurface(This,Width,Height,BackBuffers,Format,Pool,Usage,DxvaType,ppSurface,pSharedHandle) (This)->lpVtbl->CreateSurface(This,Width,Height,BackBuffers,Format,Pool,Usage,DxvaType,ppSurface,pSharedHandle)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IDirectXVideoDecoderService
+DECLARE_INTERFACE_(IDirectXVideoDecoderService,IDirectXVideoAccelerationService)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IDirectXVideoAccelerationService methods */
+ STDMETHOD_(HRESULT,CreateSurface)(THIS_ UINT Width,UINT Height,UINT BackBuffers,D3DFORMAT Format,D3DPOOL Pool,DWORD Usage,DWORD DxvaType,IDirect3DSurface9 **ppSurface,HANDLE *pSharedHandle) PURE;
+
+ /* IDirectXVideoDecoderService methods */
+ STDMETHOD_(HRESULT,GetDecoderDeviceGuids)(THIS_ UINT *Count,GUID **pGuids) PURE;
+ STDMETHOD_(HRESULT,GetDecoderRenderTargets)(THIS_ REFGUID Guid,UINT *pCount,D3DFORMAT **pFormats) PURE;
+ STDMETHOD_(HRESULT,GetDecoderConfigurations)(THIS_ REFGUID Guid,const DXVA2_VideoDesc *pVideoDesc,IUnknown *pReserved,UINT *pCount,DXVA2_ConfigPictureDecode **ppConfigs) PURE;
+ STDMETHOD_(HRESULT,CreateVideoDecoder)(THIS_ REFGUID Guid,const DXVA2_VideoDesc *pVideoDesc,DXVA2_ConfigPictureDecode *pConfig,IDirect3DSurface9 **ppDecoderRenderTargets,UINT NumSurfaces,IDirectXVideoDecoder **ppDecode) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IDirectXVideoDecoderService_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IDirectXVideoDecoderService_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IDirectXVideoDecoderService_Release(This) (This)->pVtbl->Release(This)
+#define IDirectXVideoDecoderService_CreateSurface(This,Width,Height,BackBuffers,Format,Pool,Usage,DxvaType,ppSurface,pSharedHandle) (This)->lpVtbl->CreateSurface(This,Width,Height,BackBuffers,Format,Pool,Usage,DxvaType,ppSurface,pSharedHandle)
+#define IDirectXVideoDecoderService_GetDecoderDeviceGuids(This,Count,pGuids) (This)->lpVtbl->GetDecoderDeviceGuids(This,Count,pGuids)
+#define IDirectXVideoDecoderService_GetDecoderRenderTargets(This,Guid,pCount,pFormats) (This)->lpVtbl->GetDecoderRenderTargets(This,Guid,pCount,pFormats)
+#define IDirectXVideoDecoderService_GetDecoderConfigurations(This,Guid,pVideoDesc,pReserved,pCount,ppConfigs) (This)->lpVtbl->GetDecoderConfigurations(This,Guid,pVideoDesc,pReserved,pCount,ppConfigs)
+#define IDirectXVideoDecoderService_CreateVideoDecoder(This,Guid,pVideoDesc,pConfig,ppDecoderRenderTargets,NumSurfaces,ppDecode) (This)->lpVtbl->CreateVideoDecoder(This,Guid,pVideoDesc,pConfig,ppDecoderRenderTargets,NumSurfaces,ppDecode)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IDirect3DDeviceManager9
+DECLARE_INTERFACE_(IDirect3DDeviceManager9,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IDirect3DDeviceManager9 methods */
+ STDMETHOD_(HRESULT,ResetDevice)(THIS_ IDirect3DDevice9 *pDevice,UINT resetToken) PURE;
+ STDMETHOD_(HRESULT,OpenDeviceHandle)(THIS_ HANDLE *phDevice) PURE;
+ STDMETHOD_(HRESULT,CloseDeviceHandle)(THIS_ HANDLE hDevice) PURE;
+ STDMETHOD_(HRESULT,TestDevice)(THIS_ HANDLE hDevice) PURE;
+ STDMETHOD_(HRESULT,LockDevice)(THIS_ HANDLE hDevice,IDirect3DDevice9 **ppDevice,WINBOOL fBlock) PURE;
+ STDMETHOD_(HRESULT,UnlockDevice)(THIS_ HANDLE hDevice,BOOL fSaveState) PURE;
+ STDMETHOD_(HRESULT,GetVideoService)(THIS_ HANDLE hDevice,REFIID riid,void **ppService) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IDirect3DDeviceManager9_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IDirect3DDeviceManager9_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IDirect3DDeviceManager9_Release(This) (This)->pVtbl->Release(This)
+#define IDirect3DDeviceManager9_ResetDevice(This,pDevice,resetToken) (This)->lpVtbl->ResetDevice(This,pDevice,resetToken)
+#define IDirect3DDeviceManager9_OpenDeviceHandle(This,phDevice) (This)->lpVtbl->OpenDeviceHandle(This,phDevice)
+#define IDirect3DDeviceManager9_CloseDeviceHandle(This,hDevice) (This)->lpVtbl->CloseDeviceHandle(This,hDevice)
+#define IDirect3DDeviceManager9_TestDevice(This,hDevice) (This)->lpVtbl->TestDevice(This,hDevice)
+#define IDirect3DDeviceManager9_LockDevice(This,hDevice,ppDevice,fBlock) (This)->lpVtbl->LockDevice(This,hDevice,ppDevice,fBlock)
+#define IDirect3DDeviceManager9_UnlockDevice(This,hDevice,fSaveState) (This)->lpVtbl->UnlockDevice(This,hDevice,fSaveState)
+#define IDirect3DDeviceManager9_GetVideoService(This,hDevice,riid,ppService) (This)->lpVtbl->GetVideoService(This,hDevice,riid,ppService)
+#endif /*COBJMACROS*/
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_DXVA2API*/
diff --git a/mingw-w64-headers/include/dxvahd.h b/mingw-w64-headers/include/dxvahd.h
new file mode 100644
index 0000000..6f96eef
--- /dev/null
+++ b/mingw-w64-headers/include/dxvahd.h
@@ -0,0 +1,450 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_DXAVHD
+#define _INC_DXAVHD
+#if (_WIN32_WINNT >= 0x0601)
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef CALLBACK
+#define CALLBACK __stdcall
+#endif
+
+typedef struct IDXVAHD_Device IDXVAHD_Device;
+typedef struct IDXVAHD_VideoProcessor IDXVAHD_VideoProcessor;
+
+ typedef enum _DXVAHD_ALPHA_FILL_MODE {
+ DXVAHD_ALPHA_FILL_MODE_OPAQUE = 0,
+ DXVAHD_ALPHA_FILL_MODE_BACKGROUND = 1,
+ DXVAHD_ALPHA_FILL_MODE_DESTINATION = 2,
+ DXVAHD_ALPHA_FILL_MODE_SOURCE_STREAM = 3
+ } DXVAHD_ALPHA_FILL_MODE;
+
+ typedef struct _DXVAHD_COLOR_YCbCrA {
+ FLOAT Y;
+ FLOAT Cb;
+ FLOAT Cr;
+ FLOAT A;
+ } DXVAHD_COLOR_YCbCrA;
+
+ typedef struct _DXVAHD_COLOR_RGBA {
+ FLOAT R;
+ FLOAT G;
+ FLOAT B;
+ FLOAT A;
+ } DXVAHD_COLOR_RGBA;
+
+ typedef union _DXVAHD_COLOR {
+ DXVAHD_COLOR_RGBA RGB;
+ DXVAHD_COLOR_YCbCrA YCbCr;
+ } DXVAHD_COLOR;
+
+ typedef struct _DXVAHD_BLT_STATE_BACKGROUND_COLOR_DATA {
+ WINBOOL YCbCr;
+ DXVAHD_COLOR BackgroundColor;
+ } DXVAHD_BLT_STATE_BACKGROUND_COLOR_DATA;
+
+typedef enum _DXVAHD_BLT_STATE {
+ DXVAHD_BLT_STATE_TARGET_RECT = 0,
+ DXVAHD_BLT_STATE_BACKGROUND_COLOR = 1,
+ DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE = 2,
+ DXVAHD_BLT_STATE_ALPHA_FILL = 3,
+ DXVAHD_BLT_STATE_CONSTRICTION = 4,
+ DXVAHD_BLT_STATE_PRIVATE = 1000
+} DXVAHD_BLT_STATE;
+
+typedef enum _DXVAHD_DEVICE_CAPS {
+ DXVAHD_DEVICE_CAPS_LINEAR_SPACE = 0x1,
+ DXVAHD_DEVICE_CAPS_xvYCC = 0x2,
+ DXVAHD_DEVICE_CAPS_RGB_RANGE_CONVERSION = 0x4,
+ DXVAHD_DEVICE_CAPS_YCbCr_MATRIX_CONVERSION = 0x8
+} DXVAHD_DEVICE_CAPS;
+
+typedef enum _DXVAHD_DEVICE_TYPE {
+ DXVAHD_DEVICE_TYPE_HARDWARE = 0,
+ DXVAHD_DEVICE_TYPE_SOFTWARE = 1,
+ DXVAHD_DEVICE_TYPE_REFERENCE = 2,
+ DXVAHD_DEVICE_TYPE_OTHER = 3
+} DXVAHD_DEVICE_TYPE;
+
+typedef enum _DXVAHD_DEVICE_USAGE {
+ DXVAHD_DEVICE_USAGE_PLAYBACK_NORMAL = 0,
+ DXVAHD_DEVICE_USAGE_OPTIMAL_SPEED = 1,
+ DXVAHD_DEVICE_USAGE_OPTIMAL_QUALITY = 2
+} DXVAHD_DEVICE_USAGE;
+
+
+typedef enum _DXVAHD_FEATURE_CAPS {
+ DXVAHD_FEATURE_CAPS_ALPHA_FILL = 0x1,
+ DXVAHD_FEATURE_CAPS_CONSTRICTION = 0x2,
+ DXVAHD_FEATURE_CAPS_LUMA_KEY = 0x4,
+ DXVAHD_FEATURE_CAPS_ALPHA_PALETTE = 0x8
+} DXVAHD_FEATURE_CAPS;
+
+typedef enum _DXVAHD_FILTER {
+ DXVAHD_FILTER_BRIGHTNESS = 0,
+ DXVAHD_FILTER_CONTRAST = 1,
+ DXVAHD_FILTER_HUE = 2,
+ DXVAHD_FILTER_SATURATION = 3,
+ DXVAHD_FILTER_NOISE_REDUCTION = 4,
+ DXVAHD_FILTER_EDGE_ENHANCEMENT = 5,
+ DXVAHD_FILTER_ANAMORPHIC_SCALING = 6
+} DXVAHD_FILTER;
+
+typedef enum _DXVAHD_FILTER_CAPS {
+ DXVAHD_FILTER_CAPS_BRIGHTNESS = 0x1,
+ DXVAHD_FILTER_CAPS_CONTRAST = 0x2,
+ DXVAHD_FILTER_CAPS_HUE = 0x4,
+ DXVAHD_FILTER_CAPS_SATURATION = 0x8,
+ DXVAHD_FILTER_CAPS_NOISE_REDUCTION = 0x10,
+ DXVAHD_FILTER_CAPS_EDGE_ENHANCEMENT = 0x20,
+ DXVAHD_FILTER_CAPS_ANAMORPHIC_SCALING = 0x40
+} DXVAHD_FILTER_CAPS;
+
+typedef enum _DXVAHD_FRAME_FORMAT {
+ DXVAHD_FRAME_FORMAT_PROGRESSIVE = 0,
+ DXVAHD_FRAME_FORMAT_INTERLACED_TOP_FIELD_FIRST = 1,
+ DXVAHD_FRAME_FORMAT_INTERLACED_BOTTOM_FIELD_FIRST = 2
+} DXVAHD_FRAME_FORMAT;
+
+typedef enum _DXVAHD_INPUT_FORMAT_CAPS {
+ DXVAHD_INPUT_FORMAT_CAPS_RGB_INTERLACED = 0x1,
+ DXVAHD_INPUT_FORMAT_CAPS_RGB_PROCAMP = 0x2,
+ DXVAHD_INPUT_FORMAT_CAPS_RGB_LUMA_KEY = 0x4,
+ DXVAHD_INPUT_FORMAT_CAPS_PALETTE_INTERLACED = 0x8
+} DXVAHD_INPUT_FORMAT_CAPS;
+
+typedef enum _DXVAHD_ITELECINE_CAPS {
+ DXVAHD_ITELECINE_CAPS_32 = 0x1,
+ DXVAHD_ITELECINE_CAPS_22 = 0x2,
+ DXVAHD_ITELECINE_CAPS_2224 = 0x4,
+ DXVAHD_ITELECINE_CAPS_2332 = 0x8,
+ DXVAHD_ITELECINE_CAPS_32322 = 0x10,
+ DXVAHD_ITELECINE_CAPS_55 = 0x20,
+ DXVAHD_ITELECINE_CAPS_64 = 0x40,
+ DXVAHD_ITELECINE_CAPS_87 = 0x80,
+ DXVAHD_ITELECINE_CAPS_222222222223 = 0x100,
+ DXVAHD_ITELECINE_CAPS_OTHER = 0x80000000
+} DXVAHD_ITELECINE_CAPS;
+
+typedef enum _DXVAHD_OUTPUT_RATE {
+ DXVAHD_OUTPUT_RATE_NORMAL = 0,
+ DXVAHD_OUTPUT_RATE_HALF = 1,
+ DXVAHD_OUTPUT_RATE_CUSTOM = 2
+} DXVAHD_OUTPUT_RATE;
+
+typedef enum _DXVAHD_PROCESSOR_CAPS {
+ DXVAHD_PROCESSOR_CAPS_DEINTERLACE_BLEND = 0x1,
+ DXVAHD_PROCESSOR_CAPS_DEINTERLACE_BOB = 0x2,
+ DXVAHD_PROCESSOR_CAPS_DEINTERLACE_ADAPTIVE = 0x4,
+ DXVAHD_PROCESSOR_CAPS_DEINTERLACE_MOTION_COMPENSATION = 0x8,
+ DXVAHD_PROCESSOR_CAPS_INVERSE_TELECINE = 0x10,
+ DXVAHD_PROCESSOR_CAPS_FRAME_RATE_CONVERSION = 0x20
+} DXVAHD_PROCESSOR_CAPS;
+
+typedef enum _DXVAHD_STREAM_STATE {
+ DXVAHD_STREAM_STATE_D3DFORMAT = 0,
+ DXVAHD_STREAM_STATE_FRAME_FORMAT = 1,
+ DXVAHD_STREAM_STATE_INPUT_COLOR_SPACE = 2,
+ DXVAHD_STREAM_STATE_OUTPUT_RATE = 3,
+ DXVAHD_STREAM_STATE_SOURCE_RECT = 4,
+ DXVAHD_STREAM_STATE_DESTINATION_RECT = 5,
+ DXVAHD_STREAM_STATE_ALPHA = 6,
+ DXVAHD_STREAM_STATE_PALETTE = 7,
+ DXVAHD_STREAM_STATE_LUMA_KEY = 8,
+ DXVAHD_STREAM_STATE_ASPECT_RATIO = 9,
+ DXVAHD_STREAM_STATE_FILTER_BRIGHTNESS = 100,
+ DXVAHD_STREAM_STATE_FILTER_CONTRAST = 101,
+ DXVAHD_STREAM_STATE_FILTER_HUE = 102,
+ DXVAHD_STREAM_STATE_FILTER_SATURATION = 103,
+ DXVAHD_STREAM_STATE_FILTER_NOISE_REDUCTION = 104,
+ DXVAHD_STREAM_STATE_FILTER_EDGE_ENHANCEMENT = 105,
+ DXVAHD_STREAM_STATE_FILTER_ANAMORPHIC_SCALING = 106,
+ DXVAHD_STREAM_STATE_PRIVATE = 1000
+} DXVAHD_STREAM_STATE;
+
+typedef enum _DXVAHD_SURFACE_TYPE {
+ DXVAHD_SURFACE_TYPE_VIDEO_INPUT = 0,
+ DXVAHD_SURFACE_TYPE_VIDEO_INPUT_PRIVATE = 1,
+ DXVAHD_SURFACE_TYPE_VIDEO_OUTPUT = 2
+} DXVAHD_SURFACE_TYPE;
+
+typedef struct _DXVAHD_VPDEVCAPS {
+ DXVAHD_DEVICE_TYPE DeviceType;
+ UINT DeviceCaps;
+ UINT FeatureCaps;
+ UINT FilterCaps;
+ UINT InputFormatCaps;
+ D3DPOOL InputPool;
+ UINT OutputFormatCount;
+ UINT InputFormatCount;
+ UINT VideoProcessorCount;
+ UINT MaxInputStreams;
+ UINT MaxStreamStates;
+} DXVAHD_VPDEVCAPS;
+
+typedef struct _DXVAHD_BLT_STATE_ALPHA_FILL_DATA {
+ DXVAHD_ALPHA_FILL_MODE Mode;
+ UINT StreamNumber;
+} DXVAHD_BLT_STATE_ALPHA_FILL_DATA;
+
+typedef struct _DXVAHD_BLT_STATE_CONSTRICTION_DATA {
+ WINBOOL Enable;
+ SIZE Size;
+} DXVAHD_BLT_STATE_CONSTRICTION_DATA;
+
+typedef struct _DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE_DATA {
+ UINT Usage :1;
+ UINT RGB_Range :1;
+ UINT YCbCr_Matrix :1;
+ UINT YCbCr_xvYCC :1;
+} DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE_DATA;
+
+typedef struct _DXVAHD_BLT_STATE_PRIVATE_DATA {
+ GUID Guid;
+ UINT DataSize;
+ void *pData;
+} DXVAHD_BLT_STATE_PRIVATE_DATA;
+
+typedef struct _DXVAHD_BLT_STATE_TARGET_RECT_DATA {
+ WINBOOL Enable;
+ RECT TargetRect;
+} DXVAHD_BLT_STATE_TARGET_RECT_DATA;
+
+typedef struct _DXVAHD_RATIONAL {
+ UINT Numerator;
+ UINT Denominator;
+} DXVAHD_RATIONAL;
+
+typedef struct _DXVAHD_CONTENT_DESC {
+ DXVAHD_FRAME_FORMAT InputFrameFormat;
+ DXVAHD_RATIONAL InputFrameRate;
+ UINT InputWidth;
+ UINT InputHeight;
+ DXVAHD_RATIONAL OutputFrameRate;
+ UINT OutputWidth;
+ UINT OutputHeight;
+} DXVAHD_CONTENT_DESC;
+
+typedef struct _DXVAHD_CUSTOM_RATE_DATA {
+ DXVAHD_RATIONAL CustomRate;
+ UINT OutputFrames;
+ WINBOOL InputInterlaced;
+ UINT InputFramesOrFields;
+} DXVAHD_CUSTOM_RATE_DATA;
+
+typedef struct _DXVAHD_FILTER_RANGE_DATA {
+ INT Minimum;
+ INT Maximum;
+ INT Default;
+ FLOAT Multiplier;
+} DXVAHD_FILTER_RANGE_DATA;
+
+typedef struct _DXVAHD_STREAM_DATA {
+ WINBOOL Enable;
+ UINT OutputIndex;
+ UINT InputFrameOrField;
+ UINT PastFrames;
+ UINT FutureFrames;
+ IDirect3DSurface9 **ppPastSurfaces;
+ IDirect3DSurface9 *pInputSurface;
+ IDirect3DSurface9 **ppFutureSurfaces;
+} DXVAHD_STREAM_DATA;
+
+typedef struct _DXVAHD_VPCAPS {
+ GUID VPGuid;
+ UINT PastFrames;
+ UINT FutureFrames;
+ UINT ProcessorCaps;
+ UINT ITelecineCaps;
+ UINT CustomRateCount;
+} DXVAHD_VPCAPS;
+
+typedef struct _DXVAHD_STREAM_STATE_ALPHA_DATA {
+ WINBOOL Enable;
+ FLOAT Alpha;
+} DXVAHD_STREAM_STATE_ALPHA_DATA;
+
+typedef struct _DXVAHD_STREAM_STATE_ASPECT_RATIO_DATA {
+ WINBOOL Enable;
+ DXVAHD_RATIONAL SourceAspectRatio;
+ DXVAHD_RATIONAL DestinationAspectRatio;
+} DXVAHD_STREAM_STATE_ASPECT_RATIO_DATA, *PDXVAHD_STREAM_STATE_ASPECT_RATIO_DATA;
+
+typedef struct _DXVAHD_STREAM_STATE_D3DFORMAT_DATA {
+ D3DFORMAT Format;
+} DXVAHD_STREAM_STATE_D3DFORMAT_DATA;
+
+typedef struct _DXVAHD_STREAM_STATE_DESTINATION_RECT_DATA {
+ WINBOOL Enable;
+ RECT DestinationRect;
+} DXVAHD_STREAM_STATE_DESTINATION_RECT_DATA;
+
+typedef struct _DXVAHD_STREAM_STATE_FILTER_DATA {
+ WINBOOL Enable;
+ INT Level;
+} DXVAHD_STREAM_STATE_FILTER_DATA;
+
+typedef struct _DXVAHD_STREAM_STATE_FRAME_FORMAT_DATA {
+ DXVAHD_FRAME_FORMAT FrameFormat;
+} DXVAHD_STREAM_STATE_FRAME_FORMAT_DATA;
+
+typedef struct _DXVAHD_STREAM_STATE_INPUT_COLOR_SPACE_DATA {
+ UINT Type :1;
+ UINT RGB_Range :1;
+ UINT YCbCr_Matrix :1;
+ UINT YCbCr_xvYCC :1;
+} DXVAHD_STREAM_STATE_INPUT_COLOR_SPACE_DATA;
+
+typedef struct _DXVAHD_STREAM_STATE_LUMA_KEY_DATA {
+ WINBOOL Enable;
+ FLOAT Lower;
+ FLOAT Upper;
+} DXVAHD_STREAM_STATE_LUMA_KEY_DATA;
+
+typedef struct _DXVAHD_STREAM_STATE_OUTPUT_RATE_DATA {
+ WINBOOL RepeatFrame;
+ DXVAHD_OUTPUT_RATE OutputRate;
+ DXVAHD_RATIONAL CustomRate;
+} DXVAHD_STREAM_STATE_OUTPUT_RATE_DATA;
+
+typedef struct _DXVAHD_STREAM_STATE_SOURCE_RECT_DATA {
+ WINBOOL Enable;
+ RECT SourceRect;
+} DXVAHD_STREAM_STATE_SOURCE_RECT_DATA;
+
+typedef struct _DXVAHD_STREAM_STATE_PRIVATE_IVTC_DATA {
+ WINBOOL Enable;
+ UINT ITelecineFlags;
+ UINT Frames;
+ UINT InputField;
+} DXVAHD_STREAM_STATE_PRIVATE_IVTC_DATA;
+
+typedef struct _DXVAHD_STREAM_STATE_PRIVATE_DATA {
+ GUID Guid;
+ UINT DataSize;
+ void *pData;
+} DXVAHD_STREAM_STATE_PRIVATE_DATA;
+
+typedef struct _DXVAHD_STREAM_STATE_PALETTE_DATA {
+ UINT Count;
+ D3DCOLOR *pEntries;
+} DXVAHD_STREAM_STATE_PALETTE_DATA;
+
+typedef HRESULT ( CALLBACK *PDXVAHDSW_CreateDevice )(IDirect3DDevice9Ex *pD3DDevice,HANDLE *phDevice);
+typedef HRESULT ( CALLBACK *PDXVAHDSW_ProposeVideoPrivateFormat )(HANDLE hDevice,D3DFORMAT *pFormat);
+typedef HRESULT ( CALLBACK *PDXVAHDSW_GetVideoProcessorDeviceCaps )(HANDLE hDevice,const DXVAHD_CONTENT_DESC *pContentDesc,DXVAHD_DEVICE_USAGE Usage,DXVAHD_VPDEVCAPS *pCaps);
+typedef HRESULT ( CALLBACK *PDXVAHDSW_GetVideoProcessorOutputFormats )(HANDLE hDevice,const DXVAHD_CONTENT_DESC *pContentDesc,DXVAHD_DEVICE_USAGE Usage,UINT Count,D3DFORMAT *pFormats);
+typedef HRESULT ( CALLBACK *PDXVAHDSW_GetVideoProcessorInputFormats )(HANDLE hDevice,const DXVAHD_CONTENT_DESC *pContentDesc,DXVAHD_DEVICE_USAGE Usage,UINT Count,D3DFORMAT *pFormats);
+typedef HRESULT ( CALLBACK *PDXVAHDSW_GetVideoProcessorCaps )(HANDLE hDevice,const DXVAHD_CONTENT_DESC *pContentDesc,DXVAHD_DEVICE_USAGE Usage,UINT Count,DXVAHD_VPCAPS *pCaps);
+typedef HRESULT ( CALLBACK *PDXVAHDSW_GetVideoProcessorCustomRates )(HANDLE hDevice,const GUID *pVPGuid,UINT Count,DXVAHD_CUSTOM_RATE_DATA *pRates);
+typedef HRESULT ( CALLBACK *PDXVAHDSW_SetVideoProcessBltState )(HANDLE hVideoProcessor,DXVAHD_BLT_STATE State,UINT DataSize,const void *pData);
+typedef HRESULT ( CALLBACK *PDXVAHDSW_CreateVideoProcessor )(HANDLE hDevice,const GUID *pVPGuid,HANDLE *phVideoProcessor);
+typedef HRESULT ( CALLBACK *PDXVAHDSW_DestroyDevice )(HANDLE hDevice);
+typedef HRESULT ( CALLBACK *PDXVAHDSW_GetVideoProcessorFilterRange )(HANDLE hDevice,DXVAHD_FILTER Filter,DXVAHD_FILTER_RANGE_DATA *pRange);
+typedef HRESULT ( CALLBACK *PDXVAHDSW_DestroyVideoProcessor )(HANDLE hVideoProcessor);
+typedef HRESULT ( CALLBACK *PDXVAHDSW_VideoProcessBltHD )(HANDLE hVideoProcessor,IDirect3DSurface9 *pOutputSurface,UINT OutputFrame,UINT StreamCount,const DXVAHD_STREAM_DATA *pStreams);
+typedef HRESULT ( CALLBACK *PDXVAHDSW_GetVideoProcessStreamStatePrivate )(HANDLE hVideoProcessor,UINT StreamNumber,DXVAHD_STREAM_STATE_PRIVATE_DATA *pData);
+typedef HRESULT ( CALLBACK *PDXVAHDSW_SetVideoProcessStreamState )(HANDLE hVideoProcessor,UINT StreamNumber,DXVAHD_STREAM_STATE State,UINT DataSize,const void *pData);
+typedef HRESULT ( CALLBACK *PDXVAHDSW_GetVideoProcessBltStatePrivate )(HANDLE hVideoProcessor,DXVAHD_BLT_STATE_PRIVATE_DATA *pData);
+typedef HRESULT ( CALLBACK *PDXVAHDSW_Plugin )(UINT Size,void *pCallbacks);
+
+typedef struct _DXVAHDSW_CALLBACKS {
+ PDXVAHDSW_CreateDevice CreateDevice;
+ PDXVAHDSW_ProposeVideoPrivateFormat ProposeVideoPrivateFormat;
+ PDXVAHDSW_GetVideoProcessorDeviceCaps GetVideoProcessorDeviceCaps;
+ PDXVAHDSW_GetVideoProcessorOutputFormats GetVideoProcessorOutputFormats;
+ PDXVAHDSW_GetVideoProcessorInputFormats GetVideoProcessorInputFormats;
+ PDXVAHDSW_GetVideoProcessorCaps GetVideoProcessorCaps;
+ PDXVAHDSW_GetVideoProcessorCustomRates GetVideoProcessorCustomRates;
+ PDXVAHDSW_GetVideoProcessorFilterRange GetVideoProcessorFilterRange;
+ PDXVAHDSW_DestroyDevice DestroyDevice;
+ PDXVAHDSW_CreateVideoProcessor CreateVideoProcessor;
+ PDXVAHDSW_SetVideoProcessBltState SetVideoProcessBltState;
+ PDXVAHDSW_GetVideoProcessBltStatePrivate GetVideoProcessBltStatePrivate;
+ PDXVAHDSW_SetVideoProcessStreamState SetVideoProcessStreamState;
+ PDXVAHDSW_GetVideoProcessStreamStatePrivate GetVideoProcessStreamStatePrivate;
+ PDXVAHDSW_VideoProcessBltHD VideoProcessBltHD;
+ PDXVAHDSW_DestroyVideoProcessor DestroyVideoProcessor;
+} DXVAHDSW_CALLBACKS;
+
+HRESULT DXVAHD_CreateDevice(IDirect3DDevice9Ex *pD3DDevice,const DXVAHD_CONTENT_DESC *pContentDesc,DXVAHD_DEVICE_USAGE Usage,PDXVAHDSW_Plugin pPlugin,IDXVAHD_Device **ppDevice);
+
+#ifdef __cplusplus
+}
+#endif
+
+#undef INTERFACE
+#define INTERFACE IDXVAHD_Device
+DECLARE_INTERFACE_(IDXVAHD_Device,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IDXVAHD_Device methods */
+ STDMETHOD_(HRESULT,CreateVideoProcessor)(THIS_ const GUID *pVPGuid,IDXVAHD_VideoProcessor **ppVideoProcessor) PURE;
+ STDMETHOD_(HRESULT,CreateVideoSurface)(THIS_ UINT Width,UINT Height,D3DFORMAT Format,D3DPOOL Pool,DWORD Usage,DXVAHD_SURFACE_TYPE Type,UINT NumSurfaces,IDirect3DSurface9 **ppSurfaces,HANDLE *pSharedHandle) PURE;
+ STDMETHOD_(HRESULT,GetVideoProcessorCaps)(THIS_ UINT Count,DXVAHD_VPCAPS *pCaps) PURE;
+ STDMETHOD_(HRESULT,GetVideoProcessorCustomRates)(THIS_ const GUID *pVPGuid,UINT Count,DXVAHD_CUSTOM_RATE_DATA *pRates) PURE;
+ STDMETHOD_(HRESULT,GetVideoProcessorDeviceCaps)(THIS_ DXVAHD_VPDEVCAPS *pCaps) PURE;
+ STDMETHOD_(HRESULT,GetVideoProcessorFilterRange)(THIS_ DXVAHD_FILTER Filter,DXVAHD_FILTER_RANGE_DATA *pRange) PURE;
+ STDMETHOD_(HRESULT,GetVideoProcessorInputFormats)(THIS_ UINT Count,D3DFORMAT *pFormats) PURE;
+ STDMETHOD_(HRESULT,GetVideoProcessorOutputFormats)(THIS_ UINT Count,D3DFORMAT *pFormats) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IDXVAHD_Device_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IDXVAHD_Device_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IDXVAHD_Device_Release(This) (This)->pVtbl->Release(This)
+#define IDXVAHD_Device_CreateVideoProcessor(This,pVPGuid,ppVideoProcessor) (This)->lpVtbl->CreateVideoProcessor(This,pVPGuid,ppVideoProcessor)
+#define IDXVAHD_Device_CreateVideoSurface(This,Width,Height,Format,Pool,Usage,Type,NumSurfaces,ppSurfaces,pSharedHandle) (This)->lpVtbl->CreateVideoSurface(This,Width,Height,Format,Pool,Usage,Type,NumSurfaces,ppSurfaces,pSharedHandle)
+#define IDXVAHD_Device_GetVideoProcessorCaps(This,Count,pCaps) (This)->lpVtbl->GetVideoProcessorCaps(This,Count,pCaps)
+#define IDXVAHD_Device_GetVideoProcessorCustomRates(This,pVPGuid,Count,pRates) (This)->lpVtbl->GetVideoProcessorCustomRates(This,pVPGuid,Count,pRates)
+#define IDXVAHD_Device_GetVideoProcessorDeviceCaps(This,pCaps) (This)->lpVtbl->GetVideoProcessorDeviceCaps(This,pCaps)
+#define IDXVAHD_Device_GetVideoProcessorFilterRange(This,Filter,pRange) (This)->lpVtbl->GetVideoProcessorFilterRange(This,Filter,pRange)
+#define IDXVAHD_Device_GetVideoProcessorInputFormats(This,Count,pFormats) (This)->lpVtbl->GetVideoProcessorInputFormats(This,Count,pFormats)
+#define IDXVAHD_Device_GetVideoProcessorOutputFormats(This,Count,pFormats) (This)->lpVtbl->GetVideoProcessorOutputFormats(This,Count,pFormats)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IDXVAHD_VideoProcessor
+DECLARE_INTERFACE_(IDXVAHD_VideoProcessor,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IDXVAHD_VideoProcessor methods */
+ STDMETHOD_(HRESULT,GetVideoProcessBltState)(THIS_ DXVAHD_BLT_STATE State,UINT DataSize,void *pData) PURE;
+ STDMETHOD_(HRESULT,GetVideoProcessStreamState)(THIS_ UINT StreamNumber,DXVAHD_STREAM_STATE State,UINT DataSize,void *pData) PURE;
+ STDMETHOD_(HRESULT,SetVideoProcessBltState)(THIS_ DXVAHD_BLT_STATE State,UINT DataSize,const void *pData) PURE;
+ STDMETHOD_(HRESULT,SetVideoProcessStreamState)(THIS_ UINT StreamNumber,DXVAHD_STREAM_STATE State,UINT DataSize,const void *pData) PURE;
+ STDMETHOD_(HRESULT,VideoProcessBltHD)(THIS_ IDirect3DSurface9 *pOutputSurface,UINT OutputFrame,UINT StreamCount,const DXVAHD_STREAM_DATA *pStreams) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IDXVAHD_VideoProcessor_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IDXVAHD_VideoProcessor_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IDXVAHD_VideoProcessor_Release(This) (This)->pVtbl->Release(This)
+#define IDXVAHD_VideoProcessor_GetVideoProcessBltState(This,State,DataSize,pData) (This)->lpVtbl->GetVideoProcessBltState(This,State,DataSize,pData)
+#define IDXVAHD_VideoProcessor_GetVideoProcessStreamState(This,StreamNumber,State,DataSize,pData) (This)->lpVtbl->GetVideoProcessStreamState(This,StreamNumber,State,DataSize,pData)
+#define IDXVAHD_VideoProcessor_SetVideoProcessBltState(This,State,DataSize,pData) (This)->lpVtbl->SetVideoProcessBltState(This,State,DataSize,pData)
+#define IDXVAHD_VideoProcessor_SetVideoProcessStreamState(This,StreamNumber,State,DataSize,pData) (This)->lpVtbl->SetVideoProcessStreamState(This,StreamNumber,State,DataSize,pData)
+#define IDXVAHD_VideoProcessor_VideoProcessBltHD(This,pOutputSurface,OutputFrame,StreamCount,pStreams) (This)->lpVtbl->VideoProcessBltHD(This,pOutputSurface,OutputFrame,StreamCount,pStreams)
+#endif /*COBJMACROS*/
+
+#endif /*(_WIN32_WINNT >= 0x0601)*/
+#endif /*_INC_DXAVHD*/
diff --git a/mingw-w64-headers/include/eapauthenticatoractiondefine.h b/mingw-w64-headers/include/eapauthenticatoractiondefine.h
new file mode 100644
index 0000000..e88c555
--- /dev/null
+++ b/mingw-w64-headers/include/eapauthenticatoractiondefine.h
@@ -0,0 +1,53 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_EAPAUTHENTICATORACTIONDEFINE
+#define _INC_EAPAUTHENTICATORACTIONDEFINE
+#if (_WIN32_WINNT >= 0x0600)
+#include <eaptypes.h>
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum _EAP_METHOD_AUTHENTICATOR_RESPONSE_ACTION {
+ EAP_METHOD_AUTHENTICATOR_RESPONSE_DISCARD = 0,
+ EAP_METHOD_AUTHENTICATOR_RESPONSE_SEND = 1,
+ EAP_METHOD_AUTHENTICATOR_RESPONSE_RESULT = 2,
+ EAP_METHOD_AUTHENTICATOR_RESPONSE_RESPOND = 3,
+ EAP_METHOD_AUTHENTICATOR_RESPONSE_AUTHENTICATE = 4,
+ EAP_METHOD_AUTHENTICATOR_RESPONSE_HANDLE_IDENTITY = 5
+} EAP_METHOD_AUTHENTICATOR_RESPONSE_ACTION;
+
+typedef enum _EapPeerMethodResponseAction {
+ EapPeerMethodResponseActionDiscard = 0,
+ EapPeerMethodResponseActionSend = 1,
+ EapPeerMethodResponseActionResult = 2,
+ EapPeerMethodResponseActionInvokeUI = 3,
+ EapPeerMethodResponseActionRespond = 4,
+ EapPeerMethodResponseActionNone = 5
+} EapPeerMethodResponseAction;
+
+typedef enum {
+ EapPeerMethodResultUnknown = 1,
+ EapPeerMethodResultSuccess = 2,
+ EapPeerMethodResultFailure = 3
+} EapPeerMethodResultReason;
+
+typedef struct _EAP_METHOD_AUTHENTICATOR_RESULT {
+ BOOL fIsSuccess;
+ DWORD dwFailureReason;
+ EAP_ATTRIBUTES *pAuthAttribs;
+} EAP_METHOD_AUTHENTICATOR_RESULT;
+
+typedef struct tagEapPeerMethodOutput {
+ EapPeerMethodResponseAction action;
+ WINBOOL fAllowNotifications;
+} EapPeerMethodOutput;
+
+#ifdef __cplusplus
+}
+#endif
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_EAPAUTHENTICATORACTIONDEFINE*/
diff --git a/mingw-w64-headers/include/eapauthenticatortypes.h b/mingw-w64-headers/include/eapauthenticatortypes.h
new file mode 100644
index 0000000..6434580
--- /dev/null
+++ b/mingw-w64-headers/include/eapauthenticatortypes.h
@@ -0,0 +1,18 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_EAPAUTHENTICATORTYPES
+#define _INC_EAPAUTHENTICATORTYPES
+#if (_WIN32_WINNT >= 0x0600)
+#include <eaptypes.h>
+
+typedef enum _EAP_AUTHENTICATOR_SEND_TIMEOUT {
+ EAP_AUTHENTICATOR_SEND_TIMEOUT_NONE = 0,
+ EAP_AUTHENTICATOR_SEND_TIMEOUT_BASIC = 1,
+ EAP_AUTHENTICATOR_SEND_TIMEOUT_INTERACTIVE = 2
+} EAP_AUTHENTICATOR_SEND_TIMEOUT;
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_EAPAUTHENTICATORTYPES*/
diff --git a/mingw-w64-headers/include/eaphosterror.h b/mingw-w64-headers/include/eaphosterror.h
new file mode 100644
index 0000000..ab14c07
--- /dev/null
+++ b/mingw-w64-headers/include/eaphosterror.h
@@ -0,0 +1,86 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_HOSTERROR
+#define _INC_HOSTERROR
+#if (_WIN32_WINNT >= 0x0600)
+
+#define _EAP_CERT_FIRST 0x0
+#define _EAP_CERT_LAST 0xf
+#define _EAP_CERT_NOT_FOUND 0x1
+#define _EAP_CERT_INVALID 0x2
+#define _EAP_CERT_EXPIRED 0x3
+#define _EAP_CERT_REVOKED 0x4
+#define _EAP_CERT_OTHER_ERROR 0x5
+#define _EAP_CERT_REJECTED 0x6
+#define _EAP_CERT_NAME_REQUIRED 0x7
+#define _EAP_GENERAL_FIRST 0x10
+#define _EAP_GENERAL_LAST 0x3f
+
+#define EAP_E_EAPHOST_FIRST 0x80420000L
+#define EAP_E_EAPHOST_LAST 0x804200FFL
+#define EAP_I_EAPHOST_FIRST 0x80420000L
+#define EAP_I_EAPHOST_FIRST 0x804200FFL
+
+#define EAP_E_CERT_STORE_INACCESSIBLE 0x80420011
+#define EAP_E_EAPHOST_METHOD_NOT_INSTALLED 0x80420011
+#define EAP_E_EAPHOST_THIRDPARTY_METHOD_HOST_RESET 0x80420012
+#define EAP_E_EAPHOST_EAPQEC_INACCESSIBLE 0x80420013
+#define EAP_E_EAPHOST_IDENTITY_UNKNOWN 0x80420014
+#define EAP_E_AUTHENTICATION_FAILED 0x80420015
+#define EAP_I_EAPHOST_EAP_NEGOTIATION_FAILED 0x40420016
+#define EAP_E_EAPHOST_METHOD_INVALID_PACKET 0x40420017
+#define EAP_E_EAPHOST_REMOTE_INVALID_PACKET 0x40420018
+#define EAP_E_EAPHOST_XML_MALFORMED 0x40420019
+
+#if (_WIN32_WINNT >= 0x0601)
+#define EAP_E_METHOD_CONFIG_DOES_NOT_SUPPORT_SSO 0x4042001A
+#endif /*(_WIN32_WINNT >= 0x0601)*/
+
+#define EAP_E_EAPHOST_METHOD_OPERATION_NOT_SUPPORTED 0x80420020
+
+#define EAP_E_USER_FIRST 0x80420100L
+#define EAP_E_USER_LAST 0x804201FFL
+#define EAP_I_USER_FIRST 0x40420100L
+#define EAP_I_USER_LAST 0x804201FFL
+
+#define EAP_E_USER_CERT_NOT_FOUND 0x80420100
+#define EAP_E_USER_CERT_INVALID 0x80420101
+#define EAP_E_USER_CERT_EXPIRED 0x80420102
+#define EAP_E_USER_CERT_REVOKED 0x80420103
+#define EAP_E_USER_CERT_OTHER_ERROR 0x80420104
+#define EAP_E_USER_CERT_REJECTED 0x80420105
+#define EAP_I_USER_ACCOUNT_OTHER_ERROR 0x40420110
+#define EAP_E_USER_CREDENTIALS_REJECTED 0x40420111
+
+#if (_WIN32_WINNT >= 0x0601)
+#define EAP_E_USER_NAME_PASSWORD_REJECTED 0x40420112
+#define EAP_E_NO_SMART_CARD_READER 0x80420113
+#endif /*(_WIN32_WINNT >= 0x0601)*/
+
+#define EAP_E_SERVER_FIRST 0x80420200L
+#define EAP_E_SERVER_LAST 0x804202FFL
+
+#define EAP_E_SERVER_CERT_NOT_FOUND 0x80420200
+#define EAP_E_SERVER_CERT_INVALID 0x80420201
+#define EAP_E_SERVER_CERT_EXPIRED 0x80420202
+#define EAP_E_SERVER_CERT_REVOKED 0x80420203
+#define EAP_E_SERVER_CERT_OTHER_ERROR 0x80420204
+
+#define EAP_E_USER_ROOT_CERT_FIRST 0x80420300L
+#define EAP_E_USER_ROOT_CERT_LAST 0x804203FFL
+#define EAP_E_USER_ROOT_CERT_NOT_FOUND 0x80420300
+#define EAP_E_USER_ROOT_CERT_INVALID 0x80420301
+#define EAP_E_USER_ROOT_CERT_EXPIRED 0x80420302
+
+#define EAP_E_SERVER_ROOT_CERT_FIRST 0x80420400L
+#define EAP_E_SERVER_ROOT_CERT_LAST 0x804204FFL
+
+#define EAP_E_SERVER_ROOT_CERT_NOT_FOUND 0x80420400
+#define EAP_E_SERVER_ROOT_CERT_INVALID 0x80420401
+#define EAP_E_SERVER_ROOT_CERT_NAME_REQUIRED 0x80420406
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_HOSTERROR*/
diff --git a/mingw-w64-headers/include/eaphostpeerconfigapis.h b/mingw-w64-headers/include/eaphostpeerconfigapis.h
new file mode 100644
index 0000000..51d969d
--- /dev/null
+++ b/mingw-w64-headers/include/eaphostpeerconfigapis.h
@@ -0,0 +1,140 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_EAPHOSTPEERCONFIGAPIS
+#define _INC_EAPHOSTPEERCONFIGAPIS
+#if (_WIN32_WINNT >= 0x0600)
+#include <eaptypes.h>
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+DWORD WINAPI EapHostPeerQueryUserBlobFromCredentialInputFields(
+ HANDLE hUserImpersonationToken,
+ EAP_METHOD_TYPE eapMethodType,
+ DWORD dwFlags,
+ DWORD dwEapConnDataSize,
+ const BYTE *pbEapConnData,
+ const EAP_CONFIG_INPUT_FIELD_ARRAY *pEapConfigInputFieldArray,
+ DWORD *pdwUserBlobSize,
+ BYTE **ppbUserBlob,
+ EAP_ERROR **pEapError
+);
+
+VOID WINAPI EapHostPeerFreeErrorMemory(
+ EAP_ERROR *pEapError
+);
+
+DWORD WINAPI EapHostPeerConfigBlob2Xml(
+ DWORD dwFlags,
+ EAP_METHOD_TYPE eapMethodType,
+ DWORD dwSizeOfConfigIn,
+ BYTE *pConfigIn,
+ IXMLDOMDocument2 **ppConfigDoc,
+ EAP_ERROR **ppEapError
+);
+
+DWORD WINAPI EapHostPeerInvokeInteractiveUI(
+ HWND hwndParent,
+ DWORD dwSizeofUIContextData,
+ const BYTE *pUIContextData,
+ DWORD *pdwSizeofDataFromInteractiveUI,
+ BYTE **ppDataFromInteractiveUI,
+ EAP_ERROR **ppEapError
+);
+
+DWORD WINAPI EapHostPeerQueryInteractiveUIInputFields(
+ DWORD dwVersion,
+ DWORD dwFlags,
+ DWORD dwSizeofUIContextData,
+ const BYTE *pUIContextData,
+ EAP_INTERACTIVE_UI_DATA *pEapInteractiveUIData,
+ EAP_ERROR **ppEapError,
+ LPVOID *ppvReserved
+);
+
+DWORD WINAPI EapHostPeerQueryUIBlobFromInteractiveUIInputFields(
+ DWORD dwVersion,
+ DWORD dwFlags,
+ DWORD dwSizeofUIContextData,
+ const BYTE *pUIContextData,
+ const EAP_INTERACTIVE_UI_DATA *pEapInteractiveUIData,
+ DWORD *pdwSizeOfDataFromInteractiveUI,
+ BYTE **ppDataFromInteractiveUI,
+ EAP_ERROR **ppEapError,
+ LPVOID *ppvReserved
+);
+
+DWORD WINAPI EapHostPeerConfigXml2Blob(
+ DWORD dwFlags,
+ IXMLDOMNode *pConfigDoc,
+ DWORD *pdwSizeOfConfigOut,
+ BYTE **ppConfigOut,
+ EAP_METHOD_TYPE *pEapMethodType,
+ EAP_ERROR **ppEapError
+);
+
+DWORD WINAPI EapHostPeerCredentialsXml2Blob(
+ DWORD dwFlags,
+ IXMLDOMNode *pCredentialsDoc,
+ DWORD dwSizeOfConfigIn,
+ BYTE *pConfigIn,
+ DWORD *pdwSizeofCredentialsOut,
+ BYTE **ppCredentialsOut,
+ EAP_METHOD_TYPE *pEapMethodType,
+ EAP_ERROR **ppEapError
+);
+
+DWORD WINAPI EapHostPeerInvokeConfigUI(
+ HWND hwndParent,
+ DWORD dwFlags,
+ EAP_METHOD_TYPE eapMethodType,
+ DWORD dwSizeOfConfigIn,
+ const BYTE *pConfigIn,
+ DWORD *pdwSizeOfConfigOut,
+ BYTE **ppConfigOut,
+ EAP_ERROR **pEapError
+);
+
+VOID WINAPI EapHostPeerFreeMemory(
+ BYTE *pData
+);
+
+DWORD WINAPI EapHostPeerQueryCredentialInputFields(
+ HANDLE hUserImpersonationToken,
+ EAP_METHOD_TYPE eapMethodType,
+ DWORD dwFlags,
+ DWORD dwEapConnDataSize,
+ const BYTE *pbEapConnData,
+ EAP_CONFIG_INPUT_FIELD_ARRAY *pEapConfigInputFieldArray,
+ EAP_ERROR **pEapError
+);
+
+DWORD WINAPI EapHostPeerGetMethods(
+ EAP_METHOD_INFO_ARRAY *pEapMethodInfoArray,
+ EAP_ERROR **ppEapError
+);
+
+DWORD WINAPI EapHostPeerInvokeIdentityUI(
+ DWORD dwVersion,
+ EAP_METHOD_TYPE eapMethodType,
+ DWORD dwFlags,
+ HWND hwndParent,
+ DWORD dwSizeofConnectionData,
+ const BYTE * pConnectionData,
+ DWORD dwSizeofUserData,
+ const BYTE *pUserData,
+ DWORD *pdwSizeofUserDataOut,
+ BYTE **ppUserDataOut,
+ LPWSTR *ppwszIdentity,
+ EAP_ERROR **ppEapError,
+ LPVOID *ppvReserved
+);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_EAPHOSTPEERCONFIGAPIS*/
diff --git a/mingw-w64-headers/include/eaphostpeertypes.h b/mingw-w64-headers/include/eaphostpeertypes.h
new file mode 100644
index 0000000..b30d3b8
--- /dev/null
+++ b/mingw-w64-headers/include/eaphostpeertypes.h
@@ -0,0 +1,72 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_EAPHOSTPEERTYPES
+#define _INC_EAPHOSTPEERTYPES
+#if (_WIN32_WINNT >= 0x0600)
+#include <eaptypes.h>
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum tagEapHostPeerMethodResultReason {
+ EapHostPeerMethodResultAltSuccessReceived = 1,
+ EapHostPeerMethodResultTimeout = 2,
+ EapHostPeerMethodResultFromMethod = 3
+} EapHostPeerMethodResultReason;
+
+typedef enum tagEapHostPeerResponseAction {
+ EapHostPeerResponseDiscard = 0,
+ EapHostPeerResponseSend = 1,
+ EapHostPeerResponseResult = 2,
+ EapHostPeerResponseInvokeUI = 3,
+ EapHostPeerResponseRespond = 4,
+ EapHostPeerResponseStartAuthentication = 5,
+ EapHostPeerResponseNone = 6
+} EapHostPeerResponseAction;
+
+typedef enum tagEapHostPeerAuthParams {
+ EapHostPeerAuthStatus = 1,
+ EapHostPeerIdentity = 2,
+ EapHostPeerIdentityExtendedInfo = 3,
+ EapHostNapInfo = 4
+} EapHostPeerAuthParams;
+
+typedef enum _ISOLATION_STATE {
+ ISOLATION_STATE_UNKNOWN = 0,
+ ISOLATION_STATE_NOT_RESTRICTED = 1,
+ ISOLATION_STATE_IN_PROBATION = 2,
+ ISOLATION_STATE_RESTRICTED_ACCESS = 3
+} ISOLATION_STATE;
+
+typedef enum _EAPHOST_AUTH_STATUS {
+ EapHostInvalidSession = 0,
+ EapHostAuthNotStarted = 1,
+ EapHostAuthIdentityExchange = 2,
+ EapHostAuthNegotiatingType = 3,
+ EapHostAuthInProgress = 4,
+ EapHostAuthSucceeded = 5,
+ EapHostAuthFailed = 6
+} EAPHOST_AUTH_STATUS;
+
+typedef struct _EAPHOST_AUTH_INFO {
+ EAPHOST_AUTH_STATUS status;
+ DWORD dwErrorCode;
+ DWORD dwReasonCode;
+} EAPHOST_AUTH_INFO;
+
+#if (_WIN32_WINNT >= 0x0601)
+typedef struct _tagEapHostPeerNapInfo {
+ ISOLATION_STATE isolationState;
+ ProbationTime probationTime;
+ UINT32 stringCorrelationIdLength;
+} EapHostPeerNapInfo, *PEapHostPeerNapInfo;
+#endif /*(_WIN32_WINNT >= 0x0601)*/
+
+#ifdef __cplusplus
+}
+#endif
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_EAPHOSTPEERTYPES*/
diff --git a/mingw-w64-headers/include/eapmethodauthenticatorapis.h b/mingw-w64-headers/include/eapmethodauthenticatorapis.h
new file mode 100644
index 0000000..a34f964
--- /dev/null
+++ b/mingw-w64-headers/include/eapmethodauthenticatorapis.h
@@ -0,0 +1,179 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_EAPMETHODAUTHENTICATORAPIS
+#define _INC_EAPMETHODAUTHENTICATORAPIS
+#if (_WIN32_WINNT >= 0x0600)
+#include <eaptypes.h>
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct _EAP_AUTHENTICATOR_METHOD_ROUTINES {
+ DWORD dwSizeInBytes;
+ EAP_METHOD_TYPE *pEapType;
+ DWORD (APIENTRY *EapMethodAuthenticatorInitialize)(
+ EAP_METHOD_TYPE pEapType,
+ EAP_ERROR ppEapError);
+ DWORD (APIENTRY *EapMethodAuthenticatorBeginSession)(
+ DWORD dwFlags,
+ LPCWSTR pwszIdentity,
+ EapAttributes pAttributeArray,
+ DWORD dwSizeOfConnectionData,
+ BYTE pConnectionData,
+ DWORD dwMaxSendPacketSize,
+ EAP_SESSION_HANDLE pSessionHandle,
+ EAP_ERROR ppEapError);
+ DWORD (APIENTRY *EapMethodAuthenticatorUpdateInnerMethodParams)(
+ EAP_SESSION_HANDLE sessionHandle,
+ DWORD dwFlags,
+ WCHAR pwszIdentity,
+ EapAttributes pAttributeArray,
+ EAP_ERROR ppEapError);
+ DWORD (APIENTRY *EapMethodAuthenticatorReceivePacket)(
+ EAP_SESSION_HANDLE sessionHandle,
+ DWORD cbReceivePacket,
+ EapPacket pReceivePacket,
+ EAP_METHOD_AUTHENTICATOR_RESPONSE_ACTION pEapOutput,
+ EAP_ERROR ppEapError);
+ DWORD (APIENTRY *EapMethodAuthenticatorSendPacket)(
+ EAP_SESSION_HANDLE sessionHandle,
+ BYTE bPacketId,
+ DWORD pcbSendPacket,
+ EapPacket pSendPacket,
+ EAP_AUTHENTICATOR_SEND_TIMEOUT pTimeout,
+ EAP_ERROR ppEapError);
+ DWORD (APIENTRY *EapMethodAuthenticatorGetAttributes)(
+ EAP_SESSION_HANDLE sessionHandle,
+ EapAttributes pAttribs,
+ EAP_ERROR ppEapError);
+ DWORD (APIENTRY *EapMethodAuthenticatorSetAttributes)(
+ EAP_SESSION_HANDLE sessionHandle,
+ EapAttributes pAttribs,
+ EAP_METHOD_AUTHENTICATOR_RESPONSE_ACTION pEapOutput,
+ EAP_ERROR ppEapError);
+ DWORD (APIENTRY *EapMethodAuthenticatorGetResult)(
+ EAP_SESSION_HANDLE sessionHandle,
+ EAP_METHOD_AUTHENTICATOR_RESULT pResult,
+ EAP_ERROR ppEapError);
+ DWORD (APIENTRY *EapMethodAuthenticatorEndSession)(
+ EAP_SESSION_HANDLE sessionHandle,
+ EAP_ERROR ppEapError);
+ DWORD (APIENTRY *EapMethodAuthenticatorShutdown)(
+ EAP_METHOD_TYPE pEapType,
+ EAP_ERROR ppEapError);
+} EAP_AUTHENTICATOR_METHOD_ROUTINES;
+
+VOID WINAPI EapMethodAuthenticatorFreeMemory(
+ void *pUIContextData
+);
+
+DWORD WINAPI EapMethodAuthenticatorInitialize(
+ EAP_METHOD_TYPE *pEapType,
+ EAP_ERROR **ppEapError
+);
+
+VOID WINAPI EapPeerFreeErrorMemory(
+ EAP_ERROR *ppEapError
+);
+
+DWORD WINAPI EapMethodAuthenticatorGetResult(
+ EAP_SESSION_HANDLE sessionHandle,
+ EAP_METHOD_AUTHENTICATOR_RESULT *pResult,
+ EAP_ERROR **ppEapError
+);
+
+DWORD WINAPI EapMethodAuthenticatorBeginSession(
+ DWORD dwFlags,
+ LPCWSTR pwszIdentity,
+ const EapAttributes *pAttributeArray,
+ DWORD dwSizeOfConnectionData,
+ const BYTE *pConnectionData,
+ DWORD dwMaxSendPacketSize,
+ EAP_SESSION_HANDLE *pSessionHandle,
+ EAP_ERROR **ppEapError
+);
+
+DWORD WINAPI EapMethodAuthenticatorFreeErrorMemory(
+ EAP_ERROR *ppEapError
+);
+
+DWORD EapMethodAuthenticatorEndSession(
+ EAP_SESSION_HANDLE sessionHandle,
+ EAP_ERROR **ppEapError
+);
+
+DWORD EapMethodAuthenticatorGetAttributes(
+ EAP_SESSION_HANDLE sessionHandle,
+ EapAttributes *pAttribs,
+ EAP_ERROR **ppEapError
+);
+
+DWORD EapMethodAuthenticatorGetInfo(
+ EAP_METHOD_TYPE *pEapType,
+ EAP_AUTHENTICATOR_METHOD_ROUTINES *pEapInfo,
+ EAP_ERROR **ppEapError
+);
+
+DWORD EapMethodAuthenticatorGetResult(
+ EAP_SESSION_HANDLE sessionHandle,
+ EAP_METHOD_AUTHENTICATOR_RESULT *pResult,
+ EAP_ERROR **ppEapError
+);
+
+DWORD WINAPI EapMethodAuthenticatorInvokeConfigUI(
+ EAP_METHOD_TYPE *pEapMethodType,
+ HWND hwndParent,
+ DWORD dwFlags,
+ LPCWSTR pwszMachineName,
+ DWORD dwSizeOfConfigIn,
+ BYTE *pConfigIn,
+ DWORD *pdwSizeOfConfigOut,
+ BYTE **ppConfigOut,
+ EAP_ERROR **pEapError
+);
+
+DWORD WINAPI EapMethodAuthenticatorReceivePacket(
+ EAP_SESSION_HANDLE sessionHandle,
+ DWORD cbReceivePacket,
+ const EapPacket *pReceivePacket,
+ EAP_METHOD_AUTHENTICATOR_RESPONSE_ACTION *pEapOutput,
+ EAP_ERROR **ppEapError
+);
+
+DWORD WINAPI EapMethodAuthenticatorSendPacket(
+ EAP_SESSION_HANDLE sessionHandle,
+ BYTE bPacketId,
+ DWORD *pcbSendPacket,
+ EapPacket *pSendPacket,
+ EAP_AUTHENTICATOR_SEND_TIMEOUT *pTimeout,
+ EAP_ERROR **ppEapError
+);
+
+DWORD WINAPI EapMethodAuthenticatorSetAttributes(
+ EAP_SESSION_HANDLE sessionHandle,
+ const EapAttributes *pAttribs,
+ EAP_METHOD_AUTHENTICATOR_RESPONSE_ACTION *pEapOutput,
+ EAP_ERROR **ppEapError
+);
+
+DWORD WINAPI EapMethodAuthenticatorShutdown(
+ EAP_METHOD_TYPE *peapType,
+ EAP_ERROR **ppEapError
+);
+
+DWORD WINAPI EapMethodAuthenticatorUpdateInnerMethodParams(
+ EAP_SESSION_HANDLE sessionHandle,
+ DWORD dwFlags,
+ const WCHAR *pwszIdentity,
+ const EapAttributes *pAttributeArray,
+ EAP_ERROR **ppEapError
+);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_EAPMETHODAUTHENTICATORAPIS*/
diff --git a/mingw-w64-headers/include/eapmethodpeerapis.h b/mingw-w64-headers/include/eapmethodpeerapis.h
new file mode 100644
index 0000000..d13f608
--- /dev/null
+++ b/mingw-w64-headers/include/eapmethodpeerapis.h
@@ -0,0 +1,249 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_EAPMETHODPEERAPIS
+#define _INC_EAPMETHODPEERAPIS
+#if (_WIN32_WINNT >= 0x0600)
+#include <eaptypes.h>
+#include <eapmethodtypes.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+DWORD WINAPI EapPeerQueryCredentialInputFields(
+ HANDLE hUserImpersonationToken,
+ EAP_METHOD_TYPE eapMethodType,
+ DWORD dwFlags,
+ DWORD dwEapConnDataSize,
+ BYTE *pbEapConnData,
+ EAP_CONFIG_INPUT_FIELD_ARRAY *pEapConfigInputFieldsArray,
+ EAP_ERROR **ppEapError
+);
+
+DWORD WINAPI EapPeerBeginSession(
+ DWORD dwFlags,
+ const EapAttributes *pAttributeArray,
+ HANDLE hTokenImpersonateUser,
+ DWORD dwSizeofConnectionData,
+ BYTE *pConnectionData,
+ DWORD dwSizeofUserData,
+ BYTE *pUserData,
+ DWORD dwMaxSendPacketSize,
+ EAP_SESSION_HANDLE *pSessionHandle,
+ EAP_ERROR **ppEapError
+);
+
+DWORD WINAPI EapPeerQueryUserBlobFromCredentialInputFields(
+ HANDLE hUserImpersonationToken,
+ EAP_METHOD_TYPE eapMethodType,
+ DWORD dwFlags,
+ DWORD dwEapConnDataSize,
+ BYTE *pbEapConnData,
+ const EAP_CONFIG_INPUT_FIELD_ARRAY *pEapConfigInputFieldArray,
+ DWORD *pdwUsersBlobSize,
+ BYTE **ppUserBlob,
+ EAP_ERROR **ppEapError
+);
+
+DWORD WINAPI EapPeerGetIdentity(
+ DWORD dwflags,
+ DWORD dwSizeofConnectionData,
+ const BYTE *pConnectionData,
+ DWORD dwSizeOfUserData,
+ const BYTE *pUserData,
+ HANDLE hTokenImpersonateUser,
+ WINBOOL *pfInvokeUI,
+ DWORD *pdwSizeOfUserDataOut,
+ BYTE **ppUserDataOut,
+ LPWSTR *ppwszIdentity,
+ EAP_ERROR **ppEapError
+);
+
+DWORD WINAPI EapPeerInitialize(
+ EAP_ERROR **ppEapError
+);
+
+DWORD WINAPI EapPeerGetInfo(
+ EAP_TYPE *pEapType,
+ EAP_PEER_METHOD_ROUTINES *pEapInfo,
+ EAP_ERROR **ppEapError
+);
+
+DWORD WINAPI EapPeerSetCredentials(
+ EAP_SESSION_HANDLE sessionHandle,
+ LPWSTR pwszIdentity,
+ LPWSTR pwszPassword,
+ EAP_ERROR **ppEapError
+);
+
+DWORD WINAPI EapPeerInvokeIdentityUI(
+ EAP_METHOD_TYPE *pEapType,
+ DWORD dwflags,
+ HWND hwndParent,
+ DWORD dwSizeOfConnectionData,
+ const BYTE *pConnectionData,
+ DWORD dwSizeOfUserData,
+ const BYTE *pUserData,
+ DWORD *pdwSizeOfUserDataOut,
+ BYTE **ppUserDataOut,
+ LPWSTR *ppwszIdentity,
+ EAP_ERROR **ppEapError
+);
+
+DWORD WINAPI EapPeerProcessRequestPacket(
+ EAP_SESSION_HANDLE sessionHandle,
+ DWORD cbReceivedPacket,
+ EapPacket *pReceivedPacket,
+ EapPeerMethodOutput *pEapOutput,
+ EAP_ERROR **ppEapError
+);
+
+DWORD WINAPI EapPeerGetResponsePacket(
+ EAP_SESSION_HANDLE sessionHandle,
+ DWORD *pcbSendPacket,
+ EapPacket *pSendPacket,
+ EAP_ERROR **ppEapError
+);
+
+DWORD WINAPI EapPeerGetResult(
+ EAP_SESSION_HANDLE sessionHandle,
+ EapPeerMethodResultReason reason,
+ EapPeerMethodResult *ppResult,
+ EAP_ERROR **ppEapError
+);
+
+typedef struct tagEapPeerMethodResult {
+ WINBOOL fIsSuccess;
+ DWORD dwFailureReasonCode;
+ WINBOOL fSaveConnectionData;
+ DWORD dwSizeOfConnectionData;
+ BYTE * pConnectionData;
+ WINBOOL fSaveUserData;
+ DWORD dwSizeofUserData;
+ BYTE * pUserData;
+ EAP_ATTRIBUTES *pAttribArray;
+ EAP_ERROR * pEapError;
+} EapPeerMethodResult;
+
+DWORD WINAPI EapPeerGetUIContext(
+ EAP_SESSION_HANDLE sessionHandle,
+ DWORD *pdwSizeOfUIContextData,
+ BYTE **ppUIContextData,
+ EAP_ERROR **ppEapError
+);
+
+DWORD WINAPI EapPeerSetUIContext(
+ EAP_SESSION_HANDLE sessionHandle,
+ DWORD dwSizeOfUIContextData,
+ const BYTE *pUIContextData,
+ EapPeerMethodOutput *pEapOutput,
+ EAP_ERROR **ppEapError
+);
+
+DWORD WINAPI EapPeerGetResponseAttributes(
+ EAP_SESSION_HANDLE sessionHandle,
+ EapAttributes *pAttribs,
+ EAP_ERROR **ppEapError
+);
+
+DWORD WINAPI EapPeerSetResponseAttributes(
+ EAP_SESSION_HANDLE sessionHandle,
+ EapAttributes *pAttribs,
+ EapPeerMethodOutput *pEapOutput,
+ EAP_ERROR **ppEapError
+);
+
+DWORD WINAPI EapPeerEndSession(
+ EAP_SESSION_HANDLE sessionHandle,
+ EAP_ERROR **ppEapError
+);
+
+DWORD WINAPI EapPeerShutdown(
+ EAP_ERROR **ppEapError
+);
+
+DWORD WINAPI EapPeerInvokeConfigUI(
+ EAP_METHOD_TYPE *pEapType,
+ HWND hwndParent,
+ DWORD dwFlags,
+ DWORD dwSizeOfConnectionDataIn,
+ BYTE *pConnectionDataIn,
+ DWORD *dwSizeOfConnectionDataOut,
+ BYTE **ppConnectionDataOut,
+ EAP_ERROR **ppEapError
+);
+
+DWORD WINAPI EapPeerInvokeInteractiveUI(
+ EAP_METHOD_TYPE *pEapType,
+ HWND hwndParent,
+ DWORD dwSizeofUIContextData,
+ BYTE *pUIContextData,
+ DWORD *pdwSizeOfDataFromInteractiveUI,
+ BYTE **ppDataFromInteractiveUI,
+ EAP_ERROR **ppEapError
+);
+
+DWORD WINAPI EapPeerQueryInteractiveUIInputFields(
+ DWORD dwVersion,
+ DWORD dwFlags,
+ DWORD dwSizeofUIContextData,
+ const BYTE *pUIContextData,
+ EAP_INTERACTIVE_UI_DATA *pEapInteractiveUIData,
+ EAP_ERROR **ppEapError,
+ LPVOID *pvReserved
+);
+
+DWORD WINAPI EapPeerQueryUIBlobFromInteractiveUIInputFields(
+ DWORD dwVersion,
+ DWORD dwFlags,
+ DWORD dwSizeofUIContextData,
+ const BYTE *pUIContextData,
+ const EAP_INTERACTIVE_UI_DATA *pEapInteractiveUIData,
+ DWORD *pdwSizeOfDataFromInteractiveUI,
+ BYTE **ppDataFromInteractiveUI,
+ EAP_ERROR **ppEapError,
+ LPVOID *ppvReserved
+);
+
+DWORD WINAPI EapPeerConfigBlob2Xml(
+ DWORD dwFlags,
+ EAP_METHOD_TYPE eapMethodType,
+ const BYTE *pConfigIn,
+ DWORD dwSizeOfConfigIn,
+ IXMLDOMDocument2 **ppConfigDoc,
+ EAP_ERROR **pEapError
+);
+
+DWORD WINAPI EapPeerConfigXml2Blob(
+ DWORD dwFlags,
+ EAP_METHOD_TYPE eapMethodType,
+ IXMLDOMDocument2 *pConfigDoc,
+ BYTE **ppConfigOut,
+ DWORD *pdwSizeOfConfigOut,
+ EAP_ERROR **ppEapError
+);
+
+DWORD WINAPI EapPeerCredentialsXml2Blob(
+ DWORD dwFlags,
+ EAP_METHOD_TYPE eapMethodType,
+ IXMLDOMDocument2 *pCredentialsDoc,
+ const BYTE *pConfigIn,
+ DWORD dwSizeOfConfigIn,
+ BYTE **ppCredentialsOut,
+ DWORD *pdwSizeofCredentialsOut,
+ EAP_ERROR **ppEapError
+);
+
+VOID WINAPI EapPeerFreeMemory(
+ void *pUIContextData
+);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_EAPMETHODPEERAPIS*/
diff --git a/mingw-w64-headers/include/eapmethodtypes.h b/mingw-w64-headers/include/eapmethodtypes.h
new file mode 100644
index 0000000..a5548fe
--- /dev/null
+++ b/mingw-w64-headers/include/eapmethodtypes.h
@@ -0,0 +1,25 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_EAPMETHODTYPES
+#define _INC_EAPMETHODTYPES
+#if (_WIN32_WINNT >= 0x0600)
+#include <eaptypes.h>
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct tagEapPacket {
+ BYTE Code;
+ BYTE Id;
+ BYTE Length[2];
+ BYTE Data[1];
+} EapPacket;
+
+#ifdef __cplusplus
+}
+#endif
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_EAPMETHODTYPES*/
diff --git a/mingw-w64-headers/include/eappapis.h b/mingw-w64-headers/include/eappapis.h
new file mode 100644
index 0000000..36367fa
--- /dev/null
+++ b/mingw-w64-headers/include/eappapis.h
@@ -0,0 +1,137 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_EAPPAPIS
+#define _INC_EAPPAPIS
+#if (_WIN32_WINNT >= 0x0600)
+#include <eaptypes.h>
+#include <eaphostpeertypes.h>
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+DWORD APIENTRY EapHostPeerGetResult(
+ EAP_SESSIONID sessionHandle,
+ EapHostPeerMethodResultReason reason,
+ EapHostPeerMethodResult *ppResult,
+ EAP_ERROR **ppEapError
+);
+
+DWORD WINAPI EapHostPeerProcessReceivedPacket(
+ EAP_SESSIONID sessionHandle,
+ DWORD cbReceivePacket,
+ const BYTE *pReceivePacket,
+ EapHostPeerResponseAction *pEapOutput,
+ EAP_ERROR **ppEapError
+);
+
+VOID APIENTRY EapHostPeerFreeEapError(
+ EAP_ERROR *ppEapError
+);
+
+DWORD APIENTRY EapHostPeerClearConnection(
+ GUID *pConnectionId,
+ EAP_ERROR **ppEapError
+);
+
+DWORD APIENTRY EapHostPeerEndSession(
+ EAP_SESSIONID sessionHandle,
+ EAP_ERROR **ppEapError
+);
+
+DWORD APIENTRY EapHostPeerGetAuthStatus(
+ EAP_SESSIONID sessionHandle,
+ EapHostPeerAuthParams authParam,
+ DWORD *pcbAuthData,
+ BYTE **ppAuthData,
+ EAP_ERROR **ppEapError
+);
+
+DWORD APIENTRY EapHostPeerGetResponseAttributes(
+ EAP_SESSIONID sessionHandle,
+ EapAttributes *pAttribs,
+ EAP_ERROR **ppEapError
+);
+
+DWORD WINAPI EapHostPeerGetSendPacket(
+ EAP_SESSIONID sessionHandle,
+ DWORD *pcbSendPacket,
+ BYTE **ppSendPacket,
+ EAP_ERROR **ppEapError
+);
+
+DWORD APIENTRY EapHostPeerGetUIContext(
+ EAP_SESSIONID sessionHandle,
+ DWORD *pdwSizeOfUIContextData,
+ BYTE **ppUIContextData,
+ EAP_ERROR **ppEapError
+);
+
+DWORD APIENTRY EapHostPeerSetResponseAttributes(
+ EAP_SESSIONID sessionHandle,
+ const EapAttributes *pAttribs,
+ EapHostPeerResponseAction *pEapOutput,
+ EAP_ERROR **ppEapError
+);
+
+DWORD APIENTRY EapHostPeerSetUIContext(
+ EAP_SESSIONID sessionHandle,
+ DWORD dwSizeOfUIContextData,
+ const BYTE *pUIContextData,
+ EapHostPeerResponseAction *pEapOutput,
+ EAP_ERROR **ppEapError
+);
+
+typedef VOID ( CALLBACK *NotificationHandler )(
+ GUID connectionId,
+ VOID *pContextData
+);
+
+DWORD APIENTRY EapHostPeerBeginSession(
+ DWORD dwFlags,
+ EAP_METHOD_TYPE eapType,
+ const EapAttributes *pAttributeArray,
+ HANDLE hTokenImpersonateUser,
+ DWORD dwSizeOfConnectionData,
+ const BYTE *pConnectionData,
+ DWORD dwSizeOfUserData,
+ const BYTE *pUserData,
+ DWORD dwMaxSendPacketSize,
+ const GUID *pConnectionId,
+ NotificationHandler func,
+ VOID *pContextData,
+ EAP_SESSIONID *pSessionId,
+ EAP_ERROR **ppEapError
+);
+
+VOID WINAPI EapHostPeerFreeRuntimeMemory(
+ BYTE *pData
+);
+
+DWORD WINAPI EapHostPeerGetIdentity(
+ DWORD dwVersion,
+ DWORD dwFlags,
+ EAP_METHOD_TYPE eapMethodType,
+ DWORD dwSizeofConnectionData,
+ const BYTE *pConnectionData,
+ DWORD dwSizeofUserData,
+ const BYTE *pUserData,
+ HANDLE hTokenImpersonateUser,
+ WINBOOL *pfInvokeUI,
+ DWORD *pdwSizeofUserDataOut,
+ BYTE **ppUserDataOut,
+ LPWSTR *ppwszIdentity,
+ EAP_ERROR **ppEapError,
+ BYTE **ppvReserved
+);
+
+DWORD WINAPI EapHostPeerInitialize(void);
+void WINAPI EapHostPeerUninitialize(void);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_EAPPAPIS*/
diff --git a/mingw-w64-headers/include/eaptypes.h b/mingw-w64-headers/include/eaptypes.h
new file mode 100644
index 0000000..951eec8
--- /dev/null
+++ b/mingw-w64-headers/include/eaptypes.h
@@ -0,0 +1,332 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_EAPTYPES
+#define _INC_EAPTYPES
+#if (_WIN32_WINNT >= 0x0600)
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+typedef LPVOID EAP_SESSIONID;
+typedef LPVOID EAP_SESSION_HANDLE;
+
+#define EAP_FLAG_Reserved1 0x00000001
+#define EAP_FLAG_NON_INTERACTIVE 0x00000002
+#define EAP_FLAG_LOGON 0x00000004
+#define EAP_FLAG_PREVIEW 0x00000008
+#define EAP_FLAG_Reserved2 0x00000010
+#define EAP_FLAG_MACHINE_AUTH 0x00000020
+#define EAP_FLAG_GUEST_ACCESS 0x00000040
+#define EAP_FLAG_Reserved3 0x00000080
+#define EAP_FLAG_Reserved4 0x00000100
+#define EAP_FLAG_RESUME_FROM_HIBERNATE 0x00000200
+#define EAP_FLAG_Reserved5 0x00000400
+#define EAP_FLAG_Reserved6 0x00000800
+#define EAP_FLAG_FULL_AUTH 0x00001000
+#define EAP_FLAG_PREFER_ALT_CREDENTIALS 0x00002000
+#define EAP_FLAG_Reserved7 0x00004000
+#define EAP_PEER_FLAG_HEALTH_STATE_CHANGE 0x00008000
+#define EAP_FLAG_SUPRESS_UI 0x00010000
+#define EAP_FLAG_PRE_LOGON 0x00020000
+#define EAP_FLAG_USER_AUTH 0x00040000
+#define EAP_FLAG_CONFG_READONLY 0x00080000
+#define EAP_FLAG_Reserved8 0x00100000
+
+typedef enum _EAP_ATTRIBUTE_TYPE {
+ eatMinimum = 0,
+ eatUserName = 1,
+ eatUserPassword = 2,
+ eatMD5CHAPPassword = 3,
+ eatNASIPAddress = 4,
+ eatNASport = 5,
+ eatServiceType = 6,
+ eatFramedProtocol = 7,
+ eatFramedIPAddress = 8,
+ eatFramedIPNetmask = 9,
+ eatFramedRouting = 10,
+ eatFilterId = 11,
+ eatFramedMTU = 12,
+ eatFramedCompression = 13,
+ eatLoginIPHost = 14,
+ eatLoginService = 15,
+ eatLoginTCPPort = 16,
+ eatUnassigned17 = 17,
+ eatReplyMessage = 18,
+ eatCallbackNumber = 19,
+ eatCallbackId = 20,
+ eatUnassigned21 = 21,
+ eatFramedRoute = 22,
+ eatFramedIPXNetwork = 23,
+ eatState = 24,
+ eatClass = 25,
+ eatVendorSpecific = 26,
+ eatSessionTimeout = 27,
+ eatIdleTimeout = 28,
+ eatTerminationAction = 29,
+ eatCalledStationId = 30,
+ eatCallingStationId = 31,
+ eatNASIdentifier = 32,
+ eatProxyState = 33,
+ eatLoginLATService = 34,
+ eatLoginLATNode = 35,
+ eatLoginLATGroup = 36,
+ eatFramedAppleTalkLink = 37,
+ eatFramedAppleTalkNetwork = 38,
+ eatFramedAppleTalkZone = 39,
+ eatAcctStatusType = 40,
+ eatAcctDelayTime = 41,
+ eatAcctInputOctets = 42,
+ eatAcctOutputOctets = 43,
+ eatAcctSessionId = 44,
+ eatAcctAuthentic = 45,
+ eatAcctSessionTime = 46,
+ eatAcctInputPackets = 47,
+ eatAcctOutputPackets = 48,
+ eatAcctTerminateCause = 49,
+ eatAcctMultiSessionId = 50,
+ eatAcctLinkCount = 51,
+ eatAcctEventTimeStamp = 55,
+ eatMD5CHAPChallenge = 60,
+ eatNASPortType = 61,
+ eatPortLimit = 62,
+ eatLoginLATPort = 63,
+ eatTunnelType = 64,
+ eatTunnelMediumType = 65,
+ eatTunnelClientEndpoint = 66,
+ eatTunnelServerEndpoint = 67,
+ eatARAPPassword = 70,
+ eatARAPFeatures = 71,
+ eatARAPZoneAccess = 72,
+ eatARAPSecurity = 73,
+ eatARAPSecurityData = 74,
+ eatPasswordRetry = 75,
+ eatPrompt = 76,
+ eatConnectInfo = 77,
+ eatConfigurationToken = 78,
+ eatEAPMessage = 79,
+ eatSignature = 80,
+ eatARAPChallengeResponse = 84,
+ eatAcctInterimInterval = 85,
+ eatNASIPv6Address = 95,
+ eatFramedInterfaceId = 96,
+ eatFramedIPv6Prefix = 97,
+ eatLoginIPv6Host = 98,
+ eatFramedIPv6Route = 99,
+ eatFramedIPv6Pool = 100,
+ eatARAPGuestLogon = 8096,
+ eatCertificateOID = 8097,
+ eatEAPConfiguration = 8098,
+ eatPEAPEmbeddedEAPTypeId = 8099,
+ eatPEAPFastRoamedSession = 8100,
+ eatEAPTLV = 8102,
+ eatCredentialsChanged = 8103,
+ eatInnerEapMethodType = 8104,
+ eatClearTextPassword = 8107,
+ eatQuarantineSoH = 8150,
+ eatPeerId = 9000,
+ eatServerId = 9001,
+ eatMethodId = 9002,
+ eatEMSK = 9003,
+ eatSessionId = 9004,
+ eatReserved = 0xFFFFFFFF
+} EAP_ATTRIBUTE_TYPE, EapAttributeType;
+
+typedef struct _EAP_ATTRIBUTE {
+ EAP_ATTRIBUTE_TYPE eapType;
+ DWORD dwLength;
+ BYTE * pValue;
+} EAP_ATTRIBUTE, EapAttribute;
+
+typedef struct _EAP_ATTRIBUTES {
+ DWORD dwNumberOfAttributes;
+ EAP_ATTRIBUTE *pAttribs;
+} EAP_ATTRIBUTES, EapAttributes;
+
+typedef struct _EAP_TYPE {
+ BYTE type;
+ DWORD dwVendorId;
+ DWORD dwVendorType;
+} EAP_TYPE;
+
+typedef struct _EAP_METHOD_TYPE {
+ EAP_TYPE eapType;
+ DWORD dwAuthorId;
+} EAP_METHOD_TYPE;
+
+typedef struct _EAP_ERROR {
+ DWORD dwWinError;
+ EAP_METHOD_TYPE type;
+ DWORD dwReasonCode;
+ GUID rootCauseGuid;
+ GUID repairGuid;
+ GUID helpLinkGuid;
+ LPWSTR pRootCauseString;
+ LPWSTR pRepairString;
+} EAP_ERROR;
+
+typedef enum _EAP_CONFIG_INPUT_FIELD_TYPE {
+ EapConfigInputUsername,
+ EapConfigInputPassword,
+ EapConfigInputNetworkUsername,
+ EapConfigInputNetworkPassword,
+ EapConfigInputPin,
+ EapConfigInputPSK,
+ EapConfigInputEdit,
+ EapConfigSmartCardUsername,
+ EapConfigSmartCardError
+} EAP_CONFIG_INPUT_FIELD_TYPE;
+
+typedef enum _EAP_INTERACTIVE_UI_DATA_TYPE {
+ EapCredReq,
+ EapCredResp,
+ EapCredExpiryReq,
+ EapCredExpiryResp
+} EAP_INTERACTIVE_UI_DATA_TYPE;
+
+#define EAP_UI_INPUT_FIELD_PROPS_DEFAULT 0x00000000
+#define EAP_CONFIG_INPUT_FIELD_PROPS_DEFAULT 0x00000000
+#define EAP_UI_INPUT_FIELD_PROPS_NON_DISPLAYABLE 0x00000001
+#define EAP_CONFIG_INPUT_FIELD_PROPS_NON_DISPLAYABLE 0x00000001
+#define EAP_UI_INPUT_FIELD_PROPS_NON_PERSIST 0x00000002
+#define EAP_CONFIG_INPUT_FIELD_PROPS_NON_PERSIST 0x00000002
+#define EAP_UI_INPUT_FIELD_PROPS_READ_ONLY 0x00000004
+
+#define MAX_EAP_CONFIG_INPUT_FIELD_LENGTH 256
+
+#define MAX_EAP_CONFIG_INPUT_FIELD_VALUE_LENGTH 1024
+
+typedef struct _EAP_CONFIG_INPUT_FIELD_DATA {
+ DWORD dwSize;
+ EAP_CONFIG_INPUT_FIELD_TYPE Type;
+ DWORD dwFlagProps;
+ LPWSTR pwszLabel;
+ LPWSTR pwszData;
+ DWORD dwMinDataLength;
+ DWORD dwMaxDataLength;
+} EAP_CONFIG_INPUT_FIELD_DATA, *PEAP_CONFIG_INPUT_FIELD_DATA;
+
+#define EAP_CREDENTIAL_VERSION 1
+
+typedef struct _EAP_CONFIG_INPUT_FIELD_ARRAY {
+ DWORD dwVersion;
+ DWORD dwNumberOfFields;
+ DWORD dwSize;
+ EAP_CONFIG_INPUT_FIELD_DATA *pFields;
+} EAP_CONFIG_INPUT_FIELD_ARRAY, *PEAP_CONFIG_INPUT_FIELD_ARRAY;
+
+typedef EAP_CONFIG_INPUT_FIELD_ARRAY EAP_CRED_REQ;
+typedef EAP_CONFIG_INPUT_FIELD_ARRAY EAP_CRED_RESP;
+typedef EAP_CRED_RESP EAP_CRED_EXPIRY_REQ;
+
+typedef union _EAP_UI_DATA_FORMAT {
+ EAP_CRED_REQ * credData;
+ EAP_CRED_EXPIRY_REQ *credExpiryData;
+} EAP_UI_DATA_FORMAT;
+
+typedef struct _EAP_INTERACTIVE_UI_DATA {
+ DWORD dwVersion;
+ DWORD dwSize;
+ EAP_INTERACTIVE_UI_DATA_TYPE dwDataType;
+ DWORD cbUiData;
+ EAP_UI_DATA_FORMAT pbUiData;
+} EAP_INTERACTIVE_UI_DATA;
+
+#define eapPropCipherSuiteNegotiation 0x00000001
+#define eapPropMutualAuth 0x00000002
+#define eapPropIntegrity 0x00000004
+#define eapPropReplayProtection 0x00000008
+#define eapPropConfidentiality 0x00000010
+#define eapPropKeyDerivation 0x00000020
+#define eapPropKeyStrength64 0x00000040
+#define eapPropKeyStrength128 0x00000080
+#define eapPropKeyStrength256 0x00000100
+#define eapPropKeyStrength512 0x00000200
+#define eapPropKeyStrength1024 0x00000400
+#define eapPropDictionaryAttackResistance 0x00000800
+#define eapPropFastReconnect 0x00001000
+#define eapPropCryptoBinding 0x00002000
+#define eapPropSessionIndependence 0x00004000
+#define eapPropFragmentation 0x00008000
+#define eapPropChannelBinding 0x00010000
+#define eapPropNap 0x00020000
+#define eapPropStandalone 0x00040000
+#define eapPropMppeEncryption 0x00080000
+#define eapPropTunnelMethod 0x00100000
+#define eapPropSupportsConfig 0x00200000
+#define eapPropCertifiedMethod 0x00400000
+#if (_WIN32_WINNT >= 0x0601)
+#define eapPropmachineAuth 0x01000000
+#define eapPropUserAuth 0x02000000
+#define eapPropIdentityPrivacy 0x04000000
+#define eapPropMethodChaining 0x08000000
+#define eapPropSharedStateEquivalence 0x10000000
+#endif /*(_WIN32_WINNT >= 0x0601)*/
+#define eapPropReserved 0x20000000
+
+typedef struct _EAP_METHOD_INFO {
+ EAP_METHOD_TYPE eapType;
+ LPWSTR pwszAuthorName;
+ LPWSTR pwszFriendlyName;
+ DWORD eapProperties;
+ struct _EAP_METHOD_INFO *pInnerMethodInfo;
+} EAP_METHOD_INFO;
+
+typedef struct _EAP_METHOD_INFO_ARRAY {
+ DWORD dwNumberOfMethods;
+ EAP_METHOD_INFO *pEapMethods;
+} EAP_METHOD_INFO_ARRAY, *PEAP_METHOD_INFO_ARRAY;
+
+typedef struct _EAP_METHOD_INFO_EX {
+ EAP_METHOD_TYPE eapType;
+ LPWSTR pwszAuthorName;
+ LPWSTR pwszFriendlyName;
+ DWORD eapProperties;
+ struct _EAP_METHOD_INFO_ARRAY_EX *pInnerMethodInfoArray;
+} EAP_METHOD_INFO_EX;
+
+typedef struct _EAP_METHOD_INFO_ARRAY_EX {
+ DWORD dwNumberOfMethods;
+ EAP_METHOD_INFO_EX *pEapMethods;
+} EAP_METHOD_INFO_ARRAY_EX, *PEAP_METHOD_INFO_ARRAY_EX;
+
+typedef struct _EAP_CONFIG_INPUT_FIELD_DATA {
+ DWORD dwSize;
+ EAP_CONFIG_INPUT_FIELD_TYPE Type;
+ DWORD dwFlagProps;
+ LPWSTR pwszLabel;
+ LPWSTR pwszData;
+ DWORD dwMinDataLength;
+ DWORD dwMaxDataLength;
+} EAP_CONFIG_INPUT_FIELD_DATA, *PEAP_CONFIG_INPUT_FIELD_DATA;
+
+typedef enum _EAP_CONFIG_INPUT_FIELD_TYPE {
+ EapConfigInputUsername,
+ EapConfigInputPassword,
+ EapConfigInputNetworkUsername,
+ EapConfigInputNetworkPassword,
+ EapConfigInputPin,
+ EapConfigInputPSK,
+ EapConfigInputEdit,
+ EapConfigSmartCardUsername,
+ EapConfigSmartCardError
+} EAP_CONFIG_INPUT_FIELD_TYPE;
+
+typedef struct _EAP_CRED_EXPIRY_REQ {
+ EAP_CONFIG_INPUT_FIELD_ARRAY curCreds;
+ EAP_CONFIG_INPUT_FIELD_ARRAY newCreds;
+} EAP_CRED_EXPIRY_REQ, *PEAP_CRED_EXPIRY_REQ;
+
+typedef struct _EAP_CRED_EXPIRY_RESP {
+ EAP_CONFIG_INPUT_FIELD_ARRAY curCreds;
+ EAP_CONFIG_INPUT_FIELD_ARRAY newCreds;
+} EAP_CRED_EXPIRY_RESP, *PEAP_CRED_EXPIRY_RESP;
+
+#ifdef __cplusplus
+}
+#endif
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_EAPTYPES*/
diff --git a/mingw-w64-headers/include/ehstorapi.h b/mingw-w64-headers/include/ehstorapi.h
new file mode 100644
index 0000000..a56e697
--- /dev/null
+++ b/mingw-w64-headers/include/ehstorapi.h
@@ -0,0 +1,22 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_EHSTORAPI
+#define _INC_EHSTORAPI
+
+#if (_WIN32_WINNT >= 0x0601)
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct _ACT_AUTHORIZATION_STATE {
+ ULONG ulState;
+} ACT_AUTHORIZATION_STATE, *PACT_AUTHORIZATION_STATE;
+
+#ifdef __cplusplus
+}
+#endif
+#endif /*(_WIN32_WINNT >= 0x0601)*/
+#endif /*_INC_EHSTORAPI*/
diff --git a/mingw-w64-headers/include/esent.h b/mingw-w64-headers/include/esent.h
new file mode 100644
index 0000000..22a4cfe
--- /dev/null
+++ b/mingw-w64-headers/include/esent.h
@@ -0,0 +1,2770 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_ESENT
+#define _INC_ESENT
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef JET_API
+#define JET_API WINAPI
+#endif
+
+#if defined(_WIN64)
+typedef unsigned __int64 JET_API_PTR;
+#elif !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) && _MSC_VER >= 1300
+typedef __w64 unsigned long JET_API_PTR;
+#else
+typedef unsigned long JET_API_PTR;
+#endif
+
+#if !defined(_NATIVE_WCHAR_T_DEFINED)
+typedef unsigned short WCHAR;
+#else
+typedef wchar_t WCHAR;
+#endif
+
+typedef enum _JET_CBTYP {
+ JET_cbtypNull = 0x00000000,
+ JET_cbtypFinalize = 0x00000001,
+ JET_cbtypBeforeInsert = 0x00000002,
+ JET_cbtypAfterInsert = 0x00000004,
+ JET_cbtypBeforeReplace = 0x00000008,
+ JET_cbtypAfterReplace = 0x00000010,
+ JET_cbtypBeforeDelete = 0x00000020,
+ JET_cbtypAfterDelete = 0x00000040,
+ JET_cbtypUserDefinedDefaultValue = 0x00000080,
+ JET_cbtypOnlineDefragCompleted = 0x00000100,
+ JET_cbtypFreeCursorLS = 0x00000200,
+ JET_cbtypFreeTableLS = 0x00000400
+} JET_CBTYP;
+
+typedef enum _JET_COLTYP {
+ JET_coltypNil = 0,
+ JET_coltypBit,
+ JET_coltypUnsignedByte,
+ JET_coltypShort,
+ JET_coltypLong,
+ JET_coltypCurrency,
+ JET_coltypIEEESingle,
+ JET_coltypIEEEDouble,
+ JET_coltypDateTime,
+ JET_coltypBinary,
+ JET_coltypText,
+ JET_coltypLongBinary,
+ JET_coltypLongText,
+ JET_coltypSLV,
+#if (_WIN32_WINNT >= 0x0600)
+ JET_coltypUnsignedLong,
+ JET_coltypLongLong,
+ JET_coltypGUID,
+ JET_coltypUnsignedShort,
+#endif
+ JET_coltypMax
+} JET_COLTYP;
+
+typedef enum _JET_OBJTYP {
+ JET_objtypNil = 0,
+ JET_objtypTable
+} JET_OBJTYP;
+
+typedef enum _JET_SNP {
+ JET_snpRepair = 2,
+ JET_snpCompact = 4,
+ JET_snpRestore = 8,
+ JET_snpBackup = 9,
+ JET_snpUpgrade = 10,
+ JET_snpScrub = 11,
+ JET_snpUpgradeRecordFormat = 12
+} JET_SNP;
+
+typedef enum _JET_SNT {
+ JET_sntBegin = 5,
+ JET_sntRequirements = 7,
+ JET_sntProgress = 0,
+ JET_sntComplete = 6,
+ JET_sntFail = 3
+} JET_SNT;
+
+#define JET_errSuccess 0
+#define JET_wrnRemainingVersions 321
+#define JET_wrnUniqueKey 345
+#define JET_wrnSeparateLongValue 406
+#define JET_wrnExistingLogFileHasBadSignature 558
+#define JET_wrnExistingLogFileIsNotContiguous 559
+#define JET_wrnSkipThisRecord 564
+#define JET_wrnTargetInstanceRunning 578
+#define JET_wrnDatabaseRepaired 595
+#define JET_wrnColumnNull 1004
+#define JET_wrnBufferTruncated 1006
+#define JET_wrnDatabaseAttached 1007
+#define JET_wrnSortOverflow 1009
+#define JET_wrnSeekNotEqual 1039
+#define JET_wrnRecordFoundGreater JET_wrnSeekNotEqual
+#define JET_wrnRecordFoundLess JET_wrnSeekNotEqual
+#define JET_wrnNoErrorInfo 1055
+#define JET_wrnNoIdleActivity 1058
+#define JET_wrnNoWriteLock 1067
+#define JET_wrnColumnSetNull 1068
+#define JET_wrnTableEmpty 1301
+#define JET_wrnTableInUseBySystem 1327
+#define JET_wrnCorruptIndexDeleted 1415
+#define JET_wrnColumnMaxTruncated 1512
+#define JET_wrnCopyLongValue 1520
+#define JET_wrnColumnSkipped 1531
+#define JET_wrnColumnNotLocal 1532
+#define JET_wrnColumnMoreTags 1533
+#define JET_wrnColumnTruncated 1534
+#define JET_wrnColumnPresent 1535
+#define JET_wrnColumnSingleValue 1536
+#define JET_wrnColumnDefault 1537
+#define JET_wrnDataHasChanged 1610
+#define JET_wrnKeyChanged 1618
+#define JET_wrnFileOpenReadOnly 1813
+#define JET_wrnIdleFull 1908
+#define JET_wrnDefragAlreadyRunning 2000
+#define JET_wrnDefragNotRunning 2001
+#define JET_wrnCallbackNotRegistered 2100
+#define JET_wrnNyi -1
+#define JET_errRfsFailure -100
+#define JET_errRfsNotArmed -101
+#define JET_errFileClose -102
+#define JET_errOutOfThreads -103
+#define JET_errTooManyIO -105
+#define JET_errTaskDropped -106
+#define JET_errInternalError -107
+#define JET_errDatabaseBufferDependenciesCorrupted -255
+#define JET_errPreviousVersion -322
+#define JET_errPageBoundary -323
+#define JET_errKeyBoundary -324
+#define JET_errBadPageLink -327
+#define JET_errBadBookmark -328
+#define JET_errNTSystemCallFailed -334
+#define JET_errBadParentPageLink -338
+#define JET_errSPAvailExtCacheOutOfSync -340
+#define JET_errSPAvailExtCorrupted -341
+#define JET_errSPAvailExtCacheOutOfMemory -342
+#define JET_errSPOwnExtCorrupted -343
+#define JET_errDbTimeCorrupted -344
+#define JET_errKeyTruncated -346
+#define JET_errKeyTooBig -408
+#define JET_errInvalidLoggedOperation -500
+#define JET_errLogFileCorrupt -501
+#define JET_errNoBackupDirectory -503
+#define JET_errBackupDirectoryNotEmpty -504
+#define JET_errBackupInProgress -505
+#define JET_errRestoreInProgress -506
+#define JET_errMissingPreviousLogFile -509
+#define JET_errLogWriteFail -510
+#define JET_errLogDisabledDueToRecoveryFailure -511
+#define JET_errCannotLogDuringRecoveryRedo -512
+#define JET_errLogGenerationMismatch -513
+#define JET_errBadLogVersion -514
+#define JET_errInvalidLogSequence -515
+#define JET_errLoggingDisabled -516
+#define JET_errLogBufferTooSmall -517
+#define JET_errLogSequenceEnd -519
+#define JET_errNoBackup -520
+#define JET_errInvalidBackupSequence -521
+#define JET_errBackupNotAllowedYet -523
+#define JET_errDeleteBackupFileFail -524
+#define JET_errMakeBackupDirectoryFail -525
+#define JET_errInvalidBackup -526
+#define JET_errRecoveredWithErrors -527
+#define JET_errMissingLogFile -528
+#define JET_errLogDiskFull -529
+#define JET_errBadLogSignature -530
+#define JET_errBadDbSignature -531
+#define JET_errBadCheckpointSignature -532
+#define JET_errCheckpointCorrupt -533
+#define JET_errMissingPatchPage -534
+#define JET_errBadPatchPage -535
+#define JET_errRedoAbruptEnded -536
+#define JET_errBadSLVSignature -537
+#define JET_errPatchFileMissing -538
+#define JET_errDatabaseLogSetMismatch -539
+#define JET_errDatabaseStreamingFileMismatch -540
+#define JET_errLogFileSizeMismatch -541
+#define JET_errCheckpointFileNotFound -542
+#define JET_errRequiredLogFilesMissing -543
+#define JET_errSoftRecoveryOnBackupDatabase -544
+#define JET_errLogFileSizeMismatchDatabasesConsistent -545
+#define JET_errLogSectorSizeMismatch -546
+#define JET_errLogSectorSizeMismatchDatabasesConsistent -547
+#define JET_errLogSequenceEndDatabasesConsistent -548
+#define JET_errStreamingDataNotLogged -549
+#define JET_errDatabaseDirtyShutdown -550
+#define JET_errDatabaseInconsistent JET_errDatabaseDirtyShutdown
+#define JET_errConsistentTimeMismatch -551
+#define JET_errDatabasePatchFileMismatch -552
+#define JET_errEndingRestoreLogTooLow -553
+#define JET_errStartingRestoreLogTooHigh -554
+#define JET_errGivenLogFileHasBadSignature -555
+#define JET_errGivenLogFileIsNotContiguous -556
+#define JET_errMissingRestoreLogFiles -557
+#define JET_errMissingFullBackup -560
+#define JET_errBadBackupDatabaseSize -561
+#define JET_errDatabaseAlreadyUpgraded -562
+#define JET_errDatabaseIncompleteUpgrade -563
+#define JET_errMissingCurrentLogFiles -565
+#define JET_errDbTimeTooOld -566
+#define JET_errDbTimeTooNew -567
+#define JET_errMissingFileToBackup -569
+#define JET_errLogTornWriteDuringHardRestore -570
+#define JET_errLogTornWriteDuringHardRecovery -571
+#define JET_errLogCorruptDuringHardRestore -573
+#define JET_errLogCorruptDuringHardRecovery -574
+#define JET_errMustDisableLoggingForDbUpgrade -575
+#define JET_errBadRestoreTargetInstance -577
+#define JET_errRecoveredWithoutUndo -579
+#define JET_errDatabasesNotFromSameSnapshot -580
+#define JET_errSoftRecoveryOnSnapshot -581
+#define JET_errUnicodeTranslationBufferTooSmall -601
+#define JET_errUnicodeTranslationFail -602
+#define JET_errUnicodeNormalizationNotSupported -603
+#define JET_errExistingLogFileHasBadSignature -610
+#define JET_errExistingLogFileIsNotContiguous -611
+#define JET_errLogReadVerifyFailure -612
+#define JET_errSLVReadVerifyFailure -613
+#define JET_errCheckpointDepthTooDeep -614
+#define JET_errRestoreOfNonBackupDatabase -615
+#define JET_errInvalidGrbit -900
+#define JET_errTermInProgress -1000
+#define JET_errFeatureNotAvailable -1001
+#define JET_errInvalidName -1002
+#define JET_errInvalidParameter -1003
+#define JET_errDatabaseFileReadOnly -1008
+#define JET_errInvalidDatabaseId -1010
+#define JET_errOutOfMemory -1011
+#define JET_errOutOfDatabaseSpace -1012
+#define JET_errOutOfCursors -1013
+#define JET_errOutOfBuffers -1014
+#define JET_errTooManyIndexes -1015
+#define JET_errTooManyKeys -1016
+#define JET_errRecordDeleted -1017
+#define JET_errReadVerifyFailure -1018
+#define JET_errPageNotInitialized -1019
+#define JET_errOutOfFileHandles -1020
+#define JET_errDiskIO -1022
+#define JET_errInvalidPath -1023
+#define JET_errInvalidSystemPath -1024
+#define JET_errInvalidLogDirectory -1025
+#define JET_errRecordTooBig -1026
+#define JET_errTooManyOpenDatabases -1027
+#define JET_errInvalidDatabase -1028
+#define JET_errNotInitialized -1029
+#define JET_errAlreadyInitialized -1030
+#define JET_errInitInProgress -1031
+#define JET_errFileAccessDenied -1032
+#define JET_errBufferTooSmall -1038
+#define JET_errTooManyColumns -1040
+#define JET_errContainerNotEmpty -1043
+#define JET_errInvalidFilename -1044
+#define JET_errInvalidBookmark -1045
+#define JET_errColumnInUse -1046
+#define JET_errInvalidBufferSize -1047
+#define JET_errColumnNotUpdatable -1048
+#define JET_errIndexInUse -1051
+#define JET_errLinkNotSupported -1052
+#define JET_errNullKeyDisallowed -1053
+#define JET_errNotInTransaction -1054
+#define JET_errTooManyActiveUsers -1059
+#define JET_errInvalidCountry -1061
+#define JET_errInvalidLanguageId -1062
+#define JET_errInvalidCodePage -1063
+#define JET_errInvalidLCMapStringFlags -1064
+#define JET_errVersionStoreEntryTooBig -1065
+#define JET_errVersionStoreOutOfMemoryAndCleanupTimedOut -1066
+#define JET_errVersionStoreOutOfMemory -1069
+#define JET_errCannotIndex -1071
+#define JET_errRecordNotDeleted -1072
+#define JET_errTooManyMempoolEntries -1073
+#define JET_errOutOfObjectIDs -1074
+#define JET_errOutOfLongValueIDs -1075
+#define JET_errOutOfAutoincrementValues -1076
+#define JET_errOutOfDbtimeValues -1077
+#define JET_errOutOfSequentialIndexValues -1078
+#define JET_errRunningInOneInstanceMode -1080
+#define JET_errRunningInMultiInstanceMode -1081
+#define JET_errSystemParamsAlreadySet -1082
+#define JET_errSystemPathInUse -1083
+#define JET_errLogFilePathInUse -1084
+#define JET_errTempPathInUse -1085
+#define JET_errInstanceNameInUse -1086
+#define JET_errInstanceUnavailable -1090
+#define JET_errDatabaseUnavailable -1091
+#define JET_errInstanceUnavailableDueToFatalLogDiskFull -1092
+#define JET_errOutOfSessions -1101
+#define JET_errWriteConflict -1102
+#define JET_errTransTooDeep -1103
+#define JET_errInvalidSesid -1104
+#define JET_errWriteConflictPrimaryIndex -1105
+#define JET_errInTransaction -1108
+#define JET_errRollbackRequired -1109
+#define JET_errTransReadOnly -1110
+#define JET_errSessionWriteConflict -1111
+#define JET_errRecordTooBigForBackwardCompatibility -1112
+#define JET_errCannotMaterializeForwardOnlySort -1113
+#define JET_errSesidTableIdMismatch -1114
+#define JET_errInvalidInstance -1115
+#define JET_errDatabaseDuplicate -1201
+#define JET_errDatabaseInUse -1202
+#define JET_errDatabaseNotFound -1203
+#define JET_errDatabaseInvalidName -1204
+#define JET_errDatabaseInvalidPages -1205
+#define JET_errDatabaseCorrupted -1206
+#define JET_errDatabaseLocked -1207
+#define JET_errCannotDisableVersioning -1208
+#define JET_errInvalidDatabaseVersion -1209
+#define JET_errDatabase200Format -1210
+#define JET_errDatabase400Format -1211
+#define JET_errDatabase500Format -1212
+#define JET_errPageSizeMismatch -1213
+#define JET_errTooManyInstances -1214
+#define JET_errDatabaseSharingViolation -1215
+#define JET_errAttachedDatabaseMismatch -1216
+#define JET_errDatabaseInvalidPath -1217
+#define JET_errDatabaseIdInUse -1218
+#define JET_errForceDetachNotAllowed -1219
+#define JET_errCatalogCorrupted -1220
+#define JET_errPartiallyAttachedDB -1221
+#define JET_errDatabaseSignInUse -1222
+#define JET_errDatabaseCorruptedNoRepair -1224
+#define JET_errInvalidCreateDbVersion -1225
+#define JET_errTableLocked -1302
+#define JET_errTableDuplicate -1303
+#define JET_errTableInUse -1304
+#define JET_errObjectNotFound -1305
+#define JET_errDensityInvalid -1307
+#define JET_errTableNotEmpty -1308
+#define JET_errInvalidTableId -1310
+#define JET_errTooManyOpenTables -1311
+#define JET_errIllegalOperation -1312
+#define JET_errTooManyOpenTablesAndCleanupTimedOut -1313
+#define JET_errObjectDuplicate -1314
+#define JET_errInvalidObject -1316
+#define JET_errCannotDeleteTempTable -1317
+#define JET_errCannotDeleteSystemTable -1318
+#define JET_errCannotDeleteTemplateTable -1319
+#define JET_errExclusiveTableLockRequired -1322
+#define JET_errFixedDDL -1323
+#define JET_errFixedInheritedDDL -1324
+#define JET_errCannotNestDDL -1325
+#define JET_errDDLNotInheritable -1326
+#define JET_errInvalidSettings -1328
+#define JET_errClientRequestToStopJetService -1329
+#define JET_errCannotAddFixedVarColumnToDerivedTable -1330
+#define JET_errIndexCantBuild -1401
+#define JET_errIndexHasPrimary -1402
+#define JET_errIndexDuplicate -1403
+#define JET_errIndexNotFound -1404
+#define JET_errIndexMustStay -1405
+#define JET_errIndexInvalidDef -1406
+#define JET_errInvalidCreateIndex -1409
+#define JET_errTooManyOpenIndexes -1410
+#define JET_errMultiValuedIndexViolation -1411
+#define JET_errIndexBuildCorrupted -1412
+#define JET_errPrimaryIndexCorrupted -1413
+#define JET_errSecondaryIndexCorrupted -1414
+#define JET_errInvalidIndexId -1416
+#define JET_errIndexTuplesSecondaryIndexOnly -1430
+#define JET_errIndexTuplesTooManyColumns -1431
+#define JET_errIndexTuplesNonUniqueOnly -1432
+#define JET_errIndexTuplesTextBinaryColumnsOnly -1433
+#define JET_errIndexTuplesVarSegMacNotAllowed -1434
+#define JET_errIndexTuplesInvalidLimits -1435
+#define JET_errIndexTuplesCannotRetrieveFromIndex -1436
+#define JET_errIndexTuplesKeyTooSmall -1437
+#define JET_errColumnLong -1501
+#define JET_errColumnNoChunk -1502
+#define JET_errColumnDoesNotFit -1503
+#define JET_errNullInvalid -1504
+#define JET_errColumnIllegalNull JET_errNullInvalid
+#define JET_errColumnIndexed -1505
+#define JET_errColumnTooBig -1506
+#define JET_errColumnNotFound -1507
+#define JET_errColumnDuplicate -1508
+#define JET_errMultiValuedColumnMustBeTagged -1509
+#define JET_errColumnRedundant -1510
+#define JET_errInvalidColumnType -1511
+#define JET_errTaggedNotNULL -1514
+#define JET_errNoCurrentIndex -1515
+#define JET_errKeyIsMade -1516
+#define JET_errBadColumnId -1517
+#define JET_errBadItagSequence -1518
+#define JET_errColumnInRelationship -1519
+#define JET_errCannotBeTagged -1521
+#define JET_errDefaultValueTooBig -1524
+#define JET_errMultiValuedDuplicate -1525
+#define JET_errLVCorrupted -1526
+#define JET_errMultiValuedDuplicateAfterTruncation -1528
+#define JET_errDerivedColumnCorruption -1529
+#define JET_errInvalidPlaceholderColumn -1530
+#define JET_errRecordNotFound -1601
+#define JET_errRecordNoCopy -1602
+#define JET_errNoCurrentRecord -1603
+#define JET_errRecordPrimaryChanged -1604
+#define JET_errKeyDuplicate -1605
+#define JET_errAlreadyPrepared -1607
+#define JET_errKeyNotMade -1608
+#define JET_errUpdateNotPrepared -1609
+#define JET_errDataHasChanged -1611
+#define JET_errLanguageNotSupported -1619
+#define JET_errTooManySorts -1701
+#define JET_errInvalidOnSort -1702
+#define JET_errTempFileOpenError -1803
+#define JET_errTooManyAttachedDatabases -1805
+#define JET_errDiskFull -1808
+#define JET_errPermissionDenied -1809
+#define JET_errFileNotFound -1811
+#define JET_errFileInvalidType -1812
+#define JET_errAfterInitialization -1850
+#define JET_errLogCorrupted -1852
+#define JET_errInvalidOperation -1906
+#define JET_errAccessDenied -1907
+#define JET_errTooManySplits -1909
+#define JET_errSessionSharingViolation -1910
+#define JET_errEntryPointNotFound -1911
+#define JET_errSessionContextAlreadySet -1912
+#define JET_errSessionContextNotSetByThisThread -1913
+#define JET_errSessionInUse -1914
+#define JET_errRecordFormatConversionFailed -1915
+#define JET_errOneDatabasePerSession -1916
+#define JET_errRollbackError -1917
+#define JET_errCallbackFailed -2101
+#define JET_errCallbackNotResolved -2102
+#define JET_errOSSnapshotInvalidSequence -2401
+#define JET_errOSSnapshotTimeOut -2402
+#define JET_errOSSnapshotNotAllowed -2403
+#define JET_errOSSnapshotInvalidSnapId -2404
+#define JET_errLSCallbackNotSpecified -3000
+#define JET_errLSAlreadySet -3001
+#define JET_errLSNotSet -3002
+#define JET_errFileIOSparse -4000
+#define JET_errFileIOBeyondEOF -4001
+#define JET_errFileIOAbort -4002
+#define JET_errFileIORetry -4003
+#define JET_errFileIOFail -4004
+#define JET_errFileCompressed -4005
+
+#define JET_ExceptionMsgBox 0x0001
+#define JET_ExceptionNone 0x0002
+
+#define JET_EventLoggingDisable 0
+#define JET_EventLoggingLevelMax 100
+
+#define JET_instanceNil (~(JET_INSTANCE)0)
+#define JET_sesidNil (~(JET_SESID)0)
+#define JET_tableidNil (~(JET_TABLEID)0)
+#define JET_bitNil ((JET_GRBIT)0)
+#define JET_LSNil (~(JET_LS)0)
+#define JET_dbidNil ((JET_DBID) 0xFFFFFFFF)
+
+#define JET_BASE_NAME_LENGTH 3
+#define JET_MAX_COMPUTERNAME_LENGTH 15
+#define JET_cbBookmarkMost 256
+#if UNICODE
+#define JET_cbNameMost 128
+#define JET_cbFullNameMost 510
+#else
+#define JET_cbNameMost 64
+#define JET_cbFullNameMost 255
+#endif
+#define JET_cbColumnLVPageOverhead 82
+#define JET_cbColumnMost 255
+#define JET_cbLVDefaultValueMost 255
+#define JET_cbKeyMost 255
+#if (_WIN32_WINNT >= 0x0600)
+#define JET_cbKeyMost2KBytePage 500
+#define JET_cbKeyMost4KBytePage 1000
+#define JET_cbKeyMost8KBytePage 2000
+#define JET_cbKeyMostMin 255
+#define JET_ccolKeyMost 12
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#define JET_cbLimitKeyMost 256
+#define JET_cbPrimaryKeyMost 255
+#define JET_cbSecondaryKeyMost 255
+#if (_WIN32_WINNT == 0x500)
+#define JET_ccolMost 0x00007ffe
+#else
+#define JET_ccolMost 0x0000fee0
+#endif /*(_WIN32_WINNT == 0x500)*/
+#define JET_ccolFixedMost 0x0000007f
+#define JET_ccolVarMost 0x00000080
+#define JET_ccolTaggedMost ( JET_ccolMost - 0x000000ff ) /*64993*/
+
+typedef unsigned long JET_COLUMNID;
+typedef double JET_DATESERIAL;
+typedef unsigned long JET_DBID;
+typedef long JET_ERR;
+typedef unsigned long JET_GRBIT;
+typedef JET_API_PTR JET_HANDLE;
+typedef JET_API_PTR JET_INSTANCE;
+typedef JET_API_PTR JET_LS;
+typedef JET_API_PTR JET_OSSNAPID;
+typedef const char * JET_PCSTR; /*__nullterminated*/
+typedef const WCHAR * JET_PCWSTR;/*__nullterminated*/
+typedef char * JET_PSTR; /*__nullterminated*/
+typedef WCHAR * JET_PWSTR; /*__nullterminated*/
+typedef JET_API_PTR JET_SESID;
+typedef JET_API_PTR JET_TABLEID;
+
+typedef struct _JET_ENUMCOLUMNVALUE JET_ENUMCOLUMNVALUE;
+
+typedef struct _JET_LGPOS {
+ unsigned short ib;
+ unsigned short isec;
+ long lGeneration;
+} JET_LGPOS;
+
+typedef struct _JET_LOGTIME {
+ char bSeconds;
+ char bMinutes;
+ char bHours;
+ char bDay;
+ char bMonth;
+ char bYear;
+ char bFiller1;
+ char bFiller2;
+} JET_LOGTIME;
+
+typedef struct _JET_BKLOGTIME {
+ char bSeconds;
+ char bMinutes;
+ char bHours;
+ char bDay;
+ char bMonth;
+ char bYear;
+ char bFiller1;
+ __MINGW_EXTENSION union {
+ char bFiller2;
+ __MINGW_EXTENSION struct {
+ unsigned char fOSSnapshot :1;
+ unsigned char fReserved :7;
+ };
+ };
+} JET_BKLOGTIME;
+
+typedef struct _JET_SIGNATURE {
+ unsigned long ulRandom;
+ JET_LOGTIME logtimeCreate;
+ char szComputerName[JET_MAX_COMPUTERNAME_LENGTH + 1];
+} JET_SIGNATURE;
+
+typedef struct tagJET_UNICODEINDEX {
+ unsigned long lcid;
+ unsigned long dwMapFlags;
+} JET_UNICODEINDEX;
+
+typedef struct tagJET_TUPLELIMITS {
+ unsigned long chLengthMin;
+ unsigned long chLengthMax;
+ unsigned long chToIndexMax;
+ unsigned long cchIncrement;
+ unsigned long ichStart;
+} JET_TUPLELIMITS;
+
+typedef struct _JET_BKINFO {
+ JET_LGPOS lgposMark;
+ __MINGW_EXTENSION union {
+ JET_LOGTIME logtimeMark;
+ JET_BKLOGTIME bklogtimeMark;
+ };
+ unsigned long genLow;
+ unsigned long genHigh;
+} JET_BKINFO;
+
+typedef struct _JET_COLUMNBASE_A{
+ unsigned long cbStruct;
+ JET_COLUMNID columnid;
+ JET_COLTYP coltyp;
+ unsigned short wCountry;
+ unsigned short langid;
+ unsigned short cp;
+ unsigned short wFiller;
+ unsigned long cbMax;
+ JET_GRBIT grbit;
+ char szBaseTableName[256];
+ char szBaseColumnName[256];
+} JET_COLUMNBASE_A;
+
+typedef struct _JET_COLUMNBASE_W{
+ unsigned long cbStruct;
+ JET_COLUMNID columnid;
+ JET_COLTYP coltyp;
+ unsigned short wCountry;
+ unsigned short langid;
+ unsigned short cp;
+ unsigned short wFiller;
+ unsigned long cbMax;
+ JET_GRBIT grbit;
+ WCHAR szBaseTableName[256];
+ WCHAR szBaseColumnName[256];
+} JET_COLUMNBASE_W;
+
+#define JET_COLUMNBASE __MINGW_NAME_AW(JET_COLUMNBASE_)
+
+typedef struct tag_JET_COLUMNCREATE_A {
+ unsigned long cbStruct;
+ char* szColumnName;
+ JET_COLTYP coltyp;
+ unsigned long cbMax;
+ JET_GRBIT grbit;
+ void* pvDefault;
+ unsigned long cbDefault;
+ unsigned long cp;
+ JET_COLUMNID columnid;
+ JET_ERR err;
+} JET_COLUMNCREATE_A;
+
+typedef struct tag_JET_COLUMNCREATE_W {
+ unsigned long cbStruct;
+ WCHAR* szColumnName;
+ JET_COLTYP coltyp;
+ unsigned long cbMax;
+ JET_GRBIT grbit;
+ void* pvDefault;
+ unsigned long cbDefault;
+ unsigned long cp;
+ JET_COLUMNID columnid;
+ JET_ERR err;
+} JET_COLUMNCREATE_W;
+
+#define JET_COLUMNCREATE __MINGW_NAME_AW(JET_COLUMNCREATE_)
+
+typedef struct _JET_COLUMNDEF {
+ unsigned long cbStruct;
+ JET_COLUMNID columnid;
+ JET_COLTYP coltyp;
+ unsigned short wCountry;
+ unsigned short langid;
+ unsigned short cp;
+ unsigned short wCollate;
+ unsigned long cbMax;
+ JET_GRBIT grbit;
+} JET_COLUMNDEF;
+
+typedef struct _JET_COLUMNLIST {
+ unsigned long cbStruct;
+ JET_TABLEID tableid;
+ unsigned long cRecord;
+ JET_COLUMNID columnidPresentationOrder;
+ JET_COLUMNID columnidcolumnname;
+ JET_COLUMNID columnidcolumnid;
+ JET_COLUMNID columnidcoltyp;
+ JET_COLUMNID columnidCountry;
+ JET_COLUMNID columnidLangid;
+ JET_COLUMNID columnidCp;
+ JET_COLUMNID columnidCollate;
+ JET_COLUMNID columnidcbMax;
+ JET_COLUMNID columnidgrbit;
+ JET_COLUMNID columnidDefault;
+ JET_COLUMNID columnidBaseTableName;
+ JET_COLUMNID columnidBaseColumnName;
+ JET_COLUMNID columnidDefinitionName;
+} JET_COLUMNLIST;
+
+typedef struct tagJET_CONDITIONALCOLUMN_A {
+ unsigned long cbStruct;
+ char* szColumnName;
+ JET_GRBIT grbit;
+} JET_CONDITIONALCOLUMN_A;
+
+typedef struct tagJET_CONDITIONALCOLUMN_W {
+ unsigned long cbStruct;
+ WCHAR* szColumnName;
+ JET_GRBIT grbit;
+} JET_CONDITIONALCOLUMN_W;
+
+#define JET_CONDITIONALCOLUMN __MINGW_NAME_AW(JET_CONDITIONALCOLUMN_)
+
+typedef struct tagCONVERT_A {
+ char* SzOldDll;
+ __MINGW_EXTENSION union {
+ unsigned long fFlags;
+ __MINGW_EXTENSION struct {
+ unsigned long fSchemaChangesOnly :1;
+ };
+ };
+} JET_CONVERT_A;
+
+typedef struct tagCONVERT_W {
+ WCHAR* SzOldDll;
+ __MINGW_EXTENSION union {
+ unsigned long fFlags;
+ __MINGW_EXTENSION struct {
+ unsigned long fSchemaChangesOnly :1;
+ };
+ };
+} JET_CONVERT_W;
+
+#define JET_CONVERT __MINGW_NAME_AW(JET_CONVERT_)
+
+#define JET_dbstateJustCreated 1
+#define JET_dbstateDirtyShutdown 2
+#define JET_dbstateCleanShutdown 3
+#define JET_dbstateBeingConverted 4
+#define JET_dbstateForceDetach 5
+
+typedef struct _JET_DBINFOMISC {
+ unsigned long ulVersion;
+ unsigned long ulUpdate;
+ JET_SIGNATURE signDb;
+ unsigned long dbstate;
+ JET_LGPOS lgposConsistent;
+ JET_LOGTIME logtimeConsistent;
+ JET_LOGTIME logtimeAttach;
+ JET_LGPOS lgposAttach;
+ JET_LOGTIME logtimeDetach;
+ JET_LGPOS lgposDetach;
+ JET_SIGNATURE signLog;
+ JET_BKINFO bkinfoFullPrev;
+ JET_BKINFO bkinfoIncPrev;
+ JET_BKINFO bkinfoFullCur;
+ unsigned long fShadowingDisabled;
+ unsigned long fUpgradeDb;
+ unsigned long dwMajorVersion;
+ unsigned long dwMinorVersion;
+ unsigned long dwBuildNumber;
+ long lSPNumber;
+ unsigned long cbPageSize;
+} JET_DBINFOMISC;
+
+typedef struct _JET_DBINFOUPGRADE {
+ unsigned long cbStruct;
+ unsigned long cbFilesizeLow;
+ unsigned long cbFilesizeHigh;
+ unsigned long cbFreeSpaceRequiredLow;
+ unsigned long cbFreeSpaceRequiredHigh;
+ unsigned long csecToUpgrade;
+ __MINGW_EXTENSION union {
+ unsigned long ulFlags;
+ __MINGW_EXTENSION struct {
+ unsigned long fUpgradable :1;
+ unsigned long fAlreadyUpgraded :1;
+ };
+ };
+} JET_DBINFOUPGRADE;
+
+typedef struct _JET_ENUMCOLUMNVALUE {
+ unsigned long itagSequence;
+ JET_ERR err;
+ unsigned long cbData;
+ void* pvData;
+} JET_ENUMCOLUMNVALUE;
+
+typedef struct _JET_ENUMCOLUMN {
+ JET_COLUMNID columnid;
+ JET_ERR err;
+ __MINGW_EXTENSION union {
+ __MINGW_EXTENSION struct {
+ unsigned long cEnumColumnValue;
+ JET_ENUMCOLUMNVALUE rgEnumColumnValue;
+ };
+ __MINGW_EXTENSION struct {
+ unsigned long cbData;
+ void* pvData;
+ };
+ } DUMMYNIONNAME1;
+} JET_ENUMCOLUMN;
+
+typedef struct _JET_ENUMCOLUMNID {
+ JET_COLUMNID columnid;
+ unsigned long ctagSequence;
+ unsigned long* rgtagSequence;
+} JET_ENUMCOLUMNID;
+
+typedef struct tagJET_INDEXCREATE_A {
+ unsigned long cbStruct;
+ char* szIndexName;
+ char* szKey;
+ unsigned long cbKey;
+ JET_GRBIT grbit;
+ unsigned long ulDensity;
+ __MINGW_EXTENSION union {
+ unsigned long lcid;
+ JET_UNICODEINDEX* pidxunicode;
+ };
+ __MINGW_EXTENSION union {
+ unsigned long cbVarSegMac;
+ JET_TUPLELIMITS* ptuplelimits;
+ };
+ JET_CONDITIONALCOLUMN* rgconditionalcolumn;
+ unsigned long cConditionalColumn;
+ JET_ERR err;
+ unsigned long cbKeyMost;
+} JET_INDEXCREATE_A;
+
+typedef struct tagJET_INDEXCREATE_W {
+ unsigned long cbStruct;
+ WCHAR* szIndexName;
+ WCHAR* szKey;
+ unsigned long cbKey;
+ JET_GRBIT grbit;
+ unsigned long ulDensity;
+ __MINGW_EXTENSION union {
+ unsigned long lcid;
+ JET_UNICODEINDEX* pidxunicode;
+ };
+ __MINGW_EXTENSION union {
+ unsigned long cbVarSegMac;
+ JET_TUPLELIMITS* ptuplelimits;
+ };
+ JET_CONDITIONALCOLUMN* rgconditionalcolumn;
+ unsigned long cConditionalColumn;
+ JET_ERR err;
+ unsigned long cbKeyMost;
+} JET_INDEXCREATE_W;
+#define JET_INDEXCREATE __MINGW_NAME_AW(JET_INDEXCREATE_)
+
+typedef struct tagJET_INDEXID {
+ unsigned long cbStruct;
+ char rgbIndexId[];
+} JET_INDEXID;
+
+typedef struct _JET_INDEXLIST {
+ unsigned long cbStruct;
+ JET_TABLEID tableid;
+ unsigned long cRecord;
+ JET_COLUMNID columnidindexname;
+ JET_COLUMNID columnidgrbitIndex;
+ JET_COLUMNID columnidcKey;
+ JET_COLUMNID columnidcEntry;
+ JET_COLUMNID columnidcPage;
+ JET_COLUMNID columnidcColumn;
+ JET_COLUMNID columnidiColumn;
+ JET_COLUMNID columnidcolumnid;
+ JET_COLUMNID columnidcoltyp;
+ JET_COLUMNID columnidCountry;
+ JET_COLUMNID columnidLangid;
+ JET_COLUMNID columnidCp;
+ JET_COLUMNID columnidCollate;
+ JET_COLUMNID columnidgrbitColumn;
+ JET_COLUMNID columnidcolumnname;
+ JET_COLUMNID columnidLCMapFlags;
+} JET_INDEXLIST;
+
+typedef struct _JET_INDEXRANGE {
+ unsigned long cbStruct;
+ JET_TABLEID tableid;
+ JET_GRBIT grbit;
+} JET_INDEXRANGE;
+
+typedef struct _JET_INSTANCE_INFO_A {
+ JET_INSTANCE hInstanceId;
+ char* szInstanceName;
+ JET_API_PTR cDatabases;
+ char** szDatabaseFileName;
+ char** szDatabaseDisplayName;
+ char** szDatabaseSLVFileName;
+} JET_INSTANCE_INFO_A;
+
+typedef struct _JET_INSTANCE_INFO_W {
+ JET_INSTANCE hInstanceId;
+ WCHAR* szInstanceName;
+ JET_API_PTR cDatabases;
+ WCHAR** szDatabaseFileName;
+ WCHAR** szDatabaseDisplayName;
+ WCHAR** szDatabaseSLVFileName;
+} JET_INSTANCE_INFO_W;
+
+#define JET_INSTANCE_INFO __MINGW_NAME_AW(JET_INSTANCE_INFO_)
+
+typedef struct _JET_LOGINFO_A {
+ unsigned long cbSize;
+ unsigned long ulGenLow;
+ unsigned long ulGenHigh;
+ char szBaseName[JET_BASE_NAME_LENGTH + 1];
+} JET_LOGINFO_A;
+
+typedef struct JET_LOGINFO_W {
+ unsigned long cbSize;
+ unsigned long ulGenLow;
+ unsigned long ulGenHigh;
+ WCHAR szBaseName[JET_BASE_NAME_LENGTH + 1];
+} JET_LOGINFO_W;
+
+#define JET_LOGINFO __MINGW_NAME_AW(JET_LOGINFO_)
+
+typedef struct _JET_OBJECTINFO {
+ unsigned long cbStruct;
+ JET_OBJTYP objtyp;
+ JET_DATESERIAL dtCreate;
+ JET_DATESERIAL dtUpdate;
+ JET_GRBIT grbit;
+ unsigned long flags;
+ unsigned long cRecord;
+ unsigned long cPage;
+} JET_OBJECTINFO;
+
+typedef struct _JET_OBJECTLIST {
+ unsigned long cbStruct;
+ JET_TABLEID tableid;
+ unsigned long cRecord;
+ JET_COLUMNID columnidcontainername;
+ JET_COLUMNID columnidobjectname;
+ JET_COLUMNID columnidobjtyp;
+ JET_COLUMNID columniddtCreate;
+ JET_COLUMNID columniddtUpdate;
+ JET_COLUMNID columnidgrbit;
+ JET_COLUMNID columnidflags;
+ JET_COLUMNID columnidcRecord;
+ JET_COLUMNID columnidcPage;
+} JET_OBJECTLIST;
+
+#if (_WIN32_WINNT >= 0x0600)
+typedef struct tagJET_OPENTEMPORARYTABLE {
+ unsigned long cbStruct;
+ const JET_COLUMNDEF* prgcolumndef;
+ unsigned long ccolumn;
+ JET_UNICODEINDEX* pidxunicode;
+ JET_GRBIT grbit;
+ JET_COLUMNID* prgcolumnid;
+ unsigned long cbKeyMost;
+ unsigned long cbVarSegMac;
+ JET_TABLEID tableid;
+} JET_OPENTEMPORARYTABLE;
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
+typedef struct _JET_RECORDLIST{
+ unsigned long cbStruct;
+ JET_TABLEID tableid;
+ unsigned long cRecord;
+ JET_COLUMNID columnidBookmark;
+} JET_RECORDLIST;
+
+typedef struct _JET_RECPOS {
+ unsigned long cbStruct;
+ unsigned long centriesLT;
+ unsigned long centriesInRange;
+ unsigned long centriesTotal;
+} JET_RECPOS;
+
+#if (_WIN32_WINNT >= 0x0600)
+typedef struct _JET_RECSIZE {
+ unsigned __int64 cbData;
+ unsigned __int64 cbLongValueData;
+ unsigned __int64 cbOverhead;
+ unsigned __int64 cbLongValueOverhead;
+ unsigned __int64 cNonTaggedColumns;
+ unsigned __int64 cTaggedColumns;
+ unsigned __int64 cLongValues;
+ unsigned __int64 cMultiValues;
+} JET_RECSIZE;
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
+typedef struct _JET_RETINFO {
+ unsigned long cbStruct;
+ unsigned long ibLongValue;
+ unsigned long itagSequence;
+ JET_COLUMNID columnidNextTagged;
+} JET_RETINFO;
+
+typedef struct _JET_RETRIEVECOLUMN {
+ JET_COLUMNID columnid;
+ void* pvData; unsigned long cbData;
+ unsigned long cbActual;
+ JET_GRBIT grbit;
+ unsigned long ibLongValue;
+ unsigned long itagSequence;
+ JET_COLUMNID columnidNextTagged;
+ JET_ERR err;
+} JET_RETRIEVECOLUMN;
+
+#ifndef xRPC_STRING
+#define xRPC_STRING
+#endif
+
+typedef struct _JET_RSTMAP_A{
+ xRPC_STRING char* szDatabaseName;
+ xRPC_STRING char* szNewDatabaseName;
+} JET_RSTMAP_A;
+
+typedef struct _JET_RSTMAP_W{
+ xRPC_STRING WCHAR* szDatabaseName;
+ xRPC_STRING WCHAR* szNewDatabaseName;
+} JET_RSTMAP_W;
+
+typedef JET_ERR (JET_API *JET_PFNSTATUS)(
+ JET_SESID sesid,
+ JET_SNP snp,
+ JET_SNT snt,
+ void* pv
+);
+
+typedef struct _JET_RSTINFO_A{
+ unsigned long cbStruct;
+ JET_RSTMAP_A* rgrstmap;
+ long crstmap;
+ JET_LGPOS lgposStop;
+ JET_LOGTIME logtimeStop;
+ JET_PFNSTATUS pfnStatus;
+} JET_RSTINFO_A;
+
+typedef struct _JET_RSTINFO_W{
+ unsigned long cbStruct;
+ JET_RSTMAP_W* rgrstmap;
+ long crstmap;
+ JET_LGPOS lgposStop;
+ JET_LOGTIME logtimeStop;
+ JET_PFNSTATUS pfnStatus;
+} JET_RSTINFO_W;
+
+#define JET_RSTMAP __MINGW_NAME_AW(JET_RSTMAP_)
+#define JET_RSTINFO __MINGW_NAME_AW(JET_RSTINFO_)
+
+typedef struct _JET_SETCOLUMN {
+ JET_COLUMNID columnid;
+ const void* pvData;
+ unsigned long cbData;
+ JET_GRBIT grbit;
+ unsigned long ibLongValue;
+ unsigned long itagSequence;
+ JET_ERR err;
+} JET_SETCOLUMN;
+
+typedef struct _JET_SETINFO {
+ unsigned long cbStruct;
+ unsigned long ibLongValue;
+ unsigned long itagSequence;
+} JET_SETINFO;
+
+typedef struct _JET_SETSYSPARAM_A {
+ unsigned long paramid;
+ JET_API_PTR lParam;
+ const char* sz;
+ JET_ERR err;
+} JET_SETSYSPARAM_A;
+
+typedef struct _JET_SETSYSPARAM_W {
+ unsigned long paramid;
+ JET_API_PTR lParam;
+ const WCHAR* sz;
+ JET_ERR err;
+} JET_SETSYSPARAM_W;
+
+#define JET_SETSYSPARAM __MINGW_NAME_AW(JET_SETSYSPARAM_)
+
+typedef struct _JET_SNPROG {
+ unsigned long cbStruct;
+ unsigned long cunitDone;
+ unsigned long cunitTotal;
+} JET_SNPROG;
+
+typedef struct tagJET_TABLECREATE_A {
+ unsigned long cbStruct;
+ char* szTableName;
+ char* szTemplateTableName;
+ unsigned long ulPages;
+ unsigned long ulDensity;
+ JET_COLUMNCREATE* rgcolumncreate;
+ unsigned long cColumns;
+ JET_INDEXCREATE_A* rgindexcreate;
+ unsigned long cIndexes;
+ JET_GRBIT grbit;
+ JET_TABLEID tableid;
+ unsigned long cCreated;
+} JET_TABLECREATE_A;
+
+typedef struct tagJET_TABLECREATE_W {
+ unsigned long cbStruct;
+ WCHAR* szTableName;
+ WCHAR* szTemplateTableName;
+ unsigned long ulPages;
+ unsigned long ulDensity;
+ JET_COLUMNCREATE* rgcolumncreate;
+ unsigned long cColumns;
+ JET_INDEXCREATE_W* rgindexcreate;
+ unsigned long cIndexes;
+ JET_GRBIT grbit;
+ JET_TABLEID tableid;
+ unsigned long cCreated;
+} JET_TABLECREATE_W;
+
+#define JET_TABLECREATE __MINGW_NAME_AW(JET_TABLECREATE_)
+
+typedef struct tagJET_TABLECREATE2_A {
+ unsigned long cbStruct;
+ char* szTableName;
+ char* szTemplateTableName;
+ unsigned long ulPages;
+ unsigned long ulDensity;
+ JET_COLUMNCREATE_A* rgcolumncreate;
+ unsigned long cColumns;
+ JET_INDEXCREATE_A* rgindexcreate;
+ unsigned long cIndexes;
+ char* szCallback;
+ JET_CBTYP cbtyp;
+ JET_GRBIT grbit;
+ JET_TABLEID tableid;
+ unsigned long cCreated;
+} JET_TABLECREATE2_A;
+
+typedef struct tagJET_TABLECREATE2_W {
+ unsigned long cbStruct;
+ WCHAR* szTableName;
+ WCHAR* szTemplateTableName;
+ unsigned long ulPages;
+ unsigned long ulDensity;
+ JET_COLUMNCREATE_W* rgcolumncreate;
+ unsigned long cColumns;
+ JET_INDEXCREATE_W* rgindexcreate;
+ unsigned long cIndexes;
+ WCHAR* szCallback;
+ JET_CBTYP cbtyp;
+ JET_GRBIT grbit;
+ JET_TABLEID tableid;
+ unsigned long cCreated;
+} JET_TABLECREATE2_W;
+
+#define JET_TABLECREATE2 __MINGW_NAME_AW(JET_TABLECREATE2_)
+
+#if (_WIN32_WINNT >= 0x0600)
+typedef struct _JET_THREADSTATS {
+ unsigned long cbStruct;
+ unsigned long cPageReferenced;
+ unsigned long cPageRead;
+ unsigned long cPagePreread;
+ unsigned long cPageDirtied;
+ unsigned long cPageRedirtied;
+ unsigned long cLogRecord;
+ unsigned long cbLogRecord;
+} JET_THREADSTATS;
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
+typedef struct tag_JET_USERDEFINEDDEFAULT_A {
+ char* szCallback;
+ unsigned char* pbUserData;
+ unsigned long cbUserData;
+ char* szDependantColumns;
+} JET_USERDEFINEDDEFAULT_A;
+
+typedef struct tag_JET_USERDEFINEDDEFAULT_W {
+ WCHAR* szCallback;
+ unsigned char* pbUserData;
+ unsigned long cbUserData;
+ WCHAR* szDependantColumns;
+} JET_USERDEFINEDDEFAULT_W;
+
+#define JET_USERDEFINEDDEFAULT __MINGW_NAME_AW(JET_USERDEFINEDDEFAULT_)
+
+typedef JET_ERR (JET_API* JET_CALLBACK)(
+ JET_SESID sesid,
+ JET_DBID dbid,
+ JET_TABLEID tableid,
+ JET_CBTYP cbtyp,
+ void* pvArg1,
+ void* pvArg2,
+ void* pvContext,
+ JET_API_PTR ulUnused
+);
+
+typedef void * (JET_API *JET_PFNREALLOC)(
+ void* pvContext,
+ void* pv,
+ unsigned long cb
+);
+
+JET_ERR JET_API JetAddColumnA(
+ JET_SESID sesid,
+ JET_TABLEID tableid,
+ JET_PCSTR szColumnName,
+ const JET_COLUMNDEF* pcolumndef,
+ const void* pvDefault,
+ unsigned long cbDefault,
+ JET_COLUMNID* pcolumnid
+);
+
+JET_ERR JET_API JetAddColumnW(
+ JET_SESID sesid,
+ JET_TABLEID tableid,
+ JET_PCWSTR szColumnName,
+ const JET_COLUMNDEF* pcolumndef,
+ const void* pvDefault,
+ unsigned long cbDefault,
+ JET_COLUMNID* pcolumnid
+);
+
+#define JetAddColumn __MINGW_NAME_AW(JetAddColumn)
+
+JET_ERR JET_API JetAttachDatabaseA(
+ JET_SESID sesid,
+ const char* szFilename,
+ JET_GRBIT grbit
+);
+
+JET_ERR JET_API JetAttachDatabaseW(
+ JET_SESID sesid,
+ const WCHAR* szFilename,
+ JET_GRBIT grbit
+);
+
+#define JetAttachDatabase __MINGW_NAME_AW(JetAttachDatabase)
+
+JET_ERR JET_API JetAttachDatabase2A(
+ JET_SESID sesid,
+ const char* szFilename,
+ const unsigned long cpgDatabaseSizeMax,
+ JET_GRBIT grbit
+);
+
+JET_ERR JET_API JetAttachDatabase2W(
+ JET_SESID sesid,
+ const WCHAR* szFilename,
+ const unsigned long cpgDatabaseSizeMax,
+ JET_GRBIT grbit
+);
+
+#define JetAttachDatabase2 __MINGW_NAME_AW(JetAttachDatabase2)
+
+JET_ERR JET_API JetBackupA(
+ JET_PCSTR szBackupPath,
+ JET_GRBIT grbit,
+ JET_PFNSTATUS pfnStatus
+);
+
+JET_ERR JET_API JetBackupW(
+ JET_PCWSTR szBackupPath,
+ JET_GRBIT grbit,
+ JET_PFNSTATUS pfnStatus
+);
+
+#define JetBackup __MINGW_NAME_AW(JetBackup)
+
+JET_ERR JET_API JetBackupInstanceA(
+ JET_INSTANCE instance,
+ JET_PCSTR szBackupPath,
+ JET_GRBIT grbit,
+ JET_PFNSTATUS pfnStatus
+);
+
+JET_ERR JET_API JetBackupInstanceW(
+ JET_INSTANCE instance,
+ JET_PCWSTR szBackupPath,
+ JET_GRBIT grbit,
+ JET_PFNSTATUS pfnStatus
+);
+
+#define JetBackupInstance __MINGW_NAME_AW(JetBackupInstance)
+
+JET_ERR JET_API JetBeginExternalBackup(
+ JET_GRBIT grbit
+);
+
+JET_ERR JET_API JetBeginExternalBackupInstance(
+ JET_INSTANCE instance,
+ JET_GRBIT grbit
+);
+
+JET_ERR JET_API JetBeginSessionA(
+ JET_INSTANCE instance,
+ JET_SESID* psesid,
+ JET_PCSTR szUserName,
+ JET_PCSTR szPassword
+);
+
+JET_ERR JET_API JetBeginSessionW(
+ JET_INSTANCE instance,
+ JET_SESID* psesid,
+ JET_PCWSTR szUserName,
+ JET_PCWSTR szPassword
+);
+
+JET_ERR JET_API JetBeginTransaction(
+ JET_SESID sesid
+);
+
+JET_ERR JET_API JetBeginTransaction2(
+ JET_SESID sesid,
+ JET_GRBIT grbit
+);
+
+JET_ERR JET_API JetCloseDatabase(
+ JET_SESID sesid,
+ JET_DBID dbid,
+ JET_GRBIT grbit
+);
+
+JET_ERR JET_API JetCloseFile(
+ JET_HANDLE hfFile
+);
+
+JET_ERR JET_API JetCloseFileInstance(
+ JET_INSTANCE instance,
+ JET_HANDLE hfFile
+);
+
+JET_ERR JET_API JetCloseTable(
+ JET_SESID sesid,
+ JET_TABLEID tableid
+);
+
+JET_ERR JET_API JetCommitTransaction(
+ JET_SESID sesid,
+ JET_GRBIT grbit
+);
+
+JET_ERR JET_API JetCompactA(
+ JET_SESID sesid,
+ JET_PCSTR szDatabaseSrc,
+ JET_PCSTR szDatabaseDest,
+ JET_PFNSTATUS pfnStatus,
+ JET_CONVERT_A* pconvert,
+ JET_GRBIT grbit
+);
+
+JET_ERR JET_API JetCompactW(
+ JET_SESID sesid,
+ JET_PCWSTR szDatabaseSrc,
+ JET_PCWSTR szDatabaseDest,
+ JET_PFNSTATUS pfnStatus,
+ JET_CONVERT_W* pconvert,
+ JET_GRBIT grbit
+);
+
+#define JetCompact __MINGW_NAME_AW(JetCompact)
+
+JET_ERR JET_API JetComputeStats(
+ JET_SESID sesid,
+ JET_TABLEID tableid
+);
+
+JET_ERR JET_API JetCreateDatabaseA(
+ JET_SESID sesid,
+ JET_PCSTR szFilename,
+ JET_PCSTR szConnect,
+ JET_DBID* pdbid,
+ JET_GRBIT grbit
+);
+
+JET_ERR JET_API JetCreateDatabaseW(
+ JET_SESID sesid,
+ JET_PCWSTR szFilename,
+ JET_PCWSTR szConnect,
+ JET_DBID* pdbid,
+ JET_GRBIT grbit
+);
+
+#define JetCreateDatabase __MINGW_NAME_AW(JetCreateDatabase)
+
+JET_ERR JET_API JetCreateDatabase2A(
+ JET_SESID sesid,
+ const char* szFilename,
+ const unsigned long cpgDatabaseSizeMax,
+ JET_DBID* pdbid,
+ JET_GRBIT grbit
+);
+
+JET_ERR JET_API JetCreateDatabase2W(
+ JET_SESID sesid,
+ const WCHAR* szFilename,
+ const unsigned long cpgDatabaseSizeMax,
+ JET_DBID* pdbid,
+ JET_GRBIT grbit
+);
+
+#define JetCreateDatabase2 __MINGW_NAME_AW(JetCreateDatabase2)
+
+JET_ERR JET_API JetCreateIndexA(
+ JET_SESID sesid,
+ JET_TABLEID tableid,
+ JET_PCSTR szIndexName,
+ JET_GRBIT grbit,
+ const char* szKey,
+ unsigned long cbKey,
+ unsigned long lDensity
+);
+
+JET_ERR JET_API JetCreateIndexW(
+ JET_SESID sesid,
+ JET_TABLEID tableid,
+ JET_PCWSTR szIndexName,
+ JET_GRBIT grbit,
+ const WCHAR* szKey,
+ unsigned long cbKey,
+ unsigned long lDensity
+);
+
+#define JetCreateIndex __MINGW_NAME_AW(JetCreateIndex)
+
+JET_ERR JET_API JetCreateIndex2A(
+ JET_SESID sesid,
+ JET_TABLEID tableid,
+ JET_INDEXCREATE_A* pindexcreate,
+ unsigned long cIndexCreate
+);
+
+JET_ERR JET_API JetCreateIndex2W(
+ JET_SESID sesid,
+ JET_TABLEID tableid,
+ JET_INDEXCREATE_W* pindexcreate,
+ unsigned long cIndexCreate
+);
+
+#define JetCreateIndex2 __MINGW_NAME_AW(JetCreateIndex2)
+
+JET_ERR JET_API JetCreateInstanceA(
+ JET_INSTANCE* pinstance,
+ const char* szInstanceName
+);
+
+JET_ERR JET_API JetCreateInstanceW(
+ JET_INSTANCE* pinstance,
+ const WCHAR* szInstanceName
+);
+
+#define JetCreateInstance __MINGW_NAME_AW(JetCreateInstance)
+
+JET_ERR JET_API JetCreateInstance2A(
+ JET_INSTANCE* pinstance,
+ const char* szInstanceName,
+ const char* szDisplayName,
+ JET_GRBIT grbit
+);
+
+JET_ERR JET_API JetCreateInstance2W(
+ JET_INSTANCE* pinstance,
+ const WCHAR* szInstanceName,
+ const WCHAR* szDisplayName,
+ JET_GRBIT grbit
+);
+
+JET_ERR JET_API JetCreateTableA(
+ JET_SESID sesid,
+ JET_DBID dbid,
+ const char* szTableName,
+ unsigned long lPages,
+ unsigned long lDensity,
+ JET_TABLEID* ptableid
+);
+
+JET_ERR JET_API JetCreateTableW(
+ JET_SESID sesid,
+ JET_DBID dbid,
+ const WCHAR* szTableName,
+ unsigned long lPages,
+ unsigned long lDensity,
+ JET_TABLEID* ptableid
+);
+
+JET_ERR JET_API JetCreateTableColumnIndexA(
+ JET_SESID sesid,
+ JET_DBID dbid,
+ JET_TABLECREATE_A* ptablecreate
+);
+
+JET_ERR JET_API JetCreateTableColumnIndexW(
+ JET_SESID sesid,
+ JET_DBID dbid,
+ JET_TABLECREATE_W* ptablecreate
+);
+
+#define JetCreateInstance2 __MINGW_NAME_AW(JetCreateInstance2)
+
+JET_ERR JET_API JetCreateTableColumnIndex2A(
+ JET_SESID sesid,
+ JET_DBID dbid,
+ JET_TABLECREATE2_A* ptablecreate
+);
+
+JET_ERR JET_API JetCreateTableColumnIndex2W(
+ JET_SESID sesid,
+ JET_DBID dbid,
+ JET_TABLECREATE2_W* ptablecreate
+);
+
+#define JetCreateTableColumnIndex2 __MINGW_NAME_AW(JetCreateTableColumnIndex2)
+
+JET_ERR JET_API JetDefragmentA(
+ JET_SESID sesid,
+ JET_DBID dbid,
+ JET_PCSTR szTableName,
+ unsigned long* pcPasses,
+ unsigned long* pcSeconds,
+ JET_GRBIT grbit
+);
+
+JET_ERR JET_API JetDefragmentW(
+ JET_SESID sesid,
+ JET_DBID dbid,
+ JET_PCWSTR szTableName,
+ unsigned long* pcPasses,
+ unsigned long* pcSeconds,
+ JET_GRBIT grbit
+);
+
+#define JetDefragment __MINGW_NAME_AW(JetDefragment)
+
+JET_ERR JET_API JetDefragment2A(
+ JET_SESID sesid,
+ JET_DBID dbid,
+ JET_PCSTR szTableName,
+ unsigned long* pcPasses,
+ unsigned long* pcSeconds,
+ JET_CALLBACK callback,
+ JET_GRBIT grbit
+);
+
+JET_ERR JET_API JetDefragment2W(
+ JET_SESID sesid,
+ JET_DBID dbid,
+ JET_PCWSTR szTableName,
+ unsigned long* pcPasses,
+ unsigned long* pcSeconds,
+ JET_CALLBACK callback,
+ JET_GRBIT grbit
+);
+
+#define JetDefragment2 __MINGW_NAME_AW(JetDefragment2)
+
+JET_ERR JET_API JetDelete(
+ JET_SESID sesid,
+ JET_TABLEID tableid
+);
+
+JET_ERR JET_API JetDeleteColumnA(
+ JET_SESID sesid,
+ JET_TABLEID tableid,
+ const char* szColumnName
+);
+
+JET_ERR JET_API JetDeleteColumnW(
+ JET_SESID sesid,
+ JET_TABLEID tableid,
+ const WCHAR* szColumnName
+);
+
+#define JetDeleteColumn __MINGW_NAME_AW(JetDeleteColumn)
+
+JET_ERR JET_API JetDeleteColumn2A(
+ JET_SESID sesid,
+ JET_TABLEID tableid,
+ const char* szColumnName,
+ const JET_GRBIT grbit
+);
+
+JET_ERR JET_API JetDeleteColumn2W(
+ JET_SESID sesid,
+ JET_TABLEID tableid,
+ const WCHAR* szColumnName,
+ const JET_GRBIT grbit
+);
+
+#define JetDeleteColumn2 __MINGW_NAME_AW(JetDeleteColumn2)
+
+JET_ERR JET_API JetDeleteIndexA(
+ JET_SESID sesid,
+ JET_TABLEID tableid,
+ JET_PCSTR szIndexName
+);
+
+JET_ERR JET_API JetDeleteIndexW(
+ JET_SESID sesid,
+ JET_TABLEID tableid,
+ JET_PCWSTR szIndexName
+);
+
+#define JetDeleteColumn2 __MINGW_NAME_AW(JetDeleteColumn2)
+
+JET_ERR JET_API JetDeleteIndexA(
+ JET_SESID sesid,
+ JET_TABLEID tableid,
+ JET_PCSTR szIndexName
+);
+
+JET_ERR JET_API JetDeleteIndexW(
+ JET_SESID sesid,
+ JET_TABLEID tableid,
+ JET_PCWSTR szIndexName
+);
+
+#define JetDeleteIndex __MINGW_NAME_AW(JetDeleteIndex)
+
+JET_ERR JET_API JetDeleteTableA(
+ JET_SESID sesid,
+ JET_DBID dbid,
+ const char* szTableName
+);
+
+JET_ERR JET_API JetDeleteTableW(
+ JET_SESID sesid,
+ JET_DBID dbid,
+ const WCHAR* szTableName
+);
+
+#define JetDeleteTable __MINGW_NAME_AW(JetDeleteTable)
+
+JET_ERR JET_API JetDetachDatabaseA(
+ JET_SESID sesid,
+ const char* szFilename
+);
+
+JET_ERR JET_API JetDetachDatabaseW(
+ JET_SESID sesid,
+ const char* szFilename
+);
+
+#define JetDetachDatabase __MINGW_NAME_AW(JetDetachDatabase)
+
+JET_ERR JET_API JetDetachDatabase2A(
+ JET_SESID sesid,
+ const char* szFilename,
+ JET_GRBIT grbit
+);
+
+JET_ERR JET_API JetDetachDatabase2W(
+ JET_SESID sesid,
+ const WCHAR* szFilename,
+ JET_GRBIT grbit
+);
+
+#define JetDetachDatabase2 __MINGW_NAME_AW(JetDetachDatabase2)
+
+JET_ERR JET_API JetDupCursor(
+ JET_SESID sesid,
+ JET_TABLEID tableid,
+ JET_TABLEID* ptableid,
+ JET_GRBIT grbit
+);
+
+JET_ERR JET_API JetDupSession(
+ JET_SESID sesid,
+ JET_SESID* psesid
+);
+
+JET_ERR JET_API JetEnableMultiInstanceA(
+ JET_SETSYSPARAM_A* psetsysparam,
+ unsigned long csetsysparam,
+ unsigned long* pcsetsucceed
+);
+
+JET_ERR JET_API JetEnableMultiInstanceW(
+ JET_SETSYSPARAM_W* psetsysparam,
+ unsigned long csetsysparam,
+ unsigned long* pcsetsucceed
+);
+
+#define JetEnableMultiInstance __MINGW_NAME_AW(JetEnableMultiInstance)
+
+JET_ERR JET_API JetEndExternalBackup(void);
+
+JET_ERR JET_API JetEndExternalBackupInstance(
+ JET_INSTANCE instance
+);
+
+JET_ERR JET_API JetEndExternalBackupInstance2(
+ JET_INSTANCE instance,
+ JET_GRBIT grbit
+);
+
+JET_ERR JET_API JetEndSession(
+ JET_SESID sesid,
+ JET_GRBIT grbit
+);
+
+JET_ERR JET_API JetEnumerateColumns(
+ JET_SESID sesid,
+ JET_TABLEID tableid,
+ unsigned long cEnumColumnId,
+ JET_ENUMCOLUMNID* rgEnumColumnId,
+ unsigned long* pcEnumColumn,
+ JET_ENUMCOLUMN** prgEnumColumn,
+ JET_PFNREALLOC pfnRealloc,
+ void* pvReallocContext,
+ unsigned long cbDataMost,
+ JET_GRBIT grbit
+);
+
+JET_ERR JET_API JetEscrowUpdate(
+ JET_SESID sesid,
+ JET_TABLEID tableid,
+ JET_COLUMNID columnid,
+ void* pv,
+ unsigned long cbMax,
+ void* pvOld,
+ unsigned long cbOldMax,
+ unsigned long* pcbOldActual,
+ JET_GRBIT grbit
+);
+
+JET_ERR JET_API JetExternalRestoreA(
+ JET_PSTR szCheckpointFilePath,
+ JET_PSTR szLogPath,
+ JET_RSTMAP_A* rgrstmap,
+ long crstfilemap,
+ JET_PSTR szBackupLogPath,
+ long genLow,
+ long genHigh,
+ JET_PFNSTATUS pfn
+);
+
+JET_ERR JET_API JetExternalRestoreW(
+ JET_PWSTR szCheckpointFilePath,
+ JET_PWSTR szLogPath,
+ JET_RSTMAP_W* rgrstmap,
+ long crstfilemap,
+ JET_PWSTR szBackupLogPath,
+ long genLow,
+ long genHigh,
+ JET_PFNSTATUS pfn
+);
+
+#define JetExternalRestore __MINGW_NAME_AW(JetExternalRestore)
+
+JET_ERR JET_API JetExternalRestore2A(
+ JET_PSTR szCheckpointFilePath,
+ JET_PSTR szLogPath,
+ JET_RSTMAP_A* rgrstmap,
+ long crstfilemap,
+ JET_PSTR szBackupLogPath,
+ JET_LOGINFO_A* pLogInfo,
+ JET_PSTR szTargetInstanceName,
+ JET_PSTR szTargetInstanceLogPath,
+ JET_PSTR szTargetInstanceCheckpointPath,
+ JET_PFNSTATUS pfn
+);
+
+JET_ERR JET_API JetExternalRestore2W(
+ JET_PWSTR szCheckpointFilePath,
+ JET_PWSTR szLogPath,
+ JET_RSTMAP_W* rgrstmap,
+ long crstfilemap,
+ JET_PWSTR szBackupLogPath,
+ JET_LOGINFO_W* pLogInfo,
+ JET_PWSTR szTargetInstanceName,
+ JET_PWSTR szTargetInstanceLogPath,
+ JET_PWSTR szTargetInstanceCheckpointPath,
+ JET_PFNSTATUS pfn
+);
+
+#define JetExternalRestore2 __MINGW_NAME_AW(JetExternalRestore2)
+
+JET_ERR JET_API JetFreeBuffer(
+ char* pbBuf
+);
+
+JET_ERR JET_API JetGetAttachInfoA(
+ char* szz,
+ unsigned long cbMax,
+ unsigned long* pcbActual
+);
+
+JET_ERR JET_API JetGetAttachInfoW(
+ WCHAR* szz,
+ unsigned long cbMax,
+ unsigned long* pcbActual
+);
+
+#define JetGetAttachInfo __MINGW_NAME_AW(JetGetAttachInfo)
+
+JET_ERR JET_API JetGetAttachInfoInstanceA(
+ JET_INSTANCE instance,
+ char* szz,
+ unsigned long cbMax,
+ unsigned long* pcbActual
+);
+
+JET_ERR JET_API JetGetAttachInfoInstanceW(
+ JET_INSTANCE instance,
+ WCHAR* szz,
+ unsigned long cbMax,
+ unsigned long* pcbActual
+);
+
+#define JetGetAttachInfoInstance __MINGW_NAME_AW(JetGetAttachInfoInstance)
+
+JET_ERR JET_API JetGetBookmark(
+ JET_SESID sesid,
+ JET_TABLEID tableid,
+ void* pvBookmark,
+ unsigned long cbMax,
+ unsigned long* pcbActual
+);
+
+JET_ERR JET_API JetGetColumnInfoA(
+ JET_SESID sesid,
+ JET_DBID dbid,
+ const char* szTableName,
+ const char* szColumnName,
+ void* pvResult,
+ unsigned long cbMax,
+ unsigned long InfoLevel
+);
+
+JET_ERR JET_API JetGetColumnInfoW(
+ JET_SESID sesid,
+ JET_DBID dbid,
+ const WCHAR* szTableName,
+ const WCHAR* szColumnName,
+ void* pvResult,
+ unsigned long cbMax,
+ unsigned long InfoLevel
+);
+
+#define JetGetColumnInfo __MINGW_NAME_AW(JetGetColumnInfo)
+
+JET_ERR JET_API JetGetCurrentIndexA(
+ JET_SESID sesid,
+ JET_TABLEID tableid,
+ JET_PSTR szIndexName,
+ unsigned long cchIndexName
+);
+
+JET_ERR JET_API JetGetCurrentIndexW(
+ JET_SESID sesid,
+ JET_TABLEID tableid,
+ JET_PWSTR szIndexName,
+ unsigned long cchIndexName
+);
+
+#define JetGetCurrentIndex __MINGW_NAME_AW(JetGetCurrentIndex)
+
+JET_ERR JET_API JetGetCursorInfo(
+ JET_SESID sesid,
+ JET_TABLEID tableid,
+ void* pvResult,
+ unsigned long cbMax,
+ unsigned long InfoLevel
+);
+
+JET_ERR JET_API JetGetDatabaseFileInfoA(
+ const char* szDatabaseName,
+ void* pvResult,
+ unsigned long cbMax,
+ unsigned long InfoLevel
+);
+
+JET_ERR JET_API JetGetDatabaseFileInfoW(
+ const WCHAR* szDatabaseName,
+ void* pvResult,
+ unsigned long cbMax,
+ unsigned long InfoLevel
+);
+
+#define JetGetDatabaseFileInfo __MINGW_NAME_AW(JetGetDatabaseFileInfo)
+
+JET_ERR JET_API JetGetDatabaseInfoA(
+ JET_SESID sesid,
+ JET_DBID dbid,
+ void* pvResult,
+ unsigned long cbMax,
+ unsigned long InfoLevel
+);
+
+JET_ERR JET_API JetGetDatabaseInfoW(
+ JET_SESID sesid,
+ JET_DBID dbid,
+ void* pvResult,
+ unsigned long cbMax,
+ unsigned long InfoLevel
+);
+
+#define JetGetDatabaseInfo __MINGW_NAME_AW(JetGetDatabaseInfo)
+
+JET_ERR JET_API JetGetIndexInfoA(
+ JET_SESID sesid,
+ JET_DBID dbid,
+ const char* szTableName,
+ const char* szIndexName,
+ void* pvResult,
+ unsigned long cbResult,
+ unsigned long InfoLevel
+);
+
+JET_ERR JET_API JetGetIndexInfoW(
+ JET_SESID sesid,
+ JET_DBID dbid,
+ const WCHAR* szTableName,
+ const WCHAR* szIndexName,
+ void* pvResult,
+ unsigned long cbResult,
+ unsigned long InfoLevel
+);
+
+#define JetGetIndexInfo __MINGW_NAME_AW(JetGetIndexInfo)
+
+JET_ERR JET_API JetGetInstanceInfoA(
+ unsigned long* pcInstanceInfo,
+ JET_INSTANCE_INFO_A** paInstanceInfo
+);
+
+JET_ERR JET_API JetGetInstanceInfoW(
+ unsigned long* pcInstanceInfo,
+ JET_INSTANCE_INFO_W** paInstanceInfo
+);
+
+#define JetGetInstanceInfo __MINGW_NAME_AW(JetGetInstanceInfo)
+
+#if (_WIN32_WINNT >= 0x0600)
+JET_ERR JET_API JetGetInstanceMiscInfo(
+ JET_INSTANCE instance,
+ void* pvResult,
+ unsigned long cbMax,
+ unsigned long InfoLevel
+);
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
+JET_ERR JET_API JetGetLock(
+ JET_SESID sesid,
+ JET_TABLEID tableid,
+ JET_GRBIT grbit
+);
+
+JET_ERR JET_API JetGetLogInfoA(
+ char* szz,
+ unsigned long cbMax,
+ unsigned long* pcbActual
+);
+
+JET_ERR JET_API JetGetLogInfoW(
+ WCHAR* szz,
+ unsigned long cbMax,
+ unsigned long* pcbActual
+);
+
+#define JetGetLogInfo __MINGW_NAME_AW(JetGetLogInfo)
+
+JET_ERR JET_API JetGetLogInfoInstanceA(
+ JET_INSTANCE instance,
+ char* szz,
+ unsigned long cbMax,
+ unsigned long* pcbActual
+);
+
+JET_ERR JET_API JetGetLogInfoInstanceW(
+ JET_INSTANCE instance,
+ WCHAR* szz,
+ unsigned long cbMax,
+ unsigned long* pcbActual
+);
+
+#define JetGetLogInfoInstance __MINGW_NAME_AW(JetGetLogInfoInstance)
+
+JET_ERR JET_API JetGetLogInfoInstance2A(
+ JET_INSTANCE instance,
+ char* szz,
+ unsigned long cbMax,
+ unsigned long* pcbActual,
+ JET_LOGINFO_A* pLogInfo
+);
+
+JET_ERR JET_API JetGetLogInfoInstance2W(
+ JET_INSTANCE instance,
+ WCHAR* szz,
+ unsigned long cbMax,
+ unsigned long* pcbActual,
+ JET_LOGINFO_W* pLogInfo
+);
+
+#define JetGetLogInfoInstance2 __MINGW_NAME_AW(JetGetLogInfoInstance2)
+
+JET_ERR JET_API JetGetLS(
+ JET_SESID sesid,
+ JET_TABLEID tableid,
+ JET_LS* pls,
+ JET_GRBIT grbit
+);
+
+JET_ERR JET_API JetGetObjectInfoA(
+ JET_SESID sesid,
+ JET_DBID dbid,
+ JET_OBJTYP objtyp,
+ const char* szContainerName,
+ const char* szObjectName,
+ void* pvResult,
+ unsigned long cbMax,
+ unsigned long InfoLevel
+);
+
+JET_ERR JET_API JetGetObjectInfoW(
+ JET_SESID sesid,
+ JET_DBID dbid,
+ JET_OBJTYP objtyp,
+ const WCHAR* szContainerName,
+ const WCHAR* szObjectName,
+ void* pvResult,
+ unsigned long cbMax,
+ unsigned long InfoLevel
+);
+
+#define JetGetObjectInfo __MINGW_NAME_AW(JetGetObjectInfo)
+
+JET_ERR JET_API JetGetRecordPosition(
+ JET_SESID sesid,
+ JET_TABLEID tableid,
+ JET_RECPOS* precpos,
+ unsigned long cbRecpos
+);
+
+#if (_WIN32_WINNT >= 0x0600)
+JET_ERR JET_API JetGetRecordSize(
+ JET_SESID sesid,
+ JET_TABLEID tableid,
+ JET_RECSIZE* precsize,
+ const JET_GRBIT grbit
+);
+#endif /* (_WIN32_WINNT >= 0x0600) */
+
+JET_ERR JET_API JetGetSecondaryIndexBookmark(
+ JET_SESID sesid,
+ JET_TABLEID tableid,
+ void* pvSecondaryKey,
+ unsigned long cbSecondaryKeyMax,
+ unsigned long* pcbSecondaryKeyActual,
+ void* pvPrimaryBookmark,
+ unsigned long cbPrimaryBookmarkMax,
+ unsigned long* pcbPrimaryKeyActual,
+ const JET_GRBIT grbit
+);
+
+JET_ERR JET_API JetGetSystemParameterA(
+ JET_INSTANCE instance,
+ JET_SESID sesid,
+ unsigned long paramid,
+ JET_API_PTR* plParam,
+ JET_PSTR szParam,
+ unsigned long cbMax
+);
+
+JET_ERR JET_API JetGetSystemParameterW(
+ JET_INSTANCE instance,
+ JET_SESID sesid,
+ unsigned long paramid,
+ JET_API_PTR* plParam,
+ JET_PWSTR szParam,
+ unsigned long cbMax
+);
+
+#define JetGetSystemParameter __MINGW_NAME_AW(JetGetSystemParameter)
+
+JET_ERR JET_API JetGetTableColumnInfoA(
+ JET_SESID sesid,
+ JET_TABLEID tableid,
+ const char* szColumnName,
+ void* pvResult,
+ unsigned long cbMax,
+ unsigned long InfoLevel
+);
+
+JET_ERR JET_API JetGetTableColumnInfoW(
+ JET_SESID sesid,
+ JET_TABLEID tableid,
+ const WCHAR* szColumnName,
+ void* pvResult,
+ unsigned long cbMax,
+ unsigned long InfoLevel
+);
+
+#define JetGetTableColumnInfoW __MINGW_NAME_AW(JetGetTableColumnInfo)
+
+JET_ERR JET_API JetGetTableIndexInfoA(
+ JET_SESID sesid,
+ JET_TABLEID tableid,
+ const char* szIndexName,
+ void* pvResult,
+ unsigned long cbResult,
+ unsigned long InfoLevel
+);
+
+JET_ERR JET_API JetGetTableIndexInfoW(
+ JET_SESID sesid,
+ JET_TABLEID tableid,
+ const WCHAR* szIndexName,
+ void* pvResult,
+ unsigned long cbResult,
+ unsigned long InfoLevel
+);
+
+#define JetGetTableIndexInfo __MINGW_NAME_AW(JetGetTableIndexInfo)
+
+JET_ERR JET_API JetGetTableInfoA(
+ JET_SESID sesid,
+ JET_TABLEID tableid,
+ void* pvResult,
+ unsigned long cbMax,
+ unsigned long InfoLevel
+);
+
+JET_ERR JET_API JetGetTableInfoW(
+ JET_SESID sesid,
+ JET_TABLEID tableid,
+ void* pvResult,
+ unsigned long cbMax,
+ unsigned long InfoLevel
+);
+
+#define JetGetTableInfo __MINGW_NAME_AW(JetGetTableInfo)
+
+JET_ERR JET_API JetGetThreadStats(
+ void* pvResult,
+ unsigned long cbMax
+);
+
+JET_ERR JET_API JetGetTruncateLogInfoInstanceA(
+ JET_INSTANCE instance,
+ char* szz,
+ unsigned long cbMax,
+ unsigned long* pcbActual
+);
+
+JET_ERR JET_API JetGetTruncateLogInfoInstanceW(
+ JET_INSTANCE instance,
+ WCHAR* szz,
+ unsigned long cbMax,
+ unsigned long* pcbActual
+);
+
+JET_ERR JET_API JetGetVersion(
+ JET_SESID sesid,
+ unsigned long* pwVersion
+);
+
+JET_ERR JET_API JetGotoBookmark(
+ JET_SESID sesid,
+ JET_TABLEID tableid,
+ void* pvBookmark,
+ unsigned long cbBookmark
+);
+
+JET_ERR JET_API JetGotoPosition(
+ JET_SESID sesid,
+ JET_TABLEID tableid,
+ JET_RECPOS* precpos
+);
+
+JET_ERR JET_API JetGotoSecondaryIndexBookmark(
+ JET_SESID sesid,
+ JET_TABLEID tableid,
+ void* pvSecondaryKey,
+ unsigned long cbSecondaryKey,
+ void* pvPrimaryBookmark,
+ unsigned long cbPrimaryBookmark,
+ const JET_GRBIT grbit
+);
+
+JET_ERR JET_API JetGrowDatabase(
+ JET_SESID sesid,
+ JET_DBID dbid,
+ unsigned long cpg,
+ unsigned long* pcpgReal
+);
+
+JET_ERR JET_API JetIdle(
+ JET_SESID sesid,
+ JET_GRBIT grbit
+);
+
+JET_ERR JET_API JetIndexRecordCount(
+ JET_SESID sesid,
+ JET_TABLEID tableid,
+ unsigned long* pcrec,
+ unsigned long crecMax
+);
+
+JET_ERR JET_API JetInit(
+ JET_INSTANCE* pinstance
+);
+
+JET_ERR JET_API JetInit2(
+ JET_INSTANCE* pinstance,
+ JET_GRBIT grbit
+);
+
+#if (_WIN32_WINNT >= 0x0600)
+JET_ERR JET_API JetInit3A(
+ JET_INSTANCE* pinstance,
+ JET_RSTINFO_A* prstInfo,
+ JET_GRBIT grbit
+);
+
+JET_ERR JET_API JetInit3W(
+ JET_INSTANCE* pinstance,
+ JET_RSTINFO_W* prstInfo,
+ JET_GRBIT grbit
+);
+
+#define JetInit3 __MINGW_NAME_AW(JetInit3)
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
+JET_ERR JET_API JetIntersectIndexes(
+ JET_SESID sesid,
+ JET_INDEXRANGE* rgindexrange,
+ unsigned long cindexrange,
+ JET_RECORDLIST* precordlist,
+ JET_GRBIT grbit
+);
+
+JET_ERR JET_API JetMakeKey(
+ JET_SESID sesid,
+ JET_TABLEID tableid,
+ const void* pvData,
+ unsigned long cbData,
+ JET_GRBIT grbit
+);
+
+JET_ERR JET_API JetMove(
+ JET_SESID sesid,
+ JET_TABLEID tableid,
+ long cRow,
+ JET_GRBIT grbit
+);
+
+JET_ERR JET_API JetOpenDatabaseA(
+ JET_SESID sesid,
+ const char* szFilename,
+ const char* szConnect,
+ JET_DBID* pdbid,
+ JET_GRBIT grbit
+);
+
+JET_ERR JET_API JetOpenDatabaseW(
+ JET_SESID sesid,
+ const WCHAR* szFilename,
+ const WCHAR* szConnect,
+ JET_DBID* pdbid,
+ JET_GRBIT grbit
+);
+
+#define JetOpenDatabase __MINGW_NAME_AW(JetOpenDatabase)
+
+JET_ERR JET_API JetOpenFileA(
+ const char* szFileName,
+ JET_HANDLE* phfFile,
+ unsigned long* pulFileSizeLow,
+ unsigned long* pulFileSizeHigh
+);
+
+JET_ERR JET_API JetOpenFileW(
+ const WCHAR* szFileName,
+ JET_HANDLE* phfFile,
+ unsigned long* pulFileSizeLow,
+ unsigned long* pulFileSizeHigh
+);
+
+#define JetOpenFile __MINGW_NAME_AW(JetOpenFile)
+
+JET_ERR JET_API JetOpenFileInstanceA(
+ JET_INSTANCE instance,
+ JET_PCSTR szFileName,
+ JET_HANDLE* phfFile,
+ unsigned long* pulFileSizeLow,
+ unsigned long* pulFileSizeHigh
+);
+
+JET_ERR JET_API JetOpenFileInstanceW(
+ JET_INSTANCE instance,
+ JET_PCWSTR szFileName,
+ JET_HANDLE* phfFile,
+ unsigned long* pulFileSizeLow,
+ unsigned long* pulFileSizeHigh
+);
+
+#define JetOpenFileInstance __MINGW_NAME_AW(JetOpenFileInstance)
+
+JET_ERR JET_API JetOpenTableA(
+ JET_SESID sesid,
+ JET_DBID dbid,
+ const char* szTableName,
+ const void* pvParameters,
+ unsigned long cbParameters,
+ JET_GRBIT grbit,
+ JET_TABLEID* ptableid
+);
+
+JET_ERR JET_API JetOpenTableW(
+ JET_SESID sesid,
+ JET_DBID dbid,
+ const WCHAR* szTableName,
+ const void* pvParameters,
+ unsigned long cbParameters,
+ JET_GRBIT grbit,
+ JET_TABLEID* ptableid
+);
+
+#define JetOpenTable __MINGW_NAME_AW(JetOpenTable)
+
+JET_ERR JET_API JetOpenTemporaryTable(
+ JET_SESID sesid,
+ JET_OPENTEMPORARYTABLE* popentemporarytable
+);
+
+JET_ERR JET_API JetOpenTempTable(
+ JET_SESID sesid,
+ const JET_COLUMNDEF* prgcolumndef,
+ unsigned long ccolumn,
+ JET_GRBIT grbit,
+ JET_TABLEID* ptableid,
+ JET_COLUMNID* prgcolumnid
+);
+
+JET_ERR JET_API JetOpenTempTable2(
+ JET_SESID sesid,
+ const JET_COLUMNDEF* prgcolumndef,
+ unsigned long ccolumn,
+ unsigned long lcid,
+ JET_GRBIT grbit,
+ JET_TABLEID* ptableid,
+ JET_COLUMNID* prgcolumnid
+);
+
+JET_ERR JET_API JetOpenTempTable3(
+ JET_SESID sesid,
+ const JET_COLUMNDEF* prgcolumndef,
+ unsigned long ccolumn,
+ JET_UNICODEINDEX* pidxunicode,
+ JET_GRBIT grbit,
+ JET_TABLEID* ptableid,
+ JET_COLUMNID* prgcolumnid
+);
+
+JET_ERR JET_API JetOSSnapshotAbort(
+ const JET_OSSNAPID snapId,
+ const JET_GRBIT grbit
+);
+
+#if (_WIN32_WINNT >= 0x0600)
+JET_ERR JET_API JetOSSnapshotEnd(
+ const JET_OSSNAPID snapId,
+ const JET_GRBIT grbit
+);
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
+JET_ERR JET_API JetOSSnapshotFreezeA(
+ const JET_OSSNAPID snapId,
+ unsigned long* pcInstanceInfo,
+ JET_INSTANCE_INFO_A** paInstanceInfo,
+ const JET_GRBIT grbit
+);
+
+JET_ERR JET_API JetOSSnapshotFreezeW(
+ const JET_OSSNAPID snapId,
+ unsigned long* pcInstanceInfo,
+ JET_INSTANCE_INFO_W** paInstanceInfo,
+ const JET_GRBIT grbit
+);
+
+#define JetOSSnapshotFreeze __MINGW_NAME_AW(JetOSSnapshotFreeze)
+
+#if (_WIN32_WINNT >= 0x0600)
+JET_ERR JET_API JetOSSnapshotGetFreezeInfoA(
+ const JET_OSSNAPID snapId,
+ unsigned long* pcInstanceInfo,
+ JET_INSTANCE_INFO_A** paInstanceInfo,
+ const JET_GRBIT grbit
+);
+
+JET_ERR JET_API JetOSSnapshotGetFreezeInfoW(
+ const JET_OSSNAPID snapId,
+ unsigned long* pcInstanceInfo,
+ JET_INSTANCE_INFO_W** paInstanceInfo,
+ const JET_GRBIT grbit
+);
+#define JetOSSnapshotGetFreezeInfo __MINGW_NAME_AW(JetOSSnapshotGetFreezeInfo)
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
+JET_ERR JET_API JetOSSnapshotPrepare(
+ JET_OSSNAPID* psnapId,
+ const JET_GRBIT grbit
+);
+
+#if (_WIN32_WINNT >= 0x0600)
+JET_ERR JET_API JetOSSnapshotPrepareInstance(
+ JET_OSSNAPID snapId,
+ JET_INSTANCE instance,
+ const JET_GRBIT grbit
+);
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
+JET_ERR JET_API JetOSSnapshotThaw(
+ const JET_OSSNAPID snapId,
+ const JET_GRBIT grbit
+);
+
+#if (_WIN32_WINNT >= 0x0600)
+JET_ERR JET_API JetOSSnapshotTruncateLog(
+ const JET_OSSNAPID snapId,
+ const JET_GRBIT grbit
+);
+
+JET_ERR JET_API JetOSSnapshotTruncateLogInstance(
+ const JET_OSSNAPID snapId,
+ JET_INSTANCE instance,
+ const JET_GRBIT grbit
+);
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
+JET_ERR JET_API JetPrepareUpdate(
+ JET_SESID sesid,
+ JET_TABLEID tableid,
+ unsigned long prep
+);
+
+JET_ERR JET_API JetReadFile(
+ JET_HANDLE hfFile,
+ void* pv,
+ unsigned long cb,
+ unsigned long* pcbActual
+);
+
+JET_ERR JET_API JetReadFileInstance(
+ JET_INSTANCE instance,
+ JET_HANDLE hfFile,
+ void* pv,
+ unsigned long cb,
+ unsigned long* pcb
+);
+
+JET_ERR JET_API JetRegisterCallback(
+ JET_SESID sesid,
+ JET_TABLEID tableid,
+ JET_CBTYP cbtyp,
+ JET_CALLBACK pCallback,
+ void* pvContext,
+ JET_HANDLE* phCallbackId
+);
+
+JET_ERR JET_API JetRenameColumnA(
+ JET_SESID sesid,
+ JET_TABLEID tableid,
+ JET_PCSTR szName,
+ JET_PCSTR szNameNew,
+ JET_GRBIT grbit
+);
+
+JET_ERR JET_API JetRenameColumnW(
+ JET_SESID sesid,
+ JET_TABLEID tableid,
+ JET_PCWSTR szName,
+ JET_PCWSTR szNameNew,
+ JET_GRBIT grbit
+);
+
+JET_ERR JET_API JetRenameTableA(
+ JET_SESID sesid,
+ JET_DBID dbid,
+ const char* szName,
+ const char* szNameNew
+);
+
+JET_ERR JET_API JetRenameTableW(
+ JET_SESID sesid,
+ JET_DBID dbid,
+ const WCHAR* szName,
+ const WCHAR* szNameNew
+);
+
+JET_ERR JET_API JetResetSessionContext(
+ JET_SESID sesid
+);
+
+JET_ERR JET_API JetResetTableSequential(
+ JET_SESID sesid,
+ JET_TABLEID tableid,
+ JET_GRBIT grbit
+);
+
+JET_ERR JET_API JetRestoreA(
+ JET_PCSTR sz,
+ JET_PFNSTATUS pfn
+);
+
+JET_ERR JET_API JetRestoreW(
+ JET_PCWSTR sz,
+ JET_PFNSTATUS pfn
+);
+
+#define JetRestore __MINGW_NAME_AW(JetRestore)
+
+JET_ERR JET_API JetRestore2A(
+ JET_PCSTR sz,
+ JET_PCSTR szDest,
+ JET_PFNSTATUS pfn
+);
+
+JET_ERR JET_API JetRestore2W(
+ JET_PCWSTR sz,
+ JET_PCWSTR szDest,
+ JET_PFNSTATUS pfn
+);
+
+#define JetRestore2 __MINGW_NAME_AW(JetRestore2)
+
+JET_ERR JET_API JetRestoreInstanceA(
+ JET_INSTANCE instance,
+ JET_PCSTR sz,
+ JET_PCSTR szDest,
+ JET_PFNSTATUS pfn
+);
+
+JET_ERR JET_API JetRestoreInstanceW(
+ JET_INSTANCE instance,
+ JET_PCWSTR sz,
+ JET_PCWSTR szDest,
+ JET_PFNSTATUS pfn
+);
+
+#define JetRestoreInstance __MINGW_NAME_AW(JetRestoreInstance)
+
+JET_ERR JET_API JetRetrieveColumn(
+ JET_SESID sesid,
+ JET_TABLEID tableid,
+ JET_COLUMNID columnid,
+ void* pvData,
+ unsigned long cbData,
+ unsigned long* pcbActual,
+ JET_GRBIT grbit,
+ JET_RETINFO* pretinfo
+);
+
+JET_ERR JET_API JetRetrieveColumns(
+ JET_SESID sesid,
+ JET_TABLEID tableid,
+ JET_RETRIEVECOLUMN* pretrievecolumn,
+ unsigned long cretrievecolumn
+);
+
+JET_ERR JET_API JetRetrieveKey(
+ JET_SESID sesid,
+ JET_TABLEID tableid,
+ void* pvData,
+ unsigned long cbMax,
+ unsigned long* pcbActual,
+ JET_GRBIT grbit
+);
+
+JET_ERR JET_API JetRollback(
+ JET_SESID sesid,
+ JET_GRBIT grbit
+);
+
+JET_ERR JET_API JetSeek(
+ JET_SESID sesid,
+ JET_TABLEID tableid,
+ JET_GRBIT grbit
+);
+
+JET_ERR JET_API JetSetColumn(
+ JET_SESID sesid,
+ JET_TABLEID tableid,
+ JET_COLUMNID columnid,
+ const void* pvData,
+ unsigned long cbData,
+ JET_GRBIT grbit,
+ JET_SETINFO* psetinfo
+);
+
+JET_ERR JET_API JetSetColumnDefaultValueA(
+ JET_SESID sesid,
+ JET_DBID dbid,
+ JET_PCSTR szTableName,
+ JET_PCSTR szColumnName,
+ const void* pvData,
+ const unsigned long cbData,
+ const JET_GRBIT grbit
+);
+
+JET_ERR JET_API JetSetColumnDefaultValueW(
+ JET_SESID sesid,
+ JET_DBID dbid,
+ JET_PCWSTR szTableName,
+ JET_PCWSTR szColumnName,
+ const void* pvData,
+ const unsigned long cbData,
+ const JET_GRBIT grbit
+);
+
+#define JetSetColumnDefaultValue __MINGW_NAME_AW(JetSetColumnDefaultValue)
+
+JET_ERR JET_API JetSetColumns(
+ JET_SESID sesid,
+ JET_TABLEID tableid,
+ JET_SETCOLUMN* psetcolumn,
+ unsigned long csetcolumn
+);
+
+JET_ERR JET_API JetSetCurrentIndexA(
+ JET_SESID sesid,
+ JET_TABLEID tableid,
+ const char* szIndexName
+);
+
+JET_ERR JET_API JetSetCurrentIndexW(
+ JET_SESID sesid,
+ JET_TABLEID tableid,
+ const WCHAR* szIndexName
+);
+
+#define JetSetColumnDefaultValue __MINGW_NAME_AW(JetSetColumnDefaultValue)
+
+JET_ERR JET_API JetSetCurrentIndex2A(
+ JET_SESID sesid,
+ JET_TABLEID tableid,
+ JET_PCSTR szIndexName,
+ JET_GRBIT grbit
+);
+
+JET_ERR JET_API JetSetCurrentIndex2W(
+ JET_SESID sesid,
+ JET_TABLEID tableid,
+ JET_PCWSTR szIndexName,
+ JET_GRBIT grbit
+);
+
+#define JetSetColumnDefaultValue2 __MINGW_NAME_AW(JetSetColumnDefaultValue2)
+
+JET_ERR JET_API JetSetCurrentIndex3A(
+ JET_SESID sesid,
+ JET_TABLEID tableid,
+ JET_PCSTR szIndexName,
+ JET_GRBIT grbit,
+ unsigned long itagSequence
+);
+
+JET_ERR JET_API JetSetCurrentIndex3W(
+ JET_SESID sesid,
+ JET_TABLEID tableid,
+ JET_PCWSTR szIndexName,
+ JET_GRBIT grbit,
+ unsigned long itagSequence
+);
+
+#define JetSetColumnDefaultValue3 __MINGW_NAME_AW(JetSetColumnDefaultValue3)
+
+JET_ERR JET_API JetSetCurrentIndex4A(
+ JET_SESID sesid,
+ JET_TABLEID tableid,
+ JET_PCSTR szIndexName,
+ JET_INDEXID* pindexid,
+ JET_GRBIT grbit,
+ unsigned long itagSequence
+);
+
+JET_ERR JET_API JetSetCurrentIndex4W(
+ JET_SESID sesid,
+ JET_TABLEID tableid,
+ JET_PCWSTR szIndexName,
+ JET_INDEXID* pindexid,
+ JET_GRBIT grbit,
+ unsigned long itagSequence
+);
+
+#define JetSetCurrentIndex4 __MINGW_NAME_AW(JetSetCurrentIndex4)
+
+JET_ERR JET_API JetSetDatabaseSizeA(
+ JET_SESID sesid,
+ JET_PCSTR szDatabaseName,
+ unsigned long cpg,
+ unsigned long* pcpgReal
+);
+
+JET_ERR JET_API JetSetDatabaseSizeW(
+ JET_SESID sesid,
+ JET_PCWSTR szDatabaseName,
+ unsigned long cpg,
+ unsigned long* pcpgReal
+);
+
+#define JetSetDatabaseSize __MINGW_NAME_AW(JetSetDatabaseSize)
+
+JET_ERR JET_API JetSetIndexRange(
+ JET_SESID sesid,
+ JET_TABLEID tableidSrc,
+ JET_GRBIT grbit
+);
+
+JET_ERR JET_API JetSetLS(
+ JET_SESID sesid,
+ JET_TABLEID tableid,
+ JET_LS ls,
+ JET_GRBIT grbit
+);
+
+JET_ERR JET_API JetSetSessionContext(
+ JET_SESID sesid,
+ JET_API_PTR ulContext
+);
+
+JET_ERR JET_API JetSetSystemParameterA(
+ JET_INSTANCE* pinstance,
+ JET_SESID sesid,
+ unsigned long paramid,
+ JET_API_PTR lParam,
+ JET_PCSTR szParam
+);
+
+JET_ERR JET_API JetSetSystemParameterW(
+ JET_INSTANCE* pinstance,
+ JET_SESID sesid,
+ unsigned long paramid,
+ JET_API_PTR lParam,
+ JET_PCWSTR szParam
+);
+
+#define JetSetSystemParameter __MINGW_NAME_AW(JetSetSystemParameter)
+
+JET_ERR JET_API JetSetTableSequential(
+ JET_SESID sesid,
+ JET_TABLEID tableid,
+ JET_GRBIT grbit
+);
+
+JET_ERR JET_API JetStopBackup(void);
+
+JET_ERR JET_API JetStopBackupInstance(
+ JET_INSTANCE instance
+);
+
+JET_ERR JET_API JetStopService(void);
+
+JET_ERR JET_API JetStopServiceInstance(
+ JET_INSTANCE instance
+);
+
+JET_ERR JET_API JetTerm(
+ JET_INSTANCE instance
+);
+
+JET_ERR JET_API JetTerm2(
+ JET_INSTANCE instance,
+ JET_GRBIT grbit
+);
+
+JET_ERR JET_API JetTruncateLog(void);
+
+JET_ERR JET_API JetTruncateLogInstance(
+ JET_INSTANCE instance
+);
+
+JET_ERR JET_API JetUnregisterCallback(
+ JET_SESID sesid,
+ JET_TABLEID tableid,
+ JET_CBTYP cbtyp,
+ JET_HANDLE hCallbackId
+);
+
+JET_ERR JET_API JetUpdate(
+ JET_SESID sesid,
+ JET_TABLEID tableid,
+ void* pvBookmark,
+ unsigned long cbBookmark,
+ unsigned long* pcbActual
+);
+
+JET_ERR JET_API JetUpdate2(
+ JET_SESID sesid,
+ JET_TABLEID tableid,
+ void* pvBookmark,
+ unsigned long cbBookmark,
+ unsigned long* pcbActual,
+ const JET_GRBIT grbit
+);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /*_INC_ESENT*/
diff --git a/mingw-w64-headers/include/evcoll.h b/mingw-w64-headers/include/evcoll.h
new file mode 100644
index 0000000..22f85c9
--- /dev/null
+++ b/mingw-w64-headers/include/evcoll.h
@@ -0,0 +1,231 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_EVCOLL
+#define _INC_EVCOLL
+#if (_WIN32_WINNT >= 0x0600)
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum _EC_SUBSCRIPTION_CONFIGURATION_MODE {
+ EcConfigurationModeNormal = 0,
+ EcConfigurationModeCustom = 1,
+ EcConfigurationModeMinLatency = 2,
+ EcConfigurationModeMinBandwidth = 3
+} EC_SUBSCRIPTION_CONFIGURATION_MODE;
+
+typedef enum _EC_SUBSCRIPTION_CONTENT_FORMAT {
+ EcContentFormatEvents = 1,
+ EcContentFormatRenderedText = 2
+} EC_SUBSCRIPTION_CONTENT_FORMAT;
+
+typedef enum _EC_SUBSCRIPTION_CREDENTIALS_TYPE {
+ EcSubscriptionCredDefault = 0,
+ EcSubscriptionCredNegotiate = 1,
+ EcSubscriptionCredDigest = 2,
+ EcSubscriptionCredBasic = 3,
+ EcSubscriptionCredLocalMachine = 4
+} EC_SUBSCRIPTION_CREDENTIALS_TYPE;
+
+typedef enum _EC_SUBSCRIPTION_DELIVERY_MODE {
+ EcDeliveryModePull = 1,
+ EcDeliveryModePush = 2
+} EC_SUBSCRIPTION_DELIVERY_MODE;
+
+typedef enum _EC_SUBSCRIPTION_PROPERTY_ID {
+ EcSubscriptionEnabled = 0,
+ EcSubscriptionEventSources = 1,
+ EcSubscriptionEventSourceAddress = 2,
+ EcSubscriptionEventSourceEnabled = 3,
+ EcSubscriptionEventSourceUserName = 4,
+ EcSubscriptionEventSourcePassword = 5,
+ EcSubscriptionDescription = 6,
+ EcSubscriptionURI = 7,
+ EcSubscriptionConfigurationMode = 8,
+ EcSubscriptionExpires = 9,
+ EcSubscriptionQuery = 10,
+ EcSubscriptionTransportName = 11,
+ EcSubscriptionTransportPort = 12,
+ EcSubscriptionDeliveryMode = 13,
+ EcSubscriptionDeliveryMaxItems = 14,
+ EcSubscriptionDeliveryMaxLatencyTime = 15,
+ EcSubscriptionHeartbeatInterval = 16,
+ EcSubscriptionLocale = 17,
+ EcSubscriptionContentFormat = 18,
+ EcSubscriptionLogFile = 19,
+ EcSubscriptionPublisherName = 20,
+ EcSubscriptionCredentialsType = 21,
+ EcSubscriptionCommonUserName = 22,
+ EcSubscriptionCommonPassword = 23,
+ EcSubscriptionHostName = 24,
+ EcSubscriptionReadExistingEvents = 25,
+ EcSubscriptionDialect = 26,
+ EcSubscriptionType = 27,
+ EcSubscriptionAllowedIssuerCAs = 28,
+ EcSubscriptionAllowedSubjects = 29,
+ EcSubscriptionDeniedSubjects = 30,
+ EcSubscriptionAllowedSourceDomainComputers = 31
+} EC_SUBSCRIPTION_PROPERTY_ID;
+
+typedef enum _EC_SUBSCRIPTION_RUNTIME_STATUS_ACTIVE_STATUS {
+ EcRuntimeStatusActiveStatusDisabled = 1,
+ EcRuntimeStatusActiveStatusActive = 2,
+ EcRuntimeStatusActiveStatusInactive = 3,
+ EcRuntimeStatusActiveStatusTrying = 4
+} EC_SUBSCRIPTION_RUNTIME_STATUS_ACTIVE_STATUS;
+
+typedef enum _EC_SUBSCRIPTION_TYPE {
+ EcSubscriptionTypeSourceInitiated = 0,
+ EcSubscriptionTypeCollectorInitiated = 1
+} EC_SUBSCRIPTION_TYPE;
+
+typedef enum _EC_SUBSCRIPTION_RUNTIME_STATUS_INFO_ID {
+ EcSubscriptionRunTimeStatusActive = 0,
+ EcSubscriptionRunTimeStatusLastError = 1,
+ EcSubscriptionRunTimeStatusLastErrorMessage = 2,
+ EcSubscriptionRunTimeStatusLastErrorTime = 3,
+ EcSubscriptionRunTimeStatusNextRetryTime = 4,
+ EcSubscriptionRunTimeStatusEventSources = 5,
+ EcSubscriptionRunTimeStatusLastHeartbeatTime = 6
+} EC_SUBSCRIPTION_RUNTIME_STATUS_INFO_ID;
+
+typedef struct _EC_VARIANT {
+ __MINGW_EXTENSION union {
+ BOOL BooleanVal;
+ UINT32 UInt32Val;
+ ULONGLONG DateTimeVal;
+ LPCWSTR StringVal;
+ PBYTE BinaryVal;
+ WINBOOL *BooleanArr;
+ INT32* Int32Arr;
+ LPWSTR *StringArr;
+ };
+ DWORD Count;
+ DWORD Type;
+} EC_VARIANT, *PEC_VARIANT;
+
+typedef enum _EC_VARIANT_TYPE {
+ EcVarTypeNull = 0,
+ EcVarTypeBoolean = 1,
+ EcVarTypeUInt32 = 2,
+ EcVarTypeDateTime = 3,
+ EcVarTypeString = 4,
+ EcVarObjectArrayPropertyHandle = 5
+} EC_VARIANT_TYPE;
+
+typedef LPVOID EC_HANDLE;
+
+WINBOOL WINAPI EcClose(
+ EC_HANDLE Object
+);
+
+WINBOOL WINAPI EcDeleteSubscription(
+ LPCWSTR SubscriptionName,
+ DWORD Flags
+);
+
+WINBOOL WINAPI EcEnumNextSubscription(
+ EC_HANDLE SubscriptionEnum,
+ DWORD SubscriptionNameBufferSize,
+ LPWSTR SubscriptionNameBuffer,
+ PDWORD SubscriptionNameBufferUsed
+);
+
+WINBOOL WINAPI EcGetObjectArrayProperty(
+ EC_OBJECT_ARRAY_PROPERTY_HANDLE ObjectArray,
+ EC_SUBSCRIPTION_PROPERTY_ID PropertyId,
+ DWORD ArrayIndex,
+ DWORD Flags,
+ DWORD PropertyValueBufferSize,
+ PEC_VARIANT PropertyValueBuffer,
+ PDWORD PropertyValueBufferUsed
+);
+
+WINBOOL WINAPI EcGetObjectArraySize(
+ EC_OBJECT_ARRAY_PROPERTY_HANDLE ObjectArray,
+ PDWORD ObjectArraySize
+);
+
+WINBOOL WINAPI EcGetSubscriptionProperty(
+ EC_HANDLE Subscription,
+ EC_SUBSCRIPTION_PROPERTY_ID PropertyId,
+ DWORD Flags,
+ DWORD PropertyValueBufferSize,
+ PEC_VARIANT PropertyValueBuffer,
+ PDWORD PropertyValueBufferUsed
+);
+
+WINBOOL WINAPI EcGetSubscriptionRunTimeStatus(
+ LPCWSTR SubscriptionName,
+ EC_SUBSCRIPTION_RUNTIME_STATUS_INFO_ID StatusInfoId,
+ LPCWSTR EventSourceName,
+ DWORD Flags,
+ DWORD StatusValueBufferSize,
+ PEC_VARIANT StatusValueBuffer,
+ PDWORD StatusValueBufferUsed
+);
+
+WINBOOL WINAPI EcInsertObjectArrayElement(
+ EC_OBJECT_ARRAY_PROPERTY_HANDLE ObjectArray,
+ DWORD ArrayIndex
+);
+
+EC_HANDLE WINAPI EcOpenSubscription(
+ LPCWSTR SubscriptionName,
+ DWORD AccessMask,
+ DWORD Flags
+);
+
+EC_HANDLE WINAPI EcOpenSubscriptionEnum(
+ DWORD Flags
+);
+
+WINBOOL WINAPI EcRemoveObjectArrayElement(
+ EC_OBJECT_ARRAY_PROPERTY_HANDLE ObjectArray,
+ DWORD ArrayIndex
+);
+
+WINBOOL WINAPI EcRetrySubscription(
+ LPCWSTR SubscriptionName,
+ LPCWSTR EventSourceName,
+ DWORD Flags
+);
+
+WINBOOL WINAPI EcSaveSubscription(
+ EC_HANDLE Subscription,
+ DWORD Flags
+);
+
+WINBOOL WINAPI EcSetObjectArrayProperty(
+ EC_OBJECT_ARRAY_PROPERTY_HANDLE ObjectArray,
+ EC_SUBSCRIPTION_PROPERTY_ID PropertyId,
+ DWORD ArrayIndex,
+ DWORD Flags,
+ PEC_VARIANT PropertyValue
+);
+
+WINBOOL WINAPI EcSetSubscriptionProperty(
+ EC_HANDLE Subscription,
+ EC_SUBSCRIPTION_PROPERTY_ID PropertyId,
+ DWORD Flags,
+ PEC_VARIANT PropertyValue
+);
+
+DWORD EjectDiskFromSADrive(
+ LPCWSTR lpComputerName,
+ LPCWSTR lpAppName,
+ LPCWSTR lpDeviceName,
+ HWND hWnd,
+ LPCWSTR lpTitle,
+ LPCWSTR lpMessage,
+ DWORD dwOptions
+);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_EVCOLL*/
diff --git a/mingw-w64-headers/include/evr.h b/mingw-w64-headers/include/evr.h
new file mode 100644
index 0000000..645915c
--- /dev/null
+++ b/mingw-w64-headers/include/evr.h
@@ -0,0 +1,180 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_EVR
+#define _INC_EVR
+
+#if (_WIN32_WINNT >= 0x0600)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if (_WIN32_WINNT >= 0x0601)
+typedef enum _EVRFilterConfig_Prefs {
+ EVRFilterConfigPrefs_EnableQoS = 0x00000001,
+ EVRFilterConfigPrefs_Mask = 0x00000001
+} EVRFilterConfigPrefs;
+#endif /*(_WIN32_WINNT >= 0x0601)*/
+
+typedef enum MFVideoAspectRatioMode {
+ MFVideoARMode_None = 0x00000000,
+ MFVideoARMode_PreservePicture = 0x00000001,
+ MFVideoARMode_PreservePixel = 0x00000002,
+ MFVideoARMode_NonLinearStretch = 0x00000004,
+ MFVideoARMode_Mask = 0x00000007
+} MFVideoAspectRatioMode;
+
+#if (_WIN32_WINNT >= 0x0601)
+typedef enum _MFVideoMixPrefs {
+ MFVideoMixPrefs_ForceHalfInterlace = 0x00000001,
+ MFVideoMixPrefs_AllowDropToHalfInterlace = 0x00000002,
+ MFVideoMixPrefs_AllowDropToBob = 0x00000004,
+ MFVideoMixPrefs_ForceBob = 0x00000008,
+ MFVideoMixPrefs_Mask = 0x0000000f
+} MFVideoMixPrefs;
+#endif /*(_WIN32_WINNT >= 0x0601)*/
+
+typedef enum MFVideoRenderPrefs {
+ MFVideoRenderPrefs_DoNotRenderBorder = 0x00000001,
+ MFVideoRenderPrefs_DoNotClipToDevice = 0x00000002,
+ MFVideoRenderPrefs_AllowOutputThrottling = 0x00000004,
+ MFVideoRenderPrefs_ForceOutputThrottling = 0x00000008,
+ MFVideoRenderPrefs_ForceBatching = 0x00000010,
+ MFVideoRenderPrefs_AllowBatching = 0x00000020,
+ MFVideoRenderPrefs_ForceScaling = 0x00000040,
+ MFVideoRenderPrefs_AllowScaling = 0x00000080,
+ MFVideoRenderPrefs_DoNotRepaintOnStop = 0x00000100,
+ MFVideoRenderPrefs_Mask = 0x000000ff
+} MFVideoRenderPrefs;
+
+typedef enum _MFVP_MESSAGE_TYPE {
+ MFVP_MESSAGE_FLUSH = 0x00000000,
+ MFVP_MESSAGE_INVALIDATEMEDIATYPE = 0x00000001,
+ MFVP_MESSAGE_PROCESSINPUTNOTIFY = 0x00000002,
+ MFVP_MESSAGE_BEGINSTREAMING = 0x00000003,
+ MFVP_MESSAGE_ENDSTREAMING = 0x00000004,
+ MFVP_MESSAGE_ENDOFSTREAM = 0x00000005,
+ MFVP_MESSAGE_STEP = 0x00000006,
+ MFVP_MESSAGE_CANCELSTEP = 0x00000007
+} MFVP_MESSAGE_TYPE;
+
+typedef struct MFVideoNormalizedRect {
+ float left;
+ float top;
+ float right;
+ float bottom;
+} MFVideoNormalizedRect;
+
+#ifdef __cplusplus
+}
+#endif
+
+#undef INTERFACE
+#define INTERFACE IMFVideoPresenter
+DECLARE_INTERFACE_(IMFVideoPresenter,IMFClockStateSink)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFClockStateSink methods */
+ STDMETHOD_(HRESULT,OnClockPause)(THIS_ MFTIME hnsSystemTime) PURE;
+ STDMETHOD_(HRESULT,OnClockRestart)(THIS_ MFTIME hnsSystemTime) PURE;
+ STDMETHOD_(HRESULT,OnClockSetRate)(THIS_ MFTIME hnsSystemTime,float flRate) PURE;
+ STDMETHOD_(HRESULT,OnClockStart)(THIS_ MFTIME hnsSystemTime,LONGLONG llClockStartOffset) PURE;
+ STDMETHOD_(HRESULT,OnClockStop)(THIS_ MFTIME hnssSystemTime) PURE;
+
+ /* IMFVideoPresenter methods */
+ STDMETHOD_(HRESULT,GetCurrentMediaType)(THIS_ IMFVideoMediaType **ppMediaType) PURE;
+ STDMETHOD_(HRESULT,ProcessMessage)(THIS_ MFVP_MESSAGE_TYPE eMessage,ULONG_PTR ulParam) PURE;
+
+ END_INTERFACE
+};
+
+#ifdef COBJMACROS
+#define IMFVideoPresenter_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFVideoPresenter_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFVideoPresenter_Release(This) (This)->pVtbl->Release(This)
+#define IMFVideoPresenter_OnClockPause(This,hnsSystemTime) (This)->lpVtbl->OnClockPause(This,hnsSystemTime)
+#define IMFVideoPresenter_OnClockRestart(This,hnsSystemTime) (This)->lpVtbl->OnClockRestart(This,hnsSystemTime)
+#define IMFVideoPresenter_OnClockSetRate(This,hnsSystemTime,flRate) (This)->lpVtbl->OnClockSetRate(This,hnsSystemTime,flRate)
+#define IMFVideoPresenter_OnClockStart(This,hnsSystemTime,llClockStartOffset) (This)->lpVtbl->OnClockStart(This,hnsSystemTime,llClockStartOffset)
+#define IMFVideoPresenter_OnClockStop(This,hnssSystemTime) (This)->lpVtbl->OnClockStop(This,hnssSystemTime)
+#define IMFVideoPresenter_GetCurrentMediaType(This,ppMediaType) (This)->lpVtbl->GetCurrentMediaType(This,ppMediaType)
+#define IMFVideoPresenter_ProcessMessage(This,eMessage,ulParam) (This)->lpVtbl->ProcessMessage(This,eMessage,ulParam)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IMFDesiredSample
+DECLARE_INTERFACE_(IMFDesiredSample,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFDesiredSample methods */
+ STDMETHOD(Clear)(THIS) PURE;
+ STDMETHOD_(HRESULT,GetDesiredSampleTimeAndDuration)(THIS_ LONGLONG *phnsSampleTime,LONGLONG *phnsSampleDuration) PURE;
+ STDMETHOD(SetDesiredSampleTimeAndDuration)(THIS_ LONGLONG hnsSampleTime,LONGLONG hnsSampleDuration) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IMFDesiredSample_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFDesiredSample_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFDesiredSample_Release(This) (This)->pVtbl->Release(This)
+#define IMFDesiredSample_Clear() (This)->lpVtbl->Clear(This)
+#define IMFDesiredSample_GetDesiredSampleTimeAndDuration(This,phnsSampleTime,phnsSampleDuration) (This)->lpVtbl->GetDesiredSampleTimeAndDuration(This,phnsSampleTime,phnsSampleDuration)
+#define IMFDesiredSample_SetDesiredSampleTimeAndDuration(This,hnsSampleTime,hnsSampleDuration) (This)->lpVtbl->SetDesiredSampleTimeAndDuration(This,hnsSampleTime,hnsSampleDuration)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IMFTrackedSample
+DECLARE_INTERFACE_(IMFTrackedSample,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFTrackedSample methods */
+ STDMETHOD_(HRESULT,SetAllocator)(THIS_ IMFAsyncCallback *pSampleAllocator,IUnknown *pUnkState) PURE;
+
+ END_INTERFACE
+};
+
+#ifdef COBJMACROS
+#define IMFTrackedSample_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFTrackedSample_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFTrackedSample_Release(This) (This)->pVtbl->Release(This)
+#define IMFTrackedSample_SetAllocator(This,pSampleAllocator,pUnkState) (This)->lpVtbl->SetAllocator(This,pSampleAllocator,pUnkState)
+#endif /*COBJMACROS*/
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+HRESULT WINAPI MFCreateVideoMixer(IUnknown *pOwner,REFIID riidDevice,REFIID riid,void **ppVideoMixer);
+HRESULT WINAPI MFCreateVideoMixerAndPresenter(IUnknown *pMixerOwner,IUnknown *pPresenterOwner,REFIID riidMixer,void **ppvVideoMixer,REFIID riidPresenter,void **ppvVideoPresenter);
+HRESULT WINAPI MFCreateVideoPresenter(IUnknown *pOwner,REFIID riidDevice,REFIID riid,void **ppvVideoPresenter);
+HRESULT WINAPI MFCreateVideoSampleAllocator(REFIID riid,void** ppSampleAllocator);
+HRESULT WINAPI MFCreateVideoSampleFromSurface(IUnknown *pUnkSurface,IMFSample **ppSample);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
+#endif /*_INC_EVR*/
diff --git a/mingw-w64-headers/include/evr9.h b/mingw-w64-headers/include/evr9.h
new file mode 100644
index 0000000..8f3b607
--- /dev/null
+++ b/mingw-w64-headers/include/evr9.h
@@ -0,0 +1,29 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_EVR9
+#define _INC_EVR9
+
+#if (_WIN32_WINNT >= 0x0600)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum {
+ MFVideoAlphaBitmap_EntireDDS = 0x00000001,
+ MFVideoAlphaBitmap_SrcColorKey = 0x00000002,
+ MFVideoAlphaBitmap_SrcRect = 0x00000004,
+ MFVideoAlphaBitmap_DestRect = 0x00000008,
+ MFVideoAlphaBitmap_FilterMode = 0x00000010,
+ MFVideoAlphaBitmap_Alpha = 0x00000020,
+ MFVideoAlphaBitmap_BitMask = 0x0000003f
+} MFVideoAlphaBitmapFlags;
+
+#ifdef __cplusplus
+}
+#endif
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_EVR9*/
diff --git a/mingw-w64-headers/include/fileextd.h b/mingw-w64-headers/include/fileextd.h
new file mode 100644
index 0000000..b9cc440
--- /dev/null
+++ b/mingw-w64-headers/include/fileextd.h
@@ -0,0 +1,157 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_FILEEXTD
+#define _INC_FILEEXTD
+
+#if (_WIN32_WINNT < 0x0600) /*XP & 2003*/
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct _FILE_ALLOCATION_INFO {
+ LARGE_INTEGER AllocationSize;
+} FILE_ALLOCATION_INFO, *PFILE_ALLOCATION_INFO;
+
+typedef struct _FILE_ATTRIBUTE_TAG_INFO {
+ DWORD FileAttributes;
+ DWORD ReparseTag;
+} FILE_ATTRIBUTE_TAG_INFO, *PFILE_ATTRIBUTE_TAG_INFO;
+
+typedef struct _FILE_BASIC_INFO {
+ LARGE_INTEGER CreationTime;
+ LARGE_INTEGER LastAccessTime;
+ LARGE_INTEGER LastWriteTime;
+ LARGE_INTEGER ChangeTime;
+ DWORD FileAttributes;
+} FILE_BASIC_INFO, *PFILE_BASIC_INFO;
+
+typedef struct _FILE_COMPRESSION_INFO {
+ LARGE_INTEGER CompressedFileSize;
+ WORD CompressionFormat;
+ UCHAR CompressionUnitShift;
+ UCHAR ChunkShift;
+ UCHAR ClusterShift;
+ UCHAR Reserved[3];
+} FILE_COMPRESSION_INFO, *PFILE_COMPRESSION_INFO;
+
+typedef struct _FILE_DISPOSITION_INFO {
+ WINBOOL DeleteFile;
+} FILE_DISPOSITION_INFO, *PFILE_DISPOSITION_INFO;
+
+typedef struct _FILE_END_OF_FILE_INFO {
+ LARGE_INTEGER EndOfFile;
+} FILE_END_OF_FILE_INFO, *PFILE_END_OF_FILE_INFO;
+
+typedef struct _FILE_ID_BOTH_DIR_INFO {
+ DWORD NextEntryOffset;
+ DWORD FileIndex;
+ LARGE_INTEGER CreationTime;
+ LARGE_INTEGER LastAccessTime;
+ LARGE_INTEGER LastWriteTime;
+ LARGE_INTEGER ChangeTime;
+ LARGE_INTEGER EndOfFile;
+ LARGE_INTEGER AllocationSize;
+ DWORD FileAttributes;
+ DWORD FileNameLength;
+ DWORD EaSize;
+ CCHAR ShortNameLength;
+ WCHAR ShortName[12];
+ LARGE_INTEGER FileId;
+ WCHAR FileName[1];
+} FILE_ID_BOTH_DIR_INFO, *PFILE_ID_BOTH_DIR_INFO;
+
+typedef struct _FILE_ID_DESCRIPTOR{
+ DWORD dwSize;
+ FILE_ID_TYPE Type;
+ __MINGW_EXTENSION union {
+ LARGE_INTEGER FileId;
+ GUID ObjectId;
+ };
+} FILE_ID_DESCRIPTOR, *LPFILE_ID_DESCRIPTOR;
+
+typedef enum _FILE_ID_TYPE {
+ FileIdType,
+ ObjectIdType,
+ MaximumFileIdType
+} FILE_ID_TYPE, *PFILE_ID_TYPE;
+
+typedef enum _FILE_INFO_BY_HANDLE_CLASS {
+ FileBasicInfo = 0,
+ FileStandardInfo = 1,
+ FileNameInfo = 2,
+ FileRenameInfo = 3,
+ FileDispositionInfo = 4,
+ FileAllocationInfo = 5,
+ FileEndOfFileInfo = 6,
+ FileStreamInfo = 7,
+ FileCompressionInfo = 8,
+ FileAttributeTagInfo = 9,
+ FileIdBothDirectoryInfo = 10, // 0xA
+ FileIdBothDirectoryRestartInfo = 11, // 0xB
+ FileIoPriorityHintInfo = 12, // 0xC
+ FileRemoteProtocolInfo = 13, // 0xD
+ MaximumFileInfoByHandlesClass = 14 // 0xE
+} FILE_INFO_BY_HANDLE_CLASS, *PFILE_INFO_BY_HANDLE_CLASS;
+
+typedef struct _FILE_NAME_INFO {
+ DWORD FileNameLength;
+ WCHAR FileName[1];
+} FILE_NAME_INFO, *PFILE_NAME_INFO;
+
+typedef struct _FILE_RENAME_INFO {
+ BOOL ReplaceIfExists;
+ HANDLE RootDirectory;
+ DWORD FileNameLength;
+ WCHAR FileName[1];
+} FILE_RENAME_INFO, *PFILE_RENAME_INFO;
+
+typedef struct _FILE_STANDARD_INFO {
+ LARGE_INTEGER AllocationSize;
+ LARGE_INTEGER EndOfFile;
+ DWORD NumberOfLinks;
+ WINBOOL DeletePending;
+ WINBOOL Directory;
+} FILE_STANDARD_INFO, *PFILE_STANDARD_INFO;
+
+typedef struct _FILE_STREAM_INFO {
+ DWORD NextEntryOffset;
+ DWORD StreamNameLength;
+ LARGE_INTEGER StreamSize;
+ LARGE_INTEGER StreamAllocationSize;
+ WCHAR StreamName[1];
+} FILE_STREAM_INFO, *PFILE_STREAM_INFO;
+
+WINBASEAPI WINBOOL WINAPI GetFileInformationByHandleEx(
+ HANDLE hFile,
+ FILE_INFO_BY_HANDLE_CLASS FileInformationClass,
+ LPVOID lpFileInformation,
+ DWORD dwBufferSize
+);
+
+WINBASEAPI HANDLE WINAPI OpenFileById(
+ HANDLE hFile,
+ LPFILE_ID_DESCRIPTOR lpFileID,
+ DWORD dwDesiredAccess,
+ DWORD dwShareMode,
+ LPSECURITY_ATTRIBUTES lpSecurityAttributes,
+ DWORD dwFlags
+);
+
+WINBOOL WINAPI SetFileInformationByHandle(
+ HANDLE hFile,
+ FILE_INFO_BY_HANDLE_CLASS FileInformationClass,
+ LPVOID lpFileInformation,
+ DWORD dwBufferSize
+);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*(_WIN32_WINNT < 0x0600)*/
+
+#endif /*_INC_FILEEXTD*/
diff --git a/mingw-w64-headers/include/fsrmenums.h b/mingw-w64-headers/include/fsrmenums.h
new file mode 100644
index 0000000..d5526b9
--- /dev/null
+++ b/mingw-w64-headers/include/fsrmenums.h
@@ -0,0 +1,142 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_FSRMENUMS
+#define _INC_FSRMENUMS
+#if (_WIN32_WINNT >= 0x0600)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum _FsrmAccountType {
+ FsrmAccountType_Unknown = 0,
+ FsrmAccountType_NetworkService = 1,
+ FsrmAccountType_LocalService = 2,
+ FsrmAccountType_LocalSystem = 3,
+ FsrmAccountType_InProc = 4,
+ FsrmAccountType_External = 5
+} FsrmAccountType;
+
+typedef enum _FsrmActionType {
+ FsrmActionType_Unknown = 0,
+ FsrmActionType_EventLog = 1,
+ FsrmActionType_Email = 2,
+ FsrmActionType_Command = 3,
+ FsrmActionType_Report = 4
+} FsrmActionType;
+
+typedef enum _FsrmCollectionState {
+ FsrmCollectionState_Fetching = 1,
+ FsrmCollectionState_Committing = 2,
+ FsrmCollectionState_Complete = 3,
+ FsrmCollectionState_Cancelled = 4
+} FsrmCollectionState;
+
+typedef enum _FsrmCommitOptions {
+ FsrmCommitOptions_None = 0x00000000,
+ FsrmCommitOptions_Asynchronous = 0x00000001
+} FsrmCommitOptions;
+
+typedef enum _FsrmEnumOptions {
+ FsrmEnumOptions_None = 0x00000000,
+ FsrmEnumOptions_Asynchronous = 0x00000001,
+ FsrmEnumOptions_CheckRecycleBin = 0x00000002,
+ FsrmEnumOptions_IncludeClusterNodes = 0x00000004
+} FsrmEnumOptions;
+
+typedef enum _FsrmEventType {
+ FsrmEventType_Unknown = 0,
+ FsrmEventType_Information = 1,
+ FsrmEventType_Warning = 2,
+ FsrmEventType_Error = 3
+} FsrmEventType;
+
+typedef enum _FsrmFileScreenFlags {
+ FsrmFileScreenFlags_Enforce = 0x00000001
+} FsrmFileScreenFlags;
+
+typedef enum _FsrmQuotaFlags {
+ FsrmQuotaFlags_Enforce = 0x00000100,
+ FsrmQuotaFlags_Disable = 0x00000200,
+ FsrmQuotaFlags_StatusIncomplete = 0x00010000,
+ FsrmQuotaFlags_StatusRebuilding = 0x00020000
+} FsrmQuotaFlags;
+
+typedef enum _FsrmReportFilter {
+ FsrmReportFilter_MinSize = 1,
+ FsrmReportFilter_MinAgeDays = 2,
+ FsrmReportFilter_MaxAgeDays = 3,
+ FsrmReportFilter_MinQuotaUsage = 4,
+ FsrmReportFilter_FileGroups = 5,
+ FsrmReportFilter_Owners = 6,
+ FsrmReportFilter_NamePattern = 7,
+ FsrmReportFilter_Property = 8
+} FsrmReportFilter;
+
+typedef enum _FsrmReportFormat {
+ FsrmReportFormat_Unknown = 0,
+ FsrmReportFormat_DHtml = 1,
+ FsrmReportFormat_Html = 2,
+ FsrmReportFormat_Txt = 3,
+ FsrmReportFormat_Csv = 4,
+ FsrmReportFormat_Xml = 5
+} FsrmReportFormat;
+
+typedef enum _FsrmReportGenerationContext {
+ FsrmReportGenerationContext_Undefined = 1,
+ FsrmReportGenerationContext_ScheduledReport = 2,
+ FsrmReportGenerationContext_InteractiveReport = 3,
+ FsrmReportGenerationContext_IncidentReport = 4
+} FsrmReportGenerationContext;
+
+typedef enum _FsrmReportLimit {
+ FsrmReportLimit_MaxFiles = 1,
+ FsrmReportLimit_MaxFileGroups = 2,
+ FsrmReportLimit_MaxOwners = 3,
+ FsrmReportLimit_MaxFilesPerFileGroup = 4,
+ FsrmReportLimit_MaxFilesPerOwner = 5,
+ FsrmReportLimit_MaxFilesPerDuplGroup = 6,
+ FsrmReportLimit_MaxDuplicateGroups = 7,
+ FsrmReportLimit_MaxQuotas = 8,
+ FsrmReportLimit_MaxFileScreenEvents = 9,
+ FsrmReportLimit_MaxPropertyValues = 10,
+ FsrmReportLimit_MaxFilesPerPropertyValue = 11
+} FsrmReportLimit;
+
+typedef enum _FsrmReportRunningStatus {
+ FsrmReportRunningStatus_Unknown = 0,
+ FsrmReportRunningStatus_NotRunning = 1,
+ FsrmReportRunningStatus_Queued = 2,
+ FsrmReportRunningStatus_Running = 3
+} FsrmReportRunningStatus;
+
+typedef enum _FsrmReportType {
+ FsrmReportType_Unknown = 0,
+ FsrmReportType_LargeFiles = 1,
+ FsrmReportType_FilesByType = 2,
+ FsrmReportType_LeastRecentlyAccessed = 3,
+ FsrmReportType_MostRecentlyAccessed = 4,
+ FsrmReportType_QuotaUsage = 5,
+ FsrmReportType_FilesByOwner = 6,
+ FsrmReportType_ExportReport = 7,
+ FsrmReportType_DuplicateFiles = 8,
+ FsrmReportType_FileScreenAudit = 9,
+ FsrmReportType_FilesByProperty = 10,
+ FsrmReportType_AutomaticClassification = 11,
+ FsrmReportType_Expiration = 12
+} FsrmReportType;
+
+typedef enum _FsrmTemplateApplyOptions {
+ FsrmTemplateApplyOptions_ApplyToDerivedMatching = 1,
+ FsrmTemplateApplyOptions_ApplyToDerivedAll = 2
+} FsrmTemplateApplyOptions;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_FSRMENUMS*/
diff --git a/mingw-w64-headers/include/fsrmpipeline.h b/mingw-w64-headers/include/fsrmpipeline.h
new file mode 100644
index 0000000..579528f
--- /dev/null
+++ b/mingw-w64-headers/include/fsrmpipeline.h
@@ -0,0 +1,6 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#include <fsrmenums.h>
diff --git a/mingw-w64-headers/include/fsrmquota.h b/mingw-w64-headers/include/fsrmquota.h
new file mode 100644
index 0000000..579528f
--- /dev/null
+++ b/mingw-w64-headers/include/fsrmquota.h
@@ -0,0 +1,6 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#include <fsrmenums.h>
diff --git a/mingw-w64-headers/include/fsrmreports.h b/mingw-w64-headers/include/fsrmreports.h
new file mode 100644
index 0000000..579528f
--- /dev/null
+++ b/mingw-w64-headers/include/fsrmreports.h
@@ -0,0 +1,6 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#include <fsrmenums.h>
diff --git a/mingw-w64-headers/include/fsrmscreen.h b/mingw-w64-headers/include/fsrmscreen.h
new file mode 100644
index 0000000..579528f
--- /dev/null
+++ b/mingw-w64-headers/include/fsrmscreen.h
@@ -0,0 +1,6 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#include <fsrmenums.h>
diff --git a/mingw-w64-headers/include/functiondiscoveryapi.h b/mingw-w64-headers/include/functiondiscoveryapi.h
new file mode 100644
index 0000000..cd89e0a
--- /dev/null
+++ b/mingw-w64-headers/include/functiondiscoveryapi.h
@@ -0,0 +1,28 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_FUNCTIONDISCOVERYAPI
+#define _INC_FUNCTIONDISCOVERYAPI
+#if (_WIN32_WINNT >= 0x0600)
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum tagQueryUpdateAction {
+ QUA_ADD = 0,
+ QUA_REMOVE = 1,
+ QUA_CHANGE = 2
+} QueryUpdateAction;
+
+typedef enum tagSystemVisibilityFlags {
+ SVF_SYSTEM = 0,
+ SVF_USER = 1
+} SystemVisibilityFlags;
+
+#ifdef __cplusplus
+}
+#endif
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_FUNCTIONDISCOVERYAPI*/
diff --git a/mingw-w64-headers/include/functiondiscoveryconstraints.h b/mingw-w64-headers/include/functiondiscoveryconstraints.h
new file mode 100644
index 0000000..4e0ce84
--- /dev/null
+++ b/mingw-w64-headers/include/functiondiscoveryconstraints.h
@@ -0,0 +1,31 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_FUNCTIONDISCOVERYCONSTRAINTS
+#define _INC_FUNCTIONDISCOVERYCONSTRAINTS
+#if (_WIN32_WINNT >= 0x0600)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum tagPropertyConstraint {
+ QC_EQUALS = 0,
+ QC_NOTEQUAL = 1,
+ QC_LESSTHAN = 2,
+ QC_LESSTHANOREQUAL = 3,
+ QC_GREATERTHAN = 4,
+ QC_GREATERTHANOREQUAL = 5,
+ QC_STARTSWITH = 6,
+ QC_EXISTS = 7,
+ QC_DOESNOTEXIST = 8,
+ QC_CONTAINS = 8
+} PropertyConstraint;
+
+#ifdef __cplusplus
+}
+#endif
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_FUNCTIONDISCOVERYCONSTRAINTS*/
diff --git a/mingw-w64-headers/include/fwpmtypes.h b/mingw-w64-headers/include/fwpmtypes.h
new file mode 100644
index 0000000..a487df4
--- /dev/null
+++ b/mingw-w64-headers/include/fwpmtypes.h
@@ -0,0 +1,404 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_FWPMTYPES
+#define _INC_FWPMTYPES
+#include <fwptypes.h>
+#include <ipsectypes.h>
+#include <iketypes.h>
+#if (_WIN32_WINNT >= 0x0600)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef UINT32 FWP_ACTION_TYPE;
+
+typedef enum FWPM_PROVIDER_CONTEXT_TYPE_ {
+ FWPM_IPSEC_KEYING_CONTEXT,
+ FWPM_IPSEC_IKE_QM_TRANSPORT_CONTEXT,
+ FWPM_IPSEC_IKE_QM_TUNNEL_CONTEXT,
+ FWPM_IPSEC_AUTHIP_QM_TRANSPORT_CONTEXT,
+ FWPM_IPSEC_AUTHIP_QM_TUNNEL_CONTEXT,
+ FWPM_IPSEC_IKE_MM_CONTEXT,
+ FWPM_IPSEC_AUTHIP_MM_CONTEXT,
+ FWPM_CLASSIFY_OPTIONS_CONTEXT,
+ FWPM_GENERAL_CONTEXT,
+ FWPM_IPSEC_IKEV2_QM_TUNNEL_CONTEXT,
+ FWPM_IPSEC_IKEV2_MM_CONTEXT,
+ FWPM_DOSP_CONTEXT,
+ FWPM_PROVIDER_CONTEXT_TYPE_MAX
+} FWPM_PROVIDER_CONTEXT_TYPE;
+
+typedef enum FWPM_NET_EVENT_TYPE_ {
+ FWPM_NET_EVENT_TYPE_IKEEXT_MM_FAILURE,
+ FWPM_NET_EVENT_TYPE_IKEEXT_QM_FAILURE,
+ FWPM_NET_EVENT_TYPE_IKEEXT_EM_FAILURE,
+ FWPM_NET_EVENT_TYPE_CLASSIFY_DROP,
+ FWPM_NET_EVENT_TYPE_IPSEC_KERNEL_DROP,
+ FWPM_NET_EVENT_TYPE_IPSEC_DOSP_DROP,
+ FWPM_NET_EVENT_TYPE_MAX
+} FWPM_NET_EVENT_TYPE;
+
+typedef struct FWPM_ACTION0_ {
+ FWP_ACTION_TYPE type;
+ __MINGW_EXTENSION union {
+ GUID filterType;
+ GUID calloutKey;
+ };
+} FWPM_ACTION0;
+
+typedef struct FWPM_DISPLAY_DATA0_ {
+ wchar_t *name;
+ wchar_t *description;
+} FWPM_DISPLAY_DATA0;
+
+typedef struct FWPM_SESSION0_ {
+ GUID sessionKey;
+ FWPM_DISPLAY_DATA0 displayData;
+ UINT32 flags;
+ UINT32 txnWaitTimeoutInMSec;
+ DWORD processId;
+ SID *sid;
+ wchar_t *username;
+ WINBOOL kernelMode;
+} FWPM_SESSION0;
+
+typedef struct FWPM_CALLOUT_ENUM_TEMPLATE0_ {
+ GUID *providerKey;
+ GUID layerKey;
+} FWPM_CALLOUT_ENUM_TEMPLATE0;
+
+typedef struct FWPM_CALLOUT_SUBSCRIPTION0_ {
+ FWPM_CALLOUT_ENUM_TEMPLATE0 *enumTemplate;
+ UINT32 flags;
+ GUID sessionKey;
+} FWPM_CALLOUT_SUBSCRIPTION0;
+
+typedef enum FWPM_CHANGE_TYPE_ {
+ FWPM_CHANGE_ADD = 1,
+ FWPM_CHANGE_DELETE,
+ FWPM_CHANGE_TYPE_MAX
+} FWPM_CHANGE_TYPE;
+
+typedef struct FWPM_CALLOUT_CHANGE0_ {
+ FWPM_CHANGE_TYPE changeType;
+ GUID calloutKey;
+ UINT32 calloutId;
+} FWPM_CALLOUT_CHANGE0;
+
+typedef struct FWPM_CALLOUT0_ {
+ GUID calloutKey;
+ FWPM_DISPLAY_DATA0 displayData;
+ UINT32 flags;
+ GUID *providerKey;
+ FWP_BYTE_BLOB providerData;
+ GUID applicableLayer;
+ UINT32 calloutId;
+} FWPM_CALLOUT0;
+
+typedef struct FWPM_CLASSIFY_OPTION0_ {
+ FWP_CLASSIFY_OPTION_TYPE type;
+ FWP_VALUE0 value;
+} FWPM_CLASSIFY_OPTION0;
+
+typedef struct FWPM_CLASSIFY_OPTIONS0_ {
+ UINT32 numOptions;
+ FWPM_CLASSIFY_OPTION0 *options;
+} FWPM_CLASSIFY_OPTIONS0;
+
+typedef enum FWPM_ENGINE_OPTION_ {
+ FWPM_ENGINE_COLLECT_NET_EVENTS,
+ FWPM_ENGINE_NET_EVENT_MATCH_ANY_KEYWORDS,
+ FWPM_ENGINE_NAME_CACHE,
+ FWPM_ENGINE_OPTION_MAX
+} FWPM_ENGINE_OPTION;
+
+typedef enum FWPM_FIELD_TYPE_ {
+ FWPM_FIELD_RAW_DATA,
+ FWPM_FIELD_IP_ADDRESS,
+ FWPM_FIELD_FLAGS,
+ FWPM_FIELD_TYPE_MAX
+} FWPM_FIELD_TYPE;
+
+typedef struct FWPM_FIELD0_ {
+ GUID *fieldKey;
+ FWPM_FIELD_TYPE type;
+ FWP_DATA_TYPE dataType;
+} FWPM_FIELD0;
+
+typedef struct FWPM_FILTER_CHANGE0_ {
+ FWPM_CHANGE_TYPE changeType;
+ GUID filterKey;
+ UINT64 filterId;
+} FWPM_FILTER_CHANGE0;
+
+typedef struct FWPM_FILTER_CONDITION0_ {
+ GUID fieldKey;
+ FWP_MATCH_TYPE matchType;
+ FWP_CONDITION_VALUE conditionValue;
+} FWPM_FILTER_CONDITION0;
+
+typedef struct FWPM_PROVIDER_CONTEXT_ENUM_TEMPLATE0_ {
+ GUID *providerKey;
+ FWPM_PROVIDER_CONTEXT_TYPE providerContextType;
+} FWPM_PROVIDER_CONTEXT_ENUM_TEMPLATE0;
+
+typedef struct FWPM_FILTER_ENUM_TEMPLATE0_ {
+ GUID *providerKey;
+ GUID layerKey;
+ FWP_FILTER_ENUM_TYPE enumType;
+ UINT32 flags;
+ FWPM_PROVIDER_CONTEXT_ENUM_TEMPLATE0 *providerContextTemplate;
+ UINT32 numFilterConditions;
+ FWPM_FILTER_CONDITION0 *filterCondition;
+ UINT32 actionMask;
+ GUID *calloutKey;
+} FWPM_FILTER_ENUM_TEMPLATE0;
+
+typedef struct FWPM_FILTER_SUBSCRIPTION0_ {
+ FWPM_FILTER_ENUM_TEMPLATE0 *enumTemplate;
+ UINT32 flags;
+ GUID sessionKey;
+} FWPM_FILTER_SUBSCRIPTION0;
+
+typedef struct FWPM_FILTER0_ {
+ GUID filterKey;
+ FWPM_DISPLAY_DATA0 displayData;
+ UINT32 flags;
+ GUID *providerKey;
+ FWP_BYTE_BLOB providerData;
+ GUID layerKey;
+ GUID subLayerKey;
+ FWP_VALUE0 weight;
+ UINT32 numFilterConditions;
+ FWPM_FILTER_CONDITION0 *filterCondition;
+ FWPM_ACTION0 action;
+ __MINGW_EXTENSION union {
+ UINT64 rawContext;
+ GUID providerContextKey;
+ };
+ GUID *reserved;
+ UINT64 filterId;
+ FWP_VALUE0 effectiveWeight;
+} FWPM_FILTER0;
+
+typedef struct FWPM_LAYER_ENUM_TEMPLATE0_ {
+ UINT64 reserved;
+} FWPM_LAYER_ENUM_TEMPLATE0;
+
+typedef struct FWPM_LAYER0_ {
+ GUID layerKey;
+ FWPM_DISPLAY_DATA0 displayData;
+ UINT32 flags;
+ UINT32 numFields;
+ FWPM_FIELD0 *field;
+ GUID defaultSubLayerKey;
+ UINT16 layerId;
+} FWPM_LAYER0;
+
+typedef struct FWPM_NET_EVENT_CLASSIFY_DROP0_ {
+ UINT64 filterId;
+ UINT16 layerId;
+} FWPM_NET_EVENT_CLASSIFY_DROP0;
+
+typedef struct FWPM_NET_EVENT_ENUM_TEMPLATE0_ {
+ FILETIME startTime;
+ FILETIME endTime;
+ UINT32 numFilterConditions;
+ FWPM_FILTER_CONDITION0 *filterCondition;
+} FWPM_NET_EVENT_ENUM_TEMPLATE0;
+
+typedef struct FWPM_NET_EVENT_HEADER0_ {
+ FILETIME timeStamp;
+ UINT32 flags;
+ FWP_IP_VERSION ipVersion;
+ UINT8 ipProtocol;
+ __MINGW_EXTENSION union {
+ UINT32 localAddrV4;
+ FWP_BYTE_ARRAY16 localAddrV6;
+ };
+ __MINGW_EXTENSION union {
+ UINT32 remoteAddrV4;
+ FWP_BYTE_ARRAY16 remoteAddrV6;
+ };
+ UINT16 localPort;
+ UINT16 remotePort;
+ UINT32 scopeId;
+ FWP_BYTE_BLOB appId;
+ SID *userId;
+} FWPM_NET_EVENT_HEADER0;
+
+#define IKEEXT_CERT_HASH_LEN 20
+
+typedef struct FWPM_NET_EVENT_IKEEXT_UM_FAILURE0_ {
+ UINT32 failureErrorCode;
+ IPSEC_FAILURE_POINT failurePoint;
+ UINT32 flags;
+ IKEEXT_EM_SA_STATE emState;
+ IKEEXT_SA_ROLE saRole;
+ IKEEXT_AUTHENTICATION_METHOD_TYPE emAuthMethod;
+ UINT8 endCertHash[IKEEXT_CERT_HASH_LEN];
+ UINT64 mmId;
+ UINT64 qmFilterId;
+} FWPM_NET_EVENT_IKEEXT_UM_FAILURE0;
+
+typedef struct FWPM_NET_EVENT_IKEEXT_MM_FAILURE0_ {
+ UINT32 failureErrorCode;
+ IPSEC_FAILURE_POINT failurePoint;
+ UINT32 flags;
+ IKEEXT_KEY_MODULE_TYPE keyingModuleType;
+ IKEEXT_MM_SA_STATE mmState;
+ IKEEXT_SA_ROLE saRole;
+ IKEEXT_AUTHENTICATION_METHOD_TYPE mmAuthMethod;
+ UINT8 endCertHash[IKEEXT_CERT_HASH_LEN];
+ UINT64 mmId;
+ UINT64 mmFilterId;
+} FWPM_NET_EVENT_IKEEXT_MM_FAILURE0;
+
+typedef struct FWPM_BET_EVENT_IKEEXT_QM_FAILURE0 {
+ UINT32 failureErrorCode;
+ IPSEC_FAILURE_POINT failurePoint;
+ IKEEXT_KEY_MODULE_TYPE keyingModuleType;
+ IKEEXT_QM_SA_STATE qmState;
+ IKEEXT_SA_ROLE saRole;
+ IPSEC_TRAFFIC_TYPE saTrafficType;
+ __MINGW_EXTENSION union {
+ FWP_CONDITION_VALUE0 localSubNet;
+ ; // case(IPSEC_TRAFFIC_TYPE_TRANSPORT)
+ };
+ __MINGW_EXTENSION union {
+ FWP_CONDITION_VALUE0 remoteSubNet;
+ ; // case(IPSEC_TRAFFIC_TYPE_TRANSPORT)
+ };
+ UINT64 qmFilterId;
+} FWPM_NET_EVENT_IKEEXT_QM_FAILURE0;
+
+typedef UINT32 IPSEC_SA_SPI;
+
+typedef struct FWPM_NET_EVENT_IPSEC_KERNEL_DROP0_ {
+ INT32 failureStatus;
+ FWP_DIRECTION direction;
+ IPSEC_SA_SPI spi;
+ UINT64 filterId;
+ UINT16 layerId;
+} FWPM_NET_EVENT_IPSEC_KERNEL_DROP0;
+
+typedef struct FWPM_NET_EVENT_IPSEC_DOSP_DROP0_ {
+ FWP_IP_VERSION ipVersion;
+ __MINGW_EXTENSION union {
+ UINT32 publicHostV4Addr;
+ UINT8 publicHostV6Addr[16];
+ };
+ __MINGW_EXTENSION union {
+ UINT32 internalHostV4Addr;
+ UINT8 internalHostV6Addr[16];
+ };
+ INT32 failureStatus;
+ FWP_DIRECTION direction;
+} FWPM_NET_EVENT_IPSEC_DOSP_DROP0;
+
+typedef struct FWPM_NET_EVENT0_ {
+ FWPM_NET_EVENT_HEADER0 header;
+ FWPM_NET_EVENT_TYPE type;
+ __MINGW_EXTENSION union {
+ FWPM_NET_EVENT_IKEEXT_MM_FAILURE0 *ikeMmFailure;
+ FWPM_NET_EVENT_IKEEXT_QM_FAILURE0 *ikeQmFailure;
+ FWPM_NET_EVENT_IKEEXT_EM_FAILURE0 *ikeEmFailure;
+ FWPM_NET_EVENT_CLASSIFY_DROP0 *classifyDrop;
+ FWPM_NET_EVENT_IPSEC_KERNEL_DROP0 *ipsecDrop;
+ FWPM_NET_EVENT_IPSEC_DOSP_DROP0 *idpDrop;
+ };
+} FWPM_NET_EVENT0;
+
+typedef struct FWPM_PROVIDER_CHANGE0_ {
+ FWPM_CHANGE_TYPE changeType;
+ GUID providerKey;
+} FWPM_PROVIDER_CHANGE0;
+
+typedef struct FWPM_PROVIDER_CONTEXT_CHANGE0_ {
+ FWPM_CHANGE_TYPE changeType;
+ GUID providerContextKey;
+ UINT64 providerContextId;
+} FWPM_PROVIDER_CONTEXT_CHANGE0;
+
+typedef struct FWPM_PROVIDER_CONTEXT_SUBSCRIPTION0_ {
+ FWPM_PROVIDER_CONTEXT_ENUM_TEMPLATE0 *enumTemplate;
+ UINT32 flags;
+ GUID sessionKey;
+} FWPM_PROVIDER_CONTEXT_SUBSCRIPTION0;
+
+typedef struct FWPM_PROVIDER_CONTEXT0_ {
+ GUID providerContextKey;
+ FWPM_DISPLAY_DATA0 displayData;
+ UINT32 flags;
+ GUID *providerKey;
+ FWP_BYTE_BLOB providerData;
+ FWPM_PROVIDER_CONTEXT_TYPE type;
+ __MINGW_EXTENSION union {
+ IPSEC_KEYING_POLICY0 *keyingPolicy;
+ IPSEC_TRANSPORT_POLICY0 *ikeQmTransportPolicy;
+ IPSEC_TUNNEL_POLICY0 *ikeQmTunnelPolicy;
+ IPSEC_TRANSPORT_POLICY0 *authipQmTransportPolicy;
+ IPSEC_TUNNEL_POLICY0 *authipQmTunnelPolicy;
+ IKEEXT_POLICY0 *ikeMmPolicy;
+ IKEEXT_POLICY0 *authIpMmPolicy;
+ FWP_BYTE_BLOB *dataBuffer;
+ FWPM_CLASSIFY_OPTIONS0 *classifyOptions;
+ };
+ UINT64 providerContextId;
+} FWPM_PROVIDER_CONTEXT0;
+
+typedef struct FWPM_PROVIDER_ENUM_TEMPLATE0_ {
+ UINT64 reserved;
+} FWPM_PROVIDER_ENUM_TEMPLATE0;
+
+typedef struct FWPM_PROVIDER_SUBSCRIPTION0_ {
+ FWPM_PROVIDER_ENUM_TEMPLATE0 *enumTemplate;
+ UINT32 flags;
+ GUID sessionKey;
+} FWPM_PROVIDER_SUBSCRIPTION0;
+
+typedef struct FWPM_PROVIDER0_ {
+ GUID providerKey;
+ FWPM_DISPLAY_DATA0 displayData;
+ UINT32 flags;
+ FWP_BYTE_BLOB providerData;
+ wchar_t *serviceName;
+} FWPM_PROVIDER0;
+
+typedef struct FWPM_SESSION_ENUM_TEMPLATE0_ {
+ UINT64 reserved;
+} FWPM_SESSION_ENUM_TEMPLATE0;
+
+typedef struct FWPM_SUBLAYER_CHANGE0_ {
+ FWPM_CHANGE_TYPE changeType;
+ GUID subLayerKey;
+} FWPM_SUBLAYER_CHANGE0;
+
+typedef struct FWPM_SUBLAYER_ENUM_TEMPLATE0_ {
+ GUID *providerKey;
+} FWPM_SUBLAYER_ENUM_TEMPLATE0;
+
+typedef struct FWPM_SUBLAYER_SUBSCRIPTION0_ {
+ FWPM_SUBLAYER_ENUM_TEMPLATE0 *enumTemplate;
+ UINT32 flags;
+ GUID sessionKey;
+} FWPM_SUBLAYER_SUBSCRIPTION0;
+
+typedef struct FWPM_SUBLAYER0_ {
+ GUID subLayerKey;
+ FWPM_DISPLAY_DATA0 displayData;
+ UINT16 flags;
+ GUID *providerKey;
+ FWP_BYTE_BLOB providerData;
+ UINT16 weight;
+} FWPM_SUBLAYER0;
+
+#ifdef __cplusplus
+}
+#endif
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_FWPMTYPES*/
diff --git a/mingw-w64-headers/include/fwpmu.h b/mingw-w64-headers/include/fwpmu.h
new file mode 100644
index 0000000..7dcd1fd
--- /dev/null
+++ b/mingw-w64-headers/include/fwpmu.h
@@ -0,0 +1,710 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_FWPMU
+#define _INC_FWPMU
+#include <rpc.h>
+#include <fwptypes.h>
+#include <fwpmtypes.h>
+#include <iketypes.h>
+#include <ipsectypes.h>
+#if (_WIN32_WINNT >= 0x0600)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef void ( CALLBACK *FWPM_CALLOUT_CHANGE_CALLBACK0 )(
+ void *context,
+ const FWPM_CALLOUT_CHANGE0 *change
+);
+
+typedef void ( CALLBACK *FWPM_FILTER_CHANGE_CALLBACK0 )(
+ void *context,
+ const FWPM_FILTER_CHANGE0 *change
+);
+
+typedef void ( CALLBACK *FWPM_PROVIDER_CHANGE_CALLBACK0 )(
+ void *context,
+ const FWPM_PROVIDER_CHANGE0 *change
+);
+
+typedef void ( CALLBACK *FWPM_PROVIDER_CONTEXT_CHANGE_CALLBACK0 )(
+ void *context,
+ const FWPM_PROVIDER_CONTEXT_CHANGE0 *change
+);
+
+typedef void ( CALLBACK *FWPM_SUBLAYER_CHANGE_CALLBACK0 )(
+ void *context,
+ const FWPM_SUBLAYER_CHANGE0 *change
+);
+
+DWORD WINAPI FwpmCalloutSubscribeChanges0(
+ HANDLE engineHandle,
+ const FWPM_CALLOUT_SUBSCRIPTION0 *subscription,
+ FWPM_CALLOUT_CHANGE_CALLBACK0 callback,
+ void *context,
+ HANDLE *changeHandle
+);
+
+DWORD WINAPI FwpmEngineOpen0(
+ const wchar_t *serverName,
+ UINT32 authnService,
+ SEC_WINNT_AUTH_IDENTITY_W *authIdentity,
+ const FWPM_SESSION0 *session,
+ HANDLE *engineHandle
+);
+
+DWORD WINAPI FwpmCalloutAdd0(
+ HANDLE engineHandle,
+ const FWPM_CALLOUT0 *callout,
+ PSECURITY_DESCRIPTOR sd,
+ UINT32 *id
+);
+
+DWORD WINAPI FwpmFilterAdd0(
+ HANDLE engineHandle,
+ const FWPM_FILTER0 *filter,
+ PSECURITY_DESCRIPTOR sd,
+ UINT64 *id
+);
+
+DWORD WINAPI FwpmEngineClose0(
+ HANDLE engineHandle
+);
+
+DWORD WINAPI FwpmFilterSubscribeChanges0(
+ HANDLE engineHandle,
+ const FWPM_FILTER_SUBSCRIPTION0 *subscription,
+ FWPM_FILTER_CHANGE_CALLBACK0 callback,
+ void *context,
+ HANDLE *changeHandle
+);
+
+DWORD WINAPI FwpmProviderSubscribeChanges0(
+ HANDLE engineHandle,
+ const FWPM_PROVIDER_SUBSCRIPTION0 *subscription,
+ FWPM_PROVIDER_CHANGE_CALLBACK0 callback,
+ void *context,
+ HANDLE *changeHandle
+);
+
+DWORD WINAPI FwpmProviderContextSubscribeChanges0(
+ HANDLE engineHandle,
+ const FWPM_PROVIDER_CONTEXT_SUBSCRIPTION0 *subscription,
+ FWPM_PROVIDER_CONTEXT_CHANGE_CALLBACK0 callback,
+ void *context,
+ HANDLE *changeHandle
+);
+
+DWORD WINAPI FwpmProviderContextAdd0(
+ HANDLE engineHandle,
+ const FWPM_PROVIDER_CONTEXT0 *providerContext,
+ PSECURITY_DESCRIPTOR sd,
+ UINT64 *id
+);
+
+DWORD WINAPI FwpmSubLayerSubscribeChanges0(
+ HANDLE engineHandle,
+ const FWPM_SUBLAYER_SUBSCRIPTION0 *subscription,
+ FWPM_SUBLAYER_CHANGE_CALLBACK0 callback,
+ void *context,
+ HANDLE *changeHandle
+);
+
+DWORD WINAPI FwpmSubLayerAdd0(
+ HANDLE engineHandle,
+ const FWPM_SUBLAYER0 *subLayer,
+ PSECURITY_DESCRIPTOR sd
+);
+
+DWORD WINAPI FwpmCalloutCreateEnumHandle0(
+ HANDLE engineHandle,
+ const FWPM_CALLOUT_ENUM_TEMPLATE0 *enumTemplate,
+ HANDLE *enumHandle
+);
+
+DWORD WINAPI FwpmCalloutDeleteById0(
+ HANDLE engineHandle,
+ UINT32 id
+);
+
+DWORD WINAPI FwpmCalloutDeleteByKey0(
+ HANDLE engineHandle,
+ const GUID *key
+);
+
+DWORD WINAPI FwpmCalloutDestroyEnumHandle0(
+ HANDLE engineHandle,
+ HANDLE enumHandle
+);
+
+DWORD WINAPI FwpmCalloutEnum0(
+ HANDLE engineHandle,
+ HANDLE enumHandle,
+ UINT32 numEntriesRequested,
+ FWPM_CALLOUT0 ***entries,
+ UINT32 *numEntriesReturned
+);
+
+void WINAPI FwpmFreeMemory0(
+ void **p
+);
+
+DWORD WINAPI FwpmCalloutGetById0(
+ HANDLE engineHandle,
+ UINT32 id,
+ FWPM_CALLOUT0 **callout
+);
+
+DWORD WINAPI FwpmCalloutGetByKey0(
+ HANDLE engineHandle,
+ const GUID *key,
+ FWPM_CALLOUT0 **callout
+);
+
+DWORD WINAPI FwpmCalloutGetSecurityInfoByKey0(
+ HANDLE engineHandle,
+ const GUID *key,
+ SECURITY_INFORMATION securityInfo,
+ PSID *sidOwner,
+ PSID *sidGroup,
+ PACL *dacl,
+ PACL *sacl,
+ PSECURITY_DESCRIPTOR *securityDescriptor
+);
+
+DWORD WINAPI FwpmCalloutSetSecurityInfoByKey0(
+ HANDLE engineHandle,
+ const GUID *key,
+ SECURITY_INFORMATION securityInfo,
+ const SID *sidOwner,
+ const SID *sidGroup,
+ const ACL *dacl,
+ const ACL *sacl
+);
+
+DWORD WINAPI FwpmCalloutSubscriptionsGet0(
+ HANDLE engineHandle,
+ FWPM_CALLOUT_SUBSCRIPTION0 ***entries,
+ UINT32 *numEntries
+);
+
+DWORD WINAPI FwpmCalloutUnsubscribeChanges0(
+ HANDLE engineHandle,
+ HANDLE changeHandle
+);
+
+#define FWPM_NET_EVENT_KEYWORD_INBOUND_MCAST 1
+#define FWPM_NET_EVENT_KEYWORD_INBOUND_BCAST 2
+
+DWORD WINAPI FwpmEngineGetOption0(
+ HANDLE engineHandle,
+ FWPM_ENGINE_OPTION option,
+ FWP_VALUE0 **value
+);
+
+DWORD WINAPI FwpmEngineGetSecurityInfo0(
+ HANDLE engineHandle,
+ SECURITY_INFORMATION securityInfo,
+ PSID *sidOwner,
+ PSID *sidGroup,
+ PACL *dacl,
+ PACL *sacl,
+ PSECURITY_DESCRIPTOR *securityDescriptor
+);
+
+DWORD WINAPI FwpmEngineSetOption0(
+ HANDLE engineHandle,
+ FWPM_ENGINE_OPTION option,
+ const FWP_VALUE0 *newValue
+);
+
+DWORD WINAPI IPsecSaDbSetSecurityInfo0(
+ HANDLE engineHandle,
+ SECURITY_INFORMATION securityInfo,
+ const SID *sidOwner,
+ const SID *sidGroup,
+ const ACL *dacl,
+ const ACL *sacl
+);
+
+DWORD WINAPI FwpmFilterCreateEnumHandle0(
+ HANDLE engineHandle,
+ const FWPM_FILTER_ENUM_TEMPLATE0 *enumTemplate,
+ HANDLE *enumHandle
+);
+
+DWORD WINAPI FwpmFilterDeleteById0(
+ HANDLE engineHandle,
+ UINT64 id
+);
+
+DWORD WINAPI FwpmFilterDeleteByKey0(
+ HANDLE engineHandle,
+ const GUID *key
+);
+
+DWORD WINAPI FwpmFilterDestroyEnumHandle0(
+ HANDLE engineHandle,
+ HANDLE enumHandle
+);
+
+DWORD WINAPI FwpmFilterEnum0(
+ HANDLE engineHandle,
+ HANDLE enumHandle,
+ UINT32 numEntriesRequested,
+ FWPM_FILTER0 ***entries,
+ UINT32 *numEntriesReturned
+);
+
+DWORD WINAPI FwpmFilterGetById0(
+ HANDLE engineHandle,
+ UINT64 id,
+ FWPM_FILTER0 **filter
+);
+
+DWORD WINAPI FwpmFilterGetByKey0(
+ HANDLE engineHandle,
+ const GUID *key,
+ FWPM_FILTER0 **filter
+);
+
+DWORD WINAPI FwpmFilterGetSecurityInfoByKey0(
+ HANDLE engineHandle,
+ const GUID *key,
+ SECURITY_INFORMATION securityInfo,
+ PSID *sidOwner,
+ PSID *sidGroup,
+ PACL *dacl,
+ PACL *sacl,
+ PSECURITY_DESCRIPTOR *securityDescriptor
+);
+
+DWORD WINAPI FwpmFilterSetSecurityInfoByKey0(
+ HANDLE engineHandle,
+ const GUID *key,
+ SECURITY_INFORMATION securityInfo,
+ const SID *sidOwner,
+ const SID *sidGroup,
+ const ACL *dacl,
+ const ACL *sacl
+);
+
+DWORD WINAPI FwpmFilterSubscriptionsGet0(
+ HANDLE engineHandle,
+ FWPM_FILTER_SUBSCRIPTION0 ***entries,
+ UINT32 *numEntries
+);
+
+DWORD WINAPI FwpmFilterUnsubscribeChanges0(
+ HANDLE engineHandle,
+ HANDLE changeHandle
+);
+
+DWORD WINAPI FwpmGetAppIdFromFileName0(
+ const wchar_t *fileName,
+ FWP_BYTE_BLOB **appId
+);
+
+DWORD WINAPI FwpmIpsecTunnelAdd0(
+ HANDLE engineHandle,
+ UINT32 flags,
+ const FWPM_PROVIDER_CONTEXT0 *mainModePolicy,
+ const FWPM_PROVIDER_CONTEXT0 *tunnelPolicy,
+ UINT32 numFilterConditions,
+ const FWPM_FILTER_CONDITION0 *filterConditions,
+ PSECURITY_DESCRIPTOR sd
+);
+
+DWORD WINAPI FwpmIPsecTunnelDeleteByKey0(
+ HANDLE engineHandle,
+ const GUID *key
+);
+
+DWORD WINAPI FwpmLayerCreateEnumHandle0(
+ HANDLE engineHandle,
+ const FWPM_LAYER_ENUM_TEMPLATE0 *enumTemplate,
+ HANDLE *enumHandle
+);
+
+DWORD WINAPI FwpmLayerDestroyEnumHandle0(
+ HANDLE engineHandle,
+ HANDLE enumHandle
+);
+
+DWORD WINAPI FwpmLayerEnum0(
+ HANDLE engineHandle,
+ HANDLE enumHandle,
+ UINT32 numEntriesRequested,
+ FWPM_LAYER0 ***entries,
+ UINT32 *numEntriesReturned
+);
+
+DWORD WINAPI FwpmLayerGetById0(
+ HANDLE engineHandle,
+ UINT16 id,
+ FWPM_LAYER0 **layer
+);
+
+DWORD WINAPI FwpmLayerGetByKey0(
+ HANDLE engineHandle,
+ const GUID *key,
+ FWPM_LAYER0 **layer
+);
+
+DWORD WINAPI FwpmLayerGetSecurityInfoByKey0(
+ HANDLE engineHandle,
+ const GUID *key,
+ SECURITY_INFORMATION securityInfo,
+ PSID *sidOwner,
+ PSID *sidGroup,
+ PACL *dacl,
+ PACL *sacl,
+ PSECURITY_DESCRIPTOR *securityDescriptor
+);
+
+DWORD WINAPI FwpmLayerSetSecurityInfoByKey0(
+ HANDLE engineHandle,
+ const GUID *key,
+ SECURITY_INFORMATION securityInfo,
+ const SID *sidOwner,
+ const SID *sidGroup,
+ const ACL *dacl,
+ const ACL *sacl
+);
+
+DWORD WINAPI FwpmNetEventCreateEnumHandle0(
+ HANDLE engineHandle,
+ const FWPM_NET_EVENT_ENUM_TEMPLATE0 *enumTemplate,
+ HANDLE *enumHandle
+);
+
+DWORD WINAPI FwpmNetEventDestroyEnumHandle0(
+ HANDLE engineHandle,
+ HANDLE enumHandle
+);
+
+DWORD WINAPI FwpmNetEventEnum0(
+ HANDLE engineHandle,
+ HANDLE enumHandle,
+ UINT32 numEntriesRequested,
+ FWPM_NET_EVENT0 ***entries,
+ UINT32 *numEntriesReturned
+);
+
+DWORD WINAPI FwpmNetEventsGetSecurityInfo0(
+ HANDLE engineHandle,
+ SECURITY_INFORMATION securityInfo,
+ PSID *sidOwner,
+ PSID *sidGroup,
+ PACL *dacl,
+ PACL *sacl,
+ PSECURITY_DESCRIPTOR *securityDescriptor
+);
+
+DWORD WINAPI FwpmNetEventsSetSecurityInfo0(
+ HANDLE engineHandle,
+ SECURITY_INFORMATION securityInfo,
+ const SID *sidOwner,
+ const SID *sidGroup,
+ const ACL *dacl,
+ const ACL *sacl
+);
+
+DWORD WINAPI FwpmProviderAdd0(
+ HANDLE engineHandle,
+ const FWPM_PROVIDER0 *provider,
+ PSECURITY_DESCRIPTOR sd
+);
+
+DWORD WINAPI FwpmProviderContextCreateEnumHandle0(
+ HANDLE engineHandle,
+ const FWPM_PROVIDER_CONTEXT_ENUM_TEMPLATE0 *enumTemplate,
+ HANDLE *enumHandle
+);
+
+DWORD WINAPI FwpmProviderContextDeleteById0(
+ HANDLE engineHandle,
+ UINT64 id
+);
+
+DWORD WINAPI FwpmProviderContextDeleteByKey0(
+ HANDLE engineHandle,
+ const GUID *key
+);
+
+DWORD WINAPI FwpmProviderContextDestroyEnumHandle0(
+ HANDLE engineHandle,
+ HANDLE enumHandle
+);
+
+DWORD WINAPI FwpmProviderContextEnum0(
+ HANDLE engineHandle,
+ HANDLE enumHandle,
+ UINT32 numEntriesRequested,
+ FWPM_PROVIDER_CONTEXT0 ***entries,
+ UINT32 *numEntriesReturned
+);
+
+DWORD WINAPI FwpmProviderContextGetById0(
+ HANDLE engineHandle,
+ UINT64 id,
+ FWPM_PROVIDER_CONTEXT0 **providerContext
+);
+
+DWORD WINAPI FwpmProviderContextGetByKey0(
+ HANDLE engineHandle,
+ const GUID *key,
+ FWPM_PROVIDER_CONTEXT0 **providerContext
+);
+
+DWORD WINAPI FwpmProviderContextGetSecurityInfoByKey0(
+ HANDLE engineHandle,
+ const GUID *key,
+ SECURITY_INFORMATION securityInfo,
+ PSID *sidOwner,
+ PSID *sidGroup,
+ PACL *dacl,
+ PACL *sacl,
+ PSECURITY_DESCRIPTOR *securityDescriptor
+);
+
+DWORD WINAPI FwpmProviderContextSetSecurityInfoByKey0(
+ HANDLE engineHandle,
+ const GUID *key,
+ SECURITY_INFORMATION securityInfo,
+ const SID *sidOwner,
+ const SID *sidGroup,
+ const ACL *dacl,
+ const ACL *sacl
+);
+
+DWORD WINAPI FwpmProviderContextSubscriptionsGet0(
+ HANDLE engineHandle,
+ FWPM_PROVIDER_CONTEXT_SUBSCRIPTION0 ***entries,
+ UINT32 *numEntries
+);
+
+DWORD WINAPI FwpmProviderContextUnsubscribeChanges0(
+ HANDLE engineHandle,
+ HANDLE changeHandle
+);
+
+DWORD WINAPI FwpmProviderCreateEnumHandle0(
+ HANDLE engineHandle,
+ const FWPM_PROVIDER_ENUM_TEMPLATE0 *enumTemplate,
+ HANDLE *enumHandle
+);
+
+DWORD WINAPI FwpmProviderDeleteByKey0(
+ HANDLE engineHandle,
+ const GUID *key
+);
+
+DWORD WINAPI FwpmProviderDestroyEnumHandle0(
+ HANDLE engineHandle,
+ HANDLE enumHandle
+);
+
+DWORD WINAPI FwpmProviderEnum0(
+ HANDLE engineHandle,
+ HANDLE enumHandle,
+ UINT32 numEntriesRequested,
+ FWPM_PROVIDER0 ***entries,
+ UINT32 *numEntriesReturned
+);
+
+DWORD WINAPI FwpmProviderGetByKey0(
+ HANDLE engineHandle,
+ const GUID *key,
+ FWPM_PROVIDER0 **provider
+);
+
+DWORD WINAPI FwpmProviderGetSecurityInfoByKey0(
+ HANDLE engineHandle,
+ const GUID *key,
+ SECURITY_INFORMATION securityInfo,
+ PSID *sidOwner,
+ PSID *sidGroup,
+ PACL *dacl,
+ PACL *sacl,
+ PSECURITY_DESCRIPTOR *securityDescriptor
+);
+
+DWORD WINAPI FwpmProviderSetSecurityInfoByKey0(
+ HANDLE engineHandle,
+ const GUID *key,
+ SECURITY_INFORMATION securityInfo,
+ const SID *sidOwner,
+ const SID *sidGroup,
+ const ACL *dacl,
+ const ACL *sacl
+);
+
+DWORD WINAPI FwpmProviderSubscriptionsGet0(
+ HANDLE engineHandle,
+ FWPM_PROVIDER_SUBSCRIPTION0 ***entries,
+ UINT32 *numEntries
+);
+
+DWORD WINAPI FwpmProviderUnsubscribeChanges0(
+ HANDLE engineHandle,
+ HANDLE changeHandle
+);
+
+DWORD WINAPI FwpmSessionCreateEnumHandle0(
+ HANDLE engineHandle,
+ const FWPM_SESSION_ENUM_TEMPLATE0 *enumTemplate,
+ HANDLE *enumHandle
+);
+
+DWORD WINAPI FwpmSessionDestroyEnumHandle0(
+ HANDLE engineHandle,
+ HANDLE enumHandle
+);
+
+DWORD WINAPI FwpmSessionEnum0(
+ HANDLE engineHandle,
+ HANDLE enumHandle,
+ UINT32 numEntriesRequested,
+ FWPM_SESSION0 ***entries,
+ UINT32 *numEntriesReturned
+);
+
+DWORD WINAPI FwpmSubLayerCreateEnumHandle0(
+ HANDLE engineHandle,
+ const FWPM_SUBLAYER_ENUM_TEMPLATE0 *enumTemplate,
+ HANDLE *enumHandle
+);
+
+DWORD WINAPI FwpmSubLayerDeleteByKey0(
+ HANDLE engineHandle,
+ const GUID *key
+);
+
+DWORD WINAPI FwpmSubLayerDestroyEnumHandle0(
+ HANDLE engineHandle,
+ HANDLE enumHandle
+);
+
+DWORD WINAPI FwpmSubLayerEnum0(
+ HANDLE engineHandle,
+ HANDLE enumHandle,
+ UINT32 numEntriesRequested,
+ FWPM_SUBLAYER0 ***entries,
+ UINT32 *numEntriesReturned
+);
+
+DWORD WINAPI FwpmSubLayerGetByKey0(
+ HANDLE engineHandle,
+ const GUID *key,
+ FWPM_SUBLAYER0 **subLayer
+);
+
+DWORD WINAPI FwpmSubLayerGetSecurityInfoByKey0(
+ HANDLE engineHandle,
+ const GUID *key,
+ SECURITY_INFORMATION securityInfo,
+ PSID *sidOwner,
+ PSID *sidGroup,
+ PACL *dacl,
+ PACL *sacl,
+ PSECURITY_DESCRIPTOR *securityDescriptor
+);
+
+DWORD WINAPI FwpmCalloutSetSecurityInfoByKey0(
+ HANDLE engineHandle,
+ const GUID *key,
+ SECURITY_INFORMATION securityInfo,
+ const SID *sidOwner,
+ const SID *sidGroup,
+ const ACL *dacl,
+ const ACL *sacl
+);
+
+DWORD WINAPI FwpmSubLayerSubscriptionsGet0(
+ HANDLE engineHandle,
+ FWPM_SUBLAYER_SUBSCRIPTION0 ***entries,
+ UINT32 *numEntries
+);
+
+DWORD WINAPI FwpmSubLayerUnsubscribeChanges0(
+ HANDLE engineHandle,
+ HANDLE changeHandle
+);
+
+DWORD WINAPI FwpmTransactionAbort0(
+ HANDLE engineHandle
+);
+
+DWORD WINAPI FwpmTransactionBegin0(
+ HANDLE engineHandle,
+ UINT32 flags
+);
+
+DWORD WINAPI FwpmTransactionCommit0(
+ HANDLE engineHandle
+);
+
+DWORD WINAPI IkeextGetStatistics0(
+ HANDLE engineHandle,
+ IKEEXT_STATISTICS0 *ikeextStatistics
+);
+
+DWORD WINAPI IkeextSaDbGetSecurityInfo0(
+ HANDLE engineHandle,
+ SECURITY_INFORMATION securityInfo,
+ PSID *sidOwner,
+ PSID *sidGroup,
+ PACL *dacl,
+ PACL *sacl,
+ PSECURITY_DESCRIPTOR *securityDescriptor
+);
+
+DWORD WINAPI IkeextSaCreateEnumHandle0(
+ HANDLE engineHandle,
+ const IKEEXT_SA_ENUM_TEMPLATE0 *enumTemplate,
+ HANDLE *enumHandle
+);
+
+DWORD WINAPI IkeextSaDbSetSecurityInfo0(
+ HANDLE engineHandle,
+ SECURITY_INFORMATION securityInfo,
+ const SID *sidOwner,
+ const SID *sidGroup,
+ const ACL *dacl,
+ const ACL *sacl
+);
+
+DWORD WINAPI IkeextSaDeleteById0(
+ HANDLE engineHandle,
+ UINT64 id
+);
+
+DWORD WINAPI IkeextSaDestroyEnumHandle0(
+ HANDLE engineHandle,
+ HANDLE enumHandle
+);
+
+DWORD WINAPI IkeextSaEnum0(
+ HANDLE engineHandle,
+ HANDLE enumHandle,
+ UINT32 numEntriesRequested,
+ IKEEXT_SA_DETAILS0 ***entries,
+ UINT32 *numEntriesReturned
+);
+
+DWORD WINAPI IkeextSaGetById0(
+ HANDLE engineHandle,
+ UINT64 id,
+ IKEEXT_SA_DETAILS0 **sa
+);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_FWPMU*/
diff --git a/mingw-w64-headers/include/fwptypes.h b/mingw-w64-headers/include/fwptypes.h
new file mode 100644
index 0000000..121e7ca
--- /dev/null
+++ b/mingw-w64-headers/include/fwptypes.h
@@ -0,0 +1,183 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_FWTYPES
+#define _INC_FWTYPES
+#if (_WIN32_WINNT >= 0x0600)
+
+#define SOCKET_SETTINGS_GUARANTEE_ENCRYPTION 0x00000001
+#define SOCKET_SETTINGS_ALLOW_INSECURE 0x00000002
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum FWP_CLASSIFY_OPTION_TYPE_ {
+ FWP_CLASSIFY_OPTION_MULTICAST_STATE,
+ FWP_CLASSIFY_OPTION_LOOSE_SOURCE_MAPPING,
+ FWP_CLASSIFY_OPTION_UNICAST_LIFETIME,
+ FWP_CLASSIFY_OPTION_MCAST_BCAST_LIFETIME,
+ FWP_CLASSIFY_OPTION_SECURE_SOCKET_SECURITY_FLAGS,
+ FWP_CLASSIFY_OPTION_SECURE_SOCKET_AUTHIP_MM_POLICY_KEY,
+ FWP_CLASSIFY_OPTION_SECURE_SOCKET_AUTHIP_QM_POLICY_KEY,
+ FWP_CLASSIFY_OPTION_MAX
+} FWP_CLASSIFY_OPTION_TYPE;
+
+typedef enum FWP_DATA_TYPE_ {
+ FWP_EMPTY,
+ FWP_UINT8,
+ FWP_UINT16,
+ FWP_UINT32,
+ FWP_UINT64,
+ FWP_INT8,
+ FWP_INT16,
+ FWP_INT32,
+ FWP_INT64,
+ FWP_FLOAT,
+ FWP_DOUBLE,
+ FWP_BYTE_ARRAY16_TYPE,
+ FWP_BYTE_BLOB_TYPE,
+ FWP_SID,
+ FWP_SECURITY_DESCRIPTOR_TYPE,
+ FWP_TOKEN_INFORMATION_TYPE ,
+ FWP_TOKEN_ACCESS_INFORMATION_TYPE ,
+ FWP_UNICODE_STRING_TYPE,
+ FWP_BYTE_ARRAY6_TYPE,
+ FWP_SINGLE_DATA_TYPE_MAX = 0xFF,
+ FWP_V4_ADDR_MASK,
+ FWP_V6_ADDR_MASK,
+ FWP_RANGE_TYPE,
+ FWP_DATA_TYPE_MAX
+} FWP_DATA_TYPE;
+
+typedef enum FWP_DIRECTION_ {
+ FWP_DIRECTION_OUTBOUND,
+ FWP_DIRECTION_INBOUND,
+ FWP_DIRECTION_MAX
+} FWP_DIRECTION;
+
+typedef enum FWP_FILTER_ENUM_TYPE_ {
+ FWP_FILTER_ENUM_FULLY_CONTAINED,
+ FWP_FILTER_ENUM_OVERLAPPING,
+ FWP_FILTER_ENUM_TYPE_MAX
+} FWP_FILTER_ENUM_TYPE;
+
+typedef enum FWP_IP_VERSION_ {
+ FWP_IP_VERSION_V4,
+ FWP_IP_VERSION_V6,
+ FWP_IP_VERSION_NONE,
+ FWP_IP_VERSION_MAX
+} FWP_IP_VERSION;
+
+typedef enum FWP_MATCH_TYPE_ {
+ FWP_MATCH_EQUAL,
+ FWP_MATCH_GREATER,
+ FWP_MATCH_LESS,
+ FWP_MATCH_GREATER_OR_EQUAL,
+ FWP_MATCH_LESS_OR_EQUAL,
+ FWP_MATCH_RANGE,
+ FWP_MATCH_FLAGS_ALL_SET,
+ FWP_MATCH_FLAGS_ANY_SET,
+ FWP_MATCH_FLAGS_NONE_SET,
+ FWP_MATCH_EQUAL_CASE_INSENSITIVE,
+ FWP_MATCH_NOT_EQUAL,
+ FWP_MATCH_TYPE_MAX
+} FWP_MATCH_TYPE;
+
+typedef struct FWP_BYTE_ARRAY16_ {
+ UINT8 byteArray16[16];
+} FWP_BYTE_ARRAY16;
+
+typedef struct FWP_BYTE_BLOB_ {
+ UINT32 size;
+ UINT8 *data;
+} FWP_BYTE_BLOB;
+
+typedef struct FWP_BYTE_ARRAY6_ {
+ UINT8 byteArray6[6];
+} FWP_BYTE_ARRAY6;
+
+typedef struct FWP_V4_ADDR_AND_MASK_ {
+ UINT32 addr;
+ UINT32 mask;
+} FWP_V4_ADDR_AND_MASK;
+
+#define FWP_V6_ADDR_SIZE 16
+
+typedef struct FWP_V6_ADDR_AND_MASK_ {
+ UINT8 addr[FWP_V6_ADDR_SIZE];
+ UINT8 prefixLength;
+} FWP_V6_ADDR_AND_MASK;
+
+typedef struct FWP_RANGE0_ {
+ FWP_VALUE0 valueLow;
+ FWP_VALUE0 valueHigh;
+} FWP_RANGE0;
+
+typedef struct FWP_CONDITION_VALUE0_ {
+ FWP_DATA_TYPE type;
+ __MINGW_EXTENSION union {
+ UINT8 uint8;
+ UINT16 uint16;
+ UINT32 uint32;
+ UINT64 *uint64;
+ INT8 int8;
+ INT16 int16;
+ INT32 int32;
+ INT64 *int64;
+ float float32;
+ double *double64;
+ FWP_BYTE_ARRAY16 *byteArray16;
+ FWP_BYTE_BLOB *byteBlob;
+ SID *sid;
+ FWP_BYTE_BLOB *sd;
+ FWP_BYTE_BLOB *tokenInformation;
+ FWP_BYTE_BLOB *tokenAccessInformation;
+ LPWSTR unicodeString;
+ FWP_BYTE_ARRAY6 *byteArray6;
+ FWP_V4_ADDR_AND_MASK *v4AddrMask;
+ FWP_V6_ADDR_AND_MASK *v6AddrMask;
+ FWP_RANGE0 *rangeValue;
+ };
+} FWP_CONDITION_VALUE0;
+
+typedef struct _FWP_TOKEN_INFORMATION {
+ ULONG sidCount;
+ PSID_AND_ATTRIBUTES sids;
+ ULONG restrictedSidCount;
+ PSID_AND_ATTRIBUTES restrictedSids;
+} FWP_TOKEN_INFORMATION;
+
+typedef struct FWP_VALUE0_ {
+ FWP_DATA_TYPE type;
+ __MINGW_EXTENSION union {
+ LPVOID EMPTY; // case(FWP_EMPTY)
+ UINT8 uint8;
+ UINT16 uint16;
+ UINT32 uint32;
+ UINT64 *uint64;
+ INT8 int8;
+ INT16 int16;
+ INT32 int32;
+ INT64 *int64;
+ float float32;
+ double *double64;
+ FWP_BYTE_ARRAY16 *byteArray16;
+ FWP_BYTE_BLOB *byteBlob;
+ SID *sid;
+ FWP_BYTE_BLOB *sd;
+ FWP_TOKEN_INFORMATION *tokenInformation;
+ FWP_BYTE_BLOB *tokenAccessInformation;
+ LPWSTR unicodeString;
+ FWP_BYTE_ARRAY6 *byteArray6;
+ };
+} FWP_VALUE0;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_FWTYPES*/
diff --git a/mingw-w64-headers/include/gpmgmt.h b/mingw-w64-headers/include/gpmgmt.h
index 228e251..4ca70f7 100644
--- a/mingw-w64-headers/include/gpmgmt.h
+++ b/mingw-w64-headers/include/gpmgmt.h
@@ -2977,6 +2977,30 @@
unsigned char *__RPC_API VARIANT_UserUnmarshal(unsigned long *,unsigned char *,VARIANT *);
void __RPC_API VARIANT_UserFree(unsigned long *,VARIANT *);
+#if (_WIN32_WINNT >= 0x0600)
+typedef enum _GPMPermissionType {
+ permGPOApply = 0x00010000,
+ permGPORead = 0x00010100,
+ permGPOEdit = 0x00010101,
+ permGPOEditSecurityAndDelete = 0x00010102,
+ permGPOCustom = 0x00010103,
+ permWMIFilterEdit = 0x00020000,
+ permWMIFilterFullControl = 0x00020001,
+ permWMIFilterCustom = 0x00020002,
+ permSOMLink = 0x001C0000,
+ permSOMLogging = 0x00180100,
+ permSOMPlanning = 0x00180200,
+ permSOMWMICreate = 0x00100300,
+ permSOMWMIFullControl = 0x00100301,
+ permSOMGPOCreate = 0x00100400,
+ permStarterGPORead = 0x00030500,
+ permStarterGPOEdit = 0x00030501,
+ permStarterGPOFullControl = 0x00030502,
+ permStarterGPOCustom = 0x00030503,
+ permSOMStarterGPOCreate = 0x00100500
+} GPMPermissionType;
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
#ifdef __cplusplus
}
#endif
diff --git a/mingw-w64-headers/include/http.h b/mingw-w64-headers/include/http.h
index b24b08d..fc713a3 100644
--- a/mingw-w64-headers/include/http.h
+++ b/mingw-w64-headers/include/http.h
@@ -168,7 +168,7 @@
ULONG SslClientCertNegotiated;
} HTTP_SSL_INFO,*PHTTP_SSL_INFO;
- typedef struct _HTTP_REQUEST {
+ typedef struct _HTTP_REQUEST_V1 {
ULONG Flags;
HTTP_CONNECTION_ID ConnectionId;
HTTP_REQUEST_ID RequestId;
@@ -187,11 +187,23 @@
PHTTP_DATA_CHUNK pEntityChunks;
HTTP_RAW_CONNECTION_ID RawConnectionId;
PHTTP_SSL_INFO pSslInfo;
- } HTTP_REQUEST,*PHTTP_REQUEST;
+ } HTTP_REQUEST_V1,*PHTTP_REQUEST_V1;
+
+#if (_WIN32_WINNT >= 0x0600)
+ typedef struct _HTTP_REQUEST_V2 {
+ struct HTTP_REQUEST_V1;
+ USHORT RequestInfoCount;
+ PHTTP_REQUEST_INFO pRequestInfo;
+ } HTTP_REQUEST_V2, *PHTTP_REQUEST_V2;
+
+ typedef HTTP_REQUEST_V2 HTTP_REQUEST, *PHTTP_REQUEST;
+#else
+ typedef HTTP_REQUEST_V1 HTTP_REQUEST, *PHTTP_REQUEST;
+#endif
#define HTTP_REQUEST_FLAG_MORE_ENTITY_BODY_EXISTS 0x00000001
- typedef struct _HTTP_RESPONSE {
+ typedef struct _HTTP_RESPONSE_V1 {
ULONG Flags;
HTTP_VERSION Version;
USHORT StatusCode;
@@ -200,7 +212,19 @@
HTTP_RESPONSE_HEADERS Headers;
USHORT EntityChunkCount;
PHTTP_DATA_CHUNK pEntityChunks;
- } HTTP_RESPONSE,*PHTTP_RESPONSE;
+ } HTTP_RESPONSE_V1,*PHTTP_RESPONSE_V1;
+
+#if (_WIN32_WINNT >= 0x0600)
+ typedef struct {
+ struct HTTP_RESPONSE_V1;
+ USHORT ResponseInfoCount;
+ PHTTP_RESPONSE_INFO pResponseInfo;
+ } HTTP_RESPONSE_V2, *PHTTP_RESPONSE_V2;
+
+ typedef HTTP_RESPONSE_V2 HTTP_RESPONSE, *PHTTP_RESPONSE;
+#else
+ typedef HTTP_RESPONSE_V1 HTTP_RESPONSE, *PHTTP_RESPONSE;
+#endif /* _WIN32_WINNT >= 0x0600 */
typedef enum _HTTP_CACHE_POLICY_TYPE {
HttpCachePolicyNocache,
@@ -317,6 +341,405 @@
HTTPAPI_LINKAGE ULONG WINAPI HttpDeleteServiceConfiguration(HANDLE ServiceHandle,HTTP_SERVICE_CONFIG_ID ConfigId,PVOID pConfigInformation,ULONG ConfigInformationLength,LPOVERLAPPED pOverlapped);
HTTPAPI_LINKAGE ULONG WINAPI HttpQueryServiceConfiguration(HANDLE ServiceHandle,HTTP_SERVICE_CONFIG_ID ConfigId,PVOID pInputConfigInformation,ULONG InputConfigInformationLength,PVOID pOutputConfigInformation,ULONG OutputConfigInformationLength,PULONG pReturnLength,LPOVERLAPPED pOverlapped);
+#if (_WIN32_WINNT >= 0x0600)
+#define HTTP_VERSION_2_0 { 2, 0 }
+#define HTTPAPI_VERSION_2 { 2, 0 }
+
+typedef enum _HTTP_503_RESPONSE_VERBOSITY {
+ Http503ResponseVerbosityBasic,
+ Http503ResponseVerbosityLimited,
+ Http503ResponseVerbosityFull
+} HTTP_503_RESPONSE_VERBOSITY, *PHTTP_503_RESPONSE_VERBOSITY;
+
+typedef enum _HTTP_ENABLED_STATE {
+ HttpEnabledStateActive,
+ HttpEnabledStateInactive
+} HTTP_ENABLED_STATE, *PHTTP_ENABLED_STATE;
+
+typedef enum _HTTP_LOGGING_ROLLOVER_TYPE {
+ HttpLoggingRolloverSize,
+ HttpLoggingRolloverDaily,
+ HttpLoggingRolloverWeekly,
+ HttpLoggingRolloverMonthly,
+ HttpLoggingRolloverHourly
+} HTTP_LOGGING_ROLLOVER_TYPE, *PHTTP_LOGGING_ROLLOVER_TYPE;
+
+typedef enum _HTTP_LOGGING_TYPE {
+ HttpLoggingTypeW3C,
+ HttpLoggingTypeIIS,
+ HttpLoggingTypeNCSA,
+ HttpLoggingTypeRaw
+} HTTP_LOGGING_TYPE, *PHTTP_LOGGING_TYPE;
+
+typedef enum _HTTP_QOS_SETTING_TYPE {
+ HttpQosSettingTypeBandwidth,
+ HttpQosSettingTypeConnectionLimit,
+ HttpQosSettingTypeFlowRate
+} HTTP_QOS_SETTING_TYPE, *PHTTP_QOS_SETTING_TYPE;
+
+typedef enum _HTTP_SERVER_PROPERTY {
+ HttpServerAuthenticationProperty,
+ HttpServerLoggingProperty,
+ HttpServerQosProperty,
+ HttpServerTimeoutsProperty,
+ HttpServerQueueLengthProperty,
+ HttpServerStateProperty,
+ HttpServer503VerbosityProperty,
+ HttpServerBindingProperty,
+ HttpServerExtendedAuthenticationProperty,
+ HttpServerListenEndpointProperty,
+ HttpServerChannelBindProperty
+} HTTP_SERVER_PROPERTY, *PHTTP_SERVER_PROPERTY;
+
+typedef enum _HTTP_AUTHENTICATION_HARDENING_LEVELS {
+ HttpAuthenticationHardeningLegacy = 0,
+ HttpAuthenticationHardeningMedium = 1,
+ HttpAuthenticationHardeningStrict = 2
+} HTTP_AUTHENTICATION_HARDENING_LEVELS;
+
+typedef enum _HTTP_SERVICE_BINDING_TYPE {
+ HttpServiceBindingTypeNone = 0,
+ HttpServiceBindingTypeW = 1,
+ HttpServiceBindingTypeA = 2
+} HTTP_SERVICE_BINDING_TYPE;
+
+typedef enum _HTTP_LOG_DATA_TYPE {
+ HttpLogDataTypeFields = 0
+} HTTP_LOG_DATA_TYPE, *PHTTP_LOG_DATA_TYPE;
+
+typedef enum _HTTP_REQUEST_AUTH_TYPE {
+ HttpRequestAuthTypeNone = 0,
+ HttpRequestAuthTypeBasic,
+ HttpRequestAuthTypeDigest,
+ HttpRequestAuthTypeNTLM,
+ HttpRequestAuthTypeNegotiate,
+ HttpRequestAuthTypeKerberos
+} HTTP_REQUEST_AUTH_TYPE, *PHTTP_REQUEST_AUTH_TYPE;
+
+typedef enum _HTTP_REQUEST_INFO_TYPE {
+ HttpRequestInfoTypeAuth
+} HTTP_REQUEST_INFO_TYPE, *PHTTP_REQUEST_INFO_TYPE;
+
+typedef enum _HTTP_AUTH_STATUS {
+ HttpAuthStatusSuccess,
+ HttpAuthStatusNotAuthenticated,
+ HttpAuthStatusFailure
+} HTTP_AUTH_STATUS, *PHTTP_AUTH_STATUS;
+
+typedef enum _HTTP_SERVICE_CONFIG_TIMEOUT_KEY {
+ IdleConnectionTimeout = 0,
+ HeaderWaitTimeout
+} HTTP_SERVICE_CONFIG_TIMEOUT_KEY, *PHTTP_SERVICE_CONFIG_TIMEOUT_KEY;
+
+typedef struct _HTTP_CONNECTION_LIMIT_INFO {
+ HTTP_PROPERTY_FLAGS Flags;
+ ULONG MaxConnections;
+} HTTP_CONNECTION_LIMIT_INFO, *PHTTP_CONNECTION_LIMIT_INFO;
+
+typedef struct _HTTP_STATE_INFO {
+ HTTP_PROPERTY_FLAGS Flags;
+ HTTP_ENABLED_STATE State;
+} HTTP_STATE_INFO, *PHTTP_STATE_INFO;
+
+typedef struct _HTTP_QOS_SETTING_INFO {
+ HTTP_QOS_SETTING_TYPE QosType;
+ PVOID QosSetting;
+} HTTP_QOS_SETTING_INFO, *PHTTP_QOS_SETTING_INFO;
+
+typedef struct _HTTP_SERVER_AUTHENTICATION_DIGEST_PARAMS {
+ USHORT DomainNameLength;
+ PWSTR DomainName;
+ USHORT RealmLength;
+ PWSTR Realm;
+} HTTP_SERVER_AUTHENTICATION_DIGEST_PARAMS, *PHTTP_SERVER_AUTHENTICATION_DIGEST_PARAMS;
+
+typedef struct _HTTP_SERVER_AUTHENTICATION_BASIC_PARAMS {
+ USHORT RealmLength;
+ PWSTR Realm;
+} HTTP_SERVER_AUTHENTICATION_BASIC_PARAMS, *PHTTP_SERVER_AUTHENTICATION_BASIC_PARAMS;
+
+typedef struct _HTTP_SERVER_AUTHENTICATION_INFO {
+ HTTP_PROPERTY_FLAGS Flags;
+ ULONG AuthSchemes;
+ BOOLEAN ReceiveMutualAuth;
+ BOOLEAN ReceiveContextHandle;
+ BOOLEAN DisableNTLMCredentialCaching;
+ UCHAR ExFlags;
+ HTTP_SERVER_AUTHENTICATION_DIGEST_PARAMS DigestParams;
+ HTTP_SERVER_AUTHENTICATION_BASIC_PARAMS BasicParams;
+} HTTP_SERVER_AUTHENTICATION_INFO, *PHTTP_SERVER_AUTHENTICATION_INFO;
+
+typedef struct _HTTP_LOGGING_INFO {
+ HTTP_PROPERTY_FLAGS Flags;
+ ULONG LoggingFlags;
+ PCWSTR SoftwareName;
+ USHORT SoftwareNameLength;
+ USHORT DirectoryNameLength;
+ PCWSTR DirectoryName;
+ HTTP_LOGGING_TYPE Format;
+ ULONG Fields;
+ PVOID pExtFields;
+ USHORT NumOfExtFields;
+ USHORT MaxRecordSize;
+ HTTP_LOGGING_ROLLOVER_TYPE RolloverType;
+ ULONG RolloverSize;
+ PSECURITY_DESCRIPTOR pSecurityDescriptor;
+} HTTP_LOGGING_INFO, *PHTTP_LOGGING_INFO;
+
+typedef struct _HTTP_TIMEOUT_LIMIT_INFO {
+ HTTP_PROPERTY_FLAGS Flags;
+ USHORT EntityBody;
+ USHORT DrainEntityBody;
+ USHORT RequestQueue;
+ USHORT IdleConnection;
+ USHORT HeaderWait;
+ ULONG MinSendRate;
+} HTTP_TIMEOUT_LIMIT_INFO, *PHTTP_TIMEOUT_LIMIT_INFO;
+
+typedef struct _HTTP_SERVICE_BINDING_BASE {
+ HTTP_SERVICE_BINDING_TYPE Type;
+} HTTP_SERVICE_BINDING_BASE, *PHTTP_SERVICE_BINDING_BASE;
+
+typedef struct _HTTP_CHANNEL_BIND_INFO {
+ HTTP_AUTHENTICATION_HARDENING_LEVELS Hardening;
+ ULONG Flags;
+ PHTTP_SERVICE_BINDING_BASE *ServiceNames;
+ ULONG NumberOfServiceNames;
+} HTTP_CHANNEL_BIND_INFO, *PHTTP_CHANNEL_BIND_INFO;
+
+typedef struct _HTTP_REQUEST_CHANNEL_BIND_STATUS {
+ PHTTP_SERVICE_BINDING_BASE ServiceName;
+ PUCHAR ChannelToken;
+ ULONG ChannelTokenSize;
+ ULONG Flags;
+} HTTP_REQUEST_CHANNEL_BIND_STATUS, *PHTTP_REQUEST_CHANNEL_BIND_STATUS;
+
+typedef struct _HTTP_SERVICE_BINDING_A {
+ HTTP_SERVICE_BINDING_BASE Base;
+ PCHAR Buffer;
+ ULONG BufferSize;
+} HTTP_SERVICE_BINDING_A, *PHTTP_SERVICE_BINDING_A;
+
+typedef struct _HTTP_SERVICE_BINDING_W {
+ HTTP_SERVICE_BINDING_BASE Base;
+ PWCHAR Buffer;
+ ULONG BufferSize;
+} HTTP_SERVICE_BINDING_W, *PHTTP_SERVICE_BINDING_W;
+
+typedef struct _HTTP_PROPERTY_FLAGS {
+ ULONG Present:1;
+} HTTP_PROPERTY_FLAGS, *PHTTP_PROPERTY_FLAGS
+
+typedef struct _HTTP_REQUEST_INFO {
+ HTTP_REQUEST_INFO_TYPE InfoType;
+ ULONG InfoLength;
+ PVOID pInfo;
+} HTTP_REQUEST_INFO, *PHTTP_REQUEST_INFO;
+
+typedef struct _HTTP_LOG_FIELDS_DATA {
+ HTTP_LOG_DATA Base;
+ USHORT UserNameLength;
+ USHORT UriStemLength;
+ USHORT ClientIpLength;
+ USHORT ServerNameLength;
+ USHORT ServerIpLength;
+ USHORT MethodLength;
+ USHORT UriQueryLength;
+ USHORT HostLength;
+ USHORT UserAgentLength;
+ USHORT CookieLength;
+ USHORT ReferrerLength;
+ PWCHAR UserName;
+ PWCHAR UriStem;
+ PCHAR ClientIp;
+ PCHAR ServerName;
+ PCHAR ServiceName;
+ PCHAR ServerIp;
+ PCHAR Method;
+ PCHAR UriQuery;
+ PCHAR Host;
+ PCHAR UserAgent;
+ PCHAR Cookie;
+ PCHAR Referrer;
+ USHORT ServerPort;
+ USHORT ProtocolStatus;
+ ULONG Win32Status;
+ HTTP_VERB MethodNum;
+ USHORT SubStatus;
+} HTTP_LOG_FIELDS_DATA, *PHTTP_LOG_FIELDS_DATA;
+
+typedef struct _HTTP_REQUEST_AUTH_INFO {
+ HTTP_AUTH_STATUS AuthStatus;
+ SECURITY_STATUS SecStatus;
+ ULONG Flags;
+ HTTP_REQUEST_AUTH_TYPE AuthType;
+ HANDLE AccessToken;
+ ULONG ContextAttributes;
+ ULONG PackedContextLength;
+ ULONG PackedContextType;
+ PVOID PackedContext;
+ ULONG MutualAuthDataLength;
+ PCHAR pMutualAuthData;
+} HTTP_REQUEST_AUTH_INFO, *PHTTP_REQUEST_AUTH_INFO;
+
+typedef struct _HTTP_MULTIPLE_KNOWN_HEADERS {
+ HTTP_HEADER_ID HeaderId;
+ ULONG Flags;
+ USHORT KnownHeaderCount;
+ PHTTP_KNOWN_HEADER KnownHeaders;
+} HTTP_MULTIPLE_KNOWN_HEADERS, *PHTTP_MULTIPLE_KNOWN_HEADERS;
+
+typedef struct _HTTP_RESPONSE_INFO {
+ HTTP_RESPONSE_INFO_TYPE Type;
+ ULONG Length;
+ PVOID pInfo;
+} HTTP_RESPONSE_INFO, *PHTTP_RESPONSE_INFO;
+
+typedef struct _HTTP_SERVICE_CONFIG_TIMEOUT_SET {
+ HTTP_SERVICE_CONFIG_TIMEOUT_KEY KeyDesc;
+ HTTP_SERVICE_CONFIG_TIMEOUT_PARAM ParamDesc;
+} HTTP_SERVICE_CONFIG_TIMEOUT_SET, *PHTTP_SERVICE_CONFIG_TIMEOUT_SET;
+
+typedef struct _HTTP_BANDWIDTH_LIMIT_INFO {
+ HTTP_PROPERTY_FLAGS Flags;
+ ULONG MaxBandwidth;
+} HTTP_BANDWIDTH_LIMIT_INFO, *PHTTP_BANDWIDTH_LIMIT_INFO;
+
+typedef struct _HTTP_BINDING_INFO {
+ HTTP_PROPERTY_FLAGS Flags;
+ HANDLE RequestQueueHandle;
+} HTTP_BINDING_INFO, *PHTTP_BINDING_INFO;
+
+typedef struct _HTTP_LISTEN_ENDPOINT_INFO {
+ HTTP_PROPERTY_FLAGS Flags;
+ BOOLEAN EnableSharing;
+} HTTP_LISTEN_ENDPOINT_INFO, *PHTTP_LISTEN_ENDPOINT_INFO;
+
+HTTPAPI_LINKAGE ULONG WINAPI HttpSetRequestQueueProperty(
+ HANDLE Handle,
+ HTTP_SERVER_PROPERTY Property,
+ PVOID pPropertyInformation,
+ ULONG PropertyInformationLength,
+ ULONG Reserved,
+ PVOID pReserved
+);
+
+HTTPAPI_LINKAGE ULONG WINAPI HttpQueryRequestQueueProperty(
+ HANDLE Handle,
+ HTTP_SERVER_PROPERTY Property,
+ PVOID pPropertyInformation,
+ ULONG PropertyInformationLength,
+ ULONG Reserved,
+ PULONG pReturnLength,
+ PVOID pReserved
+);
+
+HTTPAPI_LINKAGE ULONG WINAPI HttpCreateRequestQueue(
+ HTTPAPI_VERSION Version,
+ PCWSTR pName,
+ PSECURITY_ATTRIBUTES pSecurityAttributes,
+ ULONG Flags,
+ PHANDLE pReqQueueHandle
+);
+
+HTTPAPI_LINKAGE ULONG WINAPI HttpAddUrlToUrlGroup(
+ HTTP_URL_GROUP_ID UrlGroupId,
+ PCWSTR pFullyQualifiedUrl,
+ HTTP_URL_CONTEXT UrlContext,
+ ULONG Reserved
+);
+
+HTTPAPI_LINKAGE ULONG WINAPI HttpCancelHttpRequest(
+ HANDLE ReqQueueHandle,
+ HTTP_REQUEST_ID RequestId,
+ LPOVERLAPPED pOverlapped
+);
+
+HTTPAPI_LINKAGE ULONG WINAPI HttpCloseRequestQueue(
+ HANDLE ReqQueueHandle
+);
+
+HTTPAPI_LINKAGE ULONG WINAPI HttpCloseServerSession(
+ HTTP_SERVER_SESSION_ID ServerSessionId
+);
+
+HTTPAPI_LINKAGE ULONG WINAPI HttpCloseUrlGroup(
+ HTTP_URL_GROUP_ID UrlGroupId
+);
+
+HTTPAPI_LINKAGE ULONG WINAPI HttpCreateServerSession(
+ HTTPAPI_VERSION Version,
+ PHTTP_SERVER_SESSION_ID pServerSessionId,
+ ULONG Reserved
+);
+
+HTTPAPI_LINKAGE ULONG WINAPI HttpCreateUrlGroup(
+ HTTP_SERVER_SESSION_ID ServerSessionId,
+ PHTTP_URL_GROUP_ID pUrlGroupId,
+ ULONG Reserved
+);
+
+HTTPAPI_LINKAGE ULONG WINAPI HttpQueryServerSessionProperty(
+ HTTP_SERVER_SESSION_ID ServerSessionId,
+ HTTP_SERVER_PROPERTY Property,
+ PVOID pPropertyInformation,
+ ULONG PropertyInformationLength,
+ PULONG pReturnLength
+);
+
+HTTPAPI_LINKAGE ULONG WINAPI HttpQueryUrlGroupProperty(
+ HTTP_URL_GROUP_ID UrlGroupId,
+ HTTP_SERVER_PROPERTY Property,
+ PVOID pPropertyInformation,
+ ULONG PropertyInformationLength,
+ PULONG pReturnLength
+);
+
+HTTPAPI_LINKAGE ULONG WINAPI HttpRemoveUrlFromUrlGroup(
+ HTTP_URL_GROUP_ID UrlGroupId,
+ PCWSTR pFullyQualifiedUrl,
+ ULONG Flags
+);
+
+HTTPAPI_LINKAGE ULONG WINAPI HttpSetServerSessionProperty(
+ HTTP_SERVER_SESSION_ID ServerSessionId,
+ HTTP_SERVER_PROPERTY Property,
+ PVOID pPropertyInformation,
+ ULONG PropertyInformationLength
+);
+
+HTTPAPI_LINKAGE ULONG WINAPI HttpSetUrlGroupProperty(
+ HTTP_URL_GROUP_ID UrlGroupId,
+ HTTP_SERVER_PROPERTY Property,
+ PVOID pPropertyInformation,
+ ULONG PropertyInformationLength
+);
+
+HTTPAPI_LINKAGE ULONG WINAPI HttpShutdownRequestQueue(
+ HANDLE ReqQueueHandle
+);
+
+HTTPAPI_LINKAGE ULONG WINAPI HttpWaitForDemandStart(
+ HANDLE ReqQueueHandle,
+ LPOVERLAPPED pOverlapped
+);
+
+#if (_WIN32_WINNT >= 0x0601)
+typedef enum _HTTP_SERVICE_CONFIG_CACHE_KEY {
+ MaxCacheResponseSize = 0,
+ CacheRangeChunkSize
+} HTTP_SERVICE_CONFIG_CACHE_KEY;
+
+typedef struct _HTTP_FLOWRATE_INFO {
+ HTTP_PROPERTY_FLAGS Flags;
+ ULONG MaxBandwidth;
+ ULONG MaxPeakBandwidth;
+ ULONG BurstSize;
+} HTTP_FLOWRATE_INFO, *PHTTP_FLOWRATE_INFO;
+#endif /*(_WIN32_WINNT >= 0x0601)*/
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
#ifdef __cplusplus
}
#endif
diff --git a/mingw-w64-headers/include/iassdo_0.idl b/mingw-w64-headers/include/iassdo_0.idl
new file mode 100644
index 0000000..bb8d9b1
--- /dev/null
+++ b/mingw-w64-headers/include/iassdo_0.idl
@@ -0,0 +1,783 @@
+/* Automated generated idl file <sdoiaslib>.
+ * Generated by genidl tool (c) 2009, 2010 Mingw-w64 project.
+ */
+
+/* Union record forward declarations. */
+dispinterface ISdoMachine;
+dispinterface ISdoServiceControl;
+dispinterface ISdo;
+dispinterface ISdoCollection;
+dispinterface ISdoDictionaryOld;
+
+/* Union record forward declarations. */
+coclass SdoMachine;
+
+/* Enumeration declarations. */
+enum _ATTRIBUTEID
+{
+ ATTRIBUTE_UNDEFINED = (int) 201326592,
+ ATTRIBUTE_MIN_VALUE = (int) 201326593,
+ RADIUS_ATTRIBUTE_USER_NAME = (int) 201326593,
+ RADIUS_ATTRIBUTE_USER_PASSWORD = (int) 201326594,
+ RADIUS_ATTRIBUTE_CHAP_PASSWORD = (int) 201326595,
+ RADIUS_ATTRIBUTE_NAS_IP_ADDRESS = (int) 201326596,
+ RADIUS_ATTRIBUTE_NAS_PORT = (int) 201326597,
+ RADIUS_ATTRIBUTE_SERVICE_TYPE = (int) 201326598,
+ RADIUS_ATTRIBUTE_FRAMED_PROTOCOL = (int) 201326599,
+ RADIUS_ATTRIBUTE_FRAMED_IP_ADDRESS = (int) 201326600,
+ RADIUS_ATTRIBUTE_FRAMED_IP_NETMASK = (int) 201326601,
+ RADIUS_ATTRIBUTE_FRAMED_ROUTING = (int) 201326602,
+ RADIUS_ATTRIBUTE_FILTER_ID = (int) 201326603,
+ RADIUS_ATTRIBUTE_FRAMED_MTU = (int) 201326604,
+ RADIUS_ATTRIBUTE_FRAMED_COMPRESSION = (int) 201326605,
+ RADIUS_ATTRIBUTE_LOGIN_IP_HOST = (int) 201326606,
+ RADIUS_ATTRIBUTE_LOGIN_SERVICE = (int) 201326607,
+ RADIUS_ATTRIBUTE_LOGIN_TCP_PORT = (int) 201326608,
+ RADIUS_ATTRIBUTE_UNASSIGNED1 = (int) 201326609,
+ RADIUS_ATTRIBUTE_REPLY_MESSAGE = (int) 201326610,
+ RADIUS_ATTRIBUTE_CALLBACK_NUMBER = (int) 201326611,
+ RADIUS_ATTRIBUTE_CALLBACK_ID = (int) 201326612,
+ RADIUS_ATTRIBUTE_UNASSIGNED2 = (int) 201326613,
+ RADIUS_ATTRIBUTE_FRAMED_ROUTE = (int) 201326614,
+ RADIUS_ATTRIBUTE_FRAMED_IPX_NETWORK = (int) 201326615,
+ RADIUS_ATTRIBUTE_STATE = (int) 201326616,
+ RADIUS_ATTRIBUTE_CLASS = (int) 201326617,
+ RADIUS_ATTRIBUTE_VENDOR_SPECIFIC = (int) 201326618,
+ RADIUS_ATTRIBUTE_SESSION_TIMEOUT = (int) 201326619,
+ RADIUS_ATTRIBUTE_IDLE_TIMEOUT = (int) 201326620,
+ RADIUS_ATTRIBUTE_TERMINATION_ACTION = (int) 201326621,
+ RADIUS_ATTRIBUTE_CALLED_STATION_ID = (int) 201326622,
+ RADIUS_ATTRIBUTE_CALLING_STATION_ID = (int) 201326623,
+ RADIUS_ATTRIBUTE_NAS_IDENTIFIER = (int) 201326624,
+ RADIUS_ATTRIBUTE_PROXY_STATE = (int) 201326625,
+ RADIUS_ATTRIBUTE_LOGIN_LAT_SERVICE = (int) 201326626,
+ RADIUS_ATTRIBUTE_LOGIN_LAT_NODE = (int) 201326627,
+ RADIUS_ATTRIBUTE_LOGIN_LAT_GROUP = (int) 201326628,
+ RADIUS_ATTRIBUTE_FRAMED_APPLETALK_LINK = (int) 201326629,
+ RADIUS_ATTRIBUTE_FRAMED_APPLETALK_NET = (int) 201326630,
+ RADIUS_ATTRIBUTE_FRAMED_APPLETALK_ZONE = (int) 201326631,
+ RADIUS_ATTRIBUTE_ACCT_STATUS_TYPE = (int) 201326632,
+ RADIUS_ATTRIBUTE_ACCT_DELAY_TIME = (int) 201326633,
+ RADIUS_ATTRIBUTE_ACCT_INPUT_OCTETS = (int) 201326634,
+ RADIUS_ATTRIBUTE_ACCT_OUTPUT_OCTETS = (int) 201326635,
+ RADIUS_ATTRIBUTE_ACCT_SESSION_ID = (int) 201326636,
+ RADIUS_ATTRIBUTE_ACCT_AUTHENTIC = (int) 201326637,
+ RADIUS_ATTRIBUTE_ACCT_SESSION_TIME = (int) 201326638,
+ RADIUS_ATTRIBUTE_ACCT_INPUT_PACKETS = (int) 201326639,
+ RADIUS_ATTRIBUTE_ACCT_OUTPUT_PACKETS = (int) 201326640,
+ RADIUS_ATTRIBUTE_ACCT_TERMINATE_CAUSE = (int) 201326641,
+ RADIUS_ATTRIBUTE_ACCT_MULTI_SSN_ID = (int) 201326642,
+ RADIUS_ATTRIBUTE_ACCT_LINK_COUNT = (int) 201326643,
+ RADIUS_ATTRIBUTE_CHAP_CHALLENGE = (int) 201326652,
+ RADIUS_ATTRIBUTE_NAS_PORT_TYPE = (int) 201326653,
+ RADIUS_ATTRIBUTE_PORT_LIMIT = (int) 201326654,
+ RADIUS_ATTRIBUTE_LOGIN_LAT_PORT = (int) 201326655,
+ RADIUS_ATTRIBUTE_TUNNEL_TYPE = (int) 201326656,
+ RADIUS_ATTRIBUTE_TUNNEL_MEDIUM_TYPE = (int) 201326657,
+ RADIUS_ATTRIBUTE_TUNNEL_CLIENT_ENDPT = (int) 201326658,
+ RADIUS_ATTRIBUTE_TUNNEL_SERVER_ENDPT = (int) 201326659,
+ RADIUS_ATTRIBUTE_ACCT_TUNNEL_CONN = (int) 201326660,
+ RADIUS_ATTRIBUTE_TUNNEL_PASSWORD = (int) 201326661,
+ RADIUS_ATTRIBUTE_ARAP_PASSWORD = (int) 201326662,
+ RADIUS_ATTRIBUTE_ARAP_FEATURES = (int) 201326663,
+ RADIUS_ATTRIBUTE_ARAP_ZONE_ACCESS = (int) 201326664,
+ RADIUS_ATTRIBUTE_ARAP_SECURITY = (int) 201326665,
+ RADIUS_ATTRIBUTE_ARAP_SECURITY_DATA = (int) 201326666,
+ RADIUS_ATTRIBUTE_PASSWORD_RETRY = (int) 201326667,
+ RADIUS_ATTRIBUTE_PROMPT = (int) 201326668,
+ RADIUS_ATTRIBUTE_CONNECT_INFO = (int) 201326669,
+ RADIUS_ATTRIBUTE_CONFIGURATION_TOKEN = (int) 201326670,
+ RADIUS_ATTRIBUTE_EAP_MESSAGE = (int) 201326671,
+ RADIUS_ATTRIBUTE_SIGNATURE = (int) 201326672,
+ RADIUS_ATTRIBUTE_TUNNEL_PVT_GROUP_ID = (int) 201326673,
+ RADIUS_ATTRIBUTE_TUNNEL_ASSIGNMENT_ID = (int) 201326674,
+ RADIUS_ATTRIBUTE_TUNNEL_PREFERENCE = (int) 201326675,
+ RADIUS_ATTRIBUTE_ARAP_CHALLENGE_RESPONSE = (int) 201326676,
+ RADIUS_ATTRIBUTE_ACCT_INTERIM_INTERVAL = (int) 201326677,
+ RADIUS_ATTRIBUTE_NAS_IPv6_ADDRESS = (int) 201326687,
+ RADIUS_ATTRIBUTE_FRAMED_INTERFACE_ID = (int) 201326688,
+ RADIUS_ATTRIBUTE_FRAMED_IPv6_PREFIX = (int) 201326689,
+ RADIUS_ATTRIBUTE_LOGIN_IPv6_HOST = (int) 201326690,
+ RADIUS_ATTRIBUTE_FRAMED_IPv6_ROUTE = (int) 201326691,
+ RADIUS_ATTRIBUTE_FRAMED_IPv6_POOL = (int) 201326692,
+ IAS_ATTRIBUTE_SAVED_RADIUS_FRAMED_IP_ADDRESS = (int) 201330688,
+ IAS_ATTRIBUTE_SAVED_RADIUS_CALLBACK_NUMBER = (int) 201330689,
+ IAS_ATTRIBUTE_NP_CALLING_STATION_ID = (int) 201330690,
+ IAS_ATTRIBUTE_SAVED_NP_CALLING_STATION_ID = (int) 201330691,
+ IAS_ATTRIBUTE_SAVED_RADIUS_FRAMED_ROUTE = (int) 201330692,
+ IAS_ATTRIBUTE_IGNORE_USER_DIALIN_PROPERTIES = (int) 201330693,
+ IAS_ATTRIBUTE_NP_TIME_OF_DAY = (int) 201330694,
+ IAS_ATTRIBUTE_NP_CALLED_STATION_ID = (int) 201330695,
+ IAS_ATTRIBUTE_NP_ALLOWED_PORT_TYPES = (int) 201330696,
+ IAS_ATTRIBUTE_NP_AUTHENTICATION_TYPE = (int) 201330697,
+ IAS_ATTRIBUTE_NP_ALLOWED_EAP_TYPE = (int) 201330698,
+ IAS_ATTRIBUTE_SHARED_SECRET = (int) 201330699,
+ IAS_ATTRIBUTE_CLIENT_IP_ADDRESS = (int) 201330700,
+ IAS_ATTRIBUTE_CLIENT_PACKET_HEADER = (int) 201330701,
+ IAS_ATTRIBUTE_TOKEN_GROUPS = (int) 201330702,
+ IAS_ATTRIBUTE_ALLOW_DIALIN = (int) 201330703,
+ IAS_ATTRIBUTE_REQUEST_ID = (int) 201330704,
+ IAS_ATTRIBUTE_MANIPULATION_TARGET = (int) 201330705,
+ IAS_ATTRIBUTE_MANIPULATION_RULE = (int) 201330706,
+ IAS_ATTRIBUTE_ORIGINAL_USER_NAME = (int) 201330707,
+ IAS_ATTRIBUTE_CLIENT_VENDOR_TYPE = (int) 201330708,
+ IAS_ATTRIBUTE_CLIENT_UDP_PORT = (int) 201330709,
+ MS_ATTRIBUTE_CHAP_CHALLENGE = (int) 201330710,
+ MS_ATTRIBUTE_CHAP_RESPONSE = (int) 201330711,
+ MS_ATTRIBUTE_CHAP_DOMAIN = (int) 201330712,
+ MS_ATTRIBUTE_CHAP_ERROR = (int) 201330713,
+ MS_ATTRIBUTE_CHAP_CPW1 = (int) 201330714,
+ MS_ATTRIBUTE_CHAP_CPW2 = (int) 201330715,
+ MS_ATTRIBUTE_CHAP_LM_ENC_PW = (int) 201330716,
+ MS_ATTRIBUTE_CHAP_NT_ENC_PW = (int) 201330717,
+ MS_ATTRIBUTE_CHAP_MPPE_KEYS = (int) 201330718,
+ IAS_ATTRIBUTE_AUTHENTICATION_TYPE = (int) 201330719,
+ IAS_ATTRIBUTE_CLIENT_NAME = (int) 201330720,
+ IAS_ATTRIBUTE_NT4_ACCOUNT_NAME = (int) 201330721,
+ IAS_ATTRIBUTE_FULLY_QUALIFIED_USER_NAME = (int) 201330722,
+ IAS_ATTRIBUTE_NTGROUPS = (int) 201330723,
+ IAS_ATTRIBUTE_EAP_FRIENDLY_NAME = (int) 201330724,
+ IAS_ATTRIBUTE_AUTH_PROVIDER_TYPE = (int) 201330725,
+ MS_ATTRIBUTE_ACCT_AUTH_TYPE = (int) 201330726,
+ MS_ATTRIBUTE_ACCT_EAP_TYPE = (int) 201330727,
+ IAS_ATTRIBUTE_PACKET_TYPE = (int) 201330728,
+ IAS_ATTRIBUTE_AUTH_PROVIDER_NAME = (int) 201330729,
+ IAS_ATTRIBUTE_ACCT_PROVIDER_TYPE = (int) 201330730,
+ IAS_ATTRIBUTE_ACCT_PROVIDER_NAME = (int) 201330731,
+ MS_ATTRIBUTE_MPPE_SEND_KEY = (int) 201330732,
+ MS_ATTRIBUTE_MPPE_RECV_KEY = (int) 201330733,
+ IAS_ATTRIBUTE_REASON_CODE = (int) 201330734,
+ MS_ATTRIBUTE_FILTER = (int) 201330735,
+ MS_ATTRIBUTE_CHAP2_RESPONSE = (int) 201330736,
+ MS_ATTRIBUTE_CHAP2_SUCCESS = (int) 201330737,
+ MS_ATTRIBUTE_CHAP2_CPW = (int) 201330738,
+ MS_ATTRIBUTE_RAS_VENDOR = (int) 201330739,
+ MS_ATTRIBUTE_RAS_VERSION = (int) 201330740,
+ IAS_ATTRIBUTE_NP_NAME = (int) 201330741,
+ MS_ATTRIBUTE_PRIMARY_DNS_SERVER = (int) 201330742,
+ MS_ATTRIBUTE_SECONDARY_DNS_SERVER = (int) 201330743,
+ MS_ATTRIBUTE_PRIMARY_NBNS_SERVER = (int) 201330744,
+ MS_ATTRIBUTE_SECONDARY_NBNS_SERVER = (int) 201330745,
+ IAS_ATTRIBUTE_PROXY_POLICY_NAME = (int) 201330746,
+ IAS_ATTRIBUTE_PROVIDER_TYPE = (int) 201330747,
+ IAS_ATTRIBUTE_PROVIDER_NAME = (int) 201330748,
+ IAS_ATTRIBUTE_REMOTE_SERVER_ADDRESS = (int) 201330749,
+ IAS_ATTRIBUTE_GENERATE_CLASS_ATTRIBUTE = (int) 201330750,
+ MS_ATTRIBUTE_RAS_CLIENT_NAME = (int) 201330751,
+ MS_ATTRIBUTE_RAS_CLIENT_VERSION = (int) 201330752,
+ IAS_ATTRIBUTE_ALLOWED_CERTIFICATE_EKU = (int) 201330753,
+ IAS_ATTRIBUTE_EXTENSION_STATE = (int) 201330754,
+ IAS_ATTRIBUTE_GENERATE_SESSION_TIMEOUT = (int) 201330755,
+ MS_ATTRIBUTE_SESSION_TIMEOUT = (int) 201330756,
+ MS_ATTRIBUTE_QUARANTINE_IPFILTER = (int) 201330757,
+ MS_ATTRIBUTE_QUARANTINE_SESSION_TIMEOUT = (int) 201330758,
+ MS_ATTRIBUTE_USER_SECURITY_IDENTITY = (int) 201330759,
+ IAS_ATTRIBUTE_REMOTE_RADIUS_TO_WINDOWS_USER_MAPPING = (int) 201330760,
+ IAS_ATTRIBUTE_PASSPORT_USER_MAPPING_UPN_SUFFIX = (int) 201330761,
+ IAS_ATTRIBUTE_TUNNEL_TAG = (int) 201330762,
+ IAS_ATTRIBUTE_NP_PEAPUPFRONT_ENABLED = (int) 201330763,
+ IAS_ATTRIBUTE_CERTIFICATE_EKU = (int) 201334689,
+ IAS_ATTRIBUTE_EAP_CONFIG = (int) 201334690,
+ MS_ATTRIBUTE_PEAP_EMBEDDED_EAP_TYPEID = (int) 201334691,
+ MS_ATTRIBUTE_PEAP_FAST_ROAMED_SESSION = (int) 201334692,
+ IAS_ATTRIBUTE_EAP_TYPEID = (int) 201334693,
+ MS_ATTRIBUTE_EAP_TLV = (int) 201334694,
+ IAS_ATTRIBUTE_REJECT_REASON_CODE = (int) 201334695,
+ IAS_ATTRIBUTE_PROXY_EAP_CONFIG = (int) 201334696,
+ IAS_ATTRIBUTE_EAP_SESSION = (int) 201334697,
+ IAS_ATTRIBUTE_IS_REPLAY = (int) 201334698,
+ IAS_ATTRIBUTE_CLEAR_TEXT_PASSWORD = (int) 201334699,
+ MS_ATTRIBUTE_IDENTITY_TYPE = (int) 201334700,
+ MS_ATTRIBUTE_SERVICE_CLASS = (int) 201334701,
+ MS_ATTRIBUTE_QUARANTINE_USER_CLASS = (int) 201334702,
+ MS_ATTRIBUTE_QUARANTINE_STATE = (int) 201334703,
+ IAS_ATTRIBUTE_OVERRIDE_RAP_AUTH = (int) 201334704,
+ IAS_ATTRIBUTE_PEAP_CHANNEL_UP = (int) 201334705,
+ IAS_ATTRIBUTE_NAME_MAPPED = (int) 201334706,
+ IAS_ATTRIBUTE_POLICY_ENFORCED = (int) 201334707,
+ IAS_ATTRIBUTE_MACHINE_NTGROUPS = (int) 201334708,
+ IAS_ATTRIBUTE_USER_NTGROUPS = (int) 201334709,
+ IAS_ATTRIBUTE_MACHINE_TOKEN_GROUPS = (int) 201334710,
+ IAS_ATTRIBUTE_USER_TOKEN_GROUPS = (int) 201334711,
+ MS_ATTRIBUTE_QUARANTINE_GRACE_TIME = (int) 201334712,
+ IAS_ATTRIBUTE_QUARANTINE_URL = (int) 201334713,
+ IAS_ATTRIBUTE_QUARANTINE_FIXUP_SERVERS = (int) 201334714,
+ MS_ATTRIBUTE_NOT_QUARANTINE_CAPABLE = (int) 201334715,
+ IAS_ATTRIBUTE_QUARANTINE_SYSTEM_HEALTH_RESULT = (int) 201334716,
+ IAS_ATTRIBUTE_QUARANTINE_SYSTEM_HEALTH_VALIDATORS = (int) 201334717,
+ IAS_ATTRIBUTE_MACHINE_NAME = (int) 201334718,
+ IAS_ATTRIBUTE_NT4_MACHINE_NAME = (int) 201334719,
+ IAS_ATTRIBUTE_QUARANTINE_SESSION_HANDLE = (int) 201334720,
+ IAS_ATTRIBUTE_FULLY_QUALIFIED_MACHINE_NAME = (int) 201334721,
+ IAS_ATTRIBUTE_QUARANTINE_FIXUP_SERVERS_CONFIGURATION = (int) 201334722,
+ IAS_ATTRIBUTE_CLIENT_QUARANTINE_COMPATIBLE = (int) 201334723,
+ MS_ATTRIBUTE_NETWORK_ACCESS_SERVER_TYPE = (int) 201334724,
+ IAS_ATTRIBUTE_QUARANTINE_SESSION_ID = (int) 201334725,
+ MS_ATTRIBUTE_AFW_QUARANTINE_ZONE = (int) 201334726,
+ MS_ATTRIBUTE_AFW_PROTECTION_LEVEL = (int) 201334727,
+ IAS_ATTRIBUTE_QUARANTINE_UPDATE_NON_COMPLIANT = (int) 201334728,
+ IAS_ATTRIBUTE_REQUEST_START_TIME = (int) 201334729,
+ MS_ATTRIBUTE_MACHINE_NAME = (int) 201334730,
+ IAS_ATTRIBUTE_CLIENT_IPv6_ADDRESS = (int) 201334731,
+ IAS_ATTRIBUTE_SAVED_RADIUS_FRAMED_INTERFACE_ID = (int) 201334732,
+ IAS_ATTRIBUTE_SAVED_RADIUS_FRAMED_IPv6_PREFIX = (int) 201334733,
+ IAS_ATTRIBUTE_SAVED_RADIUS_FRAMED_IPv6_ROUTE = (int) 201334734,
+ MS_ATTRIBUTE_QUARANTINE_GRACE_TIME_CONFIGURATION = (int) 201334735,
+ MS_ATTRIBUTE_IPv6_FILTER = (int) 201334736,
+ MS_ATTRIBUTE_IPV4_REMEDIATION_SERVERS = (int) 201334737,
+ MS_ATTRIBUTE_IPV6_REMEDIATION_SERVERS = (int) 201334738,
+ IAS_ATTRIBUTE_PROXY_RETRY_COUNT = (int) 201334739,
+ IAS_ATTRIBUTE_MACHINE_INVENTORY = (int) 201334740,
+ IAS_ATTRIBUTE_ABSOLUTE_TIME = (int) 201334741,
+ MS_ATTRIBUTE_QUARANTINE_SOH = (int) 201334742,
+ IAS_ATTRIBUTE_EAP_TYPES_CONFIGURED_IN_PROXYPOLICY = (int) 201334743,
+ MS_ATTRIBUTE_HCAP_LOCATION_GROUP_NAME = (int) 201334744,
+ MS_ATTRIBUTE_EXTENDED_QUARANTINE_STATE = (int) 201334745,
+ IAS_ATTRIBUTE_SOH_CARRIER_EAPTLV = (int) 201334746,
+ MS_ATTRIBUTE_HCAP_USER_GROUPS = (int) 201334747,
+ IAS_ATTRIBUTE_SAVED_MACHINE_HEALTHCHECK_ONLY = (int) 201334748,
+ IAS_ATTRIBUTE_POLICY_EVALUATED_SHV = (int) 201334749,
+ MS_ATTRIBUTE_RAS_CORRELATION_ID = (int) 201334750,
+ MS_ATTRIBUTE_HCAP_USER_NAME = (int) 201334751,
+ IAS_ATTRIBUTE_NT4_HCAP_ACCOUNT_NAME = (int) 201334752,
+ IAS_ATTRIBUTE_USER_TOKEN_SID = (int) 201334753,
+ IAS_ATTRIBUTE_MACHINE_TOKEN_SID = (int) 201334754,
+ IAS_ATTRIBUTE_MACHINE_VALIDATED = (int) 201334755,
+ MS_ATTRIBUTE_USER_IPv4_ADDRESS = (int) 201334756,
+ MS_ATTRIBUTE_USER_IPv6_ADDRESS = (int) 201334757,
+ MS_ATTRIBUTE_TSG_DEVICE_REDIRECTION = (int) 201334758,
+ IAS_ATTRIBUTE_ACCEPT_REASON_CODE = (int) 201334759,
+ RAS_ATTRIBUTE_ENCRYPTION_TYPE = (int) -90,
+ RAS_ATTRIBUTE_ENCRYPTION_POLICY = (int) -89,
+ RAS_ATTRIBUTE_BAP_REQUIRED = (int) -88,
+ RAS_ATTRIBUTE_BAP_LINE_DOWN_TIME = (int) -87,
+ RAS_ATTRIBUTE_BAP_LINE_DOWN_LIMIT = (int) -86
+};
+enum _NEW_LOG_FILE_FREQUENCY
+{
+ IAS_LOGGING_UNLIMITED_SIZE = (int) 201326592,
+ IAS_LOGGING_DAILY = (int) 201326593,
+ IAS_LOGGING_WEEKLY = (int) 201326594,
+ IAS_LOGGING_MONTHLY = (int) 201326595,
+ IAS_LOGGING_WHEN_FILE_SIZE_REACHES = (int) 201326596
+};
+enum _AUTHENTICATION_TYPE
+{
+ IAS_AUTH_INVALID = (int) 201326592,
+ IAS_AUTH_PAP = (int) 201326593,
+ IAS_AUTH_MD5CHAP = (int) 201326594,
+ IAS_AUTH_MSCHAP = (int) 201326595,
+ IAS_AUTH_MSCHAP2 = (int) 201326596,
+ IAS_AUTH_EAP = (int) 201326597,
+ IAS_AUTH_ARAP = (int) 201326598,
+ IAS_AUTH_NONE = (int) 201326599,
+ IAS_AUTH_CUSTOM = (int) 201326600,
+ IAS_AUTH_MSCHAP_CPW = (int) 201326601,
+ IAS_AUTH_MSCHAP2_CPW = (int) 201326602,
+ IAS_AUTH_PEAP = (int) 201326603
+};
+enum _IDENTITY_TYPE
+{
+ IAS_IDENTITY_NO_DEFAULT = (int) 201326593
+};
+enum _ATTRIBUTESYNTAX
+{
+ IAS_SYNTAX_BOOLEAN = (int) 201326593,
+ IAS_SYNTAX_INTEGER = (int) 201326594,
+ IAS_SYNTAX_ENUMERATOR = (int) 201326595,
+ IAS_SYNTAX_INETADDR = (int) 201326596,
+ IAS_SYNTAX_STRING = (int) 201326597,
+ IAS_SYNTAX_OCTETSTRING = (int) 201326598,
+ IAS_SYNTAX_UTCTIME = (int) 201326599,
+ IAS_SYNTAX_PROVIDERSPECIFIC = (int) 201326600,
+ IAS_SYNTAX_UNSIGNEDINTEGER = (int) 201326601,
+ IAS_SYNTAX_INETADDR6 = (int) 201326602
+};
+enum _ATTRIBUTERESTRICTIONS
+{
+ MULTIVALUED = (int) 201326593,
+ ALLOWEDINPROFILE = (int) 201326594,
+ ALLOWEDINCONDITION = (int) 201326596,
+ ALLOWEDINPROXYPROFILE = (int) 201326600,
+ ALLOWEDINPROXYCONDITION = (int) 201326608,
+ ALLOWEDINVPNDIALUP = (int) 201326624,
+ ALLOWEDIN8021X = (int) 201326656
+};
+enum _ATTRIBUTEFILTER
+{
+ ATTRIBUTE_FILTER_NONE = (int) 201326592,
+ ATTRIBUTE_FILTER_VPN_DIALUP = (int) 201326593,
+ ATTRIBUTE_FILTER_IEEE_802_1x = (int) 201326594
+};
+enum _ATTRIBUTEINFO
+{
+ NAME = (int) 201326593,
+ SYNTAX = (int) 201326594,
+ RESTRICTIONS = (int) 201326595,
+ DESCRIPTION = (int) 201326596,
+ VENDORID = (int) 201326597,
+ LDAPNAME = (int) 201326598,
+ VENDORTYPE = (int) 201326599
+};
+enum _IASCOMMONPROPERTIES
+{
+ PROPERTY_SDO_RESERVED = (int) 201326592,
+ PROPERTY_SDO_CLASS = (int) 201326593,
+ PROPERTY_SDO_NAME = (int) 201326594,
+ PROPERTY_SDO_DESCRIPTION = (int) 201326595,
+ PROPERTY_SDO_ID = (int) 201326596,
+ PROPERTY_SDO_DATASTORE_NAME = (int) 201326597,
+ PROPERTY_SDO_START = (int) 201327616
+};
+enum _USERPROPERTIES
+{
+ PROPERTY_USER_CALLING_STATION_ID = (int) 201327616,
+ PROPERTY_USER_SAVED_CALLING_STATION_ID = (int) 201327617,
+ PROPERTY_USER_RADIUS_CALLBACK_NUMBER = (int) 201327618,
+ PROPERTY_USER_RADIUS_FRAMED_ROUTE = (int) 201327619,
+ PROPERTY_USER_RADIUS_FRAMED_IP_ADDRESS = (int) 201327620,
+ PROPERTY_USER_SAVED_RADIUS_CALLBACK_NUMBER = (int) 201327621,
+ PROPERTY_USER_SAVED_RADIUS_FRAMED_ROUTE = (int) 201327622,
+ PROPERTY_USER_SAVED_RADIUS_FRAMED_IP_ADDRESS = (int) 201327623,
+ PROPERTY_USER_ALLOW_DIALIN = (int) 201327624,
+ PROPERTY_USER_SERVICE_TYPE = (int) 201327625,
+ PROPERTY_USER_RADIUS_FRAMED_IPV6_ROUTE = (int) 201327626,
+ PROPERTY_USER_SAVED_RADIUS_FRAMED_IPV6_ROUTE = (int) 201327627,
+ PROPERTY_USER_RADIUS_FRAMED_INTERFACE_ID = (int) 201327628,
+ PROPERTY_USER_SAVED_RADIUS_FRAMED_INTERFACE_ID = (int) 201327629,
+ PROPERTY_USER_RADIUS_FRAMED_IPV6_PREFIX = (int) 201327630,
+ PROPERTY_USER_SAVED_RADIUS_FRAMED_IPV6_PREFIX = (int) 201327631
+};
+enum _DICTIONARYPROPERTIES
+{
+ PROPERTY_DICTIONARY_ATTRIBUTES_COLLECTION = (int) 201327616,
+ PROPERTY_DICTIONARY_LOCATION = (int) 201327617
+};
+enum _ATTRIBUTEPROPERTIES
+{
+ PROPERTY_ATTRIBUTE_ID = (int) 201327616,
+ PROPERTY_ATTRIBUTE_VENDOR_ID = (int) 201327617,
+ PROPERTY_ATTRIBUTE_VENDOR_TYPE_ID = (int) 201327618,
+ PROPERTY_ATTRIBUTE_IS_ENUMERABLE = (int) 201327619,
+ PROPERTY_ATTRIBUTE_ENUM_NAMES = (int) 201327620,
+ PROPERTY_ATTRIBUTE_ENUM_VALUES = (int) 201327621,
+ PROPERTY_ATTRIBUTE_SYNTAX = (int) 201327622,
+ PROPERTY_ATTRIBUTE_ALLOW_MULTIPLE = (int) 201327623,
+ PROPERTY_ATTRIBUTE_ALLOW_LOG_ORDINAL = (int) 201327624,
+ PROPERTY_ATTRIBUTE_ALLOW_IN_PROFILE = (int) 201327625,
+ PROPERTY_ATTRIBUTE_ALLOW_IN_CONDITION = (int) 201327626,
+ PROPERTY_ATTRIBUTE_DISPLAY_NAME = (int) 201327627,
+ PROPERTY_ATTRIBUTE_VALUE = (int) 201327628,
+ PROPERTY_ATTRIBUTE_ALLOW_IN_PROXY_PROFILE = (int) 201327629,
+ PROPERTY_ATTRIBUTE_ALLOW_IN_PROXY_CONDITION = (int) 201327630,
+ PROPERTY_ATTRIBUTE_ALLOW_IN_VPNDIALUP = (int) 201327631,
+ PROPERTY_ATTRIBUTE_ALLOW_IN_8021X = (int) 201327632,
+ PROPERTY_ATTRIBUTE_ENUM_FILTERS = (int) 201327633
+};
+enum _IASPROPERTIES
+{
+ PROPERTY_IAS_RADIUSSERVERGROUPS_COLLECTION = (int) 201327616,
+ PROPERTY_IAS_POLICIES_COLLECTION = (int) 201327617,
+ PROPERTY_IAS_PROFILES_COLLECTION = (int) 201327618,
+ PROPERTY_IAS_PROTOCOLS_COLLECTION = (int) 201327619,
+ PROPERTY_IAS_AUDITORS_COLLECTION = (int) 201327620,
+ PROPERTY_IAS_REQUESTHANDLERS_COLLECTION = (int) 201327621,
+ PROPERTY_IAS_PROXYPOLICIES_COLLECTION = (int) 201327622,
+ PROPERTY_IAS_PROXYPROFILES_COLLECTION = (int) 201327623,
+ PROPERTY_IAS_REMEDIATIONSERVERGROUPS_COLLECTION = (int) 201327624,
+ PROPERTY_IAS_SHVTEMPLATES_COLLECTION = (int) 201327625
+};
+enum _CLIENTPROPERTIES
+{
+ PROPERTY_CLIENT_REQUIRE_SIGNATURE = (int) 201327616,
+ PROPERTY_CLIENT_UNUSED = (int) 201327617,
+ PROPERTY_CLIENT_SHARED_SECRET = (int) 201327618,
+ PROPERTY_CLIENT_NAS_MANUFACTURER = (int) 201327619,
+ PROPERTY_CLIENT_ADDRESS = (int) 201327620,
+ PROPERTY_CLIENT_QUARANTINE_COMPATIBLE = (int) 201327621,
+ PROPERTY_CLIENT_ENABLED = (int) 201327622
+};
+enum _VENDORPROPERTIES
+{
+ PROPERTY_NAS_VENDOR_ID = (int) 201327616
+};
+enum _PROFILEPROPERTIES
+{
+ PROPERTY_PROFILE_ATTRIBUTES_COLLECTION = (int) 201327616
+};
+enum _POLICYPROPERTIES
+{
+ PROPERTY_POLICY_CONSTRAINT = (int) 201327616,
+ PROPERTY_POLICY_MERIT = (int) 201327617,
+ PROPERTY_POLICY_UNUSED0 = (int) 201327618,
+ PROPERTY_POLICY_UNUSED1 = (int) 201327619,
+ PROPERTY_POLICY_PROFILE_NAME = (int) 201327620,
+ PROPERTY_POLICY_ACTION = (int) 201327621,
+ PROPERTY_POLICY_CONDITIONS_COLLECTION = (int) 201327622,
+ PROPERTY_POLICY_ENABLED = (int) 201327623,
+ PROPERTY_POLICY_SOURCETAG = (int) 201327624
+};
+enum _CONDITIONPROPERTIES
+{
+ PROPERTY_CONDITION_TEXT = (int) 201327616
+};
+enum _RADIUSSERVERGROUPPROPERTIES
+{
+ PROPERTY_RADIUSSERVERGROUP_SERVERS_COLLECTION = (int) 201327616
+};
+enum _RADIUSSERVERPROPERTIES
+{
+ PROPERTY_RADIUSSERVER_AUTH_PORT = (int) 201327616,
+ PROPERTY_RADIUSSERVER_AUTH_SECRET = (int) 201327617,
+ PROPERTY_RADIUSSERVER_ACCT_PORT = (int) 201327618,
+ PROPERTY_RADIUSSERVER_ACCT_SECRET = (int) 201327619,
+ PROPERTY_RADIUSSERVER_ADDRESS = (int) 201327620,
+ PROPERTY_RADIUSSERVER_FORWARD_ACCT_ONOFF = (int) 201327621,
+ PROPERTY_RADIUSSERVER_PRIORITY = (int) 201327622,
+ PROPERTY_RADIUSSERVER_WEIGHT = (int) 201327623,
+ PROPERTY_RADIUSSERVER_TIMEOUT = (int) 201327624,
+ PROPERTY_RADIUSSERVER_MAX_LOST = (int) 201327625,
+ PROPERTY_RADIUSSERVER_BLACKOUT = (int) 201327626,
+ PROPERTY_RADIUSSERVER_SEND_SIGNATURE = (int) 201327627
+};
+enum _REMEDIATIONSERVERGROUPPROPERTIES
+{
+ PROPERTY_REMEDIATIONSERVERGROUP_SERVERS_COLLECTION = (int) 201327616
+};
+enum _REMEDIATIONSERVERPROPERTIES
+{
+ PROPERTY_REMEDIATIONSERVER_ADDRESS = (int) 201327616,
+ PROPERTY_REMEDIATIONSERVER_FRIENDLY_NAME = (int) 201327617
+};
+enum _SHVTEMPLATEPROPERTIES
+{
+ PROPERTY_SHV_COMBINATION_TYPE = (int) 201327616,
+ PROPERTY_SHV_LIST = (int) 201327617
+};
+enum _IASCOMPONENTPROPERTIES
+{
+ PROPERTY_COMPONENT_ID = (int) 201327616,
+ PROPERTY_COMPONENT_PROG_ID = (int) 201327617,
+ PROPERTY_COMPONENT_START = (int) 201327618
+};
+enum _PROTOCOLPROPERTIES
+{
+ PROPERTY_PROTOCOL_REQUEST_HANDLER = (int) 201327618,
+ PROPERTY_PROTOCOL_START = (int) 201327619
+};
+enum _RADIUSPROPERTIES
+{
+ PROPERTY_RADIUS_ACCOUNTING_PORT = (int) 201327619,
+ PROPERTY_RADIUS_AUTHENTICATION_PORT = (int) 201327620,
+ PROPERTY_RADIUS_CLIENTS_COLLECTION = (int) 201327621,
+ PROPERTY_RADIUS_VENDORS_COLLECTION = (int) 201327622
+};
+enum _NTEVENTLOGPROPERTIES
+{
+ PROPERTY_EVENTLOG_LOG_APPLICATION_EVENTS = (int) 201327618,
+ PROPERTY_EVENTLOG_LOG_MALFORMED = (int) 201327619,
+ PROPERTY_EVENTLOG_LOG_DEBUG = (int) 201327620
+};
+enum _NAMESPROPERTIES
+{
+ PROPERTY_NAMES_REALMS = (int) 201327618
+};
+enum _NTSAMPROPERTIES
+{
+ PROPERTY_NTSAM_ALLOW_LM_AUTHENTICATION = (int) 201327618
+};
+enum _ACCOUNTINGPROPERTIES
+{
+ PROPERTY_ACCOUNTING_LOG_ACCOUNTING = (int) 201327618,
+ PROPERTY_ACCOUNTING_LOG_ACCOUNTING_INTERIM = (int) 201327619,
+ PROPERTY_ACCOUNTING_LOG_AUTHENTICATION = (int) 201327620,
+ PROPERTY_ACCOUNTING_LOG_OPEN_NEW_FREQUENCY = (int) 201327621,
+ PROPERTY_ACCOUNTING_LOG_OPEN_NEW_SIZE = (int) 201327622,
+ PROPERTY_ACCOUNTING_LOG_FILE_DIRECTORY = (int) 201327623,
+ PROPERTY_ACCOUNTING_LOG_IAS1_FORMAT = (int) 201327624,
+ PROPERTY_ACCOUNTING_LOG_ENABLE_LOGGING = (int) 201327625,
+ PROPERTY_ACCOUNTING_LOG_DELETE_IF_FULL = (int) 201327626,
+ PROPERTY_ACCOUNTING_SQL_MAX_SESSIONS = (int) 201327627,
+ PROPERTY_ACCOUNTING_LOG_AUTHENTICATION_INTERIM = (int) 201327628
+};
+enum _EAPWRAPPROPERTIES
+{
+ PROPERTY_EAP_SESSION_TIMEOUT = (int) 201327618,
+ PROPERTY_EAP_MAX_SESSIONS = (int) 201327619
+};
+enum _NAPPROPERTIES
+{
+ PROPERTY_NAP_POLICIES_COLLECTION = (int) 201327618,
+ PROPERTY_SHV_TEMPLATES_COLLECTION = (int) 201327619
+};
+enum _RADIUSPROXYPROPERTIES
+{
+ PROPERTY_RADIUSPROXY_SERVERGROUPS = (int) 201327618
+};
+enum _REMEDIATIONSERVERSPROPERTIES
+{
+ PROPERTY_REMEDIATIONSERVERS_SERVERGROUPS = (int) 201327618
+};
+enum _SHV_COMBINATION_TYPE
+{
+ SHV_COMBINATION_TYPE_ALL_PASS = (int) 201326592,
+ SHV_COMBINATION_TYPE_ALL_FAIL = (int) 201326593,
+ SHV_COMBINATION_TYPE_ONE_OR_MORE_PASS = (int) 201326594,
+ SHV_COMBINATION_TYPE_ONE_OR_MORE_FAIL = (int) 201326595,
+ SHV_COMBINATION_TYPE_ONE_OR_MORE_INFECTED = (int) 201326596,
+ SHV_COMBINATION_TYPE_ONE_OR_MORE_TRANSITIONAL = (int) 201326597,
+ SHV_COMBINATION_TYPE_ONE_OR_MORE_UNKNOWN = (int) 201326598,
+ SHV_COMBINATION_TYPE_MAX = (int) 201326599
+};
+enum _SERVICE_TYPE
+{
+ SERVICE_TYPE_IAS = (int) 201326592,
+ SERVICE_TYPE_RAS = (int) 201326593,
+ SERVICE_TYPE_MAX = (int) 201326594
+};
+enum _IASOSTYPE
+{
+ SYSTEM_TYPE_NT4_WORKSTATION = (int) 201326592,
+ SYSTEM_TYPE_NT5_WORKSTATION = (int) 201326593,
+ SYSTEM_TYPE_NT6_WORKSTATION = (int) 201326594,
+ SYSTEM_TYPE_NT4_SERVER = (int) 201326595,
+ SYSTEM_TYPE_NT5_SERVER = (int) 201326596,
+ SYSTEM_TYPE_NT6_SERVER = (int) 201326597
+};
+enum _DOMAINTYPE
+{
+ DOMAIN_TYPE_NONE = (int) 201326592,
+ DOMAIN_TYPE_NT4 = (int) 201326593,
+ DOMAIN_TYPE_NT5 = (int) 201326594,
+ DOMAIN_TYPE_MIXED = (int) 201326595
+};
+enum _IASDATASTORE
+{
+ DATA_STORE_LOCAL = (int) 201326592,
+ DATA_STORE_DIRECTORY = (int) 201326593
+};
+
+/* Type definitions. */
+typedef enum _ATTRIBUTEID ATTRIBUTEID;
+typedef enum _NEW_LOG_FILE_FREQUENCY NEW_LOG_FILE_FREQUENCY;
+typedef enum _AUTHENTICATION_TYPE AUTHENTICATION_TYPE;
+typedef enum _IDENTITY_TYPE IDENTITY_TYPE;
+typedef enum _ATTRIBUTESYNTAX ATTRIBUTESYNTAX;
+typedef enum _ATTRIBUTERESTRICTIONS ATTRIBUTERESTRICTIONS;
+typedef enum _ATTRIBUTEFILTER ATTRIBUTEFILTER;
+typedef enum _ATTRIBUTEINFO ATTRIBUTEINFO;
+typedef enum _IASCOMMONPROPERTIES IASCOMMONPROPERTIES;
+typedef enum _USERPROPERTIES USERPROPERTIES;
+typedef enum _DICTIONARYPROPERTIES DICTIONARYPROPERTIES;
+typedef enum _ATTRIBUTEPROPERTIES ATTRIBUTEPROPERTIES;
+typedef enum _IASPROPERTIES IASPROPERTIES;
+typedef enum _CLIENTPROPERTIES CLIENTPROPERTIES;
+typedef enum _VENDORPROPERTIES VENDORPROPERTIES;
+typedef enum _PROFILEPROPERTIES PROFILEPROPERTIES;
+typedef enum _POLICYPROPERTIES POLICYPROPERTIES;
+typedef enum _CONDITIONPROPERTIES CONDITIONPROPERTIES;
+typedef enum _RADIUSSERVERGROUPPROPERTIES RADIUSSERVERGROUPPROPERTIES;
+typedef enum _RADIUSSERVERPROPERTIES RADIUSSERVERPROPERTIES;
+typedef enum _REMEDIATIONSERVERGROUPPROPERTIES REMEDIATIONSERVERGROUPPROPERTIES;
+typedef enum _REMEDIATIONSERVERPROPERTIES REMEDIATIONSERVERPROPERTIES;
+typedef enum _SHVTEMPLATEPROPERTIES SHVTEMPLATEPROPERTIES;
+typedef enum _IASCOMPONENTPROPERTIES IASCOMPONENTPROPERTIES;
+typedef enum _PROTOCOLPROPERTIES PROTOCOLPROPERTIES;
+typedef enum _RADIUSPROPERTIES RADIUSPROPERTIES;
+typedef enum _NTEVENTLOGPROPERTIES NTEVENTLOGPROPERTIES;
+typedef enum _NAMESPROPERTIES NAMESPROPERTIES;
+typedef enum _NTSAMPROPERTIES NTSAMPROPERTIES;
+typedef enum _ACCOUNTINGPROPERTIES ACCOUNTINGPROPERTIES;
+typedef enum _EAPWRAPPROPERTIES EAPWRAPPROPERTIES;
+typedef enum _NAPPROPERTIES NAPPROPERTIES;
+typedef enum _RADIUSPROXYPROPERTIES RADIUSPROXYPROPERTIES;
+typedef enum _REMEDIATIONSERVERSPROPERTIES REMEDIATIONSERVERSPROPERTIES;
+typedef enum _SHV_COMBINATION_TYPE SHV_COMBINATION_TYPE;
+typedef enum _SERVICE_TYPE SERVICE_TYPE;
+typedef enum _IASOSTYPE IASOSTYPE;
+typedef enum _IASOSTYPE * PIASOSTYPE;
+typedef enum _DOMAINTYPE IASDOMAINTYPE;
+typedef enum _DOMAINTYPE * PIASDOMAINTYPE;
+typedef enum _IASDATASTORE IASDATASTORE;
+typedef enum _IASDATASTORE * PIASDATASTORE;
+
+[
+ uuid(81DDF732-4AA8-4A35-BDFF-8B42EFE7C624),
+ version(1.0),
+ helpstring("IAS SDO 1.0 Type Library")
+]
+library sdoiaslib
+{
+ importlib("stdole2.tlb");
+
+ /* CoClass declarations. */
+ [
+ uuid(E9218AE7-9E91-11D1-BF60-0080C7846BC0),
+ cancreate
+ ]
+ coclass SdoMachine
+ {
+ dispinterface ISdoMachine;
+ };
+
+ /* Dispatch interface declarations. */
+ [
+ uuid(479F6E75-49A2-11D2-8ECA-00C04FC2F519),
+ dual,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface ISdoMachine : IDispatch
+ {
+ [id(1)]
+ HRESULT __stdcall Attach (
+ [in] BSTR bstrComputerName
+ );
+ HRESULT __stdcall GetDictionarySDO (
+ [out retval] IUnknown **ppDictionarySDO
+ );
+ HRESULT __stdcall GetServiceSDO (
+ [in] IASDATASTORE eDataStore,
+ [in] BSTR bstrServiceName,
+ [out retval] IUnknown **ppServiceSDO
+ );
+ HRESULT __stdcall GetUserSDO (
+ [in] IASDATASTORE eDataStore,
+ [in] BSTR bstrUserName,
+ [out retval] IUnknown **ppUserSDO
+ );
+ HRESULT __stdcall GetOSType (
+ [out retval] IASOSTYPE *eOSType
+ );
+ HRESULT __stdcall GetDomainType (
+ [out retval] IASDOMAINTYPE *eDomainType
+ );
+ HRESULT __stdcall IsDirectoryAvailable (
+ [out retval] WINBOOL *boolDirectoryAvailable
+ );
+ HRESULT __stdcall GetAttachedComputer (
+ [out retval] BSTR *bstrComputerName
+ );
+ [hidden]
+ HRESULT __stdcall GetSDOSchema (
+ [out retval] IUnknown **ppSDOSchema
+ );
+ };
+ [
+ uuid(479F6E74-49A2-11D2-8ECA-00C04FC2F519),
+ dual,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface ISdoServiceControl : IDispatch
+ {
+ [id(1)]
+ HRESULT __stdcall StartService (void);
+ HRESULT __stdcall StopService (void);
+ HRESULT __stdcall GetServiceStatus (
+ [out retval] long *status
+ );
+ HRESULT __stdcall ResetService (void);
+ };
+ [
+ uuid(56BC53DE-96DB-11D1-BF3F-000000000000),
+ dual,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface ISdo : IDispatch
+ {
+ [id(1), hidden]
+ HRESULT __stdcall GetPropertyInfo (
+ [in] long Id,
+ [out retval] IUnknown **ppPropertyInfo
+ );
+ HRESULT __stdcall GetProperty (
+ [in] long Id,
+ [out retval] VARIANT *pValue
+ );
+ HRESULT __stdcall PutProperty (
+ [in] long Id,
+ [in] VARIANT *pValue
+ );
+ HRESULT __stdcall ResetProperty (
+ [in] long Id
+ );
+ HRESULT __stdcall Apply (void);
+ HRESULT __stdcall Restore (void);
+ [id(-4), propget]
+ HRESULT __stdcall _NewEnum (
+ [out retval] IUnknown **ppEnumVARIANT
+ );
+ };
+ [
+ uuid(56BC53E2-96DB-11D1-BF3F-000000000000),
+ dual,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface ISdoCollection : IDispatch
+ {
+ [id(1), propget]
+ HRESULT __stdcall Count (
+ [out retval] long *pCount
+ );
+ HRESULT __stdcall Add (
+ [in] BSTR bstrName,
+ [in out] IDispatch **ppItem
+ );
+ HRESULT __stdcall Remove (
+ [in] IDispatch * pItem
+ );
+ HRESULT __stdcall RemoveAll (void);
+ HRESULT __stdcall Reload (void);
+ HRESULT __stdcall IsNameUnique (
+ [in] BSTR bstrName,
+ [out retval] WINBOOL *pBool
+ );
+ [id(0)]
+ HRESULT __stdcall Item (
+ [in] VARIANT *NAME,
+ [out retval] IDispatch **pItem
+ );
+ [id(-4), propget]
+ HRESULT __stdcall _NewEnum (
+ [out retval] IUnknown **ppEnumVARIANT
+ );
+ };
+ [
+ uuid(D432E5F4-53D8-11D2-9A3A-00C04FB998AC),
+ dual,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface ISdoDictionaryOld : IDispatch
+ {
+ [id(1)]
+ HRESULT __stdcall EnumAttributes (
+ [in out] VARIANT *Id,
+ [out retval] VARIANT *pValues
+ );
+ [hidden]
+ HRESULT __stdcall GetAttributeInfo (
+ [in] ATTRIBUTEID Id,
+ [in] VARIANT *pInfoIDs,
+ [out retval] VARIANT *pInfoValues
+ );
+ HRESULT __stdcall EnumAttributeValues (
+ [in] ATTRIBUTEID Id,
+ [out] VARIANT *pValueIds,
+ [out retval] VARIANT *pValuesDesc
+ );
+ HRESULT __stdcall CreateAttribute (
+ [in] ATTRIBUTEID Id,
+ [out retval] IDispatch **ppAttributeObject
+ );
+ HRESULT __stdcall GetAttributeID (
+ [in] BSTR bstrAttributeName,
+ [out retval] ATTRIBUTEID *pId
+ );
+ };
+
+};
+
diff --git a/mingw-w64-headers/include/iassdo_1.idl b/mingw-w64-headers/include/iassdo_1.idl
new file mode 100644
index 0000000..19bbd25
--- /dev/null
+++ b/mingw-w64-headers/include/iassdo_1.idl
@@ -0,0 +1,71 @@
+/* Automated generated idl file <sdoiaslibprivate>.
+ * Generated by genidl tool (c) 2009, 2010 Mingw-w64 project.
+ */
+
+/* Union record forward declarations. */
+dispinterface ISdoService;
+
+/* Union record forward declarations. */
+coclass SdoService;
+
+/* Enumeration declarations. */
+enum _SERVICE_TYPE
+{
+ SERVICE_TYPE_IAS = (int) 201326592,
+ SERVICE_TYPE_RAS = (int) 201326593,
+ SERVICE_TYPE_MAX = (int) 201326594
+};
+
+/* Type definitions. */
+typedef enum _SERVICE_TYPE SERVICE_TYPE;
+
+[
+ uuid(56BC53D1-96DB-11D1-BF3F-000000000000),
+ version(1.0),
+ helpstring("Private SDO 1.0 Type Library")
+]
+library sdoiaslibprivate
+{
+ importlib("stdole2.tlb");
+
+ /* CoClass declarations. */
+ [
+ uuid(BC94D813-4D7F-11D2-A8C9-00AA00A71DCA),
+ cancreate,
+ hidden,
+ restricted
+ ]
+ coclass SdoService
+ {
+ dispinterface ISdoService;
+ };
+
+ /* Dispatch interface declarations. */
+ [
+ uuid(7A968236-9D6D-11D1-BF5D-000000000000),
+ dual,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface ISdoService : IDispatch
+ {
+ [id(1)]
+ HRESULT __stdcall InitializeService (
+ [in] SERVICE_TYPE eServiceType
+ );
+ HRESULT __stdcall ShutdownService (
+ [in] SERVICE_TYPE eServiceType
+ );
+ HRESULT __stdcall StartService (
+ [in] SERVICE_TYPE eServiceType
+ );
+ HRESULT __stdcall StopService (
+ [in] SERVICE_TYPE eServiceType
+ );
+ HRESULT __stdcall ConfigureService (
+ [in] SERVICE_TYPE eServiceType
+ );
+ };
+
+};
+
diff --git a/mingw-w64-headers/include/icftypes.h b/mingw-w64-headers/include/icftypes.h
new file mode 100644
index 0000000..6842e2f
--- /dev/null
+++ b/mingw-w64-headers/include/icftypes.h
@@ -0,0 +1,44 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_ICFTYPES
+#define _INC_ICFTYPES
+#if (_WIN32_WINNT >= 0x0600)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum _NET_FW_ACTION {
+ NET_FW_ACTION_BLOCK,
+ NET_FW_ACTION_ALLOW,
+ NET_FW_ACTION_MAX
+} NET_FW_ACTION;
+
+typedef enum _NET_FW_MODIFY_STATE {
+ NET_FW_MODIFY_STATE_OK,
+ NET_FW_MODIFY_STATE_GP_OVERRIDE,
+ NET_FW_MODIFY_STATE_INBOUND_BLOCKED
+} NET_FW_MODIFY_STATE;
+
+typedef enum NET_FW_PROFILE_TYPE2_ {
+ NET_FW_PROFILE2_DOMAIN = 0x0001,
+ NET_FW_PROFILE2_PRIVATE = 0x0002,
+ NET_FW_PROFILE2_PUBLIC = 0x0004,
+ NET_FW_PROFILE2_ALL = 0x7FFFFFFF
+} NET_FW_PROFILE_TYPE2;
+
+typedef enum NET_FW_RULE_DIRECTION_ {
+ NET_FW_RULE_DIR_IN,
+ NET_FW_RULE_DIR_OUT,
+ NET_FW_RULE_DIR_MAX
+} NET_FW_RULE_DIRECTION;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_ICFTYPES*/
diff --git a/mingw-w64-headers/include/icm.h b/mingw-w64-headers/include/icm.h
index a99d625..3c00c5f 100644
--- a/mingw-w64-headers/include/icm.h
+++ b/mingw-w64-headers/include/icm.h
@@ -465,6 +465,162 @@
WINBOOL WINAPI CMTranslateRGBs(HCMTRANSFORM hcmTransform,LPVOID lpSrcBits,BMFORMAT bmInput,DWORD dwWidth,DWORD dwHeight,DWORD dwStride,LPVOID lpDestBits,BMFORMAT bmOutput,DWORD dwTranslateDirection);
WINBOOL WINAPI CMTranslateRGBsExt(HCMTRANSFORM hcmTransform,LPVOID lpSrcBits,BMFORMAT bmInput,DWORD dwWidth,DWORD dwHeight,DWORD dwInputStride,LPVOID lpDestBits,BMFORMAT bmOutput,DWORD dwOutputStride,LPBMCALLBACKFN lpfnCallback,LPARAM ulCallbackData);
+#if (_WIN32_WINNT >= 0x0600)
+ typedef enum tagCOLORDATATYPE {
+ COLOR_BYTE = 1,
+ COLOR_WORD,
+ COLOR_FLOAT,
+ COLOR_S2DOT13FIXED,
+ COLOR_10b_R10G10B10A2,
+ COLOR_10b_R10G10B10A2_XR
+} COLORDATATYPE, *PCOLORDATATYPE, *LPCOLORDATATYPE;
+
+typedef enum tagCOLORPROFILSUBTYPE {
+ CPST_NONE = 0x0000,
+ CPST_RGB_WORKING_SPACE = 0x0001,
+ CPST_PERCEPTUAL = 0x0002,
+ CPST_ABSOLUTE_COLORIMETRIC = 0x0004,
+ CPST_RELATIVE_COLORIMETRIC = 0x0008,
+ CPST_SATURATION = 0x0010,
+ CPST_CUSTOM_WORKING_SPACE = 0x0020
+} COLORPROFILSUBTYPE, *COLORPROFILESUBTYPE PCOLORPROFILESUBTYPE, *LPCOLORPROFILESUBTYPE;
+
+typedef enum tagCOLORPROFILETYPE {
+ CPT_ICC = 0x0001,
+ CPT_DMP,
+ CPT_CAMP,
+ CPT_GMMP
+} COLORPROFILETYPE, *PCOLORPROFILETYPE, *LPCOLORPROFILETYPE;
+
+typedef enum tagWCS_PROFILE_MANAGEMENT_SCOPE {
+ WCS_PROFILE_MANAGEMENT_SCOPE_SYSTEM_WIDE,
+ WCS_PROFILE_MANAGEMENT_SCOPE_CURRENT_USER
+} WCS_PROFILE_MANAGEMENT_SCOPE;
+
+#define WcsAssociateColorProfileWithDevice __MINGW_NAME_AW(WcsAssociateColorProfileWithDevice)
+
+WINBOOL WINAPI WcsAssociateColorProfileWithDeviceA(
+ WCS_PROFILE_MANAGEMENT_SCOPE profileManagementScope,
+ PCSTR pProfileName,
+ PCSTR pDeviceName
+);
+
+WINBOOL WINAPI WcsAssociateColorProfileWithDeviceW(
+ WCS_PROFILE_MANAGEMENT_SCOPE profileManagementScope,
+ PCWSTR pProfileName,
+ PCWSTR pDeviceName
+);
+
+WINBOOL WINAPI WcsCheckColors(
+ HTRANSFORM hColorTransform,
+ DWORD nColors,
+ DWORD nInputChannels,
+ COLORDATATYPE cdtInput,
+ DWORD cbInput,
+ PVOID pInputData,
+ PBYTE paResult
+);
+
+HPROFILE WINAPI WcsCreateIccProfile(
+ HPROFILE hWcsProfile,
+ DWORD dwOptions
+);
+
+WINBOOL WINAPI WcsDisassociateColorProfileFromDevice(
+ WCS_PROFILE_MANAGEMENT_SCOPE profileManagementScope,
+ PCWSTR pProfileName,
+ PCWSTR pDeviceName
+);
+
+WINBOOL WINAPI WcsEnumColorProfiles(
+ WCS_PROFILE_MANAGEMENT_SCOPE profileManagementScope,
+ PENUMTYPEW pEnumRecord,
+ PBYTE pBuffer,
+ DWORD dwSize,
+ PDWORD pnProfiles
+);
+
+WINBOOL WINAPI WcsEnumColorProfilesSize(
+ WCS_PROFILE_MANAGEMENT_SCOPE profileManagementScope,
+ PENUMTYPEW pEnumRecord,
+ PDWORD pdwSize
+);
+
+WINBOOL WINAPI WcsGetDefaultColorProfile(
+ WCS_PROFILE_MANAGEMENT_SCOPE profileManagementScope,
+ PCWSTR pDeviceName,
+ COLORPROFILETYPE cptColorProfileType,
+ COLORPROFILESUBTYPE cpstColorProfileSubType,
+ DWORD dwProfileID,
+ DWORD cbProfileName,
+ LPWSTR pProfileName
+);
+
+WINBOOL WINAPI WcsGetDefaultColorProfileSize(
+ WCS_PROFILE_MANAGEMENT_SCOPE profileManagementScope,
+ PCWSTR pDeviceName,
+ COLORPROFILETYPE cptColorProfileType,
+ COLORPROFILESUBTYPE cpstColorProfileSubType,
+ DWORD dwProfileID,
+ PDWORD pcbProfileName
+);
+
+WINBOOL WINAPI WcsGetDefaultRenderingIntent(
+ WCS_PROFILE_MANAGEMENT_SCOPE scope,
+ PDWORD pdwRenderingIntent
+);
+
+WINBOOL WINAPI WcsGetUsePerUserProfiles(
+ LPCWSTR pDeviceName,
+ DWORD dwDeviceClass,
+ WINBOOL *pUsePerUserProfiles
+);
+
+HPROFILE WINAPI WcsOpenColorProfile(
+ PPROFILE pCDMPProfile,
+ PPROFILE pCAMPProfile,
+ PPROFILE pGMMPProfile,
+ DWORD dwDesiredAccess,
+ DWORD dwShareMode,
+ DWORD dwCreationMode,
+ DWORD dwFlags
+);
+
+WINBOOL WINAPI WcsSetDefaultColorProfile(
+ WCS_PROFILE_MANAGEMENT_SCOPE profileManagementScope,
+ PCWSTR pDeviceName,
+ COLORPROFILETYPE cptColorProfileType,
+ COLORPROFILESUBTYPE cpstColorProfileSubType,
+ DWORD dwProfileID,
+ LPCWSTR pProfileName
+);
+
+WInBOOL WINAPI WcsSetDefaultRenderingIntent(
+ WCS_PROFILE_MANAGEMENT_SCOPE scope,
+ DWORD dwRenderingIntent
+);
+
+WINBOOL WINAPI WcsSetUsePerUserProfiles(
+ LPCWSTR pDeviceName,
+ DWORD dwDeviceClass,
+ WINBOOL usePerUserProfiles
+);
+
+WINBOOL WINAPI WcsTranslateColors(
+ HTRANSFORM hColorTransform,
+ DWORD nColors,
+ DWORD nInputChannels,
+ COLORDATATYPE cdtInput,
+ DWORD cbInput,
+ PVOID pInputData,
+ DWORD nOutputChannels,
+ COLORDATATYPE cdtOutput,
+ DWORD cbOutput,
+ PVOID pOutputData
+);
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
#ifdef __cplusplus
}
#endif
diff --git a/mingw-w64-headers/include/ifdef.h b/mingw-w64-headers/include/ifdef.h
new file mode 100644
index 0000000..72e1219
--- /dev/null
+++ b/mingw-w64-headers/include/ifdef.h
@@ -0,0 +1,114 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_IFDEF
+#define _INC_IFDEF
+
+#if (_WIN32_WINNT >= 0x0600)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define IF_TYPE_OTHER 1
+#define IF_TYPE_ETHERNET_CSMACD 6
+#define IF_TYPE_ISO88025_TOKENRING 9
+#define IF_TYPE_PPP 23
+#define IF_TYPE_SOFTWARE_LOOPBACK 24
+#define IF_TYPE_ATM 37
+#define IF_TYPE_IEEE80211 71
+#define IF_TYPE_TUNNEL 131
+#define IF_TYPE_IEEE1394 144
+#define IF_MAX_STRING_SIZE 256
+#define IF_MAX_PHYS_ADDRESS_LENGTH 32
+
+typedef GUID NET_IF_NETWORK_GUID;
+
+typedef enum _IF_OPER_STATUS {
+ IfOperStatusUp = 1,
+ IfOperStatusDown,
+ IfOperStatusTesting,
+ IfOperStatusUnknown,
+ IfOperStatusDormant,
+ IfOperStatusNotPresent,
+ IfOperStatusLowerLayerDown
+} IF_OPER_STATUS;
+
+typedef enum _NET_IF_ADMIN_STATUS {
+ NET_IF_ADMIN_STATUS_UP = 1,
+ NET_IF_ADMIN_STATUS_DOWN,
+ NET_IF_ADMIN_STATUS_TESTING
+} NET_IF_ADMIN_STATUS, *PNET_IF_ADMIN_STATUS;
+
+typedef enum _NET_IF_MEDIA_CONNECT_STATE {
+ MediaConnectStateUnknown,
+ MediaConnectStateConnected,
+ MediaConnectStateDisconnected
+} NET_IF_MEDIA_CONNECT_STATE, *PNET_IF_MEDIA_CONNECT_STATE;
+
+typedef enum _NET_IF_ACCESS_TYPE {
+ NET_IF_ACCESS_LOOPBACK = 1,
+ NET_IF_ACCESS_BROADCAST,
+ NET_IF_ACCESS_POINT_TO_POINT,
+ NET_IF_ACCESS_POINT_TO_MULTI_POINT,
+ NET_IF_ACCESS_MAXIMUM
+} NET_IF_ACCESS_TYPE, *PNET_IF_ACCESS_TYPE;
+
+typedef enum _NET_IF_ADMIN_STATUS {
+ NET_IF_ADMIN_STATUS_UP = 1,
+ NET_IF_ADMIN_STATUS_DOWN,
+ NET_IF_ADMIN_STATUS_TESTING
+} NET_IF_ADMIN_STATUS, *PNET_IF_ADMIN_STATUS;
+
+typedef enum _NET_IF_CONNECTION_TYPE {
+ NET_IF_CONNECTION_DEDICATED = 1,
+ NET_IF_CONNECTION_PASSIVE,
+ NET_IF_CONNECTION_DEMAND,
+ NET_IF_CONNECTION_MAXIMUM
+} NET_IF_CONNECTION_TYPE, *PNET_IF_CONNECTION_TYPE;
+
+typedef enum _NET_IF_DIRECTION_TYPE {
+ NET_IF_DIRECTION_SENDRECEIVE,
+ NET_IF_DIRECTION_SENDONLY,
+ NET_IF_DIRECTION_RECEIVEONLY,
+ NET_IF_DIRECTION_MAXIMUM
+} NET_IF_DIRECTION_TYPE, *PNET_IF_DIRECTION_TYPE;
+
+typedef enum _NET_IF_MEDIA_CONNECT_STATE {
+ MediaConnectStateUnknown,
+ MediaConnectStateConnected,
+ MediaConnectStateDisconnected
+} NET_IF_MEDIA_CONNECT_STATE, *PNET_IF_MEDIA_CONNECT_STATE;
+
+typedef enum _NET_IF_MEDIA_DUPLEX_STATE {
+ MediaDuplexStateUnknown,
+ MediaDuplexStateHalf,
+ MediaDuplexStateFull
+} NET_IF_MEDIA_DUPLEX_STATE, *PNET_IF_MEDIA_DUPLEX_STATE;
+
+typedef enum _TUNNEL_TYPE {
+ TUNNEL_TYPE_NONE = 0,
+ TUNNEL_TYPE_OTHER,
+ TUNNEL_TYPE_DIRECT,
+ TUNNEL_TYPE_6TO4,
+ TUNNEL_TYPE_ISATAP,
+ TUNNEL_TYPE_TEREDO,
+ TUNNEL_TYPE_IPHTTPS
+} TUNNEL_TYPE, *PTUNNEL_TYPE;
+
+typedef union _NET_LUID {
+ ULONG64 Value;
+ __MINGW_EXTENSION struct {
+ ULONG64 Reserved :24;
+ ULONG64 NetLuidIndex :24;
+ ULONG64 IfType :16;
+ } Info;
+} NET_LUID, *PNET_LUID;
+
+#ifdef __cplusplus
+}
+#endif
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_IFDEF*/
diff --git a/mingw-w64-headers/include/iketypes.h b/mingw-w64-headers/include/iketypes.h
new file mode 100644
index 0000000..a8b048a
--- /dev/null
+++ b/mingw-w64-headers/include/iketypes.h
@@ -0,0 +1,337 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_IKETYPES
+#define _INC_IKETYPES
+#include <fwptypes.h>
+
+#if (_WIN32_WINNT >= 0x0600)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum IKEEXT_EM_SA_STATE_ {
+ IKEEXT_EM_SA_STATE_NONE,
+ IKEEXT_EM_SA_STATE_SENT_ATTS,
+ IKEEXT_EM_SA_STATE_SSPI_SENT,
+ IKEEXT_EM_SA_STATE_AUTH_COMPLETE,
+ IKEEXT_EM_SA_STATE_FINAL,
+ IKEEXT_EM_SA_STATE_COMPLETE,
+ IKEEXT_EM_SA_STATE_MAX
+} IKEEXT_EM_SA_STATE;
+
+typedef enum IKEEXT_SA_ROLE_ {
+ IKEEXT_SA_ROLE_INITIATOR,
+ IKEEXT_SA_ROLE_RESPONDER,
+ IKEEXT_SA_ROLE_MAX
+} IKEEXT_SA_ROLE;
+
+typedef enum IKEEXT_AUTHENTICATION_METHOD_TYPE_ {
+ IKEEXT_PRESHARED_KEY,
+ IKEEXT_CERTIFICATE,
+ IKEEXT_KERBEROS,
+ IKEEXT_ANONYMOUS,
+ IKEEXT_SSL,
+ IKEEXT_NTLM_V2,
+ IKEEXT_IPV6_CGA,
+ IKEEXT_CERTIFICATE_ECDSA_P256,
+ IKEEXT_CERTIFICATE_ECDSA_P384,
+ IKEEXT_SSL_ECDSA_P256,
+ IKEEXT_SSL_ECDSA_P384,
+ IKEEXT_EAP,
+ IKEEXT_AUTHENTICATION_METHOD_TYPE_MAX
+} IKEEXT_AUTHENTICATION_METHOD_TYPE;
+
+typedef enum IKEEXT_KEY_MODULE_TYPE_ {
+ IKEEXT_KEY_MODULE_IKE,
+ IKEEXT_KEY_MODULE_AUTHIP,
+ IKEEXT_KEY_MODULE_IKEV2,
+ IKEEXT_KEY_MODULE_MAX
+} IKEEXT_KEY_MODULE_TYPE;
+
+typedef enum IKEEXT_MM_SA_STATE_ {
+ IKEEXT_MM_SA_STATE_NONE,
+ IKEEXT_MM_SA_STATE_SA_SENT,
+ IKEEXT_MM_SA_STATE_SSPI_SENT,
+ IKEEXT_MM_SA_STATE_FINAL,
+ IKEEXT_MM_SA_STATE_FINAL_SENT,
+ IKEEXT_MM_SA_STATE_COMPLETE,
+ IKEEXT_MM_SA_STATE_MAX
+} IKEEXT_MM_SA_STATE;
+
+typedef enum IKEEXT_QM_SA_STATE_ {
+ IKEEXT_QM_SA_STATE_NONE,
+ IKEEXT_QM_SA_STATE_INITIAL,
+ IKEEXT_QM_SA_STATE_FINAL,
+ IKEEXT_QM_SA_STATE_COMPLETE,
+ IKEEXT_QM_SA_STATE_MAX
+} IKEEXT_QM_SA_STATE;
+
+typedef enum IKEEXT_AUTHENTICATION_IMPERSONATION_TYPE_ {
+ IKEEXT_IMPERSONATION_NONE,
+ IKEEXT_IMPERSONATION_SOCKET_PRINCIPAL,
+ IKEEXT_IMPERSONATION_MAX
+} IKEEXT_AUTHENTICATION_IMPERSONATION_TYPE;
+
+typedef enum IKEEXT_CERT_CONFIG_TYPE_ {
+ IKEEXT_CERT_CONFIG_EXPLICIT_TRUST_LIST,
+ IKEEXT_CERT_CONFIG_ENTERPRISE_STORE,
+ IKEEXT_CERT_CONFIG_TRUSTED_ROOT_STORE,
+ IKEEXT_CERT_CONFIG_UNSPECIFIED,
+ IKEEXT_CERT_CONFIG_TYPE_MAX
+} IKEEXT_CERT_CONFIG_TYPE;
+
+typedef enum IKEEXT_CIPHER_TYPE_ {
+ IKEEXT_CIPHER_DES,
+ IKEEXT_CIPHER_3DES,
+ IKEEXT_CIPHER_AES_128,
+ IKEEXT_CIPHER_AES_192,
+ IKEEXT_CIPHER_AES_256,
+ IKEEXT_CIPHER_TYPE_MAX
+} IKEEXT_CIPHER_TYPE;
+
+typedef enum IKEEXT_INTEGRITY_TYPE_ {
+ IKEEXT_INTEGRITY_MD5,
+ IKEEXT_INTEGRITY_SHA1,
+ IKEEXT_INTEGRITY_SHA_256,
+ IKEEXT_INTEGRITY_SHA_384,
+ IKEEXT_INTEGRITY_TYPE_MAX
+} IKEEXT_INTEGRITY_TYPE;
+
+typedef enum IKEEXT_DH_GROUP_ {
+ IKEEXT_DH_GROUP_NONE,
+ IKEEXT_DH_GROUP_1,
+ IKEEXT_DH_GROUP_2,
+ IKEEXT_DH_GROUP_2048,
+ IKEEXT_DH_ECP_256,
+ IKEEXT_DH_ECP_384,
+ IKEEXT_DH_GROUP_MAX
+} IKEEXT_DH_GROUP;
+
+typedef struct IKEEXT_CERT_ROOT_CONFIG0_ {
+ FWP_BYTE_BLOB certData;
+ UINT32 flags;
+} IKEEXT_CERT_ROOT_CONFIG0;
+
+typedef struct IKEEXT_EM_POLICY0_ {
+ UINT32 numAuthenticationMethods;
+ IKEEXT_AUTHENTICATION_METHOD0 *authenticationMethods;
+ IKEEXT_AUTHENTICATION_IMPERSONATION_TYPE initiatorImpersonationType;
+} IKEEXT_EM_POLICY0;
+
+typedef struct IKEEXT_KERBEROS_AUTHENTICATION0_ {
+ UINT32 flags;
+} IKEEXT_KERBEROS_AUTHENTICATION0;
+
+typedef struct IKEEXT_NTLM_V2_AUTHENTICATION0_ {
+ UINT32 flags;
+} IKEEXT_NTLM_V2_AUTHENTICATION0;
+
+typedef struct IKEEXT_IPV6_CGA_AUTHENTICATION0_ {
+ wchar_t *keyContainerName;
+ wchar_t *cspName;
+ UINT32 cspType;
+ FWP_BYTE_ARRAY16 cgaModifier;
+ BYTE cgaCollisionCount;
+} IKEEXT_IPV6_CGA_AUTHENTICATION0;
+
+typedef struct IKEEXT_PRESHARED_KEY_AUTHENTICATION0__ {
+ FWP_BYTE_BLOB presharedKey;
+} IKEEXT_PRESHARED_KEY_AUTHENTICATION0;
+
+typedef struct IKEEXT_AUTHENTICATION_METHOD0_ {
+ IKEEXT_AUTHENTICATION_METHOD_TYPE authenticationMethodType;
+ __MINGW_EXTENSION union {
+ IKEEXT_PRESHARED_KEY_AUTHENTICATION0 presharedKeyAuthentication;
+ IKEEXT_CERTIFICATE_AUTHENTICATION0 certificateAuthentication;
+ IKEEXT_KERBEROS_AUTHENTICATION0 kerberosAuthentication;
+ IKEEXT_NTLM_V2_AUTHENTICATION0 ntlmV2Authentication;
+ IKEEXT_CERTIFICATE_AUTHENTICATION0 sslAuthentication;
+ IKEEXT_IPV6_CGA_AUTHENTICATION0 cgaAuthentication;
+ ; // case(IKEEXT_ANONYMOUS)
+ };
+} IKEEXT_AUTHENTICATION_METHOD0;
+
+typedef struct IKEEXT_CERTIFICATE_AUTHENTICATION0_ {
+ IKEEXT_CERT_CONFIG_TYPE inboundConfigType;
+ __MINGW_EXTENSION union {
+ __MINGW_EXTENSION struct {
+ UINT32 inboundRootArraySize;
+ IKEEXT_CERT_ROOT_CONFIG0 *inboundRootArray;
+ };
+ IKEEXT_CERT_ROOT_CONFIG0 *inboundEnterpriseStoreConfig;
+ IKEEXT_CERT_ROOT_CONFIG0 *inboundTrustedRootStoreConfig;
+ };
+ IKEEXT_CERT_CONFIG_TYPE outboundConfigType;
+ __MINGW_EXTENSION union {
+ __MINGW_EXTENSION struct {
+ UINT32 outboundRootArraySize;
+ IKEEXT_CERT_ROOT_CONFIG0 *outboundRootArray;
+ };
+ IKEEXT_CERT_ROOT_CONFIG0 *outboundEnterpriseStoreConfig;
+ IKEEXT_CERT_ROOT_CONFIG0 *outboundTrustedRootStoreConfig;
+ };
+ UINT32 flags;
+} IKEEXT_CERTIFICATE_AUTHENTICATION0;
+
+typedef struct IKEEXT_POLICY0_ {
+ UINT32 softExpirationTime;
+ UINT32 numAuthenticationMethods;
+ IKEEXT_AUTHENTICATION_METHOD0 *authenticationMethods;
+ IKEEXT_AUTHENTICATION_IMPERSONATION_TYPE initiatorImpersonationType;
+ UINT32 numIkeProposals;
+ IKEEXT_PROPOSAL0 *ikeProposals;
+ UINT32 flags;
+ UINT32 maxDynamicFilters;
+} IKEEXT_POLICY0;
+
+typedef struct IKEEXT_INTEGRITY_ALGORITHM0_ {
+ IKEEXT_INTEGRITY_TYPE algoIdentifier;
+} IKEEXT_INTEGRITY_ALGORITHM0;
+
+typedef struct IKEEXT_CIPHER_ALGORITHM0_ {
+ IKEEXT_CIPHER_TYPE algoIdentifier;
+ UINT32 keyLen;
+ UINT32 rounds;
+} IKEEXT_CIPHER_ALGORITHM0;
+
+typedef struct IKEEXT_PROPOSAL0_ {
+ IKEEXT_CIPHER_ALGORITHM0 cipherAlgorithm;
+ IKEEXT_INTEGRITY_ALGORITHM0 integrityAlgorithm;
+ UINT32 maxLifetimeSeconds;
+ IKEEXT_DH_GROUP dhGroup;
+ UINT32 quickModeLimit;
+} IKEEXT_PROPOSAL0;
+
+typedef struct IKEEXT_CERTIFICATE_CREDENTIAL0_ {
+ FWP_BYTE_BLOB subjectName;
+ FWP_BYTE_BLOB certHash;
+ UINT32 flags;
+} IKEEXT_CERTIFICATE_CREDENTIAL0;
+
+typedef struct IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS0_ {
+ UINT32 totalSocketReceiveFailures;
+ UINT32 totalSocketSendFailures;
+} IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS0;
+
+typedef struct IKEEXT_COMMON_STATISTICS0_ {
+ IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS0 v4Statistics;
+ IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS0 v6Statistics;
+ UINT32 totalPacketsReceived;
+ UINT32 totalInvalidPacketsReceived;
+ UINT32 currentQueuedWorkitems;
+} IKEEXT_COMMON_STATISTICS0;
+
+typedef UINT64 IKEEXT_COOKIE;
+
+typedef struct IKEEXT_COOKIE_PAIR0_ {
+ IKEEXT_COOKIE initiator;
+ IKEEXT_COOKIE responder;
+} IKEEXT_COOKIE_PAIR0;
+
+typedef struct IKEEXT_CREDENTIAL0_ {
+ IKEEXT_AUTHENTICATION_METHOD_TYPE authenticationMethodType;
+ IKEEXT_AUTHENTICATION_IMPERSONATION_TYPE impersonationType;
+ __MINGW_EXTENSION union {
+ IKEEXT_PRESHARED_KEY_AUTHENTICATION0 *presharedKey;
+ IKEEXT_CERTIFICATE_CREDENTIAL0 *certificate;
+ IKEEXT_NAME_CREDENTIAL0 *name;
+ ; // case(IKEEXT_ANONYMOUS)
+ };
+} IKEEXT_CREDENTIAL0;
+
+typedef struct IKEEXT_CREDENTIAL_PAIR0_ {
+ IKEEXT_CREDENTIAL0 localCredentials;
+ IKEEXT_CREDENTIAL0 peerCredentials;
+} IKEEXT_CREDENTIAL_PAIR0;
+
+typedef struct IKEEXT_CREDENTIALS0_ {
+ UINT32 numCredentials;
+ IKEEXT_CREDENTIAL_PAIR0 *credentials;
+} IKEEXT_CREDENTIALS0;
+
+typedef struct IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS0_ {
+ UINT32 currentActiveMainModes;
+ UINT32 totalMainModesStarted;
+ UINT32 totalSuccessfulMainModes;
+ UINT32 totalFailedMainModes;
+ UINT32 totalResponderMainModes;
+ UINT32 currentNewResponderMainModes;
+ UINT32 currentActiveQuickModes;
+ UINT32 totalQuickModesStarted;
+ UINT32 totalSuccessfulQuickModes;
+ UINT32 totalFailedQuickModes;
+ UINT32 totalAcquires;
+ UINT32 totalReinitAcquires;
+ UINT32 currentActiveExtendedModes;
+ UINT32 totalExtendedModesStarted;
+ UINT32 totalSuccessfulExtendedModes;
+ UINT32 totalFailedExtendedModes;
+ UINT32 totalImpersonationExtendedModes;
+ UINT32 totalImpersonationMainModes;
+} IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS0;
+
+#define IKEEXT_ERROR_CODE_COUNT (ERROR_IPSEC_IKE_NEG_STATUS_END - ERROR_IPSEC_IKE_NEG_STATUS_BEGIN) /* Should be 84 */
+
+typedef struct IKEEXT_KEYMODULE_STATISTICS0_ {
+ IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS0 v4Statistics;
+ IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS0 v6Statistics;
+ UINT32 errorFrequencyTable[IKEEXT_ERROR_CODE_COUNT];
+ UINT32 mainModeNegotiationTime;
+ UINT32 quickModeNegotiationTime;
+ UINT32 extendedModeNegotiationTime;
+} IKEEXT_KEYMODULE_STATISTICS0;
+
+typedef struct IKEEXT_NAME_CREDENTIAL0_ {
+ wchar_t *principalName;
+} IKEEXT_NAME_CREDENTIAL0;
+
+typedef struct IKEEXT_SA_DETAILS0_ {
+ UINT64 saId;
+ IKEEXT_KEY_MODULE_TYPE keyModuleType;
+ FWP_IP_VERSION ipVersion;
+ __MINGW_EXTENSION union {
+ IPSEC_V4_UDP_ENCAPSULATION0 *v4UdpEncapsulation;
+ ; // case(FWP_IP_VERSION_V6)
+ };
+ IKEEXT_TRAFFIC0 ikeTraffic;
+ IKEEXT_PROPOSAL0 ikeProposal;
+ IKEEXT_COOKIE_PAIR0 cookiePair;
+ IKEEXT_CREDENTIALS0 ikeCredentials;
+ GUID ikePolicyKey;
+ UINT64 virtualIfTunnelId;
+} IKEEXT_SA_DETAILS0;
+
+typedef struct IKEEXT_SA_ENUM_TEMPLATE0_ {
+ FWP_CONDITION_VALUE0 localSubNet;
+ FWP_CONDITION_VALUE0 remoteSubNet;
+ FWP_BYTE_BLOB localMainModeCertHash;
+} IKEEXT_SA_ENUM_TEMPLATE0;
+
+typedef struct IKEEXT_STATISTICS0_ {
+ IKEEXT_KEYMODULE_STATISTICS0 ikeStatistics;
+ IKEEXT_KEYMODULE_STATISTICS0 authipStatistics;
+ IKEEXT_COMMON_STATISTICS0 commonStatistics;
+} IKEEXT_STATISTICS0;
+
+typedef struct IKEEXT_TRAFFIC0_ {
+ FWP_IP_VERSION ipVersion;
+ __MINGW_EXTENSION union {
+ UINT32 localV4Address;
+ UINT8 localV6Address[16];
+ };
+ __MINGW_EXTENSION union {
+ UINT32 remoteV4Address;
+ UINT8 remoteV6Address[16];
+ };
+ UINT64 authIpFilterId;
+} IKEEXT_TRAFFIC0;
+
+#ifdef __cplusplus
+}
+#endif
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_IKETYPES*/
diff --git a/mingw-w64-headers/include/imapi2.idl b/mingw-w64-headers/include/imapi2.idl
new file mode 100644
index 0000000..ce3d486
--- /dev/null
+++ b/mingw-w64-headers/include/imapi2.idl
@@ -0,0 +1,1908 @@
+/* Automated generated idl file <imapi2>.
+ * Generated by genidl tool (c) 2009, 2010 Mingw-w64 project.
+ */
+
+#include <windows.h>
+
+/* Interface forward declarations. */
+interface DDiscMaster2Events;
+interface DWriteEngine2Events;
+interface DDiscFormat2EraseEvents;
+interface DDiscFormat2DataEvents;
+interface DDiscFormat2TrackAtOnceEvents;
+interface DDiscFormat2RawCDEvents;
+interface IStream;
+interface ISequentialStream;
+interface IBurnVerification;
+interface IConnectionPointContainer;
+interface IEnumConnectionPoints;
+interface IConnectionPoint;
+interface IEnumConnections;
+interface IDiscRecorder2Ex;
+interface IStreamPseudoRandomBased;
+interface IStreamConcatenate;
+interface IStreamInterleave;
+interface IMultisessionSequential;
+interface IMultisession;
+
+/* Structure forward declarations. */
+struct _LARGE_INTEGER;
+struct _ULARGE_INTEGER;
+struct tagSTATSTG;
+struct _FILETIME;
+struct tagCONNECTDATA;
+
+/* Union record forward declarations. */
+dispinterface IWriteEngine2EventArgs;
+dispinterface IDiscFormat2DataEventArgs;
+dispinterface IDiscFormat2TrackAtOnceEventArgs;
+dispinterface IDiscFormat2RawCDEventArgs;
+dispinterface IWriteSpeedDescriptor;
+dispinterface IRawCDImageCreator;
+dispinterface IRawCDImageTrackInfo;
+dispinterface IDiscMaster2;
+dispinterface IDiscRecorder2;
+dispinterface IWriteEngine2;
+dispinterface IDiscFormat2Erase;
+dispinterface IDiscFormat2;
+dispinterface IDiscFormat2Data;
+dispinterface IDiscFormat2TrackAtOnce;
+dispinterface IDiscFormat2RawCD;
+
+/* Union record forward declarations. */
+coclass MsftDiscMaster2;
+coclass MsftDiscRecorder2;
+coclass MsftWriteEngine2;
+coclass MsftDiscFormat2Erase;
+coclass MsftDiscFormat2Data;
+coclass MsftDiscFormat2TrackAtOnce;
+coclass MsftDiscFormat2RawCD;
+coclass MsftStreamZero;
+coclass MsftStreamPrng001;
+coclass MsftStreamConcatenate;
+coclass MsftStreamInterleave;
+coclass MsftWriteSpeedDescriptor;
+coclass MsftMultisessionSequential;
+coclass MsftRawCDImageCreator;
+
+/* Enumeration declarations. */
+[
+ helpstring("The current action being performed for the data write")
+]
+enum _IMAPI_FORMAT2_DATA_WRITE_ACTION
+{
+ IMAPI_FORMAT2_DATA_WRITE_ACTION_VALIDATING_MEDIA = (int) 201326592,
+ IMAPI_FORMAT2_DATA_WRITE_ACTION_FORMATTING_MEDIA = (int) 201326593,
+ IMAPI_FORMAT2_DATA_WRITE_ACTION_INITIALIZING_HARDWARE = (int) 201326594,
+ IMAPI_FORMAT2_DATA_WRITE_ACTION_CALIBRATING_POWER = (int) 201326595,
+ IMAPI_FORMAT2_DATA_WRITE_ACTION_WRITING_DATA = (int) 201326596,
+ IMAPI_FORMAT2_DATA_WRITE_ACTION_FINALIZATION = (int) 201326597,
+ IMAPI_FORMAT2_DATA_WRITE_ACTION_COMPLETED = (int) 201326598,
+ IMAPI_FORMAT2_DATA_WRITE_ACTION_VERIFYING = (int) 201326599
+};
+[
+ helpstring("Current action when writing to CD in Track-at-Once mode")
+]
+enum _IMAPI_FORMAT2_TAO_WRITE_ACTION
+{
+ IMAPI_FORMAT2_TAO_WRITE_ACTION_UNKNOWN = (int) 201326592,
+ IMAPI_FORMAT2_TAO_WRITE_ACTION_PREPARING = (int) 201326593,
+ IMAPI_FORMAT2_TAO_WRITE_ACTION_WRITING = (int) 201326594,
+ IMAPI_FORMAT2_TAO_WRITE_ACTION_FINISHING = (int) 201326595,
+ IMAPI_FORMAT2_TAO_WRITE_ACTION_VERIFYING = (int) 201326596
+};
+[
+ helpstring("Current action when writing to the CD in Disc-At-Once (RAW) mode")
+]
+enum _IMAPI_FORMAT2_RAW_CD_WRITE_ACTION
+{
+ IMAPI_FORMAT2_RAW_CD_WRITE_ACTION_UNKNOWN = (int) 201326592,
+ IMAPI_FORMAT2_RAW_CD_WRITE_ACTION_PREPARING = (int) 201326593,
+ IMAPI_FORMAT2_RAW_CD_WRITE_ACTION_WRITING = (int) 201326594,
+ IMAPI_FORMAT2_RAW_CD_WRITE_ACTION_FINISHING = (int) 201326595
+};
+[
+ helpstring("Physical type of the optical media")
+]
+enum _IMAPI_MEDIA_PHYSICAL_TYPE
+{
+ IMAPI_MEDIA_TYPE_UNKNOWN = (int) 201326592,
+ IMAPI_MEDIA_TYPE_CDROM = (int) 201326593,
+ IMAPI_MEDIA_TYPE_CDR = (int) 201326594,
+ IMAPI_MEDIA_TYPE_CDRW = (int) 201326595,
+ IMAPI_MEDIA_TYPE_DVDROM = (int) 201326596,
+ IMAPI_MEDIA_TYPE_DVDRAM = (int) 201326597,
+ IMAPI_MEDIA_TYPE_DVDPLUSR = (int) 201326598,
+ IMAPI_MEDIA_TYPE_DVDPLUSRW = (int) 201326599,
+ IMAPI_MEDIA_TYPE_DVDPLUSR_DUALLAYER = (int) 201326600,
+ IMAPI_MEDIA_TYPE_DVDDASHR = (int) 201326601,
+ IMAPI_MEDIA_TYPE_DVDDASHRW = (int) 201326602,
+ IMAPI_MEDIA_TYPE_DVDDASHR_DUALLAYER = (int) 201326603,
+ IMAPI_MEDIA_TYPE_DISK = (int) 201326604,
+ IMAPI_MEDIA_TYPE_DVDPLUSRW_DUALLAYER = (int) 201326605,
+ IMAPI_MEDIA_TYPE_HDDVDROM = (int) 201326606,
+ IMAPI_MEDIA_TYPE_HDDVDR = (int) 201326607,
+ IMAPI_MEDIA_TYPE_HDDVDRAM = (int) 201326608,
+ IMAPI_MEDIA_TYPE_BDROM = (int) 201326609,
+ IMAPI_MEDIA_TYPE_BDR = (int) 201326610,
+ IMAPI_MEDIA_TYPE_BDRE = (int) 201326611,
+ IMAPI_MEDIA_TYPE_MAX = (int) 201326611
+};
+[
+ helpstring("The CD sector type for provided data")
+]
+enum _IMAPI_CD_SECTOR_TYPE
+{
+ IMAPI_CD_SECTOR_AUDIO = (int) 201326592,
+ IMAPI_CD_SECTOR_MODE_ZERO = (int) 201326593,
+ IMAPI_CD_SECTOR_MODE1 = (int) 201326594,
+ IMAPI_CD_SECTOR_MODE2FORM0 = (int) 201326595,
+ IMAPI_CD_SECTOR_MODE2FORM1 = (int) 201326596,
+ IMAPI_CD_SECTOR_MODE2FORM2 = (int) 201326597,
+ IMAPI_CD_SECTOR_MODE1RAW = (int) 201326598,
+ IMAPI_CD_SECTOR_MODE2FORM0RAW = (int) 201326599,
+ IMAPI_CD_SECTOR_MODE2FORM1RAW = (int) 201326600,
+ IMAPI_CD_SECTOR_MODE2FORM2RAW = (int) 201326601
+};
+[
+ helpstring("Data sector type to use when writing to CD in Disc-At-Once (RAW) mode")
+]
+enum _IMAPI_FORMAT2_RAW_CD_DATA_SECTOR_TYPE
+{
+ IMAPI_FORMAT2_RAW_CD_SUBCODE_PQ_ONLY = (int) 201326593,
+ IMAPI_FORMAT2_RAW_CD_SUBCODE_IS_COOKED = (int) 201326594,
+ IMAPI_FORMAT2_RAW_CD_SUBCODE_IS_RAW = (int) 201326595
+};
+[
+ helpstring("The audio track digital copy setting")
+]
+enum _IMAPI_CD_TRACK_DIGITAL_COPY_SETTING
+{
+ IMAPI_CD_TRACK_DIGITAL_COPY_PERMITTED = (int) 201326592,
+ IMAPI_CD_TRACK_DIGITAL_COPY_PROHIBITED = (int) 201326593,
+ IMAPI_CD_TRACK_DIGITAL_COPY_SCMS = (int) 201326594
+};
+[
+ helpstring("Burn verification level")
+]
+enum _IMAPI_BURN_VERIFICATION_LEVEL
+{
+ IMAPI_BURN_VERIFICATION_NONE = (int) 201326592,
+ IMAPI_BURN_VERIFICATION_QUICK = (int) 201326593,
+ IMAPI_BURN_VERIFICATION_FULL = (int) 201326594
+};
+[
+ helpstring("Address type provided for reading track information")
+]
+enum _IMAPI_READ_TRACK_ADDRESS_TYPE
+{
+ IMAPI_READ_TRACK_ADDRESS_TYPE_LBA = (int) 201326592,
+ IMAPI_READ_TRACK_ADDRESS_TYPE_TRACK = (int) 201326593,
+ IMAPI_READ_TRACK_ADDRESS_TYPE_SESSION = (int) 201326594
+};
+[
+ helpstring("Type of the feature page data")
+]
+enum _IMAPI_FEATURE_PAGE_TYPE
+{
+ IMAPI_FEATURE_PAGE_TYPE_PROFILE_LIST = (int) 201326592,
+ IMAPI_FEATURE_PAGE_TYPE_CORE = (int) 201326593,
+ IMAPI_FEATURE_PAGE_TYPE_MORPHING = (int) 201326594,
+ IMAPI_FEATURE_PAGE_TYPE_REMOVABLE_MEDIUM = (int) 201326595,
+ IMAPI_FEATURE_PAGE_TYPE_WRITE_PROTECT = (int) 201326596,
+ IMAPI_FEATURE_PAGE_TYPE_RANDOMLY_READABLE = (int) 201326608,
+ IMAPI_FEATURE_PAGE_TYPE_CD_MULTIREAD = (int) 201326621,
+ IMAPI_FEATURE_PAGE_TYPE_CD_READ = (int) 201326622,
+ IMAPI_FEATURE_PAGE_TYPE_DVD_READ = (int) 201326623,
+ IMAPI_FEATURE_PAGE_TYPE_RANDOMLY_WRITABLE = (int) 201326624,
+ IMAPI_FEATURE_PAGE_TYPE_INCREMENTAL_STREAMING_WRITABLE = (int) 201326625,
+ IMAPI_FEATURE_PAGE_TYPE_SECTOR_ERASABLE = (int) 201326626,
+ IMAPI_FEATURE_PAGE_TYPE_FORMATTABLE = (int) 201326627,
+ IMAPI_FEATURE_PAGE_TYPE_HARDWARE_DEFECT_MANAGEMENT = (int) 201326628,
+ IMAPI_FEATURE_PAGE_TYPE_WRITE_ONCE = (int) 201326629,
+ IMAPI_FEATURE_PAGE_TYPE_RESTRICTED_OVERWRITE = (int) 201326630,
+ IMAPI_FEATURE_PAGE_TYPE_CDRW_CAV_WRITE = (int) 201326631,
+ IMAPI_FEATURE_PAGE_TYPE_MRW = (int) 201326632,
+ IMAPI_FEATURE_PAGE_TYPE_ENHANCED_DEFECT_REPORTING = (int) 201326633,
+ IMAPI_FEATURE_PAGE_TYPE_DVD_PLUS_RW = (int) 201326634,
+ IMAPI_FEATURE_PAGE_TYPE_DVD_PLUS_R = (int) 201326635,
+ IMAPI_FEATURE_PAGE_TYPE_RIGID_RESTRICTED_OVERWRITE = (int) 201326636,
+ IMAPI_FEATURE_PAGE_TYPE_CD_TRACK_AT_ONCE = (int) 201326637,
+ IMAPI_FEATURE_PAGE_TYPE_CD_MASTERING = (int) 201326638,
+ IMAPI_FEATURE_PAGE_TYPE_DVD_DASH_WRITE = (int) 201326639,
+ IMAPI_FEATURE_PAGE_TYPE_DOUBLE_DENSITY_CD_READ = (int) 201326640,
+ IMAPI_FEATURE_PAGE_TYPE_DOUBLE_DENSITY_CD_R_WRITE = (int) 201326641,
+ IMAPI_FEATURE_PAGE_TYPE_DOUBLE_DENSITY_CD_RW_WRITE = (int) 201326642,
+ IMAPI_FEATURE_PAGE_TYPE_LAYER_JUMP_RECORDING = (int) 201326643,
+ IMAPI_FEATURE_PAGE_TYPE_CD_RW_MEDIA_WRITE_SUPPORT = (int) 201326647,
+ IMAPI_FEATURE_PAGE_TYPE_BD_PSEUDO_OVERWRITE = (int) 201326648,
+ IMAPI_FEATURE_PAGE_TYPE_DVD_PLUS_R_DUAL_LAYER = (int) 201326651,
+ IMAPI_FEATURE_PAGE_TYPE_BD_READ = (int) 201326656,
+ IMAPI_FEATURE_PAGE_TYPE_BD_WRITE = (int) 201326657,
+ IMAPI_FEATURE_PAGE_TYPE_HD_DVD_READ = (int) 201326672,
+ IMAPI_FEATURE_PAGE_TYPE_HD_DVD_WRITE = (int) 201326673,
+ IMAPI_FEATURE_PAGE_TYPE_POWER_MANAGEMENT = (int) 201326848,
+ IMAPI_FEATURE_PAGE_TYPE_SMART = (int) 201326849,
+ IMAPI_FEATURE_PAGE_TYPE_EMBEDDED_CHANGER = (int) 201326850,
+ IMAPI_FEATURE_PAGE_TYPE_CD_ANALOG_PLAY = (int) 201326851,
+ IMAPI_FEATURE_PAGE_TYPE_MICROCODE_UPDATE = (int) 201326852,
+ IMAPI_FEATURE_PAGE_TYPE_TIMEOUT = (int) 201326853,
+ IMAPI_FEATURE_PAGE_TYPE_DVD_CSS = (int) 201326854,
+ IMAPI_FEATURE_PAGE_TYPE_REAL_TIME_STREAMING = (int) 201326855,
+ IMAPI_FEATURE_PAGE_TYPE_LOGICAL_UNIT_SERIAL_NUMBER = (int) 201326856,
+ IMAPI_FEATURE_PAGE_TYPE_MEDIA_SERIAL_NUMBER = (int) 201326857,
+ IMAPI_FEATURE_PAGE_TYPE_DISC_CONTROL_BLOCKS = (int) 201326858,
+ IMAPI_FEATURE_PAGE_TYPE_DVD_CPRM = (int) 201326859,
+ IMAPI_FEATURE_PAGE_TYPE_FIRMWARE_INFORMATION = (int) 201326860,
+ IMAPI_FEATURE_PAGE_TYPE_AACS = (int) 201326861,
+ IMAPI_FEATURE_PAGE_TYPE_VCPS = (int) 201326864
+};
+[
+ helpstring("Type of the mode page data")
+]
+enum _IMAPI_MODE_PAGE_TYPE
+{
+ IMAPI_MODE_PAGE_TYPE_READ_WRITE_ERROR_RECOVERY = (int) 201326593,
+ IMAPI_MODE_PAGE_TYPE_MRW = (int) 201326595,
+ IMAPI_MODE_PAGE_TYPE_WRITE_PARAMETERS = (int) 201326597,
+ IMAPI_MODE_PAGE_TYPE_CACHING = (int) 201326600,
+ IMAPI_MODE_PAGE_TYPE_INFORMATIONAL_EXCEPTIONS = (int) 201326620,
+ IMAPI_MODE_PAGE_TYPE_TIMEOUT_AND_PROTECT = (int) 201326621,
+ IMAPI_MODE_PAGE_TYPE_POWER_CONDITION = (int) 201326618,
+ IMAPI_MODE_PAGE_TYPE_LEGACY_CAPABILITIES = (int) 201326634
+};
+[
+ helpstring("Mode page data type to request")
+]
+enum _IMAPI_MODE_PAGE_REQUEST_TYPE
+{
+ IMAPI_MODE_PAGE_REQUEST_TYPE_CURRENT_VALUES = (int) 201326592,
+ IMAPI_MODE_PAGE_REQUEST_TYPE_CHANGEABLE_VALUES = (int) 201326593,
+ IMAPI_MODE_PAGE_REQUEST_TYPE_DEFAULT_VALUES = (int) 201326594,
+ IMAPI_MODE_PAGE_REQUEST_TYPE_SAVED_VALUES = (int) 201326595
+};
+[
+ helpstring("Type of the profile in feature page data")
+]
+enum _IMAPI_PROFILE_TYPE
+{
+ IMAPI_PROFILE_TYPE_INVALID = (int) 201326592,
+ IMAPI_PROFILE_TYPE_NON_REMOVABLE_DISK = (int) 201326593,
+ IMAPI_PROFILE_TYPE_REMOVABLE_DISK = (int) 201326594,
+ IMAPI_PROFILE_TYPE_MO_ERASABLE = (int) 201326595,
+ IMAPI_PROFILE_TYPE_MO_WRITE_ONCE = (int) 201326596,
+ IMAPI_PROFILE_TYPE_AS_MO = (int) 201326597,
+ IMAPI_PROFILE_TYPE_CDROM = (int) 201326600,
+ IMAPI_PROFILE_TYPE_CD_RECORDABLE = (int) 201326601,
+ IMAPI_PROFILE_TYPE_CD_REWRITABLE = (int) 201326602,
+ IMAPI_PROFILE_TYPE_DVDROM = (int) 201326608,
+ IMAPI_PROFILE_TYPE_DVD_DASH_RECORDABLE = (int) 201326609,
+ IMAPI_PROFILE_TYPE_DVD_RAM = (int) 201326610,
+ IMAPI_PROFILE_TYPE_DVD_DASH_REWRITABLE = (int) 201326611,
+ IMAPI_PROFILE_TYPE_DVD_DASH_RW_SEQUENTIAL = (int) 201326612,
+ IMAPI_PROFILE_TYPE_DVD_DASH_R_DUAL_SEQUENTIAL = (int) 201326613,
+ IMAPI_PROFILE_TYPE_DVD_DASH_R_DUAL_LAYER_JUMP = (int) 201326614,
+ IMAPI_PROFILE_TYPE_DVD_PLUS_RW = (int) 201326618,
+ IMAPI_PROFILE_TYPE_DVD_PLUS_R = (int) 201326619,
+ IMAPI_PROFILE_TYPE_DDCDROM = (int) 201326624,
+ IMAPI_PROFILE_TYPE_DDCD_RECORDABLE = (int) 201326625,
+ IMAPI_PROFILE_TYPE_DDCD_REWRITABLE = (int) 201326626,
+ IMAPI_PROFILE_TYPE_DVD_PLUS_RW_DUAL = (int) 201326634,
+ IMAPI_PROFILE_TYPE_DVD_PLUS_R_DUAL = (int) 201326635,
+ IMAPI_PROFILE_TYPE_BD_ROM = (int) 201326656,
+ IMAPI_PROFILE_TYPE_BD_R_SEQUENTIAL = (int) 201326657,
+ IMAPI_PROFILE_TYPE_BD_R_RANDOM_RECORDING = (int) 201326658,
+ IMAPI_PROFILE_TYPE_BD_REWRITABLE = (int) 201326659,
+ IMAPI_PROFILE_TYPE_HD_DVD_ROM = (int) 201326672,
+ IMAPI_PROFILE_TYPE_HD_DVD_RECORDABLE = (int) 201326673,
+ IMAPI_PROFILE_TYPE_HD_DVD_RAM = (int) 201326674,
+ IMAPI_PROFILE_TYPE_NON_STANDARD = (int) 201392127
+};
+[
+ helpstring("Set of flags to indicate current media state")
+]
+enum _IMAPI_FORMAT2_DATA_MEDIA_STATE
+{
+ IMAPI_FORMAT2_DATA_MEDIA_STATE_UNKNOWN = (int) 201326592,
+ IMAPI_FORMAT2_DATA_MEDIA_STATE_INFORMATIONAL_MASK = (int) 201326607,
+ IMAPI_FORMAT2_DATA_MEDIA_STATE_UNSUPPORTED_MASK = (int) 201391104,
+ IMAPI_FORMAT2_DATA_MEDIA_STATE_OVERWRITE_ONLY = (int) 201326593,
+ IMAPI_FORMAT2_DATA_MEDIA_STATE_RANDOMLY_WRITABLE = (int) 201326593,
+ IMAPI_FORMAT2_DATA_MEDIA_STATE_BLANK = (int) 201326594,
+ IMAPI_FORMAT2_DATA_MEDIA_STATE_APPENDABLE = (int) 201326596,
+ IMAPI_FORMAT2_DATA_MEDIA_STATE_FINAL_SESSION = (int) 201326600,
+ IMAPI_FORMAT2_DATA_MEDIA_STATE_DAMAGED = (int) 201327616,
+ IMAPI_FORMAT2_DATA_MEDIA_STATE_ERASE_REQUIRED = (int) 201328640,
+ IMAPI_FORMAT2_DATA_MEDIA_STATE_NON_EMPTY_SESSION = (int) 201330688,
+ IMAPI_FORMAT2_DATA_MEDIA_STATE_WRITE_PROTECTED = (int) 201334784,
+ IMAPI_FORMAT2_DATA_MEDIA_STATE_FINALIZED = (int) 201342976,
+ IMAPI_FORMAT2_DATA_MEDIA_STATE_UNSUPPORTED_MEDIA = (int) 201359360
+};
+[
+ helpstring("Detected write protection type of the media")
+]
+enum _IMAPI_MEDIA_WRITE_PROTECT_STATE
+{
+ IMAPI_WRITEPROTECTED_UNTIL_POWERDOWN = (int) 201326593,
+ IMAPI_WRITEPROTECTED_BY_CARTRIDGE = (int) 201326594,
+ IMAPI_WRITEPROTECTED_BY_MEDIA_SPECIFIC_REASON = (int) 201326596,
+ IMAPI_WRITEPROTECTED_BY_SOFTWARE_WRITE_PROTECT = (int) 201326600,
+ IMAPI_WRITEPROTECTED_BY_DISC_CONTROL_BLOCK = (int) 201326608,
+ IMAPI_WRITEPROTECTED_READ_ONLY_MEDIA = (int) 201342976
+};
+
+/* Structure/union declarations. */
+struct _LARGE_INTEGER
+{
+ LONGLONG QuadPart;
+};
+struct _ULARGE_INTEGER
+{
+ ULONGLONG QuadPart;
+};
+struct tagSTATSTG
+{
+ LPWSTR pwcsName;
+ UINT type;
+ struct _ULARGE_INTEGER cbSize;
+ struct _FILETIME mtime;
+ struct _FILETIME ctime;
+ struct _FILETIME atime;
+ UINT grfMode;
+ UINT grfLocksSupported;
+ struct GUID clsid;
+ UINT grfStateBits;
+ UINT reserved;
+};
+struct _FILETIME
+{
+ UINT dwLowDateTime;
+ UINT dwHighDateTime;
+};
+struct tagCONNECTDATA
+{
+ IUnknown * pUnk;
+ UINT dwCookie;
+};
+
+/* Type definitions. */
+[
+ helpstring("The current action being performed for the data write")
+]
+typedef enum _IMAPI_FORMAT2_DATA_WRITE_ACTION IMAPI_FORMAT2_DATA_WRITE_ACTION;
+[
+ helpstring("Current action when writing to CD in Track-at-Once mode")
+]
+typedef enum _IMAPI_FORMAT2_TAO_WRITE_ACTION IMAPI_FORMAT2_TAO_WRITE_ACTION;
+[
+ helpstring("Current action when writing to the CD in Disc-At-Once (RAW) mode")
+]
+typedef enum _IMAPI_FORMAT2_RAW_CD_WRITE_ACTION IMAPI_FORMAT2_RAW_CD_WRITE_ACTION;
+[
+ helpstring("Physical type of the optical media")
+]
+typedef enum _IMAPI_MEDIA_PHYSICAL_TYPE IMAPI_MEDIA_PHYSICAL_TYPE;
+[
+ helpstring("The CD sector type for provided data")
+]
+typedef enum _IMAPI_CD_SECTOR_TYPE IMAPI_CD_SECTOR_TYPE;
+[
+ helpstring("Data sector type to use when writing to CD in Disc-At-Once (RAW) mode")
+]
+typedef enum _IMAPI_FORMAT2_RAW_CD_DATA_SECTOR_TYPE IMAPI_FORMAT2_RAW_CD_DATA_SECTOR_TYPE;
+[
+ helpstring("The audio track digital copy setting")
+]
+typedef enum _IMAPI_CD_TRACK_DIGITAL_COPY_SETTING IMAPI_CD_TRACK_DIGITAL_COPY_SETTING;
+[
+ helpstring("Burn verification level")
+]
+typedef enum _IMAPI_BURN_VERIFICATION_LEVEL IMAPI_BURN_VERIFICATION_LEVEL;
+[
+ helpstring("Address type provided for reading track information")
+]
+typedef enum _IMAPI_READ_TRACK_ADDRESS_TYPE IMAPI_READ_TRACK_ADDRESS_TYPE;
+[
+ helpstring("Type of the feature page data")
+]
+typedef enum _IMAPI_FEATURE_PAGE_TYPE IMAPI_FEATURE_PAGE_TYPE;
+[
+ helpstring("Type of the mode page data")
+]
+typedef enum _IMAPI_MODE_PAGE_TYPE IMAPI_MODE_PAGE_TYPE;
+[
+ helpstring("Mode page data type to request")
+]
+typedef enum _IMAPI_MODE_PAGE_REQUEST_TYPE IMAPI_MODE_PAGE_REQUEST_TYPE;
+[
+ helpstring("Type of the profile in feature page data")
+]
+typedef enum _IMAPI_PROFILE_TYPE IMAPI_PROFILE_TYPE;
+[
+ helpstring("Set of flags to indicate current media state")
+]
+typedef enum _IMAPI_FORMAT2_DATA_MEDIA_STATE IMAPI_FORMAT2_DATA_MEDIA_STATE;
+[
+ helpstring("Detected write protection type of the media")
+]
+typedef enum _IMAPI_MEDIA_WRITE_PROTECT_STATE IMAPI_MEDIA_WRITE_PROTECT_STATE;
+
+[
+ uuid(2735412F-7F64-5B0F-8F00-5D77AFBE261E),
+ version(1.0),
+ helpstring("Microsoft IMAPI2 Base Functionality")
+]
+library imapi2
+{
+ importlib("stdole2.tlb");
+
+ /* CoClass declarations. */
+ [
+ uuid(2735412E-7F64-5B0F-8F00-5D77AFBE261E),
+ helpstring("Microsoft IMAPIv2 Disc Master"),
+ cancreate
+ ]
+ coclass MsftDiscMaster2
+ {
+ dispinterface IDiscMaster2;
+ interface IConnectionPointContainer;
+ interface DDiscMaster2Events;
+ };
+ [
+ uuid(2735412D-7F64-5B0F-8F00-5D77AFBE261E),
+ helpstring("Microsoft IMAPIv2 Disc Recorder"),
+ cancreate
+ ]
+ coclass MsftDiscRecorder2
+ {
+ dispinterface IDiscRecorder2;
+ interface IDiscRecorder2Ex;
+ };
+ [
+ uuid(2735412C-7F64-5B0F-8F00-5D77AFBE261E),
+ helpstring("Microsoft IMAPIv2 CD Write Engine"),
+ cancreate
+ ]
+ coclass MsftWriteEngine2
+ {
+ dispinterface IWriteEngine2;
+ interface IConnectionPointContainer;
+ interface DWriteEngine2Events;
+ };
+ [
+ uuid(2735412B-7F64-5B0F-8F00-5D77AFBE261E),
+ helpstring("Microsoft IMAPIv2 Media Erase/Blank"),
+ cancreate
+ ]
+ coclass MsftDiscFormat2Erase
+ {
+ dispinterface IDiscFormat2Erase;
+ interface IConnectionPointContainer;
+ interface DDiscFormat2EraseEvents;
+ };
+ [
+ uuid(2735412A-7F64-5B0F-8F00-5D77AFBE261E),
+ helpstring("Microsoft IMAPIv2 Data Writer"),
+ cancreate
+ ]
+ coclass MsftDiscFormat2Data
+ {
+ dispinterface IDiscFormat2Data;
+ interface IBurnVerification;
+ interface IConnectionPointContainer;
+ interface DDiscFormat2DataEvents;
+ };
+ [
+ uuid(27354129-7F64-5B0F-8F00-5D77AFBE261E),
+ helpstring("Microsoft IMAPIv2 Track-at-Once Audio CD Writer"),
+ cancreate
+ ]
+ coclass MsftDiscFormat2TrackAtOnce
+ {
+ dispinterface IDiscFormat2TrackAtOnce;
+ interface IBurnVerification;
+ interface IConnectionPointContainer;
+ interface DDiscFormat2TrackAtOnceEvents;
+ };
+ [
+ uuid(27354128-7F64-5B0F-8F00-5D77AFBE261E),
+ helpstring("Microsoft IMAPIv2 Disc-at-Once RAW CD Image Writer"),
+ cancreate
+ ]
+ coclass MsftDiscFormat2RawCD
+ {
+ dispinterface IDiscFormat2RawCD;
+ interface IConnectionPointContainer;
+ interface DDiscFormat2RawCDEvents;
+ };
+ [
+ uuid(27354127-7F64-5B0F-8F00-5D77AFBE261E),
+ helpstring("Microsoft IMAPIv2 /dev/zero Stream "),
+ cancreate
+ ]
+ coclass MsftStreamZero
+ {
+ interface IStream;
+ };
+ [
+ uuid(27354126-7F64-5B0F-8F00-5D77AFBE261E),
+ helpstring("Microsoft IMAPIv2 PRNG based Stream (LCG: 0x19660D, 0x3C6EF35F)"),
+ cancreate
+ ]
+ coclass MsftStreamPrng001
+ {
+ interface IStreamPseudoRandomBased;
+ };
+ [
+ uuid(27354125-7F64-5B0F-8F00-5D77AFBE261E),
+ helpstring("Microsoft IMAPIv2 concatenation stream"),
+ cancreate
+ ]
+ coclass MsftStreamConcatenate
+ {
+ interface IStreamConcatenate;
+ };
+ [
+ uuid(27354124-7F64-5B0F-8F00-5D77AFBE261E),
+ helpstring("Microsoft IMAPIv2 interleave stream"),
+ cancreate
+ ]
+ coclass MsftStreamInterleave
+ {
+ interface IStreamInterleave;
+ };
+ [
+ uuid(27354123-7F64-5B0F-8F00-5D77AFBE261E),
+ helpstring("Microsoft IMAPIv2 Write Speed Descriptor")
+ ]
+ coclass MsftWriteSpeedDescriptor
+ {
+ dispinterface IWriteSpeedDescriptor;
+ };
+ [
+ uuid(27354122-7F64-5B0F-8F00-5D77AFBE261E),
+ helpstring("Microsoft IMAPIv2 sequential Multi-session")
+ ]
+ coclass MsftMultisessionSequential
+ {
+ interface IMultisessionSequential;
+ };
+ [
+ uuid(25983561-9D65-49CE-B335-40630D901227),
+ helpstring("Microsoft IMAPIv2 RAW CD Image Creator"),
+ cancreate
+ ]
+ coclass MsftRawCDImageCreator
+ {
+ dispinterface IRawCDImageCreator;
+ };
+
+ /* Dispatch interface declarations. */
+ [
+ uuid(27354136-7F64-5B0F-8F00-5D77AFBE261E),
+ helpstring("CD Write Engine"),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IWriteEngine2EventArgs : IDispatch
+ {
+ [id(256), propget]
+ HRESULT __stdcall StartLba (
+ [out retval] long *value
+ );
+ [propget]
+ HRESULT __stdcall SectorCount (
+ [out retval] long *value
+ );
+ [propget]
+ HRESULT __stdcall LastReadLba (
+ [out retval] long *value
+ );
+ [propget]
+ HRESULT __stdcall LastWrittenLba (
+ [out retval] long *value
+ );
+ [id(262), propget]
+ HRESULT __stdcall TotalSystemBuffer (
+ [out retval] long *value
+ );
+ [propget]
+ HRESULT __stdcall UsedSystemBuffer (
+ [out retval] long *value
+ );
+ [propget]
+ HRESULT __stdcall FreeSystemBuffer (
+ [out retval] long *value
+ );
+ };
+ [
+ uuid(2735413D-7F64-5B0F-8F00-5D77AFBE261E),
+ helpstring("Track-at-once Data Writer"),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IDiscFormat2DataEventArgs : IWriteEngine2EventArgs
+ {
+ [id(768), propget]
+ HRESULT __stdcall ElapsedTime (
+ [out retval] long *value
+ );
+ [propget]
+ HRESULT __stdcall RemainingTime (
+ [out retval] long *value
+ );
+ [propget]
+ HRESULT __stdcall TotalTime (
+ [out retval] long *value
+ );
+ [propget]
+ HRESULT __stdcall CurrentAction (
+ [out retval] IMAPI_FORMAT2_DATA_WRITE_ACTION *value
+ );
+ };
+ [
+ uuid(27354140-7F64-5B0F-8F00-5D77AFBE261E),
+ helpstring("CD Track-at-once Audio Writer Event Arguments"),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IDiscFormat2TrackAtOnceEventArgs : IWriteEngine2EventArgs
+ {
+ [id(768), propget]
+ HRESULT __stdcall CurrentTrackNumber (
+ [out retval] long *value
+ );
+ [propget]
+ HRESULT __stdcall CurrentAction (
+ [out retval] IMAPI_FORMAT2_TAO_WRITE_ACTION *value
+ );
+ [propget]
+ HRESULT __stdcall ElapsedTime (
+ [out retval] long *value
+ );
+ [propget]
+ HRESULT __stdcall RemainingTime (
+ [out retval] long *value
+ );
+ };
+ [
+ uuid(27354143-7F64-5B0F-8F00-5D77AFBE261E),
+ helpstring("CD Disc-At-Once RAW Writer Event Arguments"),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IDiscFormat2RawCDEventArgs : IWriteEngine2EventArgs
+ {
+ [id(769), propget]
+ HRESULT __stdcall CurrentAction (
+ [out retval] IMAPI_FORMAT2_RAW_CD_WRITE_ACTION *value
+ );
+ [propget]
+ HRESULT __stdcall ElapsedTime (
+ [out retval] long *value
+ );
+ [propget]
+ HRESULT __stdcall RemainingTime (
+ [out retval] long *value
+ );
+ };
+ [
+ uuid(27354144-7F64-5B0F-8F00-5D77AFBE261E),
+ helpstring("A single optical drive Write Speed Configuration"),
+ dual,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IWriteSpeedDescriptor : IDispatch
+ {
+ [id(257), propget]
+ HRESULT __stdcall MediaType (
+ [out retval] IMAPI_MEDIA_PHYSICAL_TYPE *value
+ );
+ [propget]
+ HRESULT __stdcall RotationTypeIsPureCAV (
+ [out retval] WINBOOL *value
+ );
+ [propget]
+ HRESULT __stdcall WriteSpeed (
+ [out retval] long *value
+ );
+ };
+ [
+ uuid(25983550-9D65-49CE-B335-40630D901227),
+ helpstring("CD Raw CD (Disc-at-Once) Image Creator"),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IRawCDImageCreator : IDispatch
+ {
+ [id(512)]
+ HRESULT __stdcall CreateResultImage (
+ [out retval] interface IStream **resultStream
+ );
+ HRESULT __stdcall AddTrack (
+ [in] IMAPI_CD_SECTOR_TYPE dataType,
+ [in] interface IStream *data,
+ [out retval] long *trackIndex
+ );
+ HRESULT __stdcall AddSpecialPregap (
+ [in] interface IStream *data
+ );
+ HRESULT __stdcall AddSubcodeRWGenerator (
+ [in] interface IStream *subcode
+ );
+ [id(256), propput]
+ HRESULT __stdcall ResultingImageType (
+ [in] IMAPI_FORMAT2_RAW_CD_DATA_SECTOR_TYPE argNo1
+ );
+ [id(256), propget]
+ HRESULT __stdcall ResultingImageType (
+ [out retval] IMAPI_FORMAT2_RAW_CD_DATA_SECTOR_TYPE *value
+ );
+ [propget]
+ HRESULT __stdcall StartOfLeadout (
+ [out retval] long *value
+ );
+ [propput]
+ HRESULT __stdcall StartOfLeadoutLimit (
+ [in] long argNo1
+ );
+ [id(258), propget]
+ HRESULT __stdcall StartOfLeadoutLimit (
+ [out retval] long *value
+ );
+ [propput]
+ HRESULT __stdcall DisableGaplessAudio (
+ [in] WINBOOL argNo1
+ );
+ [id(259), propget]
+ HRESULT __stdcall DisableGaplessAudio (
+ [out retval] WINBOOL *value
+ );
+ [propput]
+ HRESULT __stdcall MediaCatalogNumber (
+ [in] BSTR argNo1
+ );
+ [id(260), propget]
+ HRESULT __stdcall MediaCatalogNumber (
+ [out retval] BSTR *value
+ );
+ [propput]
+ HRESULT __stdcall StartingTrackNumber (
+ [in] long argNo1
+ );
+ [id(261), propget]
+ HRESULT __stdcall StartingTrackNumber (
+ [out retval] long *value
+ );
+ [propget]
+ HRESULT __stdcall TrackInfo (
+ [in] long trackIndex,
+ [out retval] dispinterface IRawCDImageTrackInfo **value
+ );
+ [propget]
+ HRESULT __stdcall NumberOfExistingTracks (
+ [out retval] long *value
+ );
+ [propget]
+ HRESULT __stdcall LastUsedUserSectorInImage (
+ [out retval] long *value
+ );
+ [propget]
+ HRESULT __stdcall ExpectedTableOfContents (
+ [out retval] VARIANT value[]*
+ );
+ };
+ [
+ uuid(25983551-9D65-49CE-B335-40630D901227),
+ helpstring("CD Raw CD (Disc-at-Once) Per-Track Information"),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IRawCDImageTrackInfo : IDispatch
+ {
+ [id(256), propget]
+ HRESULT __stdcall StartingLba (
+ [out retval] long *value
+ );
+ [propget]
+ HRESULT __stdcall SectorCount (
+ [out retval] long *value
+ );
+ [propget]
+ HRESULT __stdcall TrackNumber (
+ [out retval] long *value
+ );
+ [propget]
+ HRESULT __stdcall SectorType (
+ [out retval] IMAPI_CD_SECTOR_TYPE *value
+ );
+ [propget]
+ HRESULT __stdcall ISRC (
+ [out retval] BSTR *value
+ );
+ [id(260), propput]
+ HRESULT __stdcall ISRC (
+ [in] BSTR argNo1
+ );
+ [propget]
+ HRESULT __stdcall DigitalAudioCopySetting (
+ [out retval] IMAPI_CD_TRACK_DIGITAL_COPY_SETTING *value
+ );
+ [id(261), propput]
+ HRESULT __stdcall DigitalAudioCopySetting (
+ [in] IMAPI_CD_TRACK_DIGITAL_COPY_SETTING argNo1
+ );
+ [propget]
+ HRESULT __stdcall AudioHasPreemphasis (
+ [out retval] WINBOOL *value
+ );
+ [id(262), propput]
+ HRESULT __stdcall AudioHasPreemphasis (
+ [in] WINBOOL argNo1
+ );
+ [propget]
+ HRESULT __stdcall TrackIndexes (
+ [out retval] VARIANT value[]*
+ );
+ [id(512)]
+ HRESULT __stdcall AddTrackIndex (
+ [in] long lbaOffset
+ );
+ HRESULT __stdcall ClearTrackIndex (
+ [in] long lbaOffset
+ );
+ };
+ [
+ uuid(27354130-7F64-5B0F-8F00-5D77AFBE261E),
+ helpstring("IDiscMaster2 is used to get an enumerator for the set of CD/DVD (optical) devices on the system"),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IDiscMaster2 : IDispatch
+ {
+ [id(-4), propget, restricted, hidden]
+ HRESULT __stdcall _NewEnum (
+ [out retval] interface IEnumVARIANT **ppunk
+ );
+ [id(0), propget]
+ HRESULT __stdcall Item (
+ [in] long index,
+ [out retval] BSTR *value
+ );
+ [propget]
+ HRESULT __stdcall Count (
+ [out retval] long *value
+ );
+ [propget]
+ HRESULT __stdcall IsSupportedEnvironment (
+ [out retval] WINBOOL *value
+ );
+ };
+ [
+ uuid(27354133-7F64-5B0F-8F00-5D77AFBE261E),
+ helpstring("Represents a single CD/DVD type device, and enables many common operations via a simplified API."),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IDiscRecorder2 : IDispatch
+ {
+ [id(256)]
+ HRESULT __stdcall EjectMedia (void);
+ HRESULT __stdcall CloseTray (void);
+ HRESULT __stdcall AcquireExclusiveAccess (
+ [in] WINBOOL force,
+ [in] BSTR __MIDL__IDiscRecorder20000
+ );
+ HRESULT __stdcall ReleaseExclusiveAccess (void);
+ HRESULT __stdcall DisableMcn (void);
+ HRESULT __stdcall EnableMcn (void);
+ HRESULT __stdcall InitializeDiscRecorder (
+ [in] BSTR recorderUniqueId
+ );
+ [id(0), propget]
+ HRESULT __stdcall ActiveDiscRecorder (
+ [out retval] BSTR *value
+ );
+ [id(513), propget]
+ HRESULT __stdcall VendorId (
+ [out retval] BSTR *value
+ );
+ [propget]
+ HRESULT __stdcall ProductId (
+ [out retval] BSTR *value
+ );
+ [propget]
+ HRESULT __stdcall ProductRevision (
+ [out retval] BSTR *value
+ );
+ [propget]
+ HRESULT __stdcall VolumeName (
+ [out retval] BSTR *value
+ );
+ [propget]
+ HRESULT __stdcall VolumePathNames (
+ [out retval] VARIANT value[]*
+ );
+ [propget]
+ HRESULT __stdcall DeviceCanLoadMedia (
+ [out retval] WINBOOL *value
+ );
+ [propget]
+ HRESULT __stdcall LegacyDeviceNumber (
+ [out retval] long *LegacyDeviceNumber
+ );
+ [propget]
+ HRESULT __stdcall SupportedFeaturePages (
+ [out retval] VARIANT value[]*
+ );
+ [propget]
+ HRESULT __stdcall CurrentFeaturePages (
+ [out retval] VARIANT value[]*
+ );
+ [propget]
+ HRESULT __stdcall SupportedProfiles (
+ [out retval] VARIANT value[]*
+ );
+ [propget]
+ HRESULT __stdcall CurrentProfiles (
+ [out retval] VARIANT value[]*
+ );
+ [propget]
+ HRESULT __stdcall SupportedModePages (
+ [out retval] VARIANT value[]*
+ );
+ [propget]
+ HRESULT __stdcall ExclusiveAccessOwner (
+ [out retval] BSTR *value
+ );
+ };
+ [
+ uuid(27354135-7F64-5B0F-8F00-5D77AFBE261E),
+ helpstring("Write Engine"),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IWriteEngine2 : IDispatch
+ {
+ [id(512)]
+ HRESULT __stdcall WriteSection (
+ [in] interface IStream *data,
+ [in] long startingBlockAddress,
+ [in] long numberOfBlocks
+ );
+ HRESULT __stdcall CancelWrite (void);
+ [id(256), propput]
+ HRESULT __stdcall Recorder (
+ [in] interface IDiscRecorder2Ex *argNo1
+ );
+ [id(256), propget]
+ HRESULT __stdcall Recorder (
+ [out retval] interface IDiscRecorder2Ex **value
+ );
+ [propput]
+ HRESULT __stdcall UseStreamingWrite12 (
+ [in] WINBOOL argNo1
+ );
+ [id(257), propget]
+ HRESULT __stdcall UseStreamingWrite12 (
+ [out retval] WINBOOL *value
+ );
+ [propput]
+ HRESULT __stdcall StartingSectorsPerSecond (
+ [in] long argNo1
+ );
+ [id(258), propget]
+ HRESULT __stdcall StartingSectorsPerSecond (
+ [out retval] long *value
+ );
+ [propput]
+ HRESULT __stdcall EndingSectorsPerSecond (
+ [in] long argNo1
+ );
+ [id(259), propget]
+ HRESULT __stdcall EndingSectorsPerSecond (
+ [out retval] long *value
+ );
+ [propput]
+ HRESULT __stdcall BytesPerSector (
+ [in] long argNo1
+ );
+ [id(260), propget]
+ HRESULT __stdcall BytesPerSector (
+ [out retval] long *value
+ );
+ [propget]
+ HRESULT __stdcall WriteInProgress (
+ [out retval] WINBOOL *value
+ );
+ };
+ [
+ uuid(27354156-8F64-5B0F-8F00-5D77AFBE261E),
+ helpstring("Optical media erase"),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IDiscFormat2Erase : IDiscFormat2
+ {
+ [id(256), propput]
+ HRESULT __stdcall Recorder (
+ [in] dispinterface IDiscRecorder2 *argNo1
+ );
+ [id(256), propget]
+ HRESULT __stdcall Recorder (
+ [out retval] dispinterface IDiscRecorder2 **value
+ );
+ [propput]
+ HRESULT __stdcall FullErase (
+ [in] WINBOOL argNo1
+ );
+ [id(257), propget]
+ HRESULT __stdcall FullErase (
+ [out retval] WINBOOL *value
+ );
+ [propget]
+ HRESULT __stdcall CurrentPhysicalMediaType (
+ [out retval] IMAPI_MEDIA_PHYSICAL_TYPE *value
+ );
+ [propput]
+ HRESULT __stdcall ClientName (
+ [in] BSTR argNo1
+ );
+ [id(259), propget]
+ HRESULT __stdcall ClientName (
+ [out retval] BSTR *value
+ );
+ [id(513)]
+ HRESULT __stdcall EraseMedia (void);
+ };
+ [
+ uuid(27354152-8F64-5B0F-8F00-5D77AFBE261E),
+ helpstring("Common Disc Format (writer) Operations"),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IDiscFormat2 : IDispatch
+ {
+ [id(2048)]
+ HRESULT __stdcall IsRecorderSupported (
+ [in] dispinterface IDiscRecorder2 *Recorder,
+ [out retval] WINBOOL *value
+ );
+ HRESULT __stdcall IsCurrentMediaSupported (
+ [in] dispinterface IDiscRecorder2 *Recorder,
+ [out retval] WINBOOL *value
+ );
+ [id(1792), propget]
+ HRESULT __stdcall MediaPhysicallyBlank (
+ [out retval] WINBOOL *value
+ );
+ [propget]
+ HRESULT __stdcall MediaHeuristicallyBlank (
+ [out retval] WINBOOL *value
+ );
+ [propget]
+ HRESULT __stdcall SupportedMediaTypes (
+ [out retval] VARIANT value[]*
+ );
+ };
+ [
+ uuid(27354153-9F64-5B0F-8F00-5D77AFBE261E),
+ helpstring("Data Writer"),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IDiscFormat2Data : IDiscFormat2
+ {
+ [id(256), propput]
+ HRESULT __stdcall Recorder (
+ [in] dispinterface IDiscRecorder2 *argNo1
+ );
+ [id(256), propget]
+ HRESULT __stdcall Recorder (
+ [out retval] dispinterface IDiscRecorder2 **value
+ );
+ [propput]
+ HRESULT __stdcall BufferUnderrunFreeDisabled (
+ [in] WINBOOL argNo1
+ );
+ [id(257), propget]
+ HRESULT __stdcall BufferUnderrunFreeDisabled (
+ [out retval] WINBOOL *value
+ );
+ [id(260), propput]
+ HRESULT __stdcall PostgapAlreadyInImage (
+ [in] WINBOOL argNo1
+ );
+ [id(260), propget]
+ HRESULT __stdcall PostgapAlreadyInImage (
+ [out retval] WINBOOL *value
+ );
+ [id(262), propget]
+ HRESULT __stdcall CurrentMediaStatus (
+ [out retval] IMAPI_FORMAT2_DATA_MEDIA_STATE *value
+ );
+ [propget]
+ HRESULT __stdcall WriteProtectStatus (
+ [out retval] IMAPI_MEDIA_WRITE_PROTECT_STATE *value
+ );
+ [propget]
+ HRESULT __stdcall TotalSectorsOnMedia (
+ [out retval] long *value
+ );
+ [propget]
+ HRESULT __stdcall FreeSectorsOnMedia (
+ [out retval] long *value
+ );
+ [propget]
+ HRESULT __stdcall NextWritableAddress (
+ [out retval] long *value
+ );
+ [propget]
+ HRESULT __stdcall StartAddressOfPreviousSession (
+ [out retval] long *value
+ );
+ [propget]
+ HRESULT __stdcall LastWrittenAddressOfPreviousSession (
+ [out retval] long *value
+ );
+ [propput]
+ HRESULT __stdcall ForceMediaToBeClosed (
+ [in] WINBOOL argNo1
+ );
+ [id(269), propget]
+ HRESULT __stdcall ForceMediaToBeClosed (
+ [out retval] WINBOOL *value
+ );
+ [propput]
+ HRESULT __stdcall DisableConsumerDvdCompatibilityMode (
+ [in] WINBOOL argNo1
+ );
+ [id(270), propget]
+ HRESULT __stdcall DisableConsumerDvdCompatibilityMode (
+ [out retval] WINBOOL *value
+ );
+ [propget]
+ HRESULT __stdcall CurrentPhysicalMediaType (
+ [out retval] IMAPI_MEDIA_PHYSICAL_TYPE *value
+ );
+ [propput]
+ HRESULT __stdcall ClientName (
+ [in] BSTR argNo1
+ );
+ [id(272), propget]
+ HRESULT __stdcall ClientName (
+ [out retval] BSTR *value
+ );
+ [propget]
+ HRESULT __stdcall RequestedWriteSpeed (
+ [out retval] long *value
+ );
+ [propget]
+ HRESULT __stdcall RequestedRotationTypeIsPureCAV (
+ [out retval] WINBOOL *value
+ );
+ [propget]
+ HRESULT __stdcall CurrentWriteSpeed (
+ [out retval] long *value
+ );
+ [propget]
+ HRESULT __stdcall CurrentRotationTypeIsPureCAV (
+ [out retval] WINBOOL *value
+ );
+ [propget]
+ HRESULT __stdcall SupportedWriteSpeeds (
+ [out retval] VARIANT supportedSpeeds[]*
+ );
+ [propget]
+ HRESULT __stdcall SupportedWriteSpeedDescriptors (
+ [out retval] VARIANT supportedSpeedDescriptors[]*
+ );
+ [propput]
+ HRESULT __stdcall ForceOverwrite (
+ [in] WINBOOL argNo1
+ );
+ [id(279), propget]
+ HRESULT __stdcall ForceOverwrite (
+ [out retval] WINBOOL *value
+ );
+ [propget]
+ HRESULT __stdcall MultisessionInterfaces (
+ [out retval] VARIANT value[]*
+ );
+ [id(512)]
+ HRESULT __stdcall Write (
+ [in] interface IStream *data
+ );
+ HRESULT __stdcall CancelWrite (void);
+ HRESULT __stdcall SetWriteSpeed (
+ [in] long RequestedSectorsPerSecond,
+ [in] WINBOOL RotationTypeIsPureCAV
+ );
+ };
+ [
+ uuid(27354154-8F64-5B0F-8F00-5D77AFBE261E),
+ helpstring("CD Track-at-Once Audio Writer"),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IDiscFormat2TrackAtOnce : IDiscFormat2
+ {
+ [id(512)]
+ HRESULT __stdcall PrepareMedia (void);
+ HRESULT __stdcall AddAudioTrack (
+ [in] interface IStream *data
+ );
+ HRESULT __stdcall CancelAddTrack (void);
+ HRESULT __stdcall ReleaseMedia (void);
+ HRESULT __stdcall SetWriteSpeed (
+ [in] long RequestedSectorsPerSecond,
+ [in] WINBOOL RotationTypeIsPureCAV
+ );
+ [id(256), propput]
+ HRESULT __stdcall Recorder (
+ [in] dispinterface IDiscRecorder2 *argNo1
+ );
+ [id(256), propget]
+ HRESULT __stdcall Recorder (
+ [out retval] dispinterface IDiscRecorder2 **value
+ );
+ [id(258), propput]
+ HRESULT __stdcall BufferUnderrunFreeDisabled (
+ [in] WINBOOL argNo1
+ );
+ [id(258), propget]
+ HRESULT __stdcall BufferUnderrunFreeDisabled (
+ [out retval] WINBOOL *value
+ );
+ [propget]
+ HRESULT __stdcall NumberOfExistingTracks (
+ [out retval] long *value
+ );
+ [propget]
+ HRESULT __stdcall TotalSectorsOnMedia (
+ [out retval] long *value
+ );
+ [propget]
+ HRESULT __stdcall FreeSectorsOnMedia (
+ [out retval] long *value
+ );
+ [propget]
+ HRESULT __stdcall UsedSectorsOnMedia (
+ [out retval] long *value
+ );
+ [propput]
+ HRESULT __stdcall DoNotFinalizeMedia (
+ [in] WINBOOL argNo1
+ );
+ [id(263), propget]
+ HRESULT __stdcall DoNotFinalizeMedia (
+ [out retval] WINBOOL *value
+ );
+ [id(266), propget]
+ HRESULT __stdcall ExpectedTableOfContents (
+ [out retval] VARIANT value[]*
+ );
+ [propget]
+ HRESULT __stdcall CurrentPhysicalMediaType (
+ [out retval] IMAPI_MEDIA_PHYSICAL_TYPE *value
+ );
+ [id(270), propput]
+ HRESULT __stdcall ClientName (
+ [in] BSTR argNo1
+ );
+ [id(270), propget]
+ HRESULT __stdcall ClientName (
+ [out retval] BSTR *value
+ );
+ [propget]
+ HRESULT __stdcall RequestedWriteSpeed (
+ [out retval] long *value
+ );
+ [propget]
+ HRESULT __stdcall RequestedRotationTypeIsPureCAV (
+ [out retval] WINBOOL *value
+ );
+ [propget]
+ HRESULT __stdcall CurrentWriteSpeed (
+ [out retval] long *value
+ );
+ [propget]
+ HRESULT __stdcall CurrentRotationTypeIsPureCAV (
+ [out retval] WINBOOL *value
+ );
+ [propget]
+ HRESULT __stdcall SupportedWriteSpeeds (
+ [out retval] VARIANT supportedSpeeds[]*
+ );
+ [propget]
+ HRESULT __stdcall SupportedWriteSpeedDescriptors (
+ [out retval] VARIANT supportedSpeedDescriptors[]*
+ );
+ };
+ [
+ uuid(27354155-8F64-5B0F-8F00-5D77AFBE261E),
+ helpstring("CD Disc-At-Once RAW Writer"),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IDiscFormat2RawCD : IDiscFormat2
+ {
+ [id(512)]
+ HRESULT __stdcall PrepareMedia (void);
+ HRESULT __stdcall WriteMedia (
+ [in] interface IStream *data
+ );
+ HRESULT __stdcall WriteMedia2 (
+ [in] interface IStream *data,
+ [in] long streamLeadInSectors
+ );
+ HRESULT __stdcall CancelWrite (void);
+ HRESULT __stdcall ReleaseMedia (void);
+ HRESULT __stdcall SetWriteSpeed (
+ [in] long RequestedSectorsPerSecond,
+ [in] WINBOOL RotationTypeIsPureCAV
+ );
+ [id(256), propput]
+ HRESULT __stdcall Recorder (
+ [in] dispinterface IDiscRecorder2 *argNo1
+ );
+ [id(256), propget]
+ HRESULT __stdcall Recorder (
+ [out retval] dispinterface IDiscRecorder2 **value
+ );
+ [id(258), propput]
+ HRESULT __stdcall BufferUnderrunFreeDisabled (
+ [in] WINBOOL argNo1
+ );
+ [id(258), propget]
+ HRESULT __stdcall BufferUnderrunFreeDisabled (
+ [out retval] WINBOOL *value
+ );
+ [propget]
+ HRESULT __stdcall StartOfNextSession (
+ [out retval] long *value
+ );
+ [propget]
+ HRESULT __stdcall LastPossibleStartOfLeadout (
+ [out retval] long *value
+ );
+ [propget]
+ HRESULT __stdcall CurrentPhysicalMediaType (
+ [out retval] IMAPI_MEDIA_PHYSICAL_TYPE *value
+ );
+ [id(264), propget]
+ HRESULT __stdcall SupportedSectorTypes (
+ [out retval] VARIANT value[]*
+ );
+ [propput]
+ HRESULT __stdcall RequestedSectorType (
+ [in] IMAPI_FORMAT2_RAW_CD_DATA_SECTOR_TYPE argNo1
+ );
+ [id(265), propget]
+ HRESULT __stdcall RequestedSectorType (
+ [out retval] IMAPI_FORMAT2_RAW_CD_DATA_SECTOR_TYPE *value
+ );
+ [propput]
+ HRESULT __stdcall ClientName (
+ [in] BSTR argNo1
+ );
+ [id(266), propget]
+ HRESULT __stdcall ClientName (
+ [out retval] BSTR *value
+ );
+ [propget]
+ HRESULT __stdcall RequestedWriteSpeed (
+ [out retval] long *value
+ );
+ [propget]
+ HRESULT __stdcall RequestedRotationTypeIsPureCAV (
+ [out retval] WINBOOL *value
+ );
+ [propget]
+ HRESULT __stdcall CurrentWriteSpeed (
+ [out retval] long *value
+ );
+ [propget]
+ HRESULT __stdcall CurrentRotationTypeIsPureCAV (
+ [out retval] WINBOOL *value
+ );
+ [propget]
+ HRESULT __stdcall SupportedWriteSpeeds (
+ [out retval] VARIANT supportedSpeeds[]*
+ );
+ [propget]
+ HRESULT __stdcall SupportedWriteSpeedDescriptors (
+ [out retval] VARIANT supportedSpeedDescriptors[]*
+ );
+ };
+
+};
+
+/* Interface declarations. */
+[
+ uuid(27354131-7F64-5B0F-8F00-5D77AFBE261E),
+ helpstring("Provides notification of the arrival/removal of CD/DVD (optical) devices."),
+ nonextensible,
+ oleautomation,
+ dispatchable
+]
+interface DDiscMaster2Events : IDispatch
+{
+ [id(256)]
+ HRESULT __stdcall NotifyDeviceAdded (
+ [in] IDispatch * object,
+ [in] BSTR uniqueId
+ );
+ HRESULT __stdcall NotifyDeviceRemoved (
+ [in] IDispatch * object,
+ [in] BSTR uniqueId
+ );
+};
+[
+ uuid(27354137-7F64-5B0F-8F00-5D77AFBE261E),
+ helpstring("Provides notification of the progress of the WriteEngine2 writing."),
+ nonextensible,
+ oleautomation,
+ dispatchable
+]
+interface DWriteEngine2Events : IDispatch
+{
+ [id(256)]
+ HRESULT __stdcall Update (
+ [in] IDispatch * object,
+ [in] IDispatch * progress
+ );
+};
+[
+ uuid(2735413A-7F64-5B0F-8F00-5D77AFBE261E),
+ helpstring("Provides notification of media erase progress."),
+ nonextensible,
+ oleautomation,
+ dispatchable
+]
+interface DDiscFormat2EraseEvents : IDispatch
+{
+ [id(512)]
+ HRESULT __stdcall Update (
+ [in] IDispatch * object,
+ [in] long elapsedSeconds,
+ [in] long estimatedTotalSeconds
+ );
+};
+[
+ uuid(2735413C-7F64-5B0F-8F00-5D77AFBE261E),
+ helpstring("Data Writer"),
+ nonextensible,
+ oleautomation,
+ dispatchable
+]
+interface DDiscFormat2DataEvents : IDispatch
+{
+ [id(512)]
+ HRESULT __stdcall Update (
+ [in] IDispatch * object,
+ [in] IDispatch * progress
+ );
+};
+[
+ uuid(2735413F-7F64-5B0F-8F00-5D77AFBE261E),
+ helpstring("CD Track-at-Once Audio Writer Events"),
+ nonextensible,
+ oleautomation,
+ dispatchable
+]
+interface DDiscFormat2TrackAtOnceEvents : IDispatch
+{
+ [id(512)]
+ HRESULT __stdcall Update (
+ [in] IDispatch * object,
+ [in] IDispatch * progress
+ );
+};
+[
+ uuid(27354142-7F64-5B0F-8F00-5D77AFBE261E),
+ helpstring("CD Disc-At-Once RAW Writer Events"),
+ nonextensible,
+ oleautomation,
+ dispatchable
+]
+interface DDiscFormat2RawCDEvents : IDispatch
+{
+ [id(512)]
+ HRESULT __stdcall Update (
+ [in] IDispatch * object,
+ [in] IDispatch * progress
+ );
+};
+[
+ uuid(0000000C-0000-0000-C000-000000000046)
+]
+interface IStream : ISequentialStream
+{
+ [id(1610743808)]
+ HRESULT __stdcall RemoteSeek (
+ [in] struct _LARGE_INTEGER dlibMove,
+ [in] UINT dwOrigin,
+ [out] struct _ULARGE_INTEGER *plibNewPosition
+ );
+ HRESULT __stdcall SetSize (
+ [in] struct _ULARGE_INTEGER libNewSize
+ );
+ HRESULT __stdcall RemoteCopyTo (
+ [in] interface IStream *pstm,
+ [in] struct _ULARGE_INTEGER cb,
+ [out] struct _ULARGE_INTEGER *pcbRead,
+ [out] struct _ULARGE_INTEGER *pcbWritten
+ );
+ HRESULT __stdcall Commit (
+ [in] UINT grfCommitFlags
+ );
+ HRESULT __stdcall Revert (void);
+ HRESULT __stdcall LockRegion (
+ [in] struct _ULARGE_INTEGER libOffset,
+ [in] struct _ULARGE_INTEGER cb,
+ [in] UINT dwLockType
+ );
+ HRESULT __stdcall UnlockRegion (
+ [in] struct _ULARGE_INTEGER libOffset,
+ [in] struct _ULARGE_INTEGER cb,
+ [in] UINT dwLockType
+ );
+ HRESULT __stdcall Stat (
+ [out] struct tagSTATSTG *pstatstg,
+ [in] UINT grfStatFlag
+ );
+ HRESULT __stdcall Clone (
+ [out] interface IStream **ppstm
+ );
+};
+[
+ uuid(0C733A30-2A1C-11CE-ADE5-00AA0044773D)
+]
+interface ISequentialStream : IUnknown
+{
+ [id(1610678272)]
+ HRESULT __stdcall RemoteRead (
+ [out] UCHAR *pv,
+ [in] UINT cb,
+ [out] UINT *pcbRead
+ );
+ HRESULT __stdcall RemoteWrite (
+ [in] UCHAR *pv,
+ [in] UINT cb,
+ [out] UINT *pcbWritten
+ );
+};
+[
+ uuid(D2FFD834-958B-426D-8470-2A13879C6A91),
+ helpstring("An interface to control burn verification for a burning object")
+]
+interface IBurnVerification : IUnknown
+{
+ [id(1024), propput]
+ HRESULT __stdcall BurnVerificationLevel (
+ [in] IMAPI_BURN_VERIFICATION_LEVEL argNo1
+ );
+ [id(1024), propget]
+ HRESULT __stdcall BurnVerificationLevel (
+ [out retval] IMAPI_BURN_VERIFICATION_LEVEL *value
+ );
+};
+[
+ uuid(B196B284-BAB4-101A-B69C-00AA00341D07)
+]
+interface IConnectionPointContainer : IUnknown
+{
+ [id(1610678272)]
+ HRESULT __stdcall EnumConnectionPoints (
+ [out] interface IEnumConnectionPoints **ppEnum
+ );
+ HRESULT __stdcall FindConnectionPoint (
+ [in] struct GUID *riid,
+ [out] interface IConnectionPoint **ppCP
+ );
+};
+[
+ uuid(B196B285-BAB4-101A-B69C-00AA00341D07)
+]
+interface IEnumConnectionPoints : IUnknown
+{
+ [id(1610678272)]
+ HRESULT __stdcall RemoteNext (
+ [in] UINT cConnections,
+ [out] interface IConnectionPoint **ppCP,
+ [out] UINT *pcFetched
+ );
+ HRESULT __stdcall Skip (
+ [in] UINT cConnections
+ );
+ HRESULT __stdcall Reset (void);
+ HRESULT __stdcall Clone (
+ [out] interface IEnumConnectionPoints **ppEnum
+ );
+};
+[
+ uuid(B196B286-BAB4-101A-B69C-00AA00341D07)
+]
+interface IConnectionPoint : IUnknown
+{
+ [id(1610678272)]
+ HRESULT __stdcall GetConnectionInterface (
+ [out] struct GUID *pIID
+ );
+ HRESULT __stdcall GetConnectionPointContainer (
+ [out] interface IConnectionPointContainer **ppCPC
+ );
+ HRESULT __stdcall Advise (
+ [in] IUnknown * pUnkSink,
+ [out] UINT *pdwCookie
+ );
+ HRESULT __stdcall Unadvise (
+ [in] UINT dwCookie
+ );
+ HRESULT __stdcall EnumConnections (
+ [out] interface IEnumConnections **ppEnum
+ );
+};
+[
+ uuid(B196B287-BAB4-101A-B69C-00AA00341D07)
+]
+interface IEnumConnections : IUnknown
+{
+ [id(1610678272)]
+ HRESULT __stdcall RemoteNext (
+ [in] UINT cConnections,
+ [out] struct tagCONNECTDATA *rgcd,
+ [out] UINT *pcFetched
+ );
+ HRESULT __stdcall Skip (
+ [in] UINT cConnections
+ );
+ HRESULT __stdcall Reset (void);
+ HRESULT __stdcall Clone (
+ [out] interface IEnumConnections **ppEnum
+ );
+};
+[
+ uuid(27354132-7F64-5B0F-8F00-5D77AFBE261E),
+ helpstring("Represents a single CD/DVD type device, enabling additional commands requiring advanced marshalling code.")
+]
+interface IDiscRecorder2Ex : IUnknown
+{
+ [id(1610678272)]
+ HRESULT __stdcall SendCommandNoData (
+ [in] UCHAR *Cdb,
+ [in] UINT CdbSize,
+ [out] UCHAR SenseBuffer[18],
+ [in] UINT Timeout
+ );
+ HRESULT __stdcall SendCommandSendDataToDevice (
+ [in] UCHAR *Cdb,
+ [in] UINT CdbSize,
+ [out] UCHAR SenseBuffer[18],
+ [in] UINT Timeout,
+ [in] UCHAR *Buffer,
+ [in] UINT BufferSize
+ );
+ HRESULT __stdcall SendCommandGetDataFromDevice (
+ [in] UCHAR *Cdb,
+ [in] UINT CdbSize,
+ [out] UCHAR SenseBuffer[18],
+ [in] UINT Timeout,
+ [out] UCHAR *Buffer,
+ [in] UINT BufferSize,
+ [out] UINT *BufferFetched
+ );
+ HRESULT __stdcall ReadDvdStructure (
+ [in] UINT format,
+ [in] UINT address,
+ [in] UINT layer,
+ [in] UINT agid,
+ [out] UCHAR *data,
+ [out] UINT *Count
+ );
+ HRESULT __stdcall SendDvdStructure (
+ [in] UINT format,
+ [in] UCHAR *data,
+ [in] UINT Count
+ );
+ HRESULT __stdcall GetAdapterDescriptor (
+ [out] UCHAR *data,
+ [out] UINT *byteSize
+ );
+ HRESULT __stdcall GetDeviceDescriptor (
+ [out] UCHAR *data,
+ [out] UINT *byteSize
+ );
+ HRESULT __stdcall GetDiscInformation (
+ [out] UCHAR *discInformation,
+ [out] UINT *byteSize
+ );
+ HRESULT __stdcall GetTrackInformation (
+ [in] UINT address,
+ [in] IMAPI_READ_TRACK_ADDRESS_TYPE addressType,
+ [out] UCHAR *trackInformation,
+ [out] UINT *byteSize
+ );
+ HRESULT __stdcall GetFeaturePage (
+ [in] IMAPI_FEATURE_PAGE_TYPE requestedFeature,
+ [in] CHAR currentFeatureOnly,
+ [out] UCHAR *featureData,
+ [out] UINT *byteSize
+ );
+ HRESULT __stdcall GetModePage (
+ [in] IMAPI_MODE_PAGE_TYPE requestedModePage,
+ [in] IMAPI_MODE_PAGE_REQUEST_TYPE requestType,
+ [out] UCHAR *modePageData,
+ [out] UINT *byteSize
+ );
+ HRESULT __stdcall SetModePage (
+ [in] IMAPI_MODE_PAGE_REQUEST_TYPE requestType,
+ [in] UCHAR *data,
+ [in] UINT byteSize
+ );
+ HRESULT __stdcall GetSupportedFeaturePages (
+ [in] CHAR currentFeatureOnly,
+ [out] IMAPI_FEATURE_PAGE_TYPE **featureData,
+ [out] UINT *byteSize
+ );
+ HRESULT __stdcall GetSupportedProfiles (
+ [in] CHAR currentOnly,
+ [out] IMAPI_PROFILE_TYPE **profileTypes,
+ [out] UINT *validProfiles
+ );
+ HRESULT __stdcall GetSupportedModePages (
+ [in] IMAPI_MODE_PAGE_REQUEST_TYPE requestType,
+ [out] IMAPI_MODE_PAGE_TYPE **modePageTypes,
+ [out] UINT *validPages
+ );
+ HRESULT __stdcall GetByteAlignmentMask (
+ [out retval] UINT *value
+ );
+ HRESULT __stdcall GetMaximumNonPageAlignedTransferSize (
+ [out retval] UINT *value
+ );
+ HRESULT __stdcall GetMaximumPageAlignedTransferSize (
+ [out retval] UINT *value
+ );
+};
+[
+ uuid(27354145-7F64-5B0F-8F00-5D77AFBE261E),
+ helpstring("Pseudo-random based IStream data (implementation dependent)")
+]
+interface IStreamPseudoRandomBased : IStream
+{
+ [id(1610809344)]
+ HRESULT __stdcall put_Seed (
+ [in] UINT value
+ );
+ HRESULT __stdcall get_Seed (
+ [out] UINT *value
+ );
+ HRESULT __stdcall put_ExtendedSeed (
+ [in] UINT *values,
+ [in] UINT eCount
+ );
+ HRESULT __stdcall get_ExtendedSeed (
+ [out] UINT *values,
+ [out] UINT *eCount
+ );
+};
+[
+ uuid(27354146-7F64-5B0F-8F00-5D77AFBE261E),
+ helpstring("Stream concatenation")
+]
+interface IStreamConcatenate : IStream
+{
+ [id(1610809344)]
+ HRESULT __stdcall Initialize (
+ [in] interface IStream *stream1,
+ [in] interface IStream *stream2
+ );
+ HRESULT __stdcall Initialize2 (
+ [in] interface IStream **streams,
+ [in] UINT streamCount
+ );
+ HRESULT __stdcall Append (
+ [in] interface IStream *stream
+ );
+ HRESULT __stdcall Append2 (
+ [in] interface IStream **streams,
+ [in] UINT streamCount
+ );
+};
+[
+ uuid(27354147-7F64-5B0F-8F00-5D77AFBE261E),
+ helpstring("Stream interleave: each stream gets interleaveSize bytes, then cycles to the next stream")
+]
+interface IStreamInterleave : IStream
+{
+ [id(1610809344)]
+ HRESULT __stdcall Initialize (
+ [in] interface IStream **streams,
+ [in] UINT *interleaveSizes,
+ [in] UINT streamCount
+ );
+};
+[
+ uuid(27354151-7F64-5B0F-8F00-5D77AFBE261E),
+ helpstring("Sequential multisession support interface."),
+ dispatchable
+]
+interface IMultisessionSequential : IMultisession
+{
+ [id(512), propget]
+ HRESULT __stdcall IsFirstDataSession (
+ [out retval] WINBOOL *value
+ );
+ [propget]
+ HRESULT __stdcall StartAddressOfPreviousSession (
+ [out retval] long *value
+ );
+ [propget]
+ HRESULT __stdcall LastWrittenAddressOfPreviousSession (
+ [out retval] long *value
+ );
+ [propget]
+ HRESULT __stdcall NextWritableAddress (
+ [out retval] long *value
+ );
+ [propget]
+ HRESULT __stdcall FreeSectorsOnMedia (
+ [out retval] long *value
+ );
+};
+[
+ uuid(27354150-7F64-5B0F-8F00-5D77AFBE261E),
+ helpstring("Generic multisession support interface."),
+ dispatchable
+]
+interface IMultisession : IDispatch
+{
+ [id(256), propget]
+ HRESULT __stdcall IsSupportedOnCurrentMediaState (
+ [out retval] WINBOOL *value
+ );
+ [propput]
+ HRESULT __stdcall InUse (
+ [in] WINBOOL argNo1
+ );
+ [id(257), propget]
+ HRESULT __stdcall InUse (
+ [out retval] WINBOOL *value
+ );
+ [propget]
+ HRESULT __stdcall ImportRecorder (
+ [out retval] dispinterface IDiscRecorder2 **value
+ );
+};
+
diff --git a/mingw-w64-headers/include/imapi2fs.idl b/mingw-w64-headers/include/imapi2fs.idl
new file mode 100644
index 0000000..c7e1727
--- /dev/null
+++ b/mingw-w64-headers/include/imapi2fs.idl
@@ -0,0 +1,1208 @@
+/* Automated generated idl file <imapi2fs>.
+ * Generated by genidl tool (c) 2009, 2010 Mingw-w64 project.
+ */
+
+/* Interface forward declarations. */
+interface DFileSystemImageEvents;
+interface DFileSystemImageImportEvents;
+interface IStream;
+interface ISequentialStream;
+interface IEnumProgressItems;
+interface IEnumFsiItems;
+interface IConnectionPointContainer;
+interface IEnumConnectionPoints;
+interface IConnectionPoint;
+interface IEnumConnections;
+interface IIsoImageManager;
+
+/* Structure forward declarations. */
+struct _LARGE_INTEGER;
+struct _ULARGE_INTEGER;
+struct tagSTATSTG;
+struct _FILETIME;
+struct tagCONNECTDATA;
+
+/* Union record forward declarations. */
+dispinterface IBootOptions;
+dispinterface IFileSystemImageResult;
+dispinterface IProgressItems;
+dispinterface IProgressItem;
+dispinterface IFsiDirectoryItem2;
+dispinterface IFsiDirectoryItem;
+dispinterface IFsiItem;
+dispinterface IFsiFileItem2;
+dispinterface IFsiFileItem;
+dispinterface IFsiNamedStreams;
+dispinterface IFileSystemImage3;
+dispinterface IFileSystemImage2;
+dispinterface IFileSystemImage;
+dispinterface IDiscRecorder2;
+
+/* Union record forward declarations. */
+coclass BootOptions;
+coclass FsiStream;
+coclass FileSystemImageResult;
+coclass ProgressItem;
+coclass EnumProgressItems;
+coclass ProgressItems;
+coclass FsiDirectoryItem;
+coclass FsiFileItem;
+coclass EnumFsiItems;
+coclass FsiNamedStreams;
+coclass MsftFileSystemImage;
+coclass MsftIsoImageManager;
+
+/* Enumeration declarations. */
+[
+ helpstring("Type of file system")
+]
+enum FsiFileSystems
+{
+ FsiFileSystemNone = (int) 201326592,
+ FsiFileSystemISO9660 = (int) 201326593,
+ FsiFileSystemJoliet = (int) 201326594,
+ FsiFileSystemUDF = (int) 201326596,
+ FsiFileSystemUnknown = (int) 1073741824
+};
+[
+ helpstring("Boot platform type")
+]
+enum PlatformId
+{
+ PlatformX86 = (int) 201326592,
+ PlatformPowerPC = (int) 201326593,
+ PlatformMac = (int) 201326594,
+ PlatformEFI = (int) 201326831
+};
+[
+ helpstring("Boot emulation type")
+]
+enum EmulationType
+{
+ EmulationNone = (int) 201326592,
+ Emulation12MFloppy = (int) 201326593,
+ Emulation144MFloppy = (int) 201326594,
+ Emulation288MFloppy = (int) 201326595,
+ EmulationHardDisk = (int) 201326596
+};
+[
+ helpstring("Physical type of the optical media")
+]
+enum _IMAPI_MEDIA_PHYSICAL_TYPE
+{
+ IMAPI_MEDIA_TYPE_UNKNOWN = (int) 201326592,
+ IMAPI_MEDIA_TYPE_CDROM = (int) 201326593,
+ IMAPI_MEDIA_TYPE_CDR = (int) 201326594,
+ IMAPI_MEDIA_TYPE_CDRW = (int) 201326595,
+ IMAPI_MEDIA_TYPE_DVDROM = (int) 201326596,
+ IMAPI_MEDIA_TYPE_DVDRAM = (int) 201326597,
+ IMAPI_MEDIA_TYPE_DVDPLUSR = (int) 201326598,
+ IMAPI_MEDIA_TYPE_DVDPLUSRW = (int) 201326599,
+ IMAPI_MEDIA_TYPE_DVDPLUSR_DUALLAYER = (int) 201326600,
+ IMAPI_MEDIA_TYPE_DVDDASHR = (int) 201326601,
+ IMAPI_MEDIA_TYPE_DVDDASHRW = (int) 201326602,
+ IMAPI_MEDIA_TYPE_DVDDASHR_DUALLAYER = (int) 201326603,
+ IMAPI_MEDIA_TYPE_DISK = (int) 201326604,
+ IMAPI_MEDIA_TYPE_DVDPLUSRW_DUALLAYER = (int) 201326605,
+ IMAPI_MEDIA_TYPE_HDDVDROM = (int) 201326606,
+ IMAPI_MEDIA_TYPE_HDDVDR = (int) 201326607,
+ IMAPI_MEDIA_TYPE_HDDVDRAM = (int) 201326608,
+ IMAPI_MEDIA_TYPE_BDROM = (int) 201326609,
+ IMAPI_MEDIA_TYPE_BDR = (int) 201326610,
+ IMAPI_MEDIA_TYPE_BDRE = (int) 201326611,
+ IMAPI_MEDIA_TYPE_MAX = (int) 201326611
+};
+[
+ helpstring("File system item type")
+]
+enum FsiItemType
+{
+ FsiItemNotFound = (int) 201326592,
+ FsiItemDirectory = (int) 201326593,
+ FsiItemFile = (int) 201326594
+};
+
+/* Structure/union declarations. */
+struct _LARGE_INTEGER
+{
+ LONGLONG QuadPart;
+};
+struct _ULARGE_INTEGER
+{
+ ULONGLONG QuadPart;
+};
+struct tagSTATSTG
+{
+ LPWSTR pwcsName;
+ UINT type;
+ struct _ULARGE_INTEGER cbSize;
+ struct _FILETIME mtime;
+ struct _FILETIME ctime;
+ struct _FILETIME atime;
+ UINT grfMode;
+ UINT grfLocksSupported;
+ struct GUID clsid;
+ UINT grfStateBits;
+ UINT reserved;
+};
+struct _FILETIME
+{
+ UINT dwLowDateTime;
+ UINT dwHighDateTime;
+};
+struct tagCONNECTDATA
+{
+ IUnknown * pUnk;
+ UINT dwCookie;
+};
+
+/* Type definitions. */
+[
+ helpstring("Physical type of the optical media")
+]
+typedef enum _IMAPI_MEDIA_PHYSICAL_TYPE IMAPI_MEDIA_PHYSICAL_TYPE;
+
+[
+ uuid(2C941FD0-975B-59BE-A960-9A2A262853A5),
+ version(1.0),
+ helpstring("Microsoft IMAPI2 File System Image Creator")
+]
+library imapi2fs
+{
+ importlib("stdole2.tlb");
+
+ /* CoClass declarations. */
+ [
+ uuid(2C941FCE-975B-59BE-A960-9A2A262853A5),
+ helpstring("Boot options"),
+ cancreate
+ ]
+ coclass BootOptions
+ {
+ dispinterface IBootOptions;
+ };
+ [
+ uuid(2C941FCD-975B-59BE-A960-9A2A262853A5),
+ helpstring("Stream")
+ ]
+ coclass FsiStream
+ {
+ interface IStream;
+ };
+ [
+ uuid(2C941FCC-975B-59BE-A960-9A2A262853A5),
+ helpstring("FileSystemImage result stream")
+ ]
+ coclass FileSystemImageResult
+ {
+ dispinterface IFileSystemImageResult;
+ };
+ [
+ uuid(2C941FCB-975B-59BE-A960-9A2A262853A5),
+ helpstring("Progress item block mapping")
+ ]
+ coclass ProgressItem
+ {
+ dispinterface IProgressItem;
+ };
+ [
+ uuid(2C941FCA-975B-59BE-A960-9A2A262853A5),
+ helpstring("Progress item block mapping enumerator")
+ ]
+ coclass EnumProgressItems
+ {
+ interface IEnumProgressItems;
+ };
+ [
+ uuid(2C941FC9-975B-59BE-A960-9A2A262853A5),
+ helpstring("Progress item block mapping collection")
+ ]
+ coclass ProgressItems
+ {
+ dispinterface IProgressItems;
+ };
+ [
+ uuid(2C941FC8-975B-59BE-A960-9A2A262853A5),
+ helpstring("Directory item")
+ ]
+ coclass FsiDirectoryItem
+ {
+ dispinterface IFsiDirectoryItem2;
+ dispinterface IFsiDirectoryItem;
+ dispinterface IFsiItem;
+ };
+ [
+ uuid(2C941FC7-975B-59BE-A960-9A2A262853A5),
+ helpstring("File item")
+ ]
+ coclass FsiFileItem
+ {
+ dispinterface IFsiFileItem2;
+ dispinterface IFsiFileItem;
+ dispinterface IFsiItem;
+ };
+ [
+ uuid(2C941FC6-975B-59BE-A960-9A2A262853A5),
+ helpstring("FileSystemImage item enumerator")
+ ]
+ coclass EnumFsiItems
+ {
+ interface IEnumFsiItems;
+ };
+ [
+ uuid(C6B6F8ED-6D19-44B4-B539-B159B793A32D),
+ helpstring("Named stream collection")
+ ]
+ coclass FsiNamedStreams
+ {
+ dispinterface IFsiNamedStreams;
+ };
+ [
+ uuid(2C941FC5-975B-59BE-A960-9A2A262853A5),
+ helpstring("File system image"),
+ cancreate
+ ]
+ coclass MsftFileSystemImage
+ {
+ dispinterface IFileSystemImage3;
+ dispinterface IFileSystemImage2;
+ interface DFileSystemImageEvents;
+ interface DFileSystemImageImportEvents;
+ interface IConnectionPointContainer;
+ dispinterface IFileSystemImage;
+ };
+ [
+ uuid(CEEE3B62-8F56-4056-869B-EF16917E3EFC),
+ helpstring("Microsoft IMAPIv2 Iso Image Manager"),
+ cancreate
+ ]
+ coclass MsftIsoImageManager
+ {
+ interface IIsoImageManager;
+ };
+
+ /* Dispatch interface declarations. */
+ [
+ uuid(2C941FD4-975B-59BE-A960-9A2A262853A5),
+ helpstring("Boot options"),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IBootOptions : IDispatch
+ {
+ [id(1), propget]
+ HRESULT __stdcall BootImage (
+ [out retval] interface IStream **pVal
+ );
+ [propget]
+ HRESULT __stdcall Manufacturer (
+ [out retval] BSTR *pVal
+ );
+ [id(2), propput]
+ HRESULT __stdcall Manufacturer (
+ [in] BSTR argNo1
+ );
+ [propget]
+ HRESULT __stdcall PlatformId (
+ [out retval] enum PlatformId *pVal
+ );
+ [id(3), propput]
+ HRESULT __stdcall PlatformId (
+ [in] enum PlatformId argNo1
+ );
+ [propget]
+ HRESULT __stdcall Emulation (
+ [out retval] enum EmulationType *pVal
+ );
+ [id(4), propput]
+ HRESULT __stdcall Emulation (
+ [in] enum EmulationType argNo1
+ );
+ [propget]
+ HRESULT __stdcall ImageSize (
+ [out retval] UINT *pVal
+ );
+ [id(20)]
+ HRESULT __stdcall AssignBootImage (
+ [in] interface IStream *newVal
+ );
+ };
+ [
+ uuid(2C941FD8-975B-59BE-A960-9A2A262853A5),
+ helpstring("FileSystemImage result stream"),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IFileSystemImageResult : IDispatch
+ {
+ [id(1), propget]
+ HRESULT __stdcall ImageStream (
+ [out retval] interface IStream **pVal
+ );
+ [propget]
+ HRESULT __stdcall ProgressItems (
+ [out retval] dispinterface IProgressItems **pVal
+ );
+ [propget]
+ HRESULT __stdcall TotalBlocks (
+ [out retval] long *pVal
+ );
+ [propget]
+ HRESULT __stdcall BlockSize (
+ [out retval] long *pVal
+ );
+ [propget]
+ HRESULT __stdcall DiscId (
+ [out retval] BSTR *pVal
+ );
+ };
+ [
+ uuid(2C941FD7-975B-59BE-A960-9A2A262853A5),
+ helpstring("Progress item block mapping collection"),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IProgressItems : IDispatch
+ {
+ [id(-4), propget, restricted, hidden]
+ HRESULT __stdcall _NewEnum (
+ [out retval] interface IEnumVARIANT **NewEnum
+ );
+ [id(0), propget]
+ HRESULT __stdcall Item (
+ [in] long Index,
+ [out retval] dispinterface IProgressItem **Item
+ );
+ [propget]
+ HRESULT __stdcall Count (
+ [out retval] long *Count
+ );
+ HRESULT __stdcall ProgressItemFromBlock (
+ [in] UINT block,
+ [out retval] dispinterface IProgressItem **Item
+ );
+ HRESULT __stdcall ProgressItemFromDescription (
+ [in] BSTR Description,
+ [out retval] dispinterface IProgressItem **Item
+ );
+ [propget, restricted, hidden]
+ HRESULT __stdcall EnumProgressItems (
+ [out retval] interface IEnumProgressItems **NewEnum
+ );
+ };
+ [
+ uuid(2C941FD5-975B-59BE-A960-9A2A262853A5),
+ helpstring("FileSystemImageResult progress item"),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IProgressItem : IDispatch
+ {
+ [id(1), propget]
+ HRESULT __stdcall Description (
+ [out retval] BSTR *desc
+ );
+ [propget]
+ HRESULT __stdcall FirstBlock (
+ [out retval] UINT *block
+ );
+ [propget]
+ HRESULT __stdcall LastBlock (
+ [out retval] UINT *block
+ );
+ [propget]
+ HRESULT __stdcall BlockCount (
+ [out retval] UINT *blocks
+ );
+ };
+ [
+ uuid(F7FB4B9B-6D96-4D7B-9115-201B144811EF),
+ helpstring("FileSystemImage directory item (rev.2)"),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IFsiDirectoryItem2 : IFsiDirectoryItem
+ {
+ [id(36)]
+ HRESULT __stdcall AddTreeWithNamedStreams (
+ [in] BSTR sourceDirectory,
+ [in] WINBOOL includeBaseDirectory
+ );
+ };
+ [
+ uuid(2C941FDC-975B-59BE-A960-9A2A262853A5),
+ helpstring("FileSystemImage directory item"),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IFsiDirectoryItem : IFsiItem
+ {
+ [id(-4), propget, restricted, hidden]
+ HRESULT __stdcall _NewEnum (
+ [out retval] interface IEnumVARIANT **NewEnum
+ );
+ [id(0), propget]
+ HRESULT __stdcall Item (
+ [in] BSTR path,
+ [out retval] dispinterface IFsiItem **Item
+ );
+ [propget]
+ HRESULT __stdcall Count (
+ [out retval] long *Count
+ );
+ [propget, restricted, hidden]
+ HRESULT __stdcall EnumFsiItems (
+ [out retval] interface IEnumFsiItems **NewEnum
+ );
+ [id(30)]
+ HRESULT __stdcall AddDirectory (
+ [in] BSTR path
+ );
+ HRESULT __stdcall AddFile (
+ [in] BSTR path,
+ [in] interface IStream *fileData
+ );
+ HRESULT __stdcall AddTree (
+ [in] BSTR sourceDirectory,
+ [in] WINBOOL includeBaseDirectory
+ );
+ HRESULT __stdcall Add (
+ [in] dispinterface IFsiItem *Item
+ );
+ HRESULT __stdcall Remove (
+ [in] BSTR path
+ );
+ HRESULT __stdcall RemoveTree (
+ [in] BSTR path
+ );
+ };
+ [
+ uuid(2C941FD9-975B-59BE-A960-9A2A262853A5),
+ helpstring("FileSystemImage item"),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IFsiItem : IDispatch
+ {
+ [id(11), propget]
+ HRESULT __stdcall Name (
+ [out retval] BSTR *pVal
+ );
+ [propget]
+ HRESULT __stdcall FullPath (
+ [out retval] BSTR *pVal
+ );
+ [propget]
+ HRESULT __stdcall CreationTime (
+ [out retval] DATE *pVal
+ );
+ [id(13), propput]
+ HRESULT __stdcall CreationTime (
+ [in] DATE argNo1
+ );
+ [propget]
+ HRESULT __stdcall LastAccessedTime (
+ [out retval] DATE *pVal
+ );
+ [id(14), propput]
+ HRESULT __stdcall LastAccessedTime (
+ [in] DATE argNo1
+ );
+ [propget]
+ HRESULT __stdcall LastModifiedTime (
+ [out retval] DATE *pVal
+ );
+ [id(15), propput]
+ HRESULT __stdcall LastModifiedTime (
+ [in] DATE argNo1
+ );
+ [propget]
+ HRESULT __stdcall IsHidden (
+ [out retval] WINBOOL *pVal
+ );
+ [id(16), propput]
+ HRESULT __stdcall IsHidden (
+ [in] WINBOOL argNo1
+ );
+ HRESULT __stdcall FileSystemName (
+ [in] enum FsiFileSystems fileSystem,
+ [out retval] BSTR *pVal
+ );
+ HRESULT __stdcall FileSystemPath (
+ [in] enum FsiFileSystems fileSystem,
+ [out retval] BSTR *pVal
+ );
+ };
+ [
+ uuid(199D0C19-11E1-40EB-8EC2-C8C822A07792),
+ helpstring("FileSystemImage file item (rev.2)"),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IFsiFileItem2 : IFsiFileItem
+ {
+ [id(45), propget, restricted, hidden]
+ HRESULT __stdcall FsiNamedStreams (
+ [out retval] dispinterface IFsiNamedStreams **streams
+ );
+ [propget]
+ HRESULT __stdcall IsNamedStream (
+ [out retval] WINBOOL *pVal
+ );
+ HRESULT __stdcall AddStream (
+ [in] BSTR Name,
+ [in] interface IStream *streamData
+ );
+ HRESULT __stdcall RemoveStream (
+ [in] BSTR Name
+ );
+ [propget]
+ HRESULT __stdcall IsRealTime (
+ [out retval] WINBOOL *pVal
+ );
+ [id(49), propput]
+ HRESULT __stdcall IsRealTime (
+ [in] WINBOOL argNo1
+ );
+ };
+ [
+ uuid(2C941FDB-975B-59BE-A960-9A2A262853A5),
+ helpstring("FileSystemImage file item"),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IFsiFileItem : IFsiItem
+ {
+ [id(41), propget]
+ HRESULT __stdcall DataSize (
+ [out retval] LONGLONG *pVal
+ );
+ [propget]
+ HRESULT __stdcall DataSize32BitLow (
+ [out retval] long *pVal
+ );
+ [propget]
+ HRESULT __stdcall DataSize32BitHigh (
+ [out retval] long *pVal
+ );
+ [propget]
+ HRESULT __stdcall Data (
+ [out retval] interface IStream **pVal
+ );
+ [id(44), propput]
+ HRESULT __stdcall Data (
+ [in] interface IStream *argNo1
+ );
+ };
+ [
+ uuid(ED79BA56-5294-4250-8D46-F9AECEE23459),
+ helpstring("Named stream collection"),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IFsiNamedStreams : IDispatch
+ {
+ [id(-4), propget, restricted, hidden]
+ HRESULT __stdcall _NewEnum (
+ [out retval] interface IEnumVARIANT **NewEnum
+ );
+ [id(0), propget]
+ HRESULT __stdcall Item (
+ [in] long Index,
+ [out retval] dispinterface IFsiFileItem2 **Item
+ );
+ [id(81), propget]
+ HRESULT __stdcall Count (
+ [out retval] long *Count
+ );
+ [propget, restricted, hidden]
+ HRESULT __stdcall EnumNamedStreams (
+ [out retval] interface IEnumFsiItems **NewEnum
+ );
+ };
+ [
+ uuid(7CFF842C-7E97-4807-8304-910DD8F7C051),
+ helpstring("File system image (rev.3)"),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IFileSystemImage3 : IFileSystemImage2
+ {
+ [id(61), propget]
+ HRESULT __stdcall CreateRedundantUdfMetadataFiles (
+ [out retval] WINBOOL *pVal
+ );
+ [id(61), propput]
+ HRESULT __stdcall CreateRedundantUdfMetadataFiles (
+ [in] WINBOOL argNo1
+ );
+ [id(70)]
+ HRESULT __stdcall ProbeSpecificFileSystem (
+ [in] enum FsiFileSystems fileSystemToProbe,
+ [out retval] WINBOOL *isAppendable
+ );
+ };
+ [
+ uuid(D7644B2C-1537-4767-B62F-F1387B02DDFD),
+ helpstring("File system image (rev.2)"),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IFileSystemImage2 : IFileSystemImage
+ {
+ [id(60), propget]
+ HRESULT __stdcall BootImageOptionsArray (
+ [out retval] VARIANT pVal[]*
+ );
+ [id(60), propput]
+ HRESULT __stdcall BootImageOptionsArray (
+ [in] VARIANT argNo1[]
+ );
+ };
+ [
+ uuid(2C941FE1-975B-59BE-A960-9A2A262853A5),
+ helpstring("File system image"),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IFileSystemImage : IDispatch
+ {
+ [id(0), propget]
+ HRESULT __stdcall Root (
+ [out retval] dispinterface IFsiDirectoryItem **pVal
+ );
+ [propget]
+ HRESULT __stdcall SessionStartBlock (
+ [out retval] long *pVal
+ );
+ [id(1), propput]
+ HRESULT __stdcall SessionStartBlock (
+ [in] long argNo1
+ );
+ [propget]
+ HRESULT __stdcall FreeMediaBlocks (
+ [out retval] long *pVal
+ );
+ [id(2), propput]
+ HRESULT __stdcall FreeMediaBlocks (
+ [in] long argNo1
+ );
+ [id(36)]
+ HRESULT __stdcall SetMaxMediaBlocksFromDevice (
+ [in] dispinterface IDiscRecorder2 *discRecorder
+ );
+ [id(3), propget]
+ HRESULT __stdcall UsedBlocks (
+ [out retval] long *pVal
+ );
+ [propget]
+ HRESULT __stdcall VolumeName (
+ [out retval] BSTR *pVal
+ );
+ [id(4), propput]
+ HRESULT __stdcall VolumeName (
+ [in] BSTR argNo1
+ );
+ [propget]
+ HRESULT __stdcall ImportedVolumeName (
+ [out retval] BSTR *pVal
+ );
+ [propget]
+ HRESULT __stdcall BootImageOptions (
+ [out retval] dispinterface IBootOptions **pVal
+ );
+ [id(6), propput]
+ HRESULT __stdcall BootImageOptions (
+ [in] dispinterface IBootOptions *argNo1
+ );
+ [propget]
+ HRESULT __stdcall FileCount (
+ [out retval] long *pVal
+ );
+ [propget]
+ HRESULT __stdcall DirectoryCount (
+ [out retval] long *pVal
+ );
+ [propget]
+ HRESULT __stdcall WorkingDirectory (
+ [out retval] BSTR *pVal
+ );
+ [id(9), propput]
+ HRESULT __stdcall WorkingDirectory (
+ [in] BSTR argNo1
+ );
+ [propget]
+ HRESULT __stdcall ChangePoint (
+ [out retval] long *pVal
+ );
+ [propget]
+ HRESULT __stdcall StrictFileSystemCompliance (
+ [out retval] WINBOOL *pVal
+ );
+ [id(11), propput]
+ HRESULT __stdcall StrictFileSystemCompliance (
+ [in] WINBOOL argNo1
+ );
+ [propget]
+ HRESULT __stdcall UseRestrictedCharacterSet (
+ [out retval] WINBOOL *pVal
+ );
+ [id(12), propput]
+ HRESULT __stdcall UseRestrictedCharacterSet (
+ [in] WINBOOL argNo1
+ );
+ [propget]
+ HRESULT __stdcall FileSystemsToCreate (
+ [out retval] enum FsiFileSystems *pVal
+ );
+ [id(13), propput]
+ HRESULT __stdcall FileSystemsToCreate (
+ [in] enum FsiFileSystems argNo1
+ );
+ [propget]
+ HRESULT __stdcall FileSystemsSupported (
+ [out retval] enum FsiFileSystems *pVal
+ );
+ [id(37), propput]
+ HRESULT __stdcall UDFRevision (
+ [in] long argNo1
+ );
+ [id(37), propget]
+ HRESULT __stdcall UDFRevision (
+ [out retval] long *pVal
+ );
+ [id(31), propget]
+ HRESULT __stdcall UDFRevisionsSupported (
+ [out retval] VARIANT pVal[]*
+ );
+ HRESULT __stdcall ChooseImageDefaults (
+ [in] dispinterface IDiscRecorder2 *discRecorder
+ );
+ HRESULT __stdcall ChooseImageDefaultsForMediaType (
+ [in] IMAPI_MEDIA_PHYSICAL_TYPE value
+ );
+ [propput]
+ HRESULT __stdcall ISO9660InterchangeLevel (
+ [in] long argNo1
+ );
+ [id(34), propget]
+ HRESULT __stdcall ISO9660InterchangeLevel (
+ [out retval] long *pVal
+ );
+ [id(38), propget]
+ HRESULT __stdcall ISO9660InterchangeLevelsSupported (
+ [out retval] VARIANT pVal[]*
+ );
+ [id(15)]
+ HRESULT __stdcall CreateResultImage (
+ [out retval] dispinterface IFileSystemImageResult **resultStream
+ );
+ HRESULT __stdcall Exists (
+ [in] BSTR FullPath,
+ [out retval] enum FsiItemType *itemType
+ );
+ [id(18)]
+ HRESULT __stdcall CalculateDiscIdentifier (
+ [out retval] BSTR *discIdentifier
+ );
+ HRESULT __stdcall IdentifyFileSystemsOnDisc (
+ [in] dispinterface IDiscRecorder2 *discRecorder,
+ [out retval] enum FsiFileSystems *fileSystems
+ );
+ HRESULT __stdcall GetDefaultFileSystemForImport (
+ [in] enum FsiFileSystems fileSystems,
+ [out retval] enum FsiFileSystems *importDefault
+ );
+ HRESULT __stdcall ImportFileSystem (
+ [out retval] enum FsiFileSystems *importedFileSystem
+ );
+ HRESULT __stdcall ImportSpecificFileSystem (
+ [in] enum FsiFileSystems fileSystemToUse
+ );
+ HRESULT __stdcall RollbackToChangePoint (
+ [in] long ChangePoint
+ );
+ HRESULT __stdcall LockInChangePoint (void);
+ HRESULT __stdcall CreateDirectoryItem (
+ [in] BSTR Name,
+ [out retval] dispinterface IFsiDirectoryItem **newItem
+ );
+ HRESULT __stdcall CreateFileItem (
+ [in] BSTR Name,
+ [out retval] dispinterface IFsiFileItem **newItem
+ );
+ [propget]
+ HRESULT __stdcall VolumeNameUDF (
+ [out retval] BSTR *pVal
+ );
+ [propget]
+ HRESULT __stdcall VolumeNameJoliet (
+ [out retval] BSTR *pVal
+ );
+ [propget]
+ HRESULT __stdcall VolumeNameISO9660 (
+ [out retval] BSTR *pVal
+ );
+ [propget]
+ HRESULT __stdcall StageFiles (
+ [out retval] WINBOOL *pVal
+ );
+ [id(30), propput]
+ HRESULT __stdcall StageFiles (
+ [in] WINBOOL argNo1
+ );
+ [id(40), propget]
+ HRESULT __stdcall MultisessionInterfaces (
+ [out retval] VARIANT pVal[]*
+ );
+ [id(40), propput]
+ HRESULT __stdcall MultisessionInterfaces (
+ [in] VARIANT argNo1[]
+ );
+ };
+ [
+ uuid(27354133-7F64-5B0F-8F00-5D77AFBE261E),
+ helpstring("Represents a single CD/DVD type device, and enables many common operations via a simplified API."),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IDiscRecorder2 : IDispatch
+ {
+ [id(256)]
+ HRESULT __stdcall EjectMedia (void);
+ HRESULT __stdcall CloseTray (void);
+ HRESULT __stdcall AcquireExclusiveAccess (
+ [in] WINBOOL force,
+ [in] BSTR __MIDL__IDiscRecorder20000
+ );
+ HRESULT __stdcall ReleaseExclusiveAccess (void);
+ HRESULT __stdcall DisableMcn (void);
+ HRESULT __stdcall EnableMcn (void);
+ HRESULT __stdcall InitializeDiscRecorder (
+ [in] BSTR recorderUniqueId
+ );
+ [id(0), propget]
+ HRESULT __stdcall ActiveDiscRecorder (
+ [out retval] BSTR *value
+ );
+ [id(513), propget]
+ HRESULT __stdcall VendorId (
+ [out retval] BSTR *value
+ );
+ [propget]
+ HRESULT __stdcall ProductId (
+ [out retval] BSTR *value
+ );
+ [propget]
+ HRESULT __stdcall ProductRevision (
+ [out retval] BSTR *value
+ );
+ [propget]
+ HRESULT __stdcall VolumeName (
+ [out retval] BSTR *value
+ );
+ [propget]
+ HRESULT __stdcall VolumePathNames (
+ [out retval] VARIANT value[]*
+ );
+ [propget]
+ HRESULT __stdcall DeviceCanLoadMedia (
+ [out retval] WINBOOL *value
+ );
+ [propget]
+ HRESULT __stdcall LegacyDeviceNumber (
+ [out retval] long *LegacyDeviceNumber
+ );
+ [propget]
+ HRESULT __stdcall SupportedFeaturePages (
+ [out retval] VARIANT value[]*
+ );
+ [propget]
+ HRESULT __stdcall CurrentFeaturePages (
+ [out retval] VARIANT value[]*
+ );
+ [propget]
+ HRESULT __stdcall SupportedProfiles (
+ [out retval] VARIANT value[]*
+ );
+ [propget]
+ HRESULT __stdcall CurrentProfiles (
+ [out retval] VARIANT value[]*
+ );
+ [propget]
+ HRESULT __stdcall SupportedModePages (
+ [out retval] VARIANT value[]*
+ );
+ [propget]
+ HRESULT __stdcall ExclusiveAccessOwner (
+ [out retval] BSTR *value
+ );
+ };
+
+};
+
+/* Interface declarations. */
+[
+ uuid(2C941FDF-975B-59BE-A960-9A2A262853A5),
+ helpstring("Provides notification of file system creation progress"),
+ nonextensible,
+ oleautomation,
+ dispatchable
+]
+interface DFileSystemImageEvents : IDispatch
+{
+ [id(256)]
+ HRESULT __stdcall Update (
+ [in] IDispatch * object,
+ [in] BSTR currentFile,
+ [in] long copiedSectors,
+ [in] long totalSectors
+ );
+};
+[
+ uuid(D25C30F9-4087-4366-9E24-E55BE286424B),
+ helpstring("Provides notification of file system import progress"),
+ nonextensible,
+ oleautomation,
+ dispatchable
+]
+interface DFileSystemImageImportEvents : IDispatch
+{
+ [id(257)]
+ HRESULT __stdcall UpdateImport (
+ [in] IDispatch * object,
+ [in] enum FsiFileSystems fileSystem,
+ [in] BSTR currentItem,
+ [in] long importedDirectoryItems,
+ [in] long totalDirectoryItems,
+ [in] long importedFileItems,
+ [in] long totalFileItems
+ );
+};
+[
+ uuid(0000000C-0000-0000-C000-000000000046)
+]
+interface IStream : ISequentialStream
+{
+ [id(1610743808)]
+ HRESULT __stdcall RemoteSeek (
+ [in] struct _LARGE_INTEGER dlibMove,
+ [in] UINT dwOrigin,
+ [out] struct _ULARGE_INTEGER *plibNewPosition
+ );
+ HRESULT __stdcall SetSize (
+ [in] struct _ULARGE_INTEGER libNewSize
+ );
+ HRESULT __stdcall RemoteCopyTo (
+ [in] interface IStream *pstm,
+ [in] struct _ULARGE_INTEGER cb,
+ [out] struct _ULARGE_INTEGER *pcbRead,
+ [out] struct _ULARGE_INTEGER *pcbWritten
+ );
+ HRESULT __stdcall Commit (
+ [in] UINT grfCommitFlags
+ );
+ HRESULT __stdcall Revert (void);
+ HRESULT __stdcall LockRegion (
+ [in] struct _ULARGE_INTEGER libOffset,
+ [in] struct _ULARGE_INTEGER cb,
+ [in] UINT dwLockType
+ );
+ HRESULT __stdcall UnlockRegion (
+ [in] struct _ULARGE_INTEGER libOffset,
+ [in] struct _ULARGE_INTEGER cb,
+ [in] UINT dwLockType
+ );
+ HRESULT __stdcall Stat (
+ [out] struct tagSTATSTG *pstatstg,
+ [in] UINT grfStatFlag
+ );
+ HRESULT __stdcall Clone (
+ [out] interface IStream **ppstm
+ );
+};
+[
+ uuid(0C733A30-2A1C-11CE-ADE5-00AA0044773D)
+]
+interface ISequentialStream : IUnknown
+{
+ [id(1610678272)]
+ HRESULT __stdcall RemoteRead (
+ [out] UCHAR *pv,
+ [in] UINT cb,
+ [out] UINT *pcbRead
+ );
+ HRESULT __stdcall RemoteWrite (
+ [in] UCHAR *pv,
+ [in] UINT cb,
+ [out] UINT *pcbWritten
+ );
+};
+[
+ uuid(2C941FD6-975B-59BE-A960-9A2A262853A5),
+ helpstring("FileSystemImageResult progress item enumerator")
+]
+interface IEnumProgressItems : IUnknown
+{
+ [id(1610678272)]
+ HRESULT __stdcall RemoteNext (
+ [in] UINT celt,
+ [out] dispinterface IProgressItem **rgelt,
+ [out] UINT *pceltFetched
+ );
+ HRESULT __stdcall Skip (
+ [in] UINT celt
+ );
+ HRESULT __stdcall Reset (void);
+ HRESULT __stdcall Clone (
+ [out] interface IEnumProgressItems **ppEnum
+ );
+};
+[
+ uuid(2C941FDA-975B-59BE-A960-9A2A262853A5),
+ helpstring("FileSystemImage item enumerator")
+]
+interface IEnumFsiItems : IUnknown
+{
+ [id(1610678272)]
+ HRESULT __stdcall RemoteNext (
+ [in] UINT celt,
+ [out] dispinterface IFsiItem **rgelt,
+ [out] UINT *pceltFetched
+ );
+ HRESULT __stdcall Skip (
+ [in] UINT celt
+ );
+ HRESULT __stdcall Reset (void);
+ HRESULT __stdcall Clone (
+ [out] interface IEnumFsiItems **ppEnum
+ );
+};
+[
+ uuid(B196B284-BAB4-101A-B69C-00AA00341D07)
+]
+interface IConnectionPointContainer : IUnknown
+{
+ [id(1610678272)]
+ HRESULT __stdcall EnumConnectionPoints (
+ [out] interface IEnumConnectionPoints **ppEnum
+ );
+ HRESULT __stdcall FindConnectionPoint (
+ [in] struct GUID *riid,
+ [out] interface IConnectionPoint **ppCP
+ );
+};
+[
+ uuid(B196B285-BAB4-101A-B69C-00AA00341D07)
+]
+interface IEnumConnectionPoints : IUnknown
+{
+ [id(1610678272)]
+ HRESULT __stdcall RemoteNext (
+ [in] UINT cConnections,
+ [out] interface IConnectionPoint **ppCP,
+ [out] UINT *pcFetched
+ );
+ HRESULT __stdcall Skip (
+ [in] UINT cConnections
+ );
+ HRESULT __stdcall Reset (void);
+ HRESULT __stdcall Clone (
+ [out] interface IEnumConnectionPoints **ppEnum
+ );
+};
+[
+ uuid(B196B286-BAB4-101A-B69C-00AA00341D07)
+]
+interface IConnectionPoint : IUnknown
+{
+ [id(1610678272)]
+ HRESULT __stdcall GetConnectionInterface (
+ [out] struct GUID *pIID
+ );
+ HRESULT __stdcall GetConnectionPointContainer (
+ [out] interface IConnectionPointContainer **ppCPC
+ );
+ HRESULT __stdcall Advise (
+ [in] IUnknown * pUnkSink,
+ [out] UINT *pdwCookie
+ );
+ HRESULT __stdcall Unadvise (
+ [in] UINT dwCookie
+ );
+ HRESULT __stdcall EnumConnections (
+ [out] interface IEnumConnections **ppEnum
+ );
+};
+[
+ uuid(B196B287-BAB4-101A-B69C-00AA00341D07)
+]
+interface IEnumConnections : IUnknown
+{
+ [id(1610678272)]
+ HRESULT __stdcall RemoteNext (
+ [in] UINT cConnections,
+ [out] struct tagCONNECTDATA *rgcd,
+ [out] UINT *pcFetched
+ );
+ HRESULT __stdcall Skip (
+ [in] UINT cConnections
+ );
+ HRESULT __stdcall Reset (void);
+ HRESULT __stdcall Clone (
+ [out] interface IEnumConnections **ppEnum
+ );
+};
+[
+ uuid(6CA38BE5-FBBB-4800-95A1-A438865EB0D4),
+ helpstring("ISO Image Manager: Helper object for ISO image file manipulation"),
+ dispatchable
+]
+interface IIsoImageManager : IDispatch
+{
+ [id(256), propget]
+ HRESULT __stdcall path (
+ [out retval] BSTR *pVal
+ );
+ [propget]
+ HRESULT __stdcall Stream (
+ [out retval] interface IStream **Data
+ );
+ [id(512)]
+ HRESULT __stdcall SetPath (
+ [in] BSTR Val
+ );
+ HRESULT __stdcall SetStream (
+ [in] interface IStream *Data
+ );
+ HRESULT __stdcall Validate (void);
+};
+
diff --git a/mingw-w64-headers/include/ipexport.h b/mingw-w64-headers/include/ipexport.h
index a39a060..3766126 100644
--- a/mingw-w64-headers/include/ipexport.h
+++ b/mingw-w64-headers/include/ipexport.h
@@ -95,6 +95,13 @@
ULONG64 OutMcastPkts;
} IP_MCAST_COUNTER_INFO,*PIP_MCAST_COUNTER_INFO;
+typedef struct _IPV6_ADDRESS_EX_LH {
+ USHORT sin6_port;
+ ULONG sin6_flowinfo;
+ USHORT sin6_addr[8];
+ ULONG sin6_scope_id;
+} IPV6_ADDRESS_EX, *PIPV6_ADDRESS_EX;
+
#define IP_STATUS_BASE 11000
#define IP_SUCCESS 0
diff --git a/mingw-w64-headers/include/iphlpapi.h b/mingw-w64-headers/include/iphlpapi.h
index 9ef0576..58d39d2 100644
--- a/mingw-w64-headers/include/iphlpapi.h
+++ b/mingw-w64-headers/include/iphlpapi.h
@@ -13,6 +13,10 @@
#include <iprtrmib.h>
#include <ipexport.h>
#include <iptypes.h>
+#include <netioapi.h>
+#include <tcpmib.h>
+#include <udpmib.h>
+#include <tcpestats.h>
DWORD WINAPI GetNumberOfInterfaces(PDWORD pdwNumIf);
DWORD WINAPI GetIfEntry(PMIB_IFROW pIfRow);
@@ -81,6 +85,159 @@
DWORD WINAPI RestoreMediaSense(OVERLAPPED *pOverlapped,LPDWORD lpdwEnableCount);
DWORD WINAPI GetIpErrorString(IP_STATUS ErrorCode,PWCHAR Buffer,PDWORD Size);
+DWORD WINAPI GetExtendedUdpTable(
+ PVOID pUdpTable,
+ PDWORD pdwSize,
+ WINBOOL bOrder,
+ ULONG ulAf,
+ UDP_TABLE_CLASS TableClass,
+ ULONG Reserved
+);
+
+DWORD WINAPI GetOwnerModuleFromTcp6Entry(
+ PMIB_TCP6ROW_OWNER_MODULE pTcpEntry,
+ TCPIP_OWNER_MODULE_INFO_CLASS Class,
+ PVOID Buffer,
+ PDWORD pdwSize
+);
+
+DWORD WINAPI GetOwnerModuleFromTcpEntry(
+ PMIB_TCPROW_OWNER_MODULE pTcpEntry,
+ TCPIP_OWNER_MODULE_INFO_CLASS Class,
+ PVOID Buffer,
+ PDWORD pdwSize
+);
+
+DWORD WINAPI GetOwnerModuleFromUdp6Entry(
+ PMIB_UDP6ROW_OWNER_MODULE pUdpEntry,
+ TCPIP_OWNER_MODULE_INFO_CLASS Class,
+ PVOID Buffer,
+ PDWORD pdwSize
+);
+
+DWORD WINAPI GetOwnerModuleFromUdpEntry(
+ PMIB_UDPROW_OWNER_MODULE pUdpEntry,
+ TCPIP_OWNER_MODULE_INFO_CLASS Class,
+ PVOID Buffer,
+ PDWORD pdwSize
+);
+
+#if (_WIN32_WINNT == 0x0502) /* Only with Win2003 SP1 and SP2 */
+ WINBOOL WINAPI CancelSecurityHealthChangeNotify(LPOVERLAPPED notifyOverlapped);
+#endif /*(_WIN32_WINNT == 0x0502)*/
+
+#if (_WIN32_WINNT >= 0x0600)
+#include <windns.h>
+
+typedef enum _NET_ADDRESS_FORMAT {
+ NET_ADDRESS_FORMAT_UNSPECIFIED = 0,
+ NET_ADDRESS_DNS_NAME,
+ NET_ADDRESS_IPV4,
+ NET_ADDRESS_IPV6
+} NET_ADDRESS_FORMAT;
+
+typedef struct _NET_ADDRESS_INFO {
+ NET_ADDRESS_FORMAT Format;
+ __MINGW_EXTENSION union {
+ __MINGW_EXTENSION struct {
+ WCHAR Address[DNS_MAX_NAME_BUFFER_LENGTH];
+ WCHAR Port[6];
+ } NamedAddress;
+ SOCKADDR_IN Ipv4Address;
+ SOCKADDR_IN6 Ipv6Address;
+ SOCKADDR IpAddress;
+ };
+} NET_ADDRESS_INFO, *PNET_ADDRESS_INFO;
+
+ULONG WINAPI GetPerTcp6ConnectionEStats(
+ PMIB_TCP6ROW Row,
+ TCP_ESTATS_TYPE EstatsType,
+ PUCHAR Rw,
+ ULONG RwVersion,
+ ULONG RwSize,
+ PUCHAR Ros,
+ ULONG RosVersion,
+ ULONG RosSize,
+ PUCHAR Rod,
+ ULONG RodVersion,
+ ULONG RodSize
+);
+
+ULONG WINAPI SetPerTcp6ConnectionEStats(
+ PMIB_TCP6ROW Row,
+ TCP_ESTATS_TYPE EstatsType,
+ PUCHAR Rw,
+ ULONG RwVersion,
+ ULONG RwSize,
+ ULONG Offset
+);
+
+ULONG WINAPI SetPerTcpConnectionEStats(
+ PMIB_TCPROW Row,
+ TCP_ESTATS_TYPE EstatsType,
+ PUCHAR Rw,
+ ULONG RwVersion,
+ ULONG RwSize,
+ ULONG Offset
+);
+
+ULONG WINAPI GetTcp6Table(
+ PMIB_TCP6TABLE TcpTable,
+ PULONG SizePointer,
+ WINBOOL Order
+);
+
+ULONG WINAPI GetPerTcpConnectionEStats(
+ PMIB_TCPROW Row,
+ TCP_ESTATS_TYPE EstatsType,
+ PUCHAR Rw,
+ ULONG RwVersion,
+ ULONG RwSize,
+ PUCHAR Ros,
+ ULONG RosVersion,
+ ULONG RosSize,
+ PUCHAR Rod,
+ ULONG RodVersion,
+ ULONG RodSize
+);
+
+ULONG WINAPI GetTcp6Table2(
+ PMIB_TCP6TABLE2 TcpTable,
+ PULONG SizePointer,
+ WINBOOL Order
+);
+
+ULONG WINAPI GetTcpTable2(
+ PMIB_TCPTABLE2 TcpTable,
+ PULONG SizePointer,
+ WINBOOL Order
+);
+
+ULONG WINAPI GetUdp6Table(
+ PMIB_UDP6TABLE Udp6Table,
+ PULONG SizePointer,
+ WINBOOL Order
+);
+
+DWORD WINAPI NotifySecurityHealthChange(
+ PHANDLE pHandle,
+ LPOVERLAPPED pOverLapped,
+ PULONG SecurityHealthFlags
+);
+
+ULONG WINAPI ResolveNeighbor(
+ SOCKADDR *NetworkAddress,
+ PVOID PhysicalAddress,
+ PULONG PhysicalAddressLength
+);
+
+DWORD WINAPI SetIpStatisticsEx(
+ PMIB_IPSTATS pIpStats,
+ ULONG Family
+);
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
#ifdef __cplusplus
}
#endif
diff --git a/mingw-w64-headers/include/ipmib.h b/mingw-w64-headers/include/ipmib.h
new file mode 100644
index 0000000..c0b45b4
--- /dev/null
+++ b/mingw-w64-headers/include/ipmib.h
@@ -0,0 +1,6 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#include <nldef.h>
diff --git a/mingw-w64-headers/include/iprtrmib.h b/mingw-w64-headers/include/iprtrmib.h
index 0b04407..75614a4 100644
--- a/mingw-w64-headers/include/iprtrmib.h
+++ b/mingw-w64-headers/include/iprtrmib.h
@@ -7,7 +7,9 @@
#define __ROUTING_IPRTRMIB_H__
#include <mprapi.h>
+#include <ipmib.h>
#include <ipifcons.h>
+#include <udpmib.h>
#define IPRTRMGR_PID 10000
@@ -730,6 +732,21 @@
};
} MIB_OPAQUE_INFO,*PMIB_OPAQUE_INFO;
+typedef struct {
+ PWCHAR pModuleName;
+ PWCHAR pModulePath;
+} TCPIP_OWNER_MODULE_BASIC_INFO, *PTCPIP_OWNER_MODULE_BASIC_INFO;
+
+typedef enum UDP_TABLE_CLASS {
+ UDP_TABLE_BASIC,
+ UDP_TABLE_OWNER_PID,
+ UDP_TABLE_OWNER_MODULE
+} UDP_TABLE_CLASS, *PUDP_TABLE_CLASS;
+
+typedef enum _TCPIP_OWNER_MODULE_INFO_CLASS {
+ TCPIP_OWNER_MODULE_INFO_BASIC
+} TCPIP_OWNER_MODULE_INFO_CLASS, *PTCPIP_OWNER_MODULE_INFO_CLASS;
+
#define MAX_MIB_OFFSET 8
#define MIB_INFO_SIZE(S) (MAX_MIB_OFFSET + sizeof(S))
diff --git a/mingw-w64-headers/include/ipsectypes.h b/mingw-w64-headers/include/ipsectypes.h
new file mode 100644
index 0000000..e932b29
--- /dev/null
+++ b/mingw-w64-headers/include/ipsectypes.h
@@ -0,0 +1,199 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_IPSECTYPES
+#define _INC_IPSECTYPES
+#include <iketypes.h>
+
+#if (_WIN32_WINNT >= 0x0600)
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef UINT8 IPSEC_AUTH_CONFIG;
+typedef UINT8 IPSEC_CIPHER_CONFIG;
+
+typedef struct IPSEC_SA_TRANSFORM0_ IPSEC_SA_TRANSFORM0;
+
+typedef enum IPSEC_FAILURE_POINT_ {
+ IPSEC_FAILURE_NONE,
+ IPSEC_FAILURE_ME,
+ IPSEC_FAILURE_PEER,
+ IPSEC_FAILURE_POINT_MAX
+} IPSEC_FAILURE_POINT;
+
+typedef enum IPSEC_TRAFFIC_TYPE_ {
+ IPSEC_TRAFFIC_TYPE_TRANSPORT,
+ IPSEC_TRAFFIC_TYPE_TUNNEL,
+ IPSEC_TRAFFIC_TYPE_MAX
+} IPSEC_TRAFFIC_TYPE;
+
+typedef enum IPSEC_PFS_GROUP_ {
+ IPSEC_PFS_NONE,
+ IPSEC_PFS_1,
+ IPSEC_PFS_2,
+ IPSEC_PFS_2048,
+ IPSEC_PFS_ECP_256,
+ IPSEC_PFS_ECP_384,
+ IPSEC_PFS_MM,
+ IPSEC_PFS_MAX
+} IPSEC_PFS_GROUP;
+
+typedef enum IPSEC_TRANSFORM_TYPE_ {
+ IPSEC_TRANSFORM_AH,
+ IPSEC_TRANSFORM_ESP_AUTH,
+ IPSEC_TRANSFORM_ESP_CIPHER,
+ IPSEC_TRANSFORM_ESP_AUTH_AND_CIPHER,
+ IPSEC_TRANSFORM_ESP_AUTH_FW,
+ IPSEC_TRANSFORM_TYPE_MAX
+} IPSEC_TRANSFORM_TYPE;
+
+typedef enum IPSEC_AUTH_TYPE_ {
+ IPSEC_AUTH_MD5,
+ IPSEC_AUTH_SHA_1,
+ IPSEC_AUTH_SHA_256,
+ IPSEC_AUTH_AES_128,
+ IPSEC_AUTH_AES_192,
+ IPSEC_AUTH_AES_256,
+ IPSEC_AUTH_MAX
+} IPSEC_AUTH_TYPE;
+
+typedef enum IPSEC_CIPHER_TYPE_ {
+ IPSEC_CIPHER_TYPE_DES,
+ IPSEC_CIPHER_TYPE_3DES,
+ IPSEC_CIPHER_TYPE_AES_128,
+ IPSEC_CIPHER_TYPE_AES_192,
+ IPSEC_CIPHER_TYPE_AES_256,
+ IPSEC_CIPHER_TYPE_MAX
+} IPSEC_CIPHER_TYPE;
+
+typedef enum IPSEC_CIPHER_TYPE_ {
+ IPSEC_CIPHER_TYPE_DES,
+ IPSEC_CIPHER_TYPE_3DES,
+ IPSEC_CIPHER_TYPE_AES_128,
+ IPSEC_CIPHER_TYPE_AES_192,
+ IPSEC_CIPHER_TYPE_AES_256,
+ IPSEC_CIPHER_TYPE_MAX
+} IPSEC_CIPHER_TYPE;
+
+typedef enum IPSEC_TOKEN_MODE_ {
+ IPSEC_TOKEN_MODE_MAIN,
+ IPSEC_TOKEN_MODE_EXTENDED,
+ IPSEC_TOKEN_MODE_MAX
+} IPSEC_TOKEN_MODE;
+
+typedef enum IPSEC_TOKEN_PRINCIPAL_ {
+ IPSEC_TOKEN_PRINCIPAL_LOCAL,
+ IPSEC_TOKEN_PRINCIPAL_PEER,
+ IPSEC_TOKEN_PRINCIPAL_MAX
+} IPSEC_TOKEN_PRINCIPAL;
+
+typedef enum IPSEC_TOKEN_TYPE_ {
+ IPSEC_TOKEN_TYPE_MACHINE,
+ IPSEC_TOKEN_TYPE_IMPERSONATION,
+ IPSEC_TOKEN_TYPE_MAX
+} IPSEC_TOKEN_TYPE;
+
+typedef struct IPSEC_SA_LIFETIME0_ {
+ UINT32 lifetimeSeconds;
+ UINT32 lifetimeKilobytes;
+ UINT32 lifetimePackets;
+} IPSEC_SA_LIFETIME0;
+
+typedef struct IPSEC_KEYING_POLICY0_ {
+ UINT32 numKeyMods;
+ GUID *keyModKeys;
+} IPSEC_KEYING_POLICY0;
+
+typedef struct IPSEC_SA_IDLE_TIMEOUT0_ {
+ UINT32 idleTimeoutSeconds;
+ UINT32 idleTimeoutSecondsFailOver;
+} IPSEC_SA_IDLE_TIMEOUT0;
+
+typedef struct IPSEC_PROPOSAL0_ {
+ IPSEC_SA_LIFETIME0 lifetime;
+ UINT32 numSaTransforms;
+ IPSEC_SA_TRANSFORM0 *saTransforms;
+ IPSEC_PFS_GROUP pfsGroup;
+} IPSEC_PROPOSAL0;
+
+typedef struct IPSEC_TRANSPORT_POLICY0_ {
+ UINT32 numIpsecProposals;
+ IPSEC_PROPOSAL0 *ipsecProposals;
+ UINT32 flags;
+ UINT32 ndAllowClearTimeoutSeconds;
+ IPSEC_SA_IDLE_TIMEOUT0 saIdleTimeout;
+ IKEEXT_EM_POLICY0 *emPolicy;
+} IPSEC_TRANSPORT_POLICY0;
+
+typedef struct IPSEC_AUTH_TRANSFORM_ID0_ {
+ IPSEC_AUTH_TYPE authType;
+ IPSEC_AUTH_CONFIG authConfig;
+} IPSEC_AUTH_TRANSFORM_ID0;
+
+typedef LPVOID IPSEC_CRYPTO_MODULE_ID;
+
+typedef struct IPSEC_AUTH_TRANSFORM0_ {
+ IPSEC_AUTH_TRANSFORM_ID0 authTransformId;
+ IPSEC_CRYPTO_MODULE_ID *cryptoModuleId;
+} IPSEC_AUTH_TRANSFORM0;
+
+typedef struct IPSEC_CIPHER_TRANSFORM0_ {
+ IPSEC_CIPHER_TRANSFORM_ID0 cipherTransformId;
+ IPSEC_CRYPTO_MODULE_ID *cryptoModuleId;
+} IPSEC_CIPHER_TRANSFORM0;
+
+typedef struct IPSEC_SA_TRANSFORM0_ {
+ IPSEC_TRANSFORM_TYPE ipsecTransformType;
+ __MINGW_EXTENSION union {
+ IPSEC_AUTH_TRANSFORM0 *ahTransform;
+ IPSEC_AUTH_TRANSFORM0 *espAuthTransform;
+ IPSEC_CIPHER_TRANSFORM0 *espCipherTransform;
+ IPSEC_AUTH_AND_CIPHER_TRANSFORM0 *espAuthAndCipherTransform;
+ IPSEC_AUTH_TRANSFORM0 *espAuthFwTransform;
+ };
+} IPSEC_SA_TRANSFORM0;
+
+typedef struct IPSEC_CIPHER_TRANSFORM_ID0_ {
+ IPSEC_CIPHER_TYPE cipherType;
+ IPSEC_CIPHER_CONFIG cipherConfig;
+} IPSEC_CIPHER_TRANSFORM_ID0;
+
+typedef struct IPSEC_AUTH_AND_CIPHER_TRANSFORM0_ {
+ IPSEC_AUTH_TRANSFORM0 authTransform;
+ IPSEC_CIPHER_TRANSFORM0 cipherTransform;
+} IPSEC_AUTH_AND_CIPHER_TRANSFORM0;
+
+typedef struct IPSEC_TUNNEL_POLICY0_ {
+ UINT32 flags;
+ UINT32 numIpsecProposals;
+ IPSEC_PROPOSAL0 *ipsecProposals;
+ IPSEC_TUNNEL_ENDPOINTS0 tunnelEndpoints;
+ IPSEC_SA_IDLE_TIMEOUT0 saIdleTimeout;
+ IKEEXT_EM_POLICY0 *emPolicy;
+} IPSEC_TUNNEL_POLICY0;
+
+typedef struct IPSEC_TUNNEL_ENDPOINTS0_ {
+ FWP_IP_VERSION ipVersion;
+ __MINGW_EXTENSION union {
+ UINT32 localV4Address;
+ UINT8 localV6Address[16];
+ };
+ __MINGW_EXTENSION union {
+ UINT32 remoteV4Address;
+ UINT8 remoteV6Address[16];
+ };
+} IPSEC_TUNNEL_ENDPOINTS0;
+
+typedef struct IPSEC_V4_UDP_ENCAPSULATION0_ {
+ UINT16 localUdpEncapPort;
+ UINT16 remoteUdpEncapPort;
+} IPSEC_V4_UDP_ENCAPSULATION0;
+
+#ifdef __cplusplus
+}
+#endif
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_IPSECTYPES*/
diff --git a/mingw-w64-headers/include/iptypes.h b/mingw-w64-headers/include/iptypes.h
index 4164326..83e3f03 100644
--- a/mingw-w64-headers/include/iptypes.h
+++ b/mingw-w64-headers/include/iptypes.h
@@ -226,6 +226,15 @@
} IP_INTERFACE_NAME_INFO,*PIP_INTERFACE_NAME_INFO;
#endif
+#if (_WIN32_WINNT >= 0x0600)
+#define MAX_DNS_SUFFIX_STRING_LENGTH 256
+
+typedef struct _IP_ADAPTER_DNS_SUFFIX {
+ struct _IP_ADAPTER_DNS_SUFFIX *Next;
+ WCHAR String[MAX_DNS_SUFFIX_STRING_LENGTH];
+} IP_ADAPTER_DNS_SUFFIX, *PIP_ADAPTER_DNS_SUFFIX;
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
#ifdef __cplusplus
}
#endif
diff --git a/mingw-w64-headers/include/iscsidsc.h b/mingw-w64-headers/include/iscsidsc.h
new file mode 100644
index 0000000..9423f3d
--- /dev/null
+++ b/mingw-w64-headers/include/iscsidsc.h
@@ -0,0 +1,755 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_ISCSIDSC
+#define _INC_ISCSIDSC
+#include <ntddscsi.h>
+#if (_WIN32_WINNT >= 0x0600)
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+ typedef PVOID ISCSI_UNIQUE_SESSION_ID;
+ typedef PVOID ISCSI_UNIQUE_CONNECTION_ID;
+ typedef ISCSI_UNIQUE_SESSION_ID *PISCSI_UNIQUE_SESSION_ID;
+ typedef ISCSI_UNIQUE_CONNECTION_ID *PISCSI_UNIQUE_CONNECTION_ID;
+
+ typedef enum {
+ ISCSI_NO_AUTH_TYPE = 0,
+ ISCSI_CHAP_AUTH_TYPE = 1,
+ ISCSI_MUTUAL_CHAP_AUTH_TYPE = 2
+ } ISCSI_AUTH_TYPES;
+
+ typedef enum {
+ ISCSI_DIGEST_TYPE_NONE = 0,
+ ISCSI_DIGEST_TYPE_CRC32C = 1
+ } ISCSI_DIGEST_TYPES;
+
+/* typedef struct _ISCSI_LOGIN_OPTIONS_INFO_SPECIFIED {
+ WINBOOL ISCSI_LOGIN_OPTIONS_USERNAME:1;
+ WINBOOL ISCSI_LOGIN_OPTIONS_PASSWORD:1;
+ WINBOOL ISCSI_LOGIN_OPTIONS_HEADER_DIGEST:1;
+ WINBOOL ISCSI_LOGIN_OPTIONS_DATA_DIGEST:1;
+ WINBOOL ISCSI_LOGIN_OPTIONS_MAXIMUM_CONNECTIONS:1;
+ WINBOOL ISCSI_LOGIN_OPTIONS_DEFAULT_TIME_2_WAIT:1;
+ WINBOOL ISCSI_LOGIN_OPTIONS_DEFAULT_TIME_2_RETAIN:1;
+ WINBOOL ISCSI_LOGIN_OPTIONS_AUTH_TYPE:1;
+ } ISCSI_LOGIN_OPTIONS_INFO_SPECIFIED;
+
+ typedef struct _ISCSI_LOGIN_FLAGS {
+ WIBBOOL ISCSI_LOGIN_FLAG_RESERVED1:1;
+ WIBBOOL ISCSI_LOGIN_FLAG_ALLOW_PORTAL_HOPPING:1;
+ WIBBOOL ISCSI_LOGIN_FLAG_REQUIRE_IPSEC:1;
+ WIBBOOL ISCSI_LOGIN_FLAG_MULTIPATH_ENABLED:1;
+ } ISCSI_LOGIN_FLAGS;
+
+ typedef struct _ISCSI_SECURITY_FLAGS {
+ WINBOOL ISCSI_SECURITY_FLAG_TUNNEL_MODE_PREFERRED:1;
+ WINBOOL ISCSI_SECURITY_FLAG_TRANSPORT_MODE_PREFERRED:1;
+ WINBOOL ISCSI_SECURITY_FLAG_PFS_ENABLED:1;
+ WINBOOL ISCSI_SECURITY_FLAG_AGGRESSIVE_MODE_ENABLED:1;
+ WINBOOL ISCSI_SECURITY_FLAG_MAIN_MODE_ENABLED:1;
+ WINBOOL ISCSI_SECURITY_FLAG_IKE_IPSEC_ENABLED:1;
+ WINBOOL ISCSI_SECURITY_FLAG_VALID:1;
+ } ISCSI_SECURITY_FLAGS;*/
+
+#define AddIScsiConnection __MINGW_NAME_AW(AddIScsiConnection)
+#define AddIScsiSendTargetPortal __MINGW_NAME_AW(AddIScsiSendTargetPortal)
+#define AddIScsiStaticTarget __MINGW_NAME_AW(AddIScsiStaticTarget)
+#define RemoveIScsiStaticTarget __MINGW_NAME_AW(RemoveIScsiStaticTarget)
+#define AddISNSServer __MINGW_NAME_AW(AddISNSServer)
+#define AddPersistentiScsiDevice __MINGW_NAME_AW(AddPersistentiScsiDevice)
+#define RemoveIScsiPersistentTarget __MINGW_NAME_AW(RemoveIScsiPersistentTarget)
+#define RemovePersistentIScsiDevice __MINGW_NAME_AW(RemovePersistentIScsiDevice)
+#define PERSISTENT_ISCSI_LOGIN_INFO __MINGW_NAME_AW(PERSISTENT_ISCSI_LOGIN_INFO)
+#define AddRadiusServer __MINGW_NAME_AW(AddRadiusServer)
+#define RemoveRadiusServer __MINGW_NAME_AW(RemoveRadiusServer)
+
+#define MAX_ISCSI_PORTAL_NAME_LEN 256
+#define MAX_ISCSI_PORTAL_ADDRESS_LEN 256
+#define MAX_ISCSI_HBANAME_LEN 256
+
+#define ISCSI_SECURITY_FLAG_TUNNEL_MODE_PREFERRED (0x1UL<<25)
+#define ISCSI_SECURITY_FLAG_TRANSPORT_MODE_PREFERRED (0x1UL<<26)
+#define ISCSI_SECURITY_FLAG_PFS_ENABLED (0x1UL<<27)
+#define ISCSI_SECURITY_FLAG_AGGRESSIVE_MODE_ENABLED (0x1UL<<28)
+#define ISCSI_SECURITY_FLAG_MAIN_MODE_ENABLED (0x1UL<<29)
+#define ISCSI_SECURITY_FLAG_IKE_IPSEC_ENABLED (0x1UL<<30)
+#define ISCSI_SECURITY_FLAG_VALID (0x1UL<<31)
+
+typedef DWORD ISCSI_LOGIN_OPTIONS_INFO_SPECIFIED;
+typedef DWORD ISCSI_LOGIN_FLAGS;
+typedef DWORD ISCSI_SECURITY_FLAGS;
+
+typedef enum _TARGET_INFORMATION_CLASS {
+ ProtocolType,
+ TargetAlias,
+ DiscoveryMechanism,
+ PortalGroups,
+ PersistentTargetMappings,
+ InitiatorName,
+ TargetFlags,
+ LoginOptions
+} TARGET_INFORMATION_CLASS;
+
+typedef enum _TARGETPROTOCOLTYPE {
+ ISCSI_TCP_PROTOCOL_TYPE
+
+} TARGETPROTOCOLTYPE;
+
+typedef enum _IKE_AUTHENTICATION_METHOD {
+ IKE_AUTHENTICATION_PRESHARED_KEY_METHOD = 1
+} IKE_AUTHENTICATION_METHOD, *PIKE_AUTHENTICATION_METHOD;
+
+typedef struct _ISCSI_LOGIN_OPTIONS {
+ ULONG Version;
+ ISCSI_LOGIN_OPTIONS_INFO_SPECIFIED InformationSpecified;
+ ISCSI_LOGIN_FLAGS LoginFlags;
+ ISCSI_AUTH_TYPES AuthType;
+ ISCSI_DIGEST_TYPES HeaderDigest;
+ ISCSI_DIGEST_TYPES DataDigest;
+ ULONG MaximumConnections;
+ ULONG DefaultTime2Wait;
+ ULONG DefaultTime2Retain;
+ ULONG UsernameLength;
+ ULONG PasswordLength;
+ PUCHAR Username;
+ PUCHAR Password;
+} ISCSI_LOGIN_OPTIONS, *PISCSI_LOGIN_OPTIONS, *PSCSI_LOGIN_OPTIONS, *PISCI_LOGIN_OPTIONS;
+
+typedef struct _ISCSI_TARGET_PORTALA {
+ CHAR SymbolicName[MAX_ISCSI_PORTAL_NAME_LEN];
+ CHAR Address[MAX_ISCSI_PORTAL_ADDRESS_LEN];
+ USHORT Socket;
+} ISCSI_TARGET_PORTALA, *PISCSI_TARGET_PORTALA;
+
+typedef struct _ISCSI_TARGET_PORTALW {
+ WCHAR SymbolicName[MAX_ISCSI_PORTAL_NAME_LEN];
+ WCHAR Address[MAX_ISCSI_PORTAL_ADDRESS_LEN];
+ USHORT Socket;
+} ISCSI_TARGET_PORTALW, *PISCSI_TARGET_PORTALW;
+
+typedef struct _ISCSI_TARGET_PORTAL_GROUPA {
+ ULONG Count;
+ ISCSI_TARGET_PORTALA Portals[1];
+} ISCSI_TARGET_PORTAL_GROUPA, *PISCSI_TARGET_PORTAL_GROUPA;
+
+typedef struct _ISCSI_TARGET_PORTAL_GROUPW {
+ ULONG Count;
+ ISCSI_TARGET_PORTALW Portals[1];
+} ISCSI_TARGET_PORTAL_GROUPW, *PISCSI_TARGET_PORTAL_GROUPW;
+
+typedef struct _ISCSI_LUN_LIST {
+ ULONG OSLUN;
+ ULONGLONG TargetLUN;
+} SCSI_LUN_LIST, *PSCSI_LUN_LIST;
+
+typedef struct _ISCSI_TARGET_MAPPINGA {
+ CHAR InitiatorName[MAX_ISCSI_HBANAME_LEN];
+ CHAR TargetName[MAX_ISCSI_NAME_LEN];
+ CHAR OSDeviceName[MAX_PATH];
+ ISCSI_UNIQUE_SESSION_ID SessionId;
+ ULONG OSBusNumber;
+ ULONG OSTargetNumber;
+ ULONG LUNCount;
+ PSCSI_LUN_LIST LUNList;
+} ISCSI_TARGET_MAPPINGA, *PISCSI_TARGET_MAPPINGA;
+
+typedef struct _ISCSI_TARGET_MAPPINGW {
+ WCHAR InitiatorName[MAX_ISCSI_HBANAME_LEN];
+ WCHAR TargetName[MAX_ISCSI_NAME_LEN];
+ WCHAR OSDeviceName[MAX_PATH];
+ ISCSI_UNIQUE_SESSION_ID SessionId;
+ ULONG OSBusNumber;
+ ULONG OSTargetNumber;
+ ULONG LUNCount;
+ PSCSI_LUN_LIST LUNList;
+} ISCSI_TARGET_MAPPINGW, *PISCSI_TARGET_MAPPINGW;
+
+typedef struct _PERSISTENT_ISCSI_LOGIN_INFOA {
+ CHAR TargetName[MAX_ISCSI_NAME_LEN];
+ BOOLEAN IsInformationalSession;
+ CHAR InitiatorInstance[MAX_ISCSI_HBANAME_LEN];
+ ULONG InitiatorPortNumber;
+ ISCSI_TARGET_PORTALA TargetPortal;
+ ISCSI_SECURITY_FLAGS SecurityFlags;
+ PISCSI_TARGET_MAPPINGA Mappings;
+ ISCSI_LOGIN_OPTIONS LoginOptions;
+} PERSISTENT_ISCSI_LOGIN_INFOA, *PPERSISTENT_ISCSI_LOGIN_INFOA;
+
+typedef struct _PERSISTENT_ISCSI_LOGIN_INFOW {
+ CHAR TargetName[MAX_ISCSI_NAME_LEN];
+ BOOLEAN IsInformationalSession;
+ CHAR InitiatorInstance[MAX_ISCSI_HBANAME_LEN];
+ ULONG InitiatorPortNumber;
+ ISCSI_TARGET_PORTALW TargetPortal;
+ ISCSI_SECURITY_FLAGS SecurityFlags;
+ PISCSI_TARGET_MAPPINGW Mappings;
+ ISCSI_LOGIN_OPTIONS LoginOptions;
+} PERSISTENT_ISCSI_LOGIN_INFOW, *PPERSISTENT_ISCSI_LOGIN_INFOW;
+
+typedef LPVOID IKE_IDENTIFICATION_PAYLOAD_TYPE; /*Unknown type*/
+
+typedef struct _IKE_AUTHENTICATION_PRESHARED_KEY {
+ ISCSI_SECURITY_FLAGS SecurityFlags;
+ IKE_IDENTIFICATION_PAYLOAD_TYPE IdType;
+ ULONG IdLengthInBytes;
+ PUCHAR Id;
+ ULONG KeyLengthInBytes;
+ PUCHAR Key;
+} IKE_AUTHENTICATION_PRESHARED_KEY, *PIKE_AUTHENTICATION_PRESHARED_KEY;
+
+typedef struct _IKE_AUTHENTICATION_INFORMATION {
+ IKE_AUTHENTICATION_METHOD AuthMethod;
+ __MINGW_EXTENSION union {
+ IKE_AUTHENTICATION_PRESHARED_KEY PsKey;
+ };
+} IKE_AUTHENTICATION_INFORMATION, *PIKE_AUTHENTICATION_INFORMATION;
+
+typedef LPVOID ISCSI_UNIQUE_CONNECTION_ID;
+
+typedef struct _ISCSI_CONNECTION_INFOA {
+ ISCSI_UNIQUE_CONNECTION_ID ConnectionId;
+ CHAR InitiatorAddress;
+ CHAR TargetAddress;
+ USHORT InitiatorSocket;
+ USHORT TargetSocket;
+ UCHAR CID[2];
+} ISCSI_CONNECTION_INFOA, *PISCSI_CONNECTION_INFOA;
+
+typedef struct _ISCSI_CONNECTION_INFO {
+ ISCSI_UNIQUE_CONNECTION_ID ConnectionId;
+ TCHAR InitiatorAddress;
+ TCHAR TargetAddress;
+ USHORT InitiatorSocket;
+ USHORT TargetSocket;
+ UCHAR CID[2];
+} ISCSI_CONNECTION_INFOW, *PISCSI_CONNECTION_INFOW;
+
+typedef struct _ISCSI_SESSION_INFOA {
+ ISCSI_UNIQUE_SESSION_ID SessionId;
+ CHAR InitiatorName;
+ CHAR TargetName;
+ CHAR TargetNodeName;
+ UCHAR ISID[6];
+ UCHAR TSID[2];
+ ULONG ConnectionCount;
+ PISCSI_CONNECTION_INFOA Connections;
+} ISCSI_SESSION_INFOA, *PISCSI_SESSION_INFOA;
+
+typedef struct _ISCSI_SESSION_INFO {
+ ISCSI_UNIQUE_SESSION_ID SessionId;
+ WCHAR InitiatorName;
+ WCHAR TargetName;
+ WCHAR TargetNodeName;
+ UCHAR ISID[6];
+ UCHAR TSID[2];
+ ULONG ConnectionCount;
+ PISCSI_CONNECTION_INFOW Connections;
+} ISCSI_SESSION_INFOW, *PISCSI_SESSION_INFOW;
+
+typedef struct _ISCSI_VERSION_INFO {
+ ULONG MajorVersion;
+ ULONG MinorVersion;
+ ULONG BuildNumber;
+} ISCSI_VERSION_INFO, *PISCSI_VERSION_INFO;
+
+typedef struct _ISCSI_TARGET_PORTAL_INFOA {
+ CHAR InitiatorName[MAX_ISCSI_HBANAME_LEN];
+ ULONG InitiatorPortNumber;
+ CHAR SymbolicName[MAX_ISCSI_PORTAL_NAME_LEN];
+ TCHAR Address[MAX_ISCSI_PORTAL_ADDRESS_LEN];
+ USHORT Socket;
+} ISCSI_TARGET_PORTAL_INFOA, *PISCSI_TARGET_PORTAL_INFOA, PISCSI_TARGET_PORTAL_INFO_EXA;
+/*MS links PISCSI_TARGET_PORTAL_INFO_EX to PISCSI_TARGET_PORTAL_INFO, see:
+ http://msdn.microsoft.com/en-us/library/bb870838%28v=VS.85%29.aspx
+*/
+
+typedef struct _ISCSI_TARGET_PORTAL_INFOW {
+ WCHAR InitiatorName[MAX_ISCSI_HBANAME_LEN];
+ ULONG InitiatorPortNumber;
+ WCHAR SymbolicName[MAX_ISCSI_PORTAL_NAME_LEN];
+ WCHAR Address[MAX_ISCSI_PORTAL_ADDRESS_LEN];
+ USHORT Socket;
+} ISCSI_TARGET_PORTAL_INFOW, *PISCSI_TARGET_PORTAL_INFOW, PISCSI_TARGET_PORTAL_INFO_EXW;
+
+__MINGW_TYPEDEF_AW(ISCSI_CONNECTION_INFO)
+__MINGW_TYPEDEF_AW(PISCSI_CONNECTION_INFO)
+__MINGW_TYPEDEF_AW(ISCSI_SESSION_INFO)
+__MINGW_TYPEDEF_AW(PISCSI_SESSION_INFO)
+__MINGW_TYPEDEF_AW(ISCSI_TARGET_PORTAL_GROUP)
+__MINGW_TYPEDEF_AW(PISCSI_TARGET_PORTAL_GROUP)
+__MINGW_TYPEDEF_AW(ISCSI_TARGET_PORTAL)
+__MINGW_TYPEDEF_AW(PISCSI_TARGET_PORTAL)
+__MINGW_TYPEDEF_AW(ISCSI_TARGET_MAPPING)
+__MINGW_TYPEDEF_AW(PISCSI_TARGET_MAPPING)
+__MINGW_TYPEDEF_AW(ISCSI_TARGET_PORTAL_INFO)
+__MINGW_TYPEDEF_AW(PISCSI_TARGET_PORTAL_INFO)
+__MINGW_TYPEDEF_AW(PISCSI_TARGET_PORTAL_INFO_EX)
+
+typedef DWORD ISCSI_TARGET_FLAGS; /*32bit, guessed*/
+
+ HRESULT WINAPI AddIScsiConnectionA(PISCSI_UNIQUE_SESSION_ID UniqueSessionId,PVOID Reserved,ULONG InitiatorPortNumber,PISCSI_TARGET_PORTALA TargetPortal,ISCSI_SECURITY_FLAGS SecurityFlags,PSCSI_LOGIN_OPTIONS LoginOptions,ULONG KeySize,PCHAR Key,PISCSI_UNIQUE_CONNECTION_ID ConnectionId);
+ HRESULT WINAPI AddIScsiConnectionW(PISCSI_UNIQUE_SESSION_ID UniqueSessionId,PVOID Reserved,ULONG InitiatorPortNumber,PISCSI_TARGET_PORTALW TargetPortal,ISCSI_SECURITY_FLAGS SecurityFlags,PSCSI_LOGIN_OPTIONS LoginOptions,ULONG KeySize,PCHAR Key,PISCSI_UNIQUE_CONNECTION_ID ConnectionId);
+
+ HRESULT WINAPI AddIScsiSendTargetPortalA(PCHAR InitiatorName,ULONG InitiatorPortNumber,PISCI_LOGIN_OPTIONS LoginOptions,ISCSI_SECURITY_FLAGS SecurityFlags,PISCSI_TARGET_PORTALA Portal);
+
+ HRESULT WINAPI AddIScsiSendTargetPortalW(PWCHAR InitiatorName,ULONG InitiatorPortNumber,PISCI_LOGIN_OPTIONS LoginOptions,ISCSI_SECURITY_FLAGS SecurityFlags,PISCSI_TARGET_PORTALW Portal);
+
+ HRESULT WINAPI AddIScsiStaticTargetA(PCHAR TargetName,PCHAR TargetAlias,ISCSI_TARGET_FLAGS TargetFlags,BOOLEAN Persist,PISCSI_TARGET_MAPPINGA Mappings,PISCSI_LOGIN_OPTIONS LoginOptions,PISCSI_TARGET_PORTAL_GROUPA PortalGroup);
+
+ HRESULT WINAPI AddIScsiStaticTargetW(PWCHAR TargetName,PWCHAR TargetAlias,ISCSI_TARGET_FLAGS TargetFlags,BOOLEAN Persist,PISCSI_TARGET_MAPPINGW Mappings,PISCSI_LOGIN_OPTIONS LoginOptions,PISCSI_TARGET_PORTAL_GROUPW PortalGroup);
+
+ HRESULT WINAPI AddISNSServerA(PCHAR Address);
+ HRESULT WINAPI AddISNSServerW(PWCHAR Address);
+
+ HRESULT WINAPI AddRadiusServerA(PCHAR Address);
+ HRESULT WINAPI AddRadiusServerW(PWCHAR Address);
+
+ HRESULT WINAPI AddPersistentiScsiDeviceA(PCHAR VolumePath);
+ HRESULT WINAPI AddPersistentiScsiDeviceW(PWCHAR VolumePath);
+
+ HRESULT WINAPI ClearPersistentiScsiDevices(void);
+
+ HRESULT WINAPI RemoveIScsiPersistentTargetA(PCHAR InitiatorInstance,ULONG InitiatorPortNumber,PCHAR TargetName,PISCSI_TARGET_PORTALA Portal);
+ HRESULT WINAPI RemoveIScsiPersistentTargetW(PWCHAR InitiatorInstance,ULONG InitiatorPortNumber,PWCHAR TargetName,PISCSI_TARGET_PORTALW Portal);
+
+ HRESULT WINAPI RemoveIScsiStaticTargetA(PCHAR TargetName);
+ HRESULT WINAPI RemoveIScsiStaticTargetW(PWCHAR TargetName);
+
+ HRESULT WINAPI RemovePersistentIScsiDeviceA(PCHAR VolumePath);
+ HRESULT WINAPI RemovePersistentIScsiDeviceW(PWCHAR VolumePath);
+
+ HRESULT WINAPI RemoveRadiusServerA(PCHAR Address);
+ HRESULT WINAPI RemoveRadiusServerW(PWCHAR Address);
+
+ HRESULT WINAPI SetupPersistentIScsiDevices(void);
+
+ HRESULT WINAPI SendScsiInquiry(PISCSI_UNIQUE_SESSION_ID *UniqueSessionId,ULONGLONG Lun,UCHAR EvpdCmddt,UCHAR PageCode,PUCHAR *ScsiStatus,PULONG *ReponseSize,PUCHAR ReponseBuffer,PULONG *SenseSize,PUCHAR SenseBuffer);
+
+ HRESULT WINAPI SendScsiReadCapacity(PISCSI_UNIQUE_SESSION_ID UniqueSessionId,ULONGLONG Lun,PUCHAR *ScsiStatus,PULONG *ResponseSize,PUCHAR ResponseBuffer,PULONG *SenseSize,PUCHAR SenseBuffer);
+
+ HRESULT WINAPI SendScsiReportLuns(PISCSI_UNIQUE_SESSION_ID UniqueSessionId,PUCHAR *ScsiStatus,PULONG *ResponseSize,PUCHAR ResponseBuffer,PULONG *SenseSize,PUCHAR SenseBuffer);
+
+typedef struct _ISCSI_DEVICE_ON_SESSION {
+ TCHAR InitiatorName[MAX_ISCSI_HBANAME_LEN];
+ TCHAR TargetName[MAX_ISCSI_NAME_LEN + 1];
+ SCSI_ADDRESS ScsiAddress;
+ GUID DeviceInterfaceType;
+ TCHAR DeviceInterfaceName[MAX_PATH];
+ TCHAR LegacyName[MAX_PATH];
+ STORAGE_DEVICE_NUMBER StorageDeviceNumber;
+ DWORD DeviceInstance;
+} ISCSI_DEVICE_ON_SESSION, *PISCSI_DEVICE_ON_SESSION;
+
+HRESULT WINAPI GetDevicesForiSCSISession(
+ PISCSI_UNIQUE_SESSION_ID UniqueSessionId,
+ ULONG *DeviceCount,
+ PISCSI_DEVICE_ON_SESSION Devices
+);
+
+#define GetIScsiIKEInfo __MINGW_NAME_AW(GetIScsiIKEInfo)
+
+HRESULT WINAPI GetIScsiIKEInfoA(
+ PCHAR InitiatorName,
+ ULONG PortNumber,
+ PULONG Reserved,
+ PIKE_AUTHENTICATION_INFORMATION *AuthInfo
+);
+
+HRESULT WINAPI GetIScsiIKEInfoW(
+ PWCHAR InitiatorName,
+ ULONG PortNumber,
+ PULONG Reserved,
+ PIKE_AUTHENTICATION_INFORMATION *AuthInfo
+);
+
+#define GetIScsiInitiatorNodeName __MINGW_NAME_AW(GetIScsiInitiatorNodeName)
+
+HRESULT WINAPI GetIScsiInitiatorNodeNameA(
+ PCHAR InitiatorNodeName
+);
+
+HRESULT WINAPI GetIScsiInitiatorNodeNameW(
+ PWCHAR InitiatorNodeName
+);
+
+#define GetIScsiSessionList __MINGW_NAME_AW(GetIScsiSessionList)
+
+HRESULT WINAPI GetIScsiSessionListA(
+ ULONG *BufferSize,
+ ULONG *SessionCount,
+ PISCSI_SESSION_INFOA SessionInfo
+);
+
+HRESULT WINAPI GetIScsiSessionListW(
+ ULONG *BufferSize,
+ ULONG *SessionCount,
+ PISCSI_SESSION_INFOW SessionInfo
+);
+
+#define GetIScsiTargetInformation __MINGW_NAME_AW(GetIScsiTargetInformation)
+
+HRESULT WINAPI GetIScsiTargetInformationA(
+ PCHAR TargetName,
+ PCHAR DiscoveryMechanism,
+ TARGET_INFORMATION_CLASS InfoClass,
+ PULONG BufferSize,
+ PVOID Buffer
+);
+
+HRESULT WINAPI GetIScsiTargetInformationW(
+ PWCHAR TargetName,
+ PWCHAR DiscoveryMechanism,
+ TARGET_INFORMATION_CLASS InfoClass,
+ PULONG BufferSize,
+ PVOID Buffer
+);
+
+HRESULT WINAPI GetIScsiVersionInformation(
+ PISCSI_VERSION_INFO VersionInfo
+);
+
+HRESULT WINAPI LoginIScsiTargetA(
+ PCHAR TargetName,
+ BOOLEAN IsInformationalSession,
+ PCHAR InitiatorName,
+ ULONG InitiatorPortNumber,
+ PISCSI_TARGET_PORTALA TargetPortal,
+ ISCSI_SECURITY_FLAGS SecurityFlags,
+ PISCSI_TARGET_MAPPINGA Mappings,
+ PISCSI_LOGIN_OPTIONS LoginOptions,
+ ULONG KeySize,
+ PCHAR Key,
+ BOOLEAN IsPersistent,
+ PISCSI_UNIQUE_SESSION_ID UniqueSessionId,
+ PISCSI_UNIQUE_CONNECTION_ID UniqueConnectionId
+);
+
+HRESULT WINAPI LoginIScsiTargetW(
+ PWCHAR TargetName,
+ BOOLEAN IsInformationalSession,
+ PWCHAR InitiatorName,
+ ULONG InitiatorPortNumber,
+ PISCSI_TARGET_PORTALW TargetPortal,
+ ISCSI_SECURITY_FLAGS SecurityFlags,
+ PISCSI_TARGET_MAPPINGW Mappings,
+ PISCSI_LOGIN_OPTIONS LoginOptions,
+ ULONG KeySize,
+ PCHAR Key,
+ BOOLEAN IsPersistent,
+ PISCSI_UNIQUE_SESSION_ID UniqueSessionId,
+ PISCSI_UNIQUE_CONNECTION_ID UniqueConnectionId
+);
+
+HRESULT WINAPI LogoutIScsiTarget(
+ PISCSI_UNIQUE_SESSION_ID UniqueSessionId
+);
+
+HRESULT WINAPI RefreshIScsiSendTargetPortalA(
+ PCHAR InitiatorInstance,
+ ULONG InitiatorPortNumber,
+ PISCSI_TARGET_PORTALA Portal
+);
+
+HRESULT WINAPI RefreshIScsiSendTargetPortalW(
+ PWCHAR InitiatorInstance,
+ ULONG InitiatorPortNumber,
+ PISCSI_TARGET_PORTALW Portal
+);
+
+#define RefreshIScsiSendTargetPortal __MINGW_NAME_AW(RefreshIScsiSendTargetPortal)
+
+HRESULT WINAPI RefreshISNSServerA(
+ PCHAR Address
+);
+
+HRESULT WINAPI RefreshISNSServerW(
+ PWCHAR Address
+);
+
+#define RefreshISNSServer __MINGW_NAME_AW(RefreshISNSServer)
+
+HRESULT WINAPI RemoveIScsiConnection(
+ PISCSI_UNIQUE_SESSION_ID UniqueSessionId,
+ PISCSI_UNIQUE_CONNECTION_ID UniqueConnectionId
+);
+
+HRESULT WINAPI RemoveIScsiPersistentTargetA(
+ PCHAR InitiatorInstance,
+ ULONG InitiatorPortNumber,
+ PCHAR TargetName,
+ PISCSI_TARGET_PORTALA Portal
+);
+
+HRESULT WINAPI RemoveIScsiPersistentTargetW(
+ PWCHAR InitiatorInstance,
+ ULONG InitiatorPortNumber,
+ PWCHAR TargetName,
+ PISCSI_TARGET_PORTALW Portal
+);
+
+#define RemoveIScsiPersistentTarget __MINGW_NAME_AW(RemoveIScsiPersistentTarget)
+
+HRESULT WINAPI RemoveIScsiSendTargetPortalA(
+ PCHAR InitiatorInstance,
+ ULONG InitiatorPortNumber,
+ PISCSI_TARGET_PORTALA Portal
+);
+
+HRESULT WINAPI RemoveIScsiSendTargetPortalW(
+ PWCHAR InitiatorInstance,
+ ULONG InitiatorPortNumber,
+ PISCSI_TARGET_PORTALW Portal
+);
+
+#define RemoveIScsiSendTargetPortal __MINGW_NAME_AW(RemoveIScsiSendTargetPortal)
+
+HRESULT WINAPI RemoveIScsiStaticTargetA(
+ PCHAR TargetName
+);
+
+HRESULT WINAPI RemoveIScsiStaticTargetW(
+ PWCHAR TargetName
+);
+#define RemoveIScsiStaticTarget __MINGW_NAME_AW(RemoveIScsiStaticTarget)
+
+HRESULT WINAPI RemoveISNSServerA(
+ PCHAR Address
+);
+
+HRESULT WINAPI RemoveISNSServerW(
+ PWCHAR Address
+);
+#define RemoveISNSServer __MINGW_NAME_AW(RemoveISNSServer)
+
+HRESULT WINAPI RemovePersistentIScsiDeviceA(
+ PCHAR VolumePath
+);
+
+HRESULT WINAPI RemovePersistentIScsiDeviceW(
+ PWCHAR VolumePath
+);
+#define RemovePersistentIScsiDevice __MINGW_NAME_AW(RemovePersistentIScsiDevice)
+
+HRESULT WINAPI RemoveRadiusServerA(
+ PCHAR Address
+);
+
+HRESULT WINAPI RemoveRadiusServerW(
+ PWCHAR Address
+);
+#define RemoveRadiusServer __MINGW_NAME_AW(RemoveRadiusServer)
+
+HRESULT WINAPI ReportIScsiInitiatorListA(
+ ULONG *BufferSize,
+ PCHAR Buffer
+);
+
+HRESULT WINAPI ReportIScsiInitiatorListW(
+ ULONG *BufferSize,
+ PWCHAR Buffer
+);
+
+HRESULT WINAPI ReportIScsiPersistentLoginsA(
+ ULONG *Count,
+ PPERSISTENT_ISCSI_LOGIN_INFOA PersistentLoginInfo,
+ PULONG BufferSizeInBytes
+);
+
+HRESULT WINAPI ReportIScsiPersistentLoginsW(
+ ULONG *Count,
+ PPERSISTENT_ISCSI_LOGIN_INFOW PersistentLoginInfo,
+ PULONG BufferSizeInBytes
+);
+#define ReportIScsiPersistentLogins __MINGW_NAME_AW(ReportIScsiPersistentLogins)
+
+HRESULT WINAPI ReportIScsiSendTargetPortalsA(
+ PULONG PortalCount,
+ PISCSI_TARGET_PORTAL_INFOA PortalInfo
+);
+
+HRESULT WINAPI ReportIScsiSendTargetPortalsW(
+ PULONG PortalCount,
+ PISCSI_TARGET_PORTAL_INFOA PortalInfo
+);
+
+#define ReportIScsiSendTargetPortals __MINGW_NAME_AW(ReportIScsiSendTargetPortals)
+
+HRESULT WINAPI ReportActiveIScsiTargetMappingsA(
+ PULONG BufferSize,
+ PULONG MappingCount,
+ PISCSI_TARGET_MAPPINGA Mappings
+);
+
+HRESULT WINAPI ReportActiveIScsiTargetMappingsW(
+ PULONG BufferSize,
+ PULONG MappingCount,
+ PISCSI_TARGET_MAPPINGW Mappings
+);
+#define ReportActiveIScsiTargetMappings __MINGW_NAME_AW(ReportActiveIScsiTargetMappings)
+
+HRESULT WINAPI ReportIScsiSendTargetPortalsExA(
+ PULONG PortalCount,
+ PULONG PortalInfoSize,
+ PISCSI_TARGET_PORTAL_INFO_EXA PortalInfo
+);
+
+HRESULT WINAPI ReportIScsiSendTargetPortalsExW(
+ PULONG PortalCount,
+ PULONG PortalInfoSize,
+ PISCSI_TARGET_PORTAL_INFO_EXW PortalInfo
+);
+
+#define ReportIScsiSendTargetPortalsEx __MINGW_NAME_AW(ReportIScsiSendTargetPortalsEx)
+
+HRESULT WINAPI ReportIScsiTargetPortalsA(
+ PCHAR InitiatorName,
+ PCHAR TargetName,
+ PUSHORT TargetPortalTag,
+ PULONG ElementCount,
+ PISCSI_TARGET_PORTALA Portals
+);
+
+HRESULT WINAPI ReportIScsiTargetPortalsW(
+ PWCHAR InitiatorName,
+ PWCHAR TargetName,
+ PUSHORT TargetPortalTag,
+ PULONG ElementCount,
+ PISCSI_TARGET_PORTALW Portals
+);
+
+#define ReportIScsiTargetPortals __MINGW_NAME_AW(ReportIScsiTargetPortals)
+
+HRESULT WINAPI ReportIScsiTargetsA(
+ BOOLEAN ForceUpdate,
+ PULONG BufferSize,
+ PCHAR Buffer
+);
+
+HRESULT WINAPI ReportIScsiTargetsW(
+ BOOLEAN ForceUpdate,
+ PULONG BufferSize,
+ PWCHAR Buffer
+);
+#define ReportIScsiTargets __MINGW_NAME_AW(ReportIScsiTargets)
+
+HRESULT WINAPI ReportISNSServerListA(
+ PULONG BufferSizeInChar,
+ PCHAR Buffer
+);
+
+HRESULT WINAPI ReportISNSServerListW(
+ PULONG BufferSizeInChar,
+ PWCHAR Buffer
+);
+
+#define ReportISNSServerList __MINGW_NAME_AW(ReportISNSServerList)
+
+HRESULT WINAPI ReportPersistentiScsiDevicesA(
+ PULONG BufferSizeInChar,
+ PCHAR Buffer
+);
+
+HRESULT WINAPI ReportPersistentiScsiDevicesW(
+ PULONG BufferSizeInChar,
+ PWCHAR Buffer
+);
+
+#define ReportPersistentiScsiDevices __MINGW_NAME_AW(ReportPersistentiScsiDevices)
+
+HRESULT WINAPI ReportRadiusServerListA(
+ PULONG BufferSizeInChar,
+ PCHAR Buffer
+);
+
+HRESULT WINAPI ReportRadiusServerListW(
+ PULONG BufferSizeInChar,
+ PCHAR Buffer
+);
+#define ReportRadiusServerList __MINGW_NAME_AW(ReportRadiusServerList)
+
+HRESULT WINAPI SendScsiReadCapacity(
+ PISCSI_UNIQUE_SESSION_ID UniqueSessionId,
+ ULONGLONG Lun,
+ PUCHAR *ScsiStatus,
+ PULONG *ResponseSize,
+ PUCHAR ResponseBuffer,
+ PULONG *SenseSize,
+ PUCHAR SenseBuffer
+);
+
+HRESULT WINAPI SendScsiReportLuns(
+ PISCSI_UNIQUE_SESSION_ID UniqueSessionId,
+ PUCHAR *ScsiStatus,
+ PULONG *ResponseSize,
+ PUCHAR ResponseBuffer,
+ PULONG *SenseSize,
+ PUCHAR SenseBuffer
+);
+
+HRESULT WINAPI SendScsiInquiry(
+ PISCSI_UNIQUE_SESSION_ID *UniqueSessionId,
+ ULONGLONG Lun,
+ UCHAR EvpdCmddt,
+ UCHAR PageCode,
+ PUCHAR *ScsiStatus,
+ PULONG *ReponseSize,
+ PUCHAR ReponseBuffer,
+ PULONG *SenseSize,
+ PUCHAR SenseBuffer
+);
+
+HRESULT WINAPI SetIScsiGroupPresharedKey(
+ ULONG KeyLength,
+ PUCHAR Key,
+ BOOLEAN Persist
+);
+
+HRESULT WINAPI SetIScsiInitiatorCHAPSharedSecret(
+ ULONG SharedSecretLength,
+ PUCHAR SharedSecret
+);
+
+HRESULT WINAPI SetIScsiInitiatorNodeNameA(
+ PCHAR InitiatorNodeName
+);
+
+HRESULT WINAPI SetIScsiInitiatorNodeNameW(
+ PWCHAR InitiatorNodeName
+);
+
+#define SetIScsiInitiatorNodeName __MINGW_NAME_AW(SetIScsiInitiatorNodeName)
+
+HRESULT WINAPI SetIscsiInitiatorRADIUSSharedSecret(
+ ULONG SharedSecretLength,
+ PUCHAR SharedSecret
+);
+
+HRESULT WINAPI SetIScsiTunnelModeOuterAddressA(
+ PCHAR InitiatorName,
+ ULONG InitiatorPortNumber,
+ PCHAR DestinationAddress,
+ PCHAR OuterModeAddress,
+ BOOLEAN Persist
+);
+
+HRESULT WINAPI SetIScsiTunnelModeOuterAddressW(
+ PWCHAR InitiatorName,
+ ULONG InitiatorPortNumber,
+ PWCHAR DestinationAddress,
+ PWCHAR OuterModeAddress,
+ BOOLEAN Persist
+);
+
+#define SetIScsiTunnelModeOuterAddress __MINGW_NAME_AW(SetIScsiTunnelModeOuterAddress)
+
+HRESULT WINAPI SetupPersistentIScsiDevices(void);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif
diff --git a/mingw-w64-headers/include/isysmon.h b/mingw-w64-headers/include/isysmon.h
new file mode 100644
index 0000000..8ffd031
--- /dev/null
+++ b/mingw-w64-headers/include/isysmon.h
@@ -0,0 +1,31 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_ISYSMON
+#define _INC_ISYSMON
+#if (_WIN32_WINNT >= 0x0600)
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum _SysmonDataType {
+ sysmonDataAvg = 1,
+ sysmonDataMin = 2,
+ sysmonDataMax = 3,
+ sysmonDataTime = 4,
+ sysmonDataCount = 5
+} SysmonDataType;
+
+typedef enum _SysmonBatchReason {
+ SysmonBatchNone = 0,
+ SysmonBatchAddFiles = 1,
+ SysmonBatchAddCounters = 2
+} SysmonBatchReason;
+
+#ifdef __cplusplus
+}
+#endif
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_ISYSMON*/
diff --git a/mingw-w64-headers/include/ktmw32.h b/mingw-w64-headers/include/ktmw32.h
new file mode 100644
index 0000000..11fb134
--- /dev/null
+++ b/mingw-w64-headers/include/ktmw32.h
@@ -0,0 +1,236 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_KTMW32
+#define _INC_KTMW32
+#if (_WIN32_WINNT >= 0x0600)
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+WINBOOL WINAPI CommitComplete(
+ HANDLE EnlistmentHandle,
+ PLARGE_INTEGER TmVirtualClock
+);
+
+WINBOOL WINAPI CommitEnlistment(
+ HANDLE EnlistmentHandle,
+ PLARGE_INTEGER TmVirtualClock
+);
+
+WINBOOL WINAPI CommitTransaction(
+ HANDLE TransactionHandle
+);
+
+WINBOOL WINAPI CommitTransactionAsync(
+ HANDLE TransactionHandle
+);
+
+HANDLE WINAPI CreateEnlistment(
+ LPSECURITY_ATTRIBUTES lpEnlistmentrAttributes,
+ HANDLE ResourceManagerHandle,
+ HANDLE TransactionHandle,
+ NOTIFICATION_MASK NotificationMask,
+ DWORD CreateOptions,
+ PVOID EnlistmentKey
+);
+
+WINBOOL WINAPI SinglePhaseReject(
+ HANDLE EnlistmentHandle,
+ PLARGE_INTEGER TmVirtualClock
+);
+
+HANDLE WINAPI CreateResourceManager(
+ LPSECURITY_ATTRIBUTES lpResourceManagerAttributes,
+ LPGUID ResourceManagerID,
+ DWORD CreateOptions,
+ HANDLE TmHandle,
+ LPWSTR Description
+);
+
+HANDLE WINAPI CreateTransactionManager(
+ LPSECURITY_ATTRIBUTES lpTransactionAttributes,
+ LPWSTR LogFileName,
+ ULONG CreateOptions,
+ ULONG CommitStrength
+);
+
+WINBOOL WINAPI GetCurrentClockTransactionManager(
+ HANDLE TransactionManagerHandle,
+ PLARGE_INTEGER TmVirtualClock
+);
+
+WINBOOL WINAPI GetEnlistmentId(
+ HANDLE EnlistmentHandle,
+ LPGUID EnlistmentId
+);
+
+WINBOOL WINAPI GetEnlistmentRecoveryInformation(
+ HANDLE EnlistmentHandle,
+ ULONG BufferSize,
+ PVOID Buffer,
+ PULONG BufferUsed
+);
+
+WINBOOL WINAPI GetNotificationResourceManager(
+ HANDLE ResourceManagerHandle,
+ PTRANSACTION_NOTIFICATION TransactionNotification,
+ ULONG NotificationLength,
+ DWORD dwMilliseconds,
+ PULONG ReturnLength
+);
+
+WINBOOL WINAPI GetNotificationResourceManagerAsync(
+ HANDLE ResourceManagerHandle,
+ PTRANSACTION_NOTIFICATION TransactionNotification,
+ ULONG TransactionNotificationLength,
+ PULONG ReturnLength,
+ LPOVERLAPPED pOverlapped
+);
+
+WINBOOL WINAPI SetResourceManagerCompletionPort(
+ HANDLE ResourceManagerHandle,
+ HANDLE IoCompletionPortHandle,
+ ULONG_PTR CompletionKey
+);
+
+WINBOOL WINAPI GetTransactionId(
+ HANDLE TransactionHandle,
+ LPGUID TransactionId
+);
+
+WINBOOL WINAPI GetTransactionInformation(
+ HANDLE TransactionHandle,
+ PDWORD Outcome,
+ PDWORD IsolationLevel,
+ PDWORD IsolationFlags,
+ PDWORD Timeout,
+ DWORD BufferLength,
+ LPWSTR Description
+);
+
+WINBOOL WINAPI GetTransactionManagerId(
+ HANDLE TransactionManagerHandle,
+ LPGUID TransactionManagerId
+);
+
+HANDLE WINAPI OpenEnlistment(
+ DWORD dwDesiredAccess,
+ HANDLE ResourceManagerHandle,
+ LPGUID EnlistmentId
+);
+
+HANDLE WINAPI OpenResourceManager(
+ DWORD dwDesiredAccess,
+ HANDLE TmHandle,
+ LPGUID RmGuid
+);
+
+HANDLE WINAPI OpenTransaction(
+ DWORD dwDesiredAccess,
+ LPGUID TransactionId
+);
+
+HANDLE WINAPI OpenTransactionManager(
+ LPWSTR LogFileName,
+ ACCESS_MASK DesiredAccess,
+ ULONG OpenOptions
+);
+
+HANDLE WINAPI OpenTransactionManagerById(
+ LPGUID TransactionManagerId,
+ ACCESS_MASK DesiredAccess,
+ ULONG OpenOptions
+);
+
+WINBOOL WINAPI PrepareComplete(
+ HANDLE EnlistmentHandle,
+ PLARGE_INTEGER TmVirtualClock
+);
+
+WINBOOL WINAPI PrepareEnlistment(
+ HANDLE EnlistmentHandle,
+ PLARGE_INTEGER TmVirtualClock
+);
+
+WINBOOL WINAPI PrePrepareComplete(
+ HANDLE EnlistmentHandle,
+ PLARGE_INTEGER TmVirtualClock
+);
+
+WINBOOL WINAPI PrePrepareEnlistment(
+ HANDLE EnlistmentHandle,
+ PLARGE_INTEGER TmVirtualClock
+);
+
+WINBOOL WINAPI ReadOnlyEnlistment(
+ HANDLE EnlistmentHandle,
+ PLARGE_INTEGER TmVirtualClock
+);
+
+WINBOOL WINAPI RecoverEnlistment(
+ HANDLE EnlistmentHandle,
+ PVOID EnlistmentKey
+);
+
+WINBOOL WINAPI RecoverResourceManager(
+ HANDLE ResourceManagerHandle
+);
+
+WINBOOL WINAPI RecoverTransactionManager(
+ HANDLE TransactionManagerHandle
+);
+
+WINBOOL WINAPI RenameTransactionManager(
+ LPWSTR LogFileName,
+ LPGUID ExistingTransactionManagerGuid
+);
+
+WINBOOL WINAPI RollbackComplete(
+ HANDLE EnlistmentHandle,
+ PLARGE_INTEGER TmVirtualClock
+);
+
+WINBOOL WINAPI RollbackEnlistment(
+ HANDLE EnlistmentHandle,
+ PLARGE_INTEGER TmVirtualClock
+);
+
+WINBOOL WINAPI RollbackTransaction(
+ HANDLE TransactionHandle
+);
+
+WINBOOL WINAPI RollbackTransactionAsync(
+ HANDLE TransactionHandle
+);
+
+WINBOOL RollforwardTransactionManager(
+ HANDLE TransactionManagerHandle,
+ PLARGE_INTEGER TmVirtualClock
+);
+
+WINBOOL WINAPI RollbackTransactionAsync(
+ HANDLE TransactionHandle
+);
+
+WINBOOL WINAPI SetEnlistmentRecoveryInformation(
+ HANDLE EnlistmentHandle,
+ ULONG BufferSize,
+ PVOID Buffer
+);
+
+WINBOOL WINAPI SetTransactionInformation(
+ HANDLE TransactionHandle,
+ DWORD IsolationLevel,
+ DWORD IsolationFlags,
+ DWORD Timeout,
+ LPWSTR Description
+);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* (_WIN32_WINNT >= 0x0600) */
+#endif /*_INC_KTMW32*/
diff --git a/mingw-w64-headers/include/lmdfs.h b/mingw-w64-headers/include/lmdfs.h
index a63a0e9..1617e6c 100644
--- a/mingw-w64-headers/include/lmdfs.h
+++ b/mingw-w64-headers/include/lmdfs.h
@@ -10,6 +10,10 @@
extern "C" {
#endif
+#ifndef NET_API_FUNCTION
+#define NET_API_FUNCTION WINAPI
+#endif
+
#define DFS_VOLUME_STATES 0xF
#define DFS_VOLUME_STATE_OK 1
@@ -147,6 +151,7 @@
#define DFS_PROPERTY_FLAG_SITE_COSTING 0x00000004
#define DFS_PROPERTY_FLAG_TARGET_FAILBACK 0x00000008
#define DFS_PROPERTY_FLAG_CLUSTER_ENABLED 0x00000010
+#define DFS_PROPERTY_FLAG_ABDE 0x00000020
typedef struct _DFS_INFO_100 {
LPWSTR Comment;
@@ -182,6 +187,145 @@
DFS_TARGET_PRIORITY TargetPriority;
} DFS_INFO_106,*PDFS_INFO_106,*LPDFS_INFO_106;
+#if (_WIN32_WINNT >= 0x0600)
+#define DFS_NAMESPACE_CAPABILITY_ABDE 0x0000000000000001
+
+ typedef enum _DFS_NAMESPACE_VERSION_ORIGIN {
+ DFS_NAMESPACE_VERSION_ORIGIN_COMBINED = 0,
+ DFS_NAMESPACE_VERSION_ORIGIN_SERVER = 1,
+ DFS_NAMESPACE_VERSION_ORIGIN_DOMAIN = 2
+ } DFS_NAMESPACE_VERSION_ORIGIN;
+
+typedef struct _DFS_SUPPORTED_NAMESPACE_VERSION_INFO {
+ ULONG DomainDfsMajorVersion;
+ ULONG NamespaceMinorVersion;
+ ULONGLONG DomainDfsCapabilities;
+ ULONG StandaloneDfsMajorVersion;
+ ULONG StandaloneDfsMinorVersion;
+ ULONGLONG StandaloneDfsCapabilities;
+} DFS_SUPPORTED_NAMESPACE_VERSION_INFO, *PDFS_SUPPORTED_NAMESPACE_VERSION_INFO;
+
+ typedef struct _DFS_INFO_8 {
+ LPWSTR EntryPath;
+ LPWSTR Comment;
+ DWORD State;
+ ULONG Timeout;
+ GUID Guid;
+ ULONG PropertyFlags;
+ ULONG MetadataSize;
+ ULONG SdLengthReserved;
+ PSECURITY_DESCRIPTOR pSecurityDescriptor;
+ DWORD NumberOfStorages;
+ } DFS_INFO_8, *PDFS_INFO_8;
+
+ typedef struct _DFS_INFO_9 {
+ LPWSTR EntryPath;
+ LPWSTR Comment;
+ DWORD State;
+ ULONG Timeout;
+ GUID Guid;
+ ULONG PropertyFlags;
+ ULONG MetadataSize;
+ ULONG SdLengthReserved;
+ PSECURITY_DESCRIPTOR pSecurityDescriptor;
+ DWORD NumberOfStorages;
+ LPDFS_STORAGE_INFO_1 Storage;
+ } DFS_INFO_9, *PDFS_INFO_9;
+
+ typedef struct _DFS_INFO_50 {
+ ULONG NamespaceMajorVersion;
+ ULONG NamespaceMinorVersion;
+ ULONGLONG NamespaceCapabilities;
+ } DFS_INFO_50, *PDFS_INFO_50;
+
+ typedef struct _DFS_INFO_107 {
+ LPWSTR Comment;
+ DWORD State;
+ ULONG Timeout;
+ ULONG PropertyFlagMask;
+ ULONG PropertyFlags;
+ ULONG SdLengthReserved;
+ PSECURITY_DESCRIPTOR pSecurityDescriptor;
+ } DFS_INFO_107, *PDFS_INFO_107;
+
+ typedef struct _DFS_INFO_150 {
+ ULONG SdLengthReserved;
+ PSECURITY_DESCRIPTOR pSecurityDescriptor;
+ } DFS_INFO_150, *PDFS_INFO_150;
+
+NET_API_STATUS NET_API_FUNCTION NetDfsAddRootTarget(
+ LPWSTR pDfsPath,
+ LPWSTR pTargetPath,
+ ULONG MajorVersion,
+ LPWSTR pComment,
+ ULONG Flags
+);
+
+NET_API_STATUS WINAPI NetDfsGetFtContainerSecurity(
+ LPWSTR DomainName,
+ SECURITY_INFORMATION SecurityInformation,
+ PSECURITY_DESCRIPTOR *ppSecurityDescriptor,
+ LPDWORD lpcbSecurityDescriptor
+);
+
+NET_API_STATUS WINAPI NetDfsGetSecurity(
+ LPWSTR DfsEntryPath,
+ SECURITY_INFORMATION SecurityInformation,
+ PSECURITY_DESCRIPTOR *ppSecurityDescriptor,
+ LPDWORD lpcbSecurityDescriptor
+);
+
+NET_API_STATUS WINAPI NetDfsGetStdContainerSecurity(
+ LPWSTR MachineName,
+ SECURITY_INFORMATION SecurityInformation,
+ PSECURITY_DESCRIPTOR *ppSecurityDescriptor,
+ LPDWORD lpcbSecurityDescriptor
+);
+
+NET_API_STATUS NET_API_FUNCTION NetDfsGetSupportedNamespaceVersion(
+ DFS_NAMESPACE_VERSION_ORIGIN Origin,
+ PWSTR pName,
+ PDFS_SUPPORTED_NAMESPACE_VERSION_INFO *ppVersionInfo
+);
+
+NET_API_STATUS NetDfsMove(
+ LPWSTR Path,
+ LPWSTR NewPath,
+ ULONG Flags
+);
+
+NET_API_STATUS NET_API_FUNCTION NetDfsRemoveRootTarget(
+ LPWSTR pDfsPath,
+ LPWSTR pTargetPath,
+ ULONG Flags
+);
+
+NET_API_STATUS WINAPI NetDfsSetFtContainerSecurity(
+ LPWSTR DomainName,
+ SECURITY_INFORMATION SecurityInformation,
+ PSECURITY_DESCRIPTOR pSecurityDescriptor
+);
+
+NET_API_STATUS WINAPI NetDfsSetSecurity(
+ LPWSTR DfsEntryPath,
+ SECURITY_INFORMATION SecurityInformation,
+ PSECURITY_DESCRIPTOR pSecurityDescriptor
+);
+
+NET_API_STATUS WINAPI NetDfsSetStdContainerSecurity(
+ LPWSTR MachineName,
+ SECURITY_INFORMATION SecurityInformation,
+ PSECURITY_DESCRIPTOR pSecurityDescriptor
+);
+
+NET_API_STATUS WINAPI NetShareDelEx(
+ LMSTR servername,
+ DWORD level,
+ LPBYTE buf
+);
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
typedef struct _DFS_INFO_200 {
LPWSTR FtDfsName;
} DFS_INFO_200,*PDFS_INFO_200,*LPDFS_INFO_200;
diff --git a/mingw-w64-headers/include/mfapi.h b/mingw-w64-headers/include/mfapi.h
new file mode 100644
index 0000000..daf3c24
--- /dev/null
+++ b/mingw-w64-headers/include/mfapi.h
@@ -0,0 +1,260 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_MFAPI
+#define _INC_MFAPI
+#include <dshow.h>
+#include <dvdmedia.h>
+#include <opmapi.h>
+#include <propsys.h>
+
+#if (_WIN32_WINNT >= 0x0600)
+/*ksmedia.h needs fixing about "multi-character character constant"*/
+typedef struct _MFT_REGISTRATION_INFO MFT_REGISTRATION_INFO;
+typedef struct tagKS_VIDEOINFOHEADER KS_VIDEOINFOHEADER, *PKS_VIDEOINFOHEADER;
+typedef struct tagKS_VIDEOINFOHEADER2 KS_VIDEOINFOHEADER2, *PKS_VIDEOINFOHEADER2;
+typedef struct IMFActivate IMFActivate;
+typedef enum _EAllocationType { eAllocationTypeIgnore } EAllocationType; /*Unknown type*/
+
+typedef enum {
+ MF_TOPOSTATUS_INVALID = 0,
+ MF_TOPOSTATUS_READY = 100,
+ MF_TOPOSTATUS_STARTED_SOURCE = 200,
+ MF_TOPOSTATUS_DYNAMIC_CHANGED = 210,
+ MF_TOPOSTATUS_SINK_SWITCHED = 300,
+ MF_TOPOSTATUS_ENDED = 400
+} MF_TOPOSTATUS;
+
+typedef enum _MFVideoDRMFlags {
+ MFVideoDRMFlag_None = 0,
+ MFVideoDRMFlag_AnalogProtected = 1,
+ MFVideoDRMFlag_DigitallyProtected = 2
+} MFVideoDRMFlags;
+
+
+#if (_WIN32_WINNT >= 0x0601)
+
+typedef enum {
+ MF_STANDARD_WORKQUEUE = 0,
+ MF_WINDOW_WORKQUEUE = 1
+} MFASYNC_WORKQUEUE_TYPE;
+#endif /*(_WIN32_WINNT >= 0x0601)*/
+
+typedef enum _MFVideoPadFlags {
+ MFVideoPadFlag_PAD_TO_None = 0,
+ MFVideoPadFlag_PAD_TO_4x3 = 1,
+ MFVideoPadFlag_PAD_TO_16x9 = 2
+} MFVideoPadFlags;
+
+typedef enum _MFVideoSrcContentHintFlags {
+ MFVideoSrcContentHintFlag_None = 0,
+ MFVideoSrcContentHintFlag_16x9 = 1,
+ MFVideoSrcContentHintFlag_235_1 = 2
+} MFVideoSrcContentHintFlags;
+
+typedef enum _MFWaveFormatExConvertFlags {
+ MFWaveFormatExConvertFlag_Normal = 0,
+ MFWaveFormatExConvertFlag_ForceExtensible = 1
+} MFWaveFormatExConvertFlags;
+
+#if (_WIN32_WINNT >= 0x0601)
+#undef INTERFACE
+#define INTERFACE IMFLocalMFTRegistration
+DECLARE_INTERFACE_(IMFLocalMFTRegistration,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFLocalMFTRegistration methods */
+ STDMETHOD_(HRESULT,RegisterMFTs)(THIS_ MFT_REGISTRATION_INFO *pMFTs,DWORD cMFTs) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IMFLocalMFTRegistration_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFLocalMFTRegistration_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFLocalMFTRegistration_Release(This) (This)->pVtbl->Release(This)
+#define IMFLocalMFTRegistration_RegisterMFTs(This,pMFTs,cMFTs) (This)->lpVtbl->RegisterMFTs(This,pMFTs,cMFTs)
+#endif /*COBJMACROS*/
+#endif /*(_WIN32_WINNT >= 0x0601)*/
+
+#ifdef __cplusplus
+typedef struct tagMFASYNCRESULT : public IMFAsyncResult {
+ OVERLAPPED overlapped;
+ IMFAsyncCallback *pCallback;
+ HRESULT hrStatusResult;
+ DWORD dwBytesTransferred;
+ HANDLE hEvent;
+} MFASYNCRESULT;
+#endif
+
+typedef struct _MFT_REGISTER_TYPE_INFO {
+ GUID guidMajorType;
+ GUID guidSubtype;
+} MFT_REGISTER_TYPE_INFO;
+
+typedef struct _MFFOLDDOWN_MATRIX {
+ UINT32 cbSize;
+ UINT32 cSrcChannels;
+ UINT32 cDstChannels;
+ UINT32 dwChannelMask;
+ LONG Coeff[64];
+} MFFOLDDOWN_MATRIX;
+
+typedef struct _MT_CUSTOM_VIDEO_PRIMARIES {
+ float fRx;
+ float fRy;
+ float fGx;
+ float fGy;
+ float fBx;
+ float fBy;
+ float fWx;
+ float fWy;
+} MT_CUSTOM_VIDEO_PRIMARIES;
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef void (*MFPERIODICCALLBACK )(IUnknown *pContext);
+typedef LPVOID MFWORKITEM_KEY;
+
+HRESULT WINAPI MFAddPeriodicCallback(MFPERIODICCALLBACK Callback,IUnknown *pContext,DWORD *pdwKey);
+HRESULT WINAPI MFRemovePeriodicCallback(DWORD dwKey);
+HRESULT WINAPI MFAllocateWorkQueue(DWORD *pdwWorkQueue);
+HRESULT WINAPI MFAllocateWorkQueueEx(MFASYNC_WORKQUEUE_TYPE WorkQueueType,DWORD *pdwWorkQueue);
+HRESULT WINAPI MFAverageTimePerFrameToFrameRate(UINT64 unAverageTimePerFrame,UINT32 *punNumerator,UINT32 *punDenominator);
+HRESULT WINAPI MFBeginCreateFile(MF_FILE_ACCESSMODE AccessMode,MF_FILE_OPENMODE OpenMode,MF_FILE_FLAGS fFlags,LPCWSTR pwszFilePath,IMFAsyncCallback *pCallback,IUnknown *pState,IUnknown **ppCancelCookie);
+HRESULT WINAPI MFBeginUnregisterWorkQueueWithMMCSS(DWORD dwWorkQueueId,IMFAsyncCallback *pDoneCallback,IUnknown *pDoneState);
+HRESULT WINAPI MFBeginRegisterWorkQueueWithMMCSS(DWORD dwWorkQueueId,LPCWSTR wszClass,DWORD dwTaskId,IMFAsyncCallback *pDoneCallback,IUnknown *pDoneState);
+HRESULT WINAPI MFBeginCreateFile(MF_FILE_ACCESSMODE AccessMode,MF_FILE_OPENMODE OpenMode,MF_FILE_FLAGS fFlags,LPCWSTR pwszFilePath,IMFAsyncCallback *pCallback,IUnknown *pState,IUnknown **ppCancelCookie);
+HRESULT WINAPI MFCalculateBitmapImageSize(const BITMAPINFOHEADER *pBMIH,UINT32 cbBufSize,UINT32 *pcbImageSize,WINBOOL *pbKnown);
+HRESULT WINAPI MFCalculateImageSize(REFGUID guidSubtype,UINT32 unWidth,UINT32 unHeight,UINT32 *pcbImageSize);
+HRESULT WINAPI MFCancelCreateFile(IUnknown *pCancelCookie);
+HRESULT WINAPI MFCancelWorkItem(MFWORKITEM_KEY Key);
+WINBOOL WINAPI MFCompareFullToPartialMediaType(IMFMediaType *pMFTypeFull,IMFMediaType *pMFTypePartial);
+HRESULT WINAPI MFConvertColorInfoFromDXVA(MFVIDEOFORMAT *pToFormat,DWORD dwFromDXVA);
+HRESULT WINAPI MFConvertColorInfoToDXVA(DWORD *pdwToDXVA,const MFVIDEOFORMAT *pFromFormat);
+HRESULT WINAPI MFConvertFromFP16Array(float *pDest,const WORD *pSrc,DWORD dwCount);
+HRESULT WINAPI MFConvertToFP16Array(WORD *pDest,const float *pSrc,DWORD dwCount);
+HRESULT WINAPI MFCopyImage(BYTE *pDest,LONG lDestStride,const BYTE *pSrc,LONG lSrcStride,DWORD dwWidthInBytes,DWORD dwLines);
+HRESULT WINAPI MFCreateAudioMediaType(const WAVEFORMATEX *pAudioFormat,IMFAudioMediaType **ppIAudioMediaType);
+HRESULT WINAPI MFCreateDXSurfaceBuffer(REFIID riid,IUnknown *punkSurface,BOOL fBottomUpWhenLinear,IMFMediaBuffer **ppBuffer);
+HRESULT WINAPI MFCreateMediaType(IMFMediaType **ppMFType);
+HRESULT WINAPI MFCreateMediaBufferWrapper(IMFMediaBuffer *pBuffer,DWORD cbOffset,DWORD dwLength,IMFMediaBuffer **ppBuffer);
+HRESULT WINAPI MFCreateMediaTypeFromRepresentation(GUID guidRepresentation,LPVOID pvRepresentation,IMFMediaType **ppIMediaType);
+HRESULT WINAPI MFCreateMemoryBuffer(DWORD cbMaxLength,IMFMediaBuffer **ppBuffer);
+HRESULT WINAPI MFCreateMFVideoFormatFromMFMediaType(IMFMediaType *pMFType,MFVIDEOFORMAT **ppMFVF,UINT32 *pcbSize);
+HRESULT WINAPI MFCreateSample(IMFSample **ppIMFSample);
+HRESULT WINAPI MFCreateAsyncResult(IUnknown *punkObject,IMFAsyncCallback *pCallback,IUnknown *punkState,IMFAsyncResult **ppAsyncResult);
+HRESULT WINAPI MFCreateFile(MF_FILE_ACCESSMODE AccessMode,MF_FILE_OPENMODE OpenMode,MF_FILE_FLAGS fFlags,LPCWSTR pwszFileURL,IMFByteStream **ppIByteStream);
+HRESULT WINAPI MFCreateTempFile(MF_FILE_ACCESSMODE AccessMode,MF_FILE_OPENMODE OpenMode,MF_FILE_FLAGS fFlags,IMFByteStream **ppIByteStream);
+HRESULT WINAPI MFInitMediaTypeFromWaveFormatEx(IMFMediaType *pMFType,const WAVEFORMATEX *pWaveFormat,UINT32 cbBufSize);
+HRESULT WINAPI MFCreateVideoMediaType(const MFVIDEOFORMAT *pVideoFormat,IMFVideoMediaType **ppIVideoMediaType);
+HRESULT WINAPI MFCreateVideoMediaTypeFromBitMapInfoHeader(const BITMAPINFOHEADER *pbmihBitMapInfoHeader,DWORD dwPixelAspectRatioX,DWORD dwPixelAspectRatioY,MFVideoInterlaceMode InterlaceMode,QWORD VideoFlags,QWORD qwFramesPerSecondNumerator,QWORD qwFramesPerSecondDenominator,DWORD dwMaxBitRate,IMFVideoMediaType **ppIVideoMediaType);
+HRESULT WINAPI MFCreateVideoMediaTypeFromBitMapInfoHeaderEx(const BITMAPINFOHEADER *pbmihBitMapInfoHeader,UINT32 cbBitMapInfoHeader,DWORD dwPixelAspectRatioX,DWORD dwPixelAspectRatioY,MFVideoInterlaceMode InterlaceMode,QWORD VideoFlags,DWORD dwFramesPerSecondNumerator,DWORD dwFramesPerSecondDenominator,DWORD dwMaxBitRate,IMFVideoMediaType **ppIVideoMediaType);
+HRESULT WINAPI MFCreateVideoMediaTypeFromSubtype(const GUID *pAMSubtype,IMFVideoMediaType **ppIVideoMediaType);
+HRESULT WINAPI MFCreateVideoMediaTypeFromVideoInfoHeader(const KS_VIDEOINFOHEADER *pVideoInfoHeader,DWORD cbVideoInfoHeader,DWORD dwPixelAspectRatioX,DWORD dwPixelAspectRatioY,MFVideoInterlaceMode InterlaceMode,QWORD VideoFlags,const GUID *pSubtype,IMFVideoMediaType **ppIVideoMediaType);
+HRESULT WINAPI MFCreateVideoMediaTypeFromVideoInfoHeader2(const KS_VIDEOINFOHEADER2 *pVideoInfoHeader,DWORD cbVideoInfoHeader,QWORD AdditionalVideoFlags,const GUID *pSubtype,IMFVideoMediaType **ppIVideoMediaType);
+HRESULT WINAPI MFCreateWMAEncoderActivate(IMFMediaType *pMediaType,IPropertyStore *pEncodingConfigurationProperties,IMFActivate **ppActivate);
+HRESULT WINAPI MFEndCreateFile(IMFAsyncResult *pResult,IMFByteStream **ppFile);
+HRESULT WINAPI MFEndRegisterWorkQueueWithMMCSS(IMFAsyncResult *pResult,DWORD *pdwTaskId);
+HRESULT WINAPI MFEndUnregisterWorkQueueWithMMCSS(IMFAsyncResult *pResult);
+HRESULT WINAPI MFFrameRateToAverageTimePerFrame(UINT32 unNumerator,UINT32 unDenominator,UINT64 *punAverageTimePerFrame);
+double WINAPI MFGetAttributeDouble(IMFAttributes *pAttributes,REFGUID guidKey,double fDefault);
+HRESULT WINAPI MFGetAttributeRatio(IMFAttributes *pAttributes,REFGUID guidKey,UINT32 *pnNumerator,UINT32 *punDenominator);
+HRESULT WINAPI MFGetAttributesAsBlob(IMFAttributes *pAttributes,UINT8 *pBuf,UINT cbBufSize);
+HRESULT WINAPI MFGetAttributesAsBlobSize(IMFAttributes *pAttributes,UINT32 *pcbBufSize);
+HRESULT WINAPI MFGetAttributeSize(IMFAttributes *pAttributes,REFGUID guidKey,UINT32 *punWidth,UINT32 *punHeight);
+UINT32 WINAPI MFGetAttributeUINT32(IMFAttributes *pAttributes,REFGUID guidKey,UINT32 unDefault);
+UINT64 WINAPI MFGetAttributeUINT64(IMFAttributes *pAttributes,REFGUID guidKey,UINT64 unDefault);
+HRESULT WINAPI MFGetPlaneSize(DWORD format,DWORD dwWidth,DWORD dwHeight,DWORD *pdwPlaneSize);
+HRESULT WINAPI MFGetStrideForBitmapInfoHeader(DWORD format,DWORD dwWidth,LONG *pStride);
+HRESULT WINAPI MFGetTimerPeriodicity(DWORD *Periodicity);
+DWORD WINAPI MFGetUncompressedVideoFormat(const MFVIDEOFORMAT *pVideoFormat);
+HRESULT WINAPI MFGetWorkQueueMMCSSClass(DWORD dwWorkQueueId,LPWSTR pwszClass,DWORD *pcchClass);
+HRESULT WINAPI MFGetWorkQueueMMCSSTaskId(DWORD dwWorkQueueId,LPDWORD pdwTaskId);
+void* WINAPI MFHeapAlloc(size_t nSize,ULONG dwFlags,char *pszFile,int line,EAllocationType eat);
+void WINAPI MFHeapFree(void *pv);
+HRESULT WINAPI MFInitAMMediaTypeFromMFMediaType(IMFMediaType *pMFType,GUID guidFormatBlockType,AM_MEDIA_TYPE *pAMType);
+HRESULT WINAPI MFInitAttributesFromBlob(IMFAttributes *pAttributes,const UINT8 *pBuf,UINT cbBufSize);
+HRESULT WINAPI MFInitMediaTypeFromAMMediaType(IMFMediaType *pMFType,const AM_MEDIA_TYPE *pAMType);
+HRESULT WINAPI MFInitMediaTypeFromMFVideoFormat(IMFMediaType *pMFType,const MFVIDEOFORMAT *pMFVF,UINT32 cbBufSize);
+HRESULT WINAPI MFInitVideoFormat(MFVIDEOFORMAT *pVideoFormat,MFStandardVideoFormat type);
+HRESULT WINAPI MFInitVideoFormat_RGB(MFVIDEOFORMAT *pVideoFormat,DWORD dwWidth,DWORD dwHeight,DWORD D3Dfmt);
+HRESULT WINAPI MFInvokeCallback(IMFAsyncResult *pAsyncResult);
+WINBOOL WINAPI MFIsFormatYUV(DWORD Format);
+HRESULT WINAPI MFLockPlatform(void);
+HRESULT WINAPI MFLockWorkQueue(DWORD dwWorkQueue);
+HRESULT WINAPI MFPutWorkItem(DWORD dwQueue,IMFAsyncCallback *pCallback,IUnknown *pState);
+HRESULT WINAPI MFPutWorkItemEx(DWORD dwQueue,IMFAsyncResult *pResult);
+HRESULT WINAPI MFRemovePeriodicCallback(DWORD dwKey);
+HRESULT WINAPI MFRequireProtectedEnvironment(IMFPresentationDescriptor *pPresentationDescriptor);
+HRESULT WINAPI MFScheduleWorkItem(IMFAsyncCallback *pCallback,IUnknown *pState,INT64 Timeout,MFWORKITEM_KEY *pKey);
+HRESULT WINAPI MFSerializePresentationDescriptor(IMFPresentationDescriptor *pPD,DWORD *pcbData,BYTE **ppbData);
+HRESULT WINAPI MFSetAttribute2UINT32asUINT64(IMFAttributes *pAttributes,REFGUID guidKey,UINT32 unHigh32,UINT32 unLow32);
+HRESULT WINAPI MFSetAttributeRatio(IMFAttributes *pAttributes,REFGUID guidKey,UINT32 unNumerator,UINT32 unDenominator);
+HRESULT WINAPI MFSetAttributeSize(IMFAttributes *pAttributes,REFGUID guidKey,UINT32 unWidth,UINT32 unHeight);
+HRESULT WINAPI MFShutdown(void);
+HRESULT WINAPI MFTEnum(GUID guidCategory,UINT32 Flags,MFT_REGISTER_TYPE_INFO *pInputType,MFT_REGISTER_TYPE_INFO *pOutputType,IMFAttributes *pAttributes,CLSID **ppclsidMFT,UINT32 *pcMFTs);
+HRESULT WINAPI MFTGetInfo(CLSID clsidMFT,LPWSTR *pszName,MFT_REGISTER_TYPE_INFO **ppInputTypes,UINT32 *pcInputTypes,MFT_REGISTER_TYPE_INFO **ppOutputTypes,UINT32 *pcOutputTypes,IMFAttributes **ppAttributes);
+HRESULT WINAPI MFTRegister(CLSID clsidMFT,GUID guidCategory,LPWSTR pszName,UINT32 Flags,UINT32 cInputTypes,MFT_REGISTER_TYPE_INFO *pInputTypes,UINT32 cOutputTypes,MFT_REGISTER_TYPE_INFO *pOutputTypes,IMFAttributes *pAttributes);
+HRESULT WINAPI MFTRegisterLocal(IClassFactory *pClassFactory,REFGUID guidCategory,LPCWSTR pszName,UINT32 Flags,UINT32 cInputTypes,const MFT_REGISTER_TYPE_INFO *pInputTypes,UINT32 cOutputTypes,const MFT_REGISTER_TYPE_INFO *pOutputTypes);
+HRESULT WINAPI MFTUnregister(CLSID clsidMFT);
+HRESULT WINAPI MFUnlockPlatform(void);
+HRESULT WINAPI MFUnlockWorkQueue(DWORD dwWorkQueue);
+HRESULT WINAPI MFUnwrapMediaType(IMFMediaType *pWrap,IMFMediaType **ppOrig);
+HRESULT WINAPI MFValidateMediaTypeSize(GUID FormatType,UINT8 *pBlock,UINT32 cbSize);
+HRESULT WINAPI MFWrapMediaType(IMFMediaType *pOrig,REFGUID MajorType,REFGUID SubType,IMFMediaType **ppWrap);
+HRESULT WINAPI OPMGetVideoOutputsFromHMONITOR(HMONITOR hMonitor,OPM_VIDEO_OUTPUT_SEMANTICS vos,ULONG *pulNumVideoOutputs,IOPMVideoOutput ***pppOPMVideoOutputArray);
+UINT64 WINAPI Pack2UINT32AsUINT64(UINT32 unHigh,UINT32 unLow);
+/*void Unpack2UINT32AsUINT64(UINT64 unPacked,UINT32 *punHigh,UINT32 *punLow);*/
+#define Unpack2UINT32AsUINT64(unPacked,punHigh,punLow) \
+punHigh=(unPacked&0xffff0000); \
+punLow=(unPacked&0x0000ffff);
+
+#ifdef __cplusplus
+}
+#endif
+
+#if (_WIN32_WINNT >= 0x0601)
+#ifdef __cplusplus
+extern "C" {
+#endif
+HRESULT WINAPI MFCreateMFByteStreamOnStream(IStream *pStream,IMFByteStream **ppByteStream);
+HRESULT WINAPI MFGetMFTMerit(IUnknown *pMFT,UINT32 cbVerifier,const BYTE *verifier,DWORD *merit);
+HRESULT WINAPI MFGetPluginControl(IMFPluginControl **ppPluginControl);
+LONGLONG WINAPI MFllMulDiv(LONGLONG a,LONGLONG b,LONGLONG c,LONGLONG d);
+HRESULT WINAPI MFTEnumEx(GUID guidCategory,UINT32 Flags,const MFT_REGISTER_TYPE_INFO *pInputType,const MFT_REGISTER_TYPE_INFO *pOutputType,IMFActivate ***pppMFTActivate,UINT32 *pcMFTActivate);
+HRESULT WINAPI MFTRegisterLocalByCLSID(REFCLSID clisdMFT,REFGUID guidCategory,LPCWSTR pszName,UINT32 Flags,UINT32 cInputTypes,const MFT_REGISTER_TYPE_INFO *pInputTypes,UINT32 cOutputTypes,const MFT_REGISTER_TYPE_INFO *pOutputTypes);
+HRESULT WINAPI MFTUnregisterLocal(IClassFactory *pClassFactory);
+HRESULT WINAPI MFTUnregisterLocalByCLSID(CLSID clsidMFT);
+#ifdef __cplusplus
+}
+#endif
+#endif /*(_WIN32_WINNT >= 0x0601)*/
+
+#ifndef __cplusplus
+HRESULT WINAPI MFCreateWaveFormatExFromMFMediaType(IMFMediaType *pMFType,WAVEFORMATEX **ppWF,UINT32 *pcbSize,UINT32 Flags);
+HRESULT WINAPI MFInitMediaTypeFromMPEG1VideoInfo(IMFMediaType *pMFType,const MPEG1VIDEOINFO *pMP1VI,UINT32 cbBufSize,const GUID *pSubtype);
+HRESULT WINAPI MFInitMediaTypeFromMPEG2VideoInfo(IMFMediaType *pMFType,const MPEG2VIDEOINFO *pMP2VI,UINT32 cbBufSize,const GUID *pSubtype);
+HRESULT WINAPI MFInitMediaTypeFromVideoInfoHeader(IMFMediaType *pMFType,const VIDEOINFOHEADER *pVIH,UINT32 cbBufSize,const GUID *pSubtype);
+HRESULT WINAPI MFInitMediaTypeFromVideoInfoHeader2(IMFMediaType *pMFType,const VIDEOINFOHEADER2 *pVIH2,UINT32 cbBufSize,const GUID *pSubtype);
+HRESULT WINAPI MFStartup(ULONG Version,DWORD dwFlags);
+#else
+extern "C" HRESULT WINAPI MFCreateWaveFormatExFromMFMediaType(IMFMediaType *pMFType,WAVEFORMATEX **ppWF,UINT32 *pcbSize,UINT32 Flags = MFWaveFormatExConvertFlag_Normal);
+extern "C" HRESULT WINAPI MFInitMediaTypeFromMPEG1VideoInfo(IMFMediaType *pMFType,const MPEG1VIDEOINFO *pMP1VI,UINT32 cbBufSize,const GUID *pSubtype = NULL);
+extern "C" HRESULT WINAPI MFInitMediaTypeFromMPEG2VideoInfo(IMFMediaType *pMFType,const MPEG2VIDEOINFO *pMP2VI,UINT32 cbBufSize,const GUID *pSubtype = NULL);
+extern "C" HRESULT WINAPI MFInitMediaTypeFromVideoInfoHeader(IMFMediaType *pMFType,const VIDEOINFOHEADER *pVIH,UINT32 cbBufSize,const GUID *pSubtype = NULL);
+extern "C" HRESULT WINAPI MFInitMediaTypeFromVideoInfoHeader2(IMFMediaType *pMFType,const VIDEOINFOHEADER2 *pVIH2,UINT32 cbBufSize,const GUID *pSubtype = NULL);
+extern "C" HRESULT WINAPI MFStartup(ULONG Version,DWORD dwFlags = MFSTARTUP_FULL);
+#endif
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_MFAPI*/
diff --git a/mingw-w64-headers/include/mfidl.h b/mingw-w64-headers/include/mfidl.h
new file mode 100644
index 0000000..e422bd8
--- /dev/null
+++ b/mingw-w64-headers/include/mfidl.h
@@ -0,0 +1,1889 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_MFIDL
+#define _INC_MFIDL
+#include <mfobjects.h>
+#include <mfapi.h>
+#include <wmcontainer.h>
+#include <evr.h>
+#include <mftransform.h>
+#include <propsys.h>
+
+#if (_WIN32_WINNT >= 0x0600)
+
+#ifndef __MFTIME_DEFINED__
+#define __MFTIME_DEFINED__
+__MINGW_EXTENSION typedef LONGLONG MFTIME;
+#endif
+
+__MINGW_EXTENSION typedef unsigned __int64 TOPOID;
+typedef DWORD MFSequencerElementId; /*Unknown type*/
+
+typedef struct _MFT_REGISTER_TYPE_INFO MFT_REGISTER_TYPE_INFO;
+typedef struct IMFStreamDescriptor IMFStreamDescriptor;
+typedef struct IMFMediaSink IMFMediaSink;
+typedef struct IMFMediaTypeHandler IMFMediaTypeHandler;
+typedef struct IMFCollection IMFCollection;
+
+typedef enum MFCLOCK_CHARACTERISTICS_FLAGS {
+ MFCLOCK_CHARACTERISTICS_FLAG_FREQUENCY_10MHZ = 0x2,
+ MFCLOCK_CHARACTERISTICS_FLAG_ALWAYS_RUNNING = 0x4,
+ MFCLOCK_CHARACTERISTICS_FLAG_IS_SYSTEM_CLOCK = 0x8
+} MFCLOCK_CHARACTERISTICS_FLAGS;
+
+typedef enum _MF_CLOCK_STATE {
+ MFCLOCK_STATE_INVALID,
+ MFCLOCK_STATE_RUNNING,
+ MFCLOCK_STATE_STOPPED,
+ MFCLOCK_STATE_PAUSED
+} MF_CLOCK_STATE, MFCLOCK_STATE;
+
+#if (_WIN32_WINNT >= 0x0601)
+
+typedef enum _MF_QUALITY_ADVISE_FLAGS {
+ MF_QUALITY_CANNOT_KEEP_UP = 0x1
+} MF_QUALITY_ADVISE_FLAGS;
+
+#endif /*(_WIN32_WINNT >= 0x0601)*/
+
+typedef enum _MF_QUALITY_DROP_MODE {
+ MF_DROP_MODE_NONE = 0x0,
+ MF_DROP_MODE_1 = 0x1,
+ MF_DROP_MODE_2 = 0x2,
+ MF_DROP_MODE_3 = 0x3,
+ MF_DROP_MODE_4 = 0x4,
+ MF_DROP_MODE_5 = 0x5,
+ MF_NUM_DROP_MODES = 0x6
+} MF_QUALITY_DROP_MODE;
+
+typedef enum _MF_QUALITY_LEVEL {
+ MF_QUALITY_NORMAL = 0x0,
+ MF_QUALITY_NORMAL_MINUS_1 = 0x1,
+ MF_QUALITY_NORMAL_MINUS_2 = 0x2,
+ MF_QUALITY_NORMAL_MINUS_3 = 0x3,
+ MF_QUALITY_NORMAL_MINUS_4 = 0x4,
+ MF_QUALITY_NORMAL_MINUS_5 = 0x5,
+ MF_NUM_QUALITY_LEVELS = 0x6
+} MF_QUALITY_LEVEL;
+
+typedef enum MF_SOURCE_READER_CONTROL_FLAG {
+ MF_SOURCE_READER_CONTROLF_DRAIN = 0x00000001
+} MF_SOURCE_READER_CONTROL_FLAG;
+
+typedef enum _MF_TOPOLOGY_RESOLUTION_STATUS_FLAGS {
+ MF_TOPOLOGY_RESOLUTION_SUCCEEDED = 0x00000000,
+ MF_OPTIONAL_NODE_REJECTED_MEDIA_TYPE = 0x00000001,
+ MF_OPTIONAL_NODE_REJECTED_PROTECTED_PROCESS = 0x00000002
+} MF_TOPOLOGY_RESOLUTION_STATUS_FLAGS;
+
+typedef enum MF_TOPOLOGY_TYPE {
+ MF_TOPOLOGY_OUTPUT_NODE,
+ MF_TOPOLOGY_SOURCESTREAM_NODE,
+ MF_TOPOLOGY_TRANSFORM_NODE,
+ MF_TOPOLOGY_TEE_NODE,
+ MF_TOPOLOGY_MAX = 0xffffffff
+} MF_TOPOLOGY_TYPE;
+
+typedef enum _MF_TOPONODE_DRAIN_MODE {
+ MF_TOPONODE_DRAIN_DEFAULT,
+ MF_TOPONODE_DRAIN_ALWAYS,
+ MF_TOPONODE_DRAIN_NEVER
+} MF_TOPONODE_DRAIN_MODE;
+
+typedef enum _MF_TOPONODE_FLUSH_MODE {
+ MF_TOPONODE_FLUSH_ALWAYS,
+ MF_TOPONODE_FLUSH_SEEK,
+ MF_TOPONODE_FLUSH_NEVER
+} MF_TOPONODE_FLUSH_MODE;
+
+#if (_WIN32_WINNT >= 0x0601)
+
+typedef enum _MF_TRANSCODE_TOPOLOGY_MODE_FLAGS {
+ MF_TRANSCODE_TOPOLOGYMODE_SOFTWARE_ONLY = 0,
+ MF_TRANSCODE_TOPOLOGYMODE_HARDWARE_ALLOWED = 1
+} MF_TRANSCODE_TOPOLOGYMODE_FLAGS;
+
+#endif
+
+typedef enum {
+ MF_LICENSE_URL_UNTRUSTED,
+ MF_LICENSE_URL_TRUSTED,
+ MF_LICENSE_URL_TAMPERED
+} MF_URL_TRUST_STATUS;
+
+typedef enum MFASF_INDEXERFLAGS {
+ MFASF_INDEXER_WRITE_NEW_INDEX = 0x00000001,
+ MFASF_INDEXER_READ_FOR_REVERSEPLAYBACK = 0x00000004,
+ MFASF_INDEXER_WRITE_FOR_LIVEREAD = 0x00000008
+} MFASF_INDEXERFLAGS;
+
+typedef enum _MFCLOCK_RELATIONAL_FLAGS {
+ MFCLOCK_RELATIONAL_FLAG_JITTER_NEVER_AHEAD = 0x1
+} MFCLOCK_RELATIONAL_FLAGS;
+
+typedef enum _MFMEDIASOURCE_CHARACTERISTICS {
+ MFMEDIASOURCE_IS_LIVE = 0x1,
+ MFMEDIASOURCE_CAN_SEEK = 0x2,
+ MFMEDIASOURCE_CAN_PAUSE = 0x4,
+ MFMEDIASOURCE_HAS_SLOW_SEEK = 0x8,
+ MFMEDIASOURCE_HAS_MULTIPLE_PRESENTATIONS = 0x10,
+ MFMEDIASOURCE_CAN_SKIPFORWARD = 0x20,
+ MFMEDIASOURCE_CAN_SKIPBACKWARD = 0x40
+} MFMEDIASOURCE_CHARACTERISTICS;
+
+typedef enum _MFNET_PROXYSETTINGS {
+ MFNET_PROXYSETTING_NONE = 0,
+ MFNET_PROXYSETTING_MANUAL = 1,
+ MFNET_PROXYSETTING_AUTO = 2,
+ MFNET_PROXYSETTING_BROWSER = 3
+} MFNET_PROXYSETTINGS;
+
+typedef enum _MFNetAuthenticationFlags {
+ MFNET_AUTHENTICATION_PROXY = 0x00000001,
+ MFNET_AUTHENTICATION_CLEAR_TEXT = 0x00000002,
+ MFNET_AUTHENTICATION_LOGGED_ON_USER
+} MFNetAuthenticationFlags;
+
+typedef enum _MFNetCredentialOptions {
+ MFNET_CREDENTIAL_SAVE = 0x00000001,
+ MFNET_CREDENTIAL_DONT_CACHE = 0x00000002,
+ MFNET_CREDENTIAL_ALLOW_CLEAR_TEXT = 0x00000004
+} MFNetCredentialOptions;
+
+typedef enum _MFNetCredentialRequirements {
+ REQUIRE_PROMPT = 0x00000001,
+ REQUIRE_SAVE_SELECTED = 0x00000002
+} MFNetCredentialRequirements;
+
+typedef enum _MFNETSOURCE_CACHE_STATE {
+ MFNETSOURCE_CACHE_UNAVAILABLE,
+ MFNETSOURCE_CACHE_ACTIVE_WRITING,
+ MFNETSOURCE_CACHE_ACTIVE_COMPLETE
+} MFNETSOURCE_CACHE_STATE;
+
+typedef enum _MFNETSOURCE_PROTOCOL_TYPE {
+ MFNETSOURCE_UNDEFINED = 0x0,
+ MFNETSOURCE_HTTP = 0x1,
+ MFNETSOURCE_RTSP = 0x2,
+ MFNETSOURCE_FILE = 0x3,
+ MFNETSOURCE_MULTICAST = 0x4
+} MFNETSOURCE_PROTOCOL_TYPE;
+
+typedef enum _MFNETSOURCE_STATISTICS_IDS {
+ MFNETSOURCE_RECVPACKETS_ID = 0,
+ MFNETSOURCE_LOSTPACKETS_ID,
+ MFNETSOURCE_RESENDSREQUESTED_ID,
+ MFNETSOURCE_RESENDSRECEIVED_ID,
+ MFNETSOURCE_RECOVEREDBYECCPACKETS_ID,
+ MFNETSOURCE_RECOVEREDBYRTXPACKETS_ID,
+ MFNETSOURCE_OUTPACKETS_ID,
+ MFNETSOURCE_RECVRATE_ID,
+ MFNETSOURCE_AVGBANDWIDTHBPS_ID,
+ MFNETSOURCE_BYTESRECEIVED_ID,
+ MFNETSOURCE_PROTOCOL_ID,
+ MFNETSOURCE_TRANSPORT_ID,
+ MFNETSOURCE_CACHE_STATE_ID,
+ MFNETSOURCE_LINKBANDWIDTH_ID,
+ MFNETSOURCE_CONTENTBITRATE_ID,
+ MFNETSOURCE_SPEEDFACTOR_ID,
+ MFNETSOURCE_BUFFERSIZE_ID,
+ MFNETSOURCE_BUFFERPROGRESS_ID,
+ MFNETSOURCE_LASTBWSWITCHTS_ID,
+ MFNETSOURCE_SEEKRANGESTART_ID,
+ MFNETSOURCE_SEEKRANGEEND_ID,
+ MFNETSOURCE_BUFFERINGCOUNT_ID,
+ MFNETSOURCE_INCORRECTLYSIGNEDPACKETS_ID,
+ MFNETSOURCE_SIGNEDSESSION_ID,
+ MFNETSOURCE_MAXBITRATE_ID,
+ MFNETSOURCE_RECEPTION_QUALITY_ID,
+ MFNETSOURCE_RECOVEREDPACKETS_ID,
+ MFNETSOURCE_VBR_ID,
+ MFNETSOURCE_DOWNLOADPROGRESS_ID
+} MFNETSOURCE_STATISTICS_IDS;
+
+typedef enum _MFNETSOURCE_TRANSPORT_TYPE {
+ MFNETSOURCE_UDP,
+ MFNETSOURCE_TCP
+} MFNETSOURCE_TRANSPORT_TYPE;
+
+typedef enum MFPMPSESSION_CREATION_FLAGS {
+ MFPMPSESSION_UNPROTECTED_PROCESS = 0x1
+} MFPMPSESSION_CREATION_FLAGS;
+
+typedef enum MF_OBJECT_TYPE {
+ MF_OBJECT_MEDIASOURCE,
+ MF_OBJECT_BYTESTREAM,
+ MF_OBJECT_INVALID
+} MF_OBJECT_TYPE;
+
+typedef enum _MFPOLICYMANAGER_ACTION {
+ PEACTION_NO = 0,
+ PEACTION_PLAY = 1,
+ PEACTION_COPY = 2,
+ PEACTION_EXPORT = 3,
+ PEACTION_EXTRACT = 4,
+ PEACTION_RESERVED1 = 5,
+ PEACTION_RESERVED2 = 6,
+ PEACTION_RESERVED3 = 7,
+ PEACTION_LAST = 7
+} MFPOLICYMANAGER_ACTION;
+
+typedef enum _MFRATE_DIRECTION {
+ MFRATE_FORWARD,
+ MFRATE_REVERSE
+} MFRATE_DIRECTION;
+
+typedef enum _MFSequencerTopologyFlags {
+ SequencerTopologyFlags_Last = 0x00000001
+} MFSequencerTopologyFlags;
+
+typedef enum MFSESSION_GETFULLTOPOLOGY_FLAGS {
+ MFSESSION_GETFULLTOPOLOGY_CURRENT
+} MFSESSION_GETFULLTOPOLOGY_FLAGS;
+
+typedef enum MFSESSION_SETTOPOLOGY_FLAGS {
+ MFSESSION_SETTOPOLOGY_IMMEDIATE = 0x1,
+ MFSESSION_SETTOPOLOGY_NORESOLUTION = 0x2,
+ MFSESSION_SETTOPOLOGY_CLEAR_CURRENT = 0x4
+} MFSESSION_SETTOPOLOGY_FLAGS;
+
+typedef enum _MFSHUTDOWN_STATUS {
+ MFSHUTDOWN_INITIATED,
+ MFSHUTDOWN_COMPLETED
+} MFSHUTDOWN_STATUS;
+
+typedef enum _MFSINK_WMDRMACTION {
+ MFSINK_WMDRMACTION_UNDEFINED = 0,
+ MFSINK_WMDRMACTION_ENCODE = 1,
+ MFSINK_WMDRMACTION_TRANSCODE = 2,
+ MFSINK_WMDRMACTION_TRANSCRYPT = 3,
+ MFSINK_WMDRMACTION_LAST = 3
+} MFSINK_WMDRMACTION;
+
+typedef enum MFSTREAMSINK_MARKER_TYPE {
+ MFSTREAMSINK_MARKER_DEFAULT,
+ MFSTREAMSINK_MARKER_ENDOFSEGMENT,
+ MFSTREAMSINK_MARKER_TICK,
+ MFSTREAMSINK_MARKER_EVENT
+} MFSTREAMSINK_MARKER_TYPE;
+
+typedef enum MFTIMER_FLAGS {
+ MFTIMER_RELATIVE = 0x00000001
+} MFTIMER_FLAGS;
+
+#if (_WIN32_WINNT >= 0x0601)
+
+typedef enum MFTOPLOGY_DXVA_MODE {
+ MFTOPOLOGY_DXVA_DEFAULT = 0,
+ MFTOPOLOGY_DXVA_NONE = 1,
+ MFTOPOLOGY_DXVA_FULL = 2
+} MFTOPOLOGY_DXVA_MODE;
+
+typedef enum MFTOPOLOGY_HARDWARE_MODE {
+ MFTOPOLOGY_HWMODE_SOFTWARE_ONLY = 0,
+ MFTOPOLOGY_HWMODE_USE_HARDWARE = 1
+} MFTOPOLOGY_HARDWARE_MODE;
+
+typedef struct _MFT_REGISTRATION_INFO {
+ CLSID clsid;
+ GUID guidCategory;
+ UINT32 uiFlags;
+ LPCWSTR pszName;
+ DWORD cInTypes;
+ MFT_REGISTER_TYPE_INFO *pInTypes;
+ DWORD cOutTypes;
+ MFT_REGISTER_TYPE_INFO *pOutTypes;
+} MFT_REGISTRATION_INFO;
+
+#endif /*(_WIN32_WINNT >= 0x0601)*/
+
+typedef struct _ASFFlatPicture {
+ BYTE bPictureType;
+ DWORD dwDataLen;
+} ASF_FLAT_PICTURE;
+
+typedef struct _ASFFlatSynchronisedLyrics {
+ BYTE bTimeStampFormat;
+ BYTE bContentType;
+ DWORD dwLyricsLen;
+} ASF_FLAT_SYNCHRONISED_LYRICS;
+
+typedef enum SAMPLE_PROTECTION_VERSION {
+ SAMPLE_PROTECTION_VERSION_NO = 0,
+ SAMPLE_PROTECTION_VERSION_BASIC_LOKI = 1,
+ SAMPLE_PROTECTION_VERSION_SCATTER = 2,
+ SAMPLE_PROTECTION_VERSION_RC4 = 3
+} SAMPLE_PROTECTION_VERSION;
+
+typedef struct _MF_LEAKY_BUCKET_PAIR {
+ DWORD dwBitrate;
+ DWORD msBufferWindow;
+} MF_LEAKY_BUCKET_PAIR;
+
+typedef struct _MFBYTESTREAM_BUFFERING_PARAMS {
+ QWORD cbTotalFileSize;
+ QWORD cbPlayableDataSize;
+ MF_LEAKY_BUCKET_PAIR *prgBuckets;
+ DWORD cBuckets;
+ QWORD qwNetBufferingTime;
+ QWORD qwExtraBufferingTimeDuringSeek;
+ QWORD qwPlayDuration;
+ float dRate;
+} MFBYTESTREAM_BUFFERING_PARAMS;
+
+typedef struct _MFCLOCK_PROPERTIES {
+ unsigned __int64 qwCorrelationRate;
+ GUID guidClockId;
+ DWORD dwClockFlags;
+ unsigned __int64 qwClockFrequency;
+ DWORD dwClockTolerance;
+ DWORD dwClockJitter;
+} MFCLOCK_PROPERTIES;
+
+typedef struct _MFINPUTTRUSTAUTHORITY_ACTION {
+ MFPOLICYMANAGER_ACTION Action;
+ BYTE *pbTicket;
+ DWORD cbTicket;
+} MFINPUTTRUSTAUTHORITY_ACCESS_ACTION;
+
+typedef struct _MFINPUTTRUSTAUTHORITY_ACCESS_PARAMS {
+ DWORD dwSize;
+ DWORD dwVer;
+ DWORD cbSignatureOffset;
+ DWORD cbSignatureSize;
+ DWORD cbExtensionOffset;
+ DWORD cbExtensionSize;
+ DWORD cActions;
+ MFINPUTTRUSTAUTHORITY_ACCESS_ACTION rgOutputActions[1];
+} MFINPUTTRUSTAUTHORITY_ACCESS_PARAMS;
+
+typedef struct _MFRR_COMPONENT_HASH_INFO {
+ DWORD ulReason;
+ WCHAR rgHeaderHash[MAX_HASH_LEN];
+ WCHAR rgPublicKeyHash[MAX_HASH_LEN];
+ WCHAR wszName[MAX_PATH];
+} MFRR_COMPONENT_HASH_INFO, *PMFRR_COMPONENT_HASH_INFO;
+
+typedef struct _MFNetCredentialManagerGetParam {
+ HRESULT hrOp;
+ WINBOOL fAllowLoggedOnUser;
+ WINBOOL fClearTextPackage;
+ LPCWSTR pszUrl;
+ LPCWSTR pszSite;
+ LPCWSTR pszRealm;
+ LPCWSTR pszPackage;
+ LONG nRetries;
+} MFNetCredentialManagerGetParam;
+
+#undef INTERFACE
+#define INTERFACE IMFByteStreamBuffering
+DECLARE_INTERFACE_(IMFByteStreamBuffering,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFByteStreamBuffering methods */
+ STDMETHOD_(HRESULT,EnableBuffering)(THIS_ WINBOOL fEnable) PURE;
+ STDMETHOD_(HRESULT,SetBufferingParams)(THIS_ MFBYTESTREAM_BUFFERING_PARAMS *pParams) PURE;
+ STDMETHOD_(HRESULT,StopBuffering)(THIS) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IMFByteStreamBuffering_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFByteStreamBuffering_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFByteStreamBuffering_Release(This) (This)->pVtbl->Release(This)
+#define IMFByteStreamBuffering_EnableBuffering(This,fEnable) (This)->lpVtbl->EnableBuffering(This,fEnable)
+#define IMFByteStreamBuffering_SetBufferingParams(This,pParams) (This)->lpVtbl->SetBufferingParams(This,pParams)
+#define IMFByteStreamBuffering_StopBuffering() (This)->lpVtbl->StopBuffering(This)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IMFPresentationDescriptor
+DECLARE_INTERFACE_(IMFPresentationDescriptor,IMFAttributes)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFAttributes methods */
+ STDMETHOD_(HRESULT,Compare)(THIS_ IMFAttributes *pTheirs,MF_ATTRIBUTES_MATCH_TYPE MatchType,BOOL *pbResult) PURE;
+ STDMETHOD_(HRESULT,CompareItem)(THIS_ REFGUID guidKey,REFPROPVARIANT Value,BOOL *pbResult) PURE;
+ STDMETHOD_(HRESULT,CopyAllItems)(THIS_ IMFAttributes *pDest) PURE;
+ STDMETHOD_(HRESULT,DeleteAllItems)(THIS) PURE;
+ STDMETHOD_(HRESULT,DeleteItem)(THIS_ REFGUID guidKey) PURE;
+ STDMETHOD_(HRESULT,GetAllocatedBlob)(THIS_ REFGUID guidKey,UINT8 **ppBuf,UINT32 *pcbSize) PURE;
+ STDMETHOD_(HRESULT,GetAllocatedString)(THIS_ REFGUID guidKey,LPWSTR *ppwszValue,UINT32 *pcchLength) PURE;
+ STDMETHOD_(HRESULT,GetBlob)(THIS_ REFGUID guidKey,UINT8 *pBuf,UINT32 cbBufSize,UINT32 *pcbBlobSize) PURE;
+ STDMETHOD_(HRESULT,GetBlobSize)(THIS_ REFGUID guidKey,UINT32 *pcbBlobSize) PURE;
+ STDMETHOD_(HRESULT,GetCount)(THIS_ UINT32 *pcItems) PURE;
+ STDMETHOD_(HRESULT,GetDouble)(THIS_ REFGUID guidKey,double *pfValue) PURE;
+ STDMETHOD_(HRESULT,GetGUID)(THIS_ REFGUID guidKey,GUID *pguidValue) PURE;
+ STDMETHOD_(HRESULT,GetItem)(THIS_ REFGUID guidKey,PROPVARIANT *pValue) PURE;
+ STDMETHOD_(HRESULT,GetItemByIndex)(THIS_ UINT32 unIndex,GUID *pguidKey,PROPVARIANT *pValue) PURE;
+ STDMETHOD_(HRESULT,GetItemType)(THIS_ REFGUID guidKey,MF_ATTRIBUTE_TYPE *pType) PURE;
+ STDMETHOD_(HRESULT,GetString)(THIS_ REFGUID guidKey,LPWSTR pwszValue,UINT32 cchBufSize,UINT32 *pcchLength) PURE;
+ STDMETHOD_(HRESULT,GetStringLength)(THIS_ REFGUID guidKey,UINT32 *pcchLength) PURE;
+ STDMETHOD_(HRESULT,GetUINT32)(THIS_ REFGUID guidKey,UINT32 *punValue) PURE;
+ STDMETHOD_(HRESULT,GetUINT64)(THIS_ REFGUID guidKey,UINT64 *punValue) PURE;
+ STDMETHOD_(HRESULT,GetUnknown)(THIS_ REFGUID guidKey,REFIID riid,LPVOID *ppv) PURE;
+ STDMETHOD_(HRESULT,LockStore)(THIS) PURE;
+ STDMETHOD_(HRESULT,SetBlob)(THIS_ REFGUID guidKey,const UINT8 *pBuf,UINT32 cbBufSize) PURE;
+ STDMETHOD_(HRESULT,SetDouble)(THIS_ REFGUID guidKey,double fValue) PURE;
+ STDMETHOD_(HRESULT,SetGUID)(THIS_ REFGUID guidKey,REFGUID guidValue) PURE;
+ STDMETHOD_(HRESULT,SetItem)(THIS_ REFGUID guidKey,REFPROPVARIANT Value) PURE;
+ STDMETHOD_(HRESULT,SetString)(THIS_ REFGUID guidKey,LPCWSTR wszValue) PURE;
+ STDMETHOD_(HRESULT,SetUINT32)(THIS_ REFGUID guidKey,UINT32 unValue) PURE;
+ STDMETHOD_(HRESULT,SetUINT64)(THIS_ REFGUID guidKey,UINT64 unValue) PURE;
+ STDMETHOD_(HRESULT,SetUnknown)(THIS_ REFGUID guidKey,IUnknown *pUnknown) PURE;
+ STDMETHOD_(HRESULT,UnlockStore)(THIS) PURE;
+
+ /* IMFPresentationDescriptor methods */
+ STDMETHOD_(HRESULT,Clone)(THIS_ IMFPresentationDescriptor **ppPresentationDescriptor) PURE;
+ STDMETHOD_(HRESULT,DeselectStream)(THIS_ DWORD dwDescriptorIndex) PURE;
+ STDMETHOD_(HRESULT,GetStreamDescriptorByIndex)(THIS_ DWORD dwIndex,BOOL *pfSelected,IMFStreamDescriptor **ppDescriptor) PURE;
+ STDMETHOD_(HRESULT,GetStreamDescriptorCount)(THIS_ DWORD *pdwDescriptorCount) PURE;
+ STDMETHOD_(HRESULT,SelectStream)(THIS_ DWORD dwDescriptorIndex) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IMFPresentationDescriptor_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFPresentationDescriptor_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFPresentationDescriptor_Release(This) (This)->pVtbl->Release(This)
+#define IMFPresentationDescriptor_Compare(This,pTheirs,MatchType,pbResult) (This)->lpVtbl->Compare(This,pTheirs,MatchType,pbResult)
+#define IMFPresentationDescriptor_CompareItem(This,guidKey,Value,pbResult) (This)->lpVtbl->CompareItem(This,guidKey,Value,pbResult)
+#define IMFPresentationDescriptor_CopyAllItems(This,pDest) (This)->lpVtbl->CopyAllItems(This,pDest)
+#define IMFPresentationDescriptor_DeleteAllItems() (This)->lpVtbl->DeleteAllItems(This)
+#define IMFPresentationDescriptor_DeleteItem(This,guidKey) (This)->lpVtbl->DeleteItem(This,guidKey)
+#define IMFPresentationDescriptor_GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) (This)->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize)
+#define IMFPresentationDescriptor_GetAllocatedString(This,guidKey,ppwszValue,pcchLength) (This)->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength)
+#define IMFPresentationDescriptor_GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) (This)->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize)
+#define IMFPresentationDescriptor_GetBlobSize(This,guidKey,pcbBlobSize) (This)->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize)
+#define IMFPresentationDescriptor_GetCount(This,pcItems) (This)->lpVtbl->GetCount(This,pcItems)
+#define IMFPresentationDescriptor_GetDouble(This,guidKey,pfValue) (This)->lpVtbl->GetDouble(This,guidKey,pfValue)
+#define IMFPresentationDescriptor_GetGUID(This,guidKey,pguidValue) (This)->lpVtbl->GetGUID(This,guidKey,pguidValue)
+#define IMFPresentationDescriptor_GetItem(This,guidKey,pValue) (This)->lpVtbl->GetItem(This,guidKey,pValue)
+#define IMFPresentationDescriptor_GetItemByIndex(This,unIndex,pguidKey,pValue) (This)->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue)
+#define IMFPresentationDescriptor_GetItemType(This,guidKey,pType) (This)->lpVtbl->GetItemType(This,guidKey,pType)
+#define IMFPresentationDescriptor_GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) (This)->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength)
+#define IMFPresentationDescriptor_GetStringLength(This,guidKey,pcchLength) (This)->lpVtbl->GetStringLength(This,guidKey,pcchLength)
+#define IMFPresentationDescriptor_GetUINT32(This,guidKey,punValue) (This)->lpVtbl->GetUINT32(This,guidKey,punValue)
+#define IMFPresentationDescriptor_GetUINT64(This,guidKey,punValue) (This)->lpVtbl->GetUINT64(This,guidKey,punValue)
+#define IMFPresentationDescriptor_GetUnknown(This,guidKey,riid,ppv) (This)->lpVtbl->GetUnknown(This,guidKey,riid,ppv)
+#define IMFPresentationDescriptor_LockStore() (This)->lpVtbl->LockStore(This)
+#define IMFPresentationDescriptor_SetBlob(This,guidKey,pBuf,cbBufSize) (This)->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize)
+#define IMFPresentationDescriptor_SetDouble(This,guidKey,fValue) (This)->lpVtbl->SetDouble(This,guidKey,fValue)
+#define IMFPresentationDescriptor_SetGUID(This,guidKey,guidValue) (This)->lpVtbl->SetGUID(This,guidKey,guidValue)
+#define IMFPresentationDescriptor_SetItem(This,guidKey,Value) (This)->lpVtbl->SetItem(This,guidKey,Value)
+#define IMFPresentationDescriptor_SetString(This,guidKey,wszValue) (This)->lpVtbl->SetString(This,guidKey,wszValue)
+#define IMFPresentationDescriptor_SetUINT32(This,guidKey,unValue) (This)->lpVtbl->SetUINT32(This,guidKey,unValue)
+#define IMFPresentationDescriptor_SetUINT64(This,guidKey,unValue) (This)->lpVtbl->SetUINT64(This,guidKey,unValue)
+#define IMFPresentationDescriptor_SetUnknown(This,guidKey,pUnknown) (This)->lpVtbl->SetUnknown(This,guidKey,pUnknown)
+#define IMFPresentationDescriptor_UnlockStore() (This)->lpVtbl->UnlockStore(This)
+#define IMFPresentationDescriptor_Clone(This,ppPresentationDescriptor) (This)->lpVtbl->Clone(This,ppPresentationDescriptor)
+#define IMFPresentationDescriptor_DeselectStream(This,dwDescriptorIndex) (This)->lpVtbl->DeselectStream(This,dwDescriptorIndex)
+#define IMFPresentationDescriptor_GetStreamDescriptorByIndex(This,dwIndex,pfSelected,ppDescriptor) (This)->lpVtbl->GetStreamDescriptorByIndex(This,dwIndex,pfSelected,ppDescriptor)
+#define IMFPresentationDescriptor_GetStreamDescriptorCount(This,pdwDescriptorCount) (This)->lpVtbl->GetStreamDescriptorCount(This,pdwDescriptorCount)
+#define IMFPresentationDescriptor_SelectStream(This,dwDescriptorIndex) (This)->lpVtbl->SelectStream(This,dwDescriptorIndex)
+#endif /*COBJMACROS*/
+
+#if (_WIN32_WINNT >= 0x0601)
+#undef INTERFACE
+#define INTERFACE IMFByteStreamCacheControl
+DECLARE_INTERFACE_(IMFByteStreamCacheControl,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFByteStreamCacheControl methods */
+ STDMETHOD_(HRESULT,StopBackgroundTransfer)(THIS) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IMFByteStreamCacheControl_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFByteStreamCacheControl_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFByteStreamCacheControl_Release(This) (This)->pVtbl->Release(This)
+#define IMFByteStreamCacheControl_StopBackgroundTransfer() (This)->lpVtbl->StopBackgroundTransfer(This)
+#endif /*COBJMACROS*/
+#endif /*(_WIN32_WINNT >= 0x0601)*/
+
+#define MF_1_BYTE_ALIGNMENT 0x00000000
+#define MF_2_BYTE_ALIGNMENT 0x00000001
+#define MF_4_BYTE_ALIGNMENT 0x00000003
+#define MF_8_BYTE_ALIGNMENT 0x00000007
+#define MF_16_BYTE_ALIGNMENT 0x0000000F
+#define MF_32_BYTE_ALIGNMENT 0x0000001F
+#define MF_64_BYTE_ALIGNMENT 0x0000003F
+#define MF_128_BYTE_ALIGNMENT 0x0000007F
+#define MF_256_BYTE_ALIGNMENT 0x000000FF
+#define MF_512_BYTE_ALIGNMENT 0x000001FF
+
+#define MEDIASINK_FIXED_STREAMS 0x00000001
+#define MEDIASINK_CANNOT_MATCH_CLOCK 0x00000002
+#define MEDIASINK_RATELESS 0x00000004
+#define MEDIASINK_CLOCK_REQUIRED 0x00000008
+#define MEDIASINK_CAN_PREROLL 0x00000010
+#define MEDIASINK_REQUIRE_REFERENCE_MEDIATYPE 0x00000020
+
+#define MF_RESOLUTION_MEDIASOURCE 0x00000001
+#define MF_RESOLUTION_BYTESTREAM 0x00000002
+#define MF_RESOLUTION_CONTENT_DOES_NOT_HAVE_TO_MATCH_EXTENSION_OR_MIME_TYPE 0x00000010
+#define MF_RESOLUTION_KEEP_BYTE_STREAM_ALIVE_ON_FAIL 0x00000020
+#define MF_RESOLUTION_READ 0x00010000
+#define MF_RESOLUTION_WRITE 0x00020000
+
+#undef INTERFACE
+#define INTERFACE IMFClockStateSink
+DECLARE_INTERFACE_(IMFClockStateSink,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFClockStateSink methods */
+ STDMETHOD_(HRESULT,OnClockPause)(THIS_ MFTIME hnsSystemTime) PURE;
+ STDMETHOD_(HRESULT,OnClockRestart)(THIS_ MFTIME hnsSystemTime) PURE;
+ STDMETHOD_(HRESULT,OnClockSetRate)(THIS_ MFTIME hnsSystemTime,float flRate) PURE;
+ STDMETHOD_(HRESULT,OnClockStart)(THIS_ MFTIME hnsSystemTime,LONGLONG llClockStartOffset) PURE;
+ STDMETHOD_(HRESULT,OnClockStop)(THIS_ MFTIME hnssSystemTime) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IMFClockStateSink_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFClockStateSink_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFClockStateSink_Release(This) (This)->pVtbl->Release(This)
+#define IMFClockStateSink_OnClockPause(This,hnsSystemTime) (This)->lpVtbl->OnClockPause(This,hnsSystemTime)
+#define IMFClockStateSink_OnClockRestart(This,hnsSystemTime) (This)->lpVtbl->OnClockRestart(This,hnsSystemTime)
+#define IMFClockStateSink_OnClockSetRate(This,hnsSystemTime,flRate) (This)->lpVtbl->OnClockSetRate(This,hnsSystemTime,flRate)
+#define IMFClockStateSink_OnClockStart(This,hnsSystemTime,llClockStartOffset) (This)->lpVtbl->OnClockStart(This,hnsSystemTime,llClockStartOffset)
+#define IMFClockStateSink_OnClockStop(This,hnssSystemTime) (This)->lpVtbl->OnClockStop(This,hnssSystemTime)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IMFClock
+DECLARE_INTERFACE_(IMFClock,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFClock methods */
+ STDMETHOD_(HRESULT,GetClockCharacteristics)(THIS_ DWORD *pdwCharacteristics) PURE;
+ STDMETHOD_(HRESULT,GetContinuityKey)(THIS_ DWORD *pdwContinuityKey) PURE;
+ STDMETHOD_(HRESULT,GetCorrelatedTime)(THIS_ DWORD dwReserved,LONGLONG *pllClockTime,MFTIME *phnsSystemTime) PURE;
+ STDMETHOD_(HRESULT,GetProperties)(THIS_ MFCLOCK_PROPERTIES *pClockProperties) PURE;
+ STDMETHOD_(HRESULT,GetState)(THIS_ DWORD dwReserved,MFCLOCK_STATE *peClockState) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IMFClock_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFClock_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFClock_Release(This) (This)->pVtbl->Release(This)
+#define IMFClock_GetClockCharacteristics(This,pdwCharacteristics) (This)->lpVtbl->GetClockCharacteristics(This,pdwCharacteristics)
+#define IMFClock_GetContinuityKey(This,pdwContinuityKey) (This)->lpVtbl->GetContinuityKey(This,pdwContinuityKey)
+#define IMFClock_GetCorrelatedTime(This,dwReserved,pllClockTime,phnsSystemTime) (This)->lpVtbl->GetCorrelatedTime(This,dwReserved,pllClockTime,phnsSystemTime)
+#define IMFClock_GetProperties(This,pClockProperties) (This)->lpVtbl->GetProperties(This,pClockProperties)
+#define IMFClock_GetState(This,dwReserved,peClockState) (This)->lpVtbl->GetState(This,dwReserved,peClockState)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IMFPresentationTimeSource
+DECLARE_INTERFACE_(IMFPresentationTimeSource,IMFClock)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFClock methods */
+ STDMETHOD_(HRESULT,GetClockCharacteristics)(THIS_ DWORD *pdwCharacteristics) PURE;
+ STDMETHOD_(HRESULT,GetContinuityKey)(THIS_ DWORD *pdwContinuityKey) PURE;
+ STDMETHOD_(HRESULT,GetCorrelatedTime)(THIS_ DWORD dwReserved,LONGLONG *pllClockTime,MFTIME *phnsSystemTime) PURE;
+ STDMETHOD_(HRESULT,GetProperties)(THIS_ MFCLOCK_PROPERTIES *pClockProperties) PURE;
+ STDMETHOD_(HRESULT,GetState)(THIS_ DWORD dwReserved,MFCLOCK_STATE *peClockState) PURE;
+
+ /* IMFPresentationTimeSource methods */
+ STDMETHOD_(HRESULT,GetUnderlyingClock)(THIS_ IMFClock **ppClock) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IMFPresentationTimeSource_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFPresentationTimeSource_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFPresentationTimeSource_Release(This) (This)->pVtbl->Release(This)
+#define IMFPresentationTimeSource_GetClockCharacteristics(This,pdwCharacteristics) (This)->lpVtbl->GetClockCharacteristics(This,pdwCharacteristics)
+#define IMFPresentationTimeSource_GetContinuityKey(This,pdwContinuityKey) (This)->lpVtbl->GetContinuityKey(This,pdwContinuityKey)
+#define IMFPresentationTimeSource_GetCorrelatedTime(This,dwReserved,pllClockTime,phnsSystemTime) (This)->lpVtbl->GetCorrelatedTime(This,dwReserved,pllClockTime,phnsSystemTime)
+#define IMFPresentationTimeSource_GetProperties(This,pClockProperties) (This)->lpVtbl->GetProperties(This,pClockProperties)
+#define IMFPresentationTimeSource_GetState(This,dwReserved,peClockState) (This)->lpVtbl->GetState(This,dwReserved,peClockState)
+#define IMFPresentationTimeSource_GetUnderlyingClock(This,ppClock) (This)->lpVtbl->GetUnderlyingClock(This,ppClock)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IMFPresentationClock
+DECLARE_INTERFACE_(IMFPresentationClock,IMFClock)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFClock methods */
+ STDMETHOD_(HRESULT,GetClockCharacteristics)(THIS_ DWORD *pdwCharacteristics) PURE;
+ STDMETHOD_(HRESULT,GetContinuityKey)(THIS_ DWORD *pdwContinuityKey) PURE;
+ STDMETHOD_(HRESULT,GetCorrelatedTime)(THIS_ DWORD dwReserved,LONGLONG *pllClockTime,MFTIME *phnsSystemTime) PURE;
+ STDMETHOD_(HRESULT,GetProperties)(THIS_ MFCLOCK_PROPERTIES *pClockProperties) PURE;
+ STDMETHOD_(HRESULT,GetState)(THIS_ DWORD dwReserved,MFCLOCK_STATE *peClockState) PURE;
+
+ /* IMFPresentationClock methods */
+ STDMETHOD_(HRESULT,AddClockStateSink)(THIS_ IMFClockStateSink *pStateSink) PURE;
+ STDMETHOD_(HRESULT,GetTime)(THIS_ MFTIME *phnsClockTime) PURE;
+ STDMETHOD_(HRESULT,GetTimeSource)(THIS_ IMFPresentationTimeSource **ppTimeSource) PURE;
+ STDMETHOD_(HRESULT,Pause)(THIS) PURE;
+ STDMETHOD_(HRESULT,RemoveClockStateSink)(THIS_ IMFClockStateSink *pStateSink) PURE;
+ STDMETHOD_(HRESULT,SetTimeSource)(THIS_ IMFPresentationTimeSource *pTimeSource) PURE;
+ STDMETHOD_(HRESULT,Start)(THIS_ LONGLONG llClockStartOffset) PURE;
+ STDMETHOD_(HRESULT,Stop)(THIS) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IMFPresentationClock_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFPresentationClock_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFPresentationClock_Release(This) (This)->pVtbl->Release(This)
+#define IMFPresentationClock_GetClockCharacteristics(This,pdwCharacteristics) (This)->lpVtbl->GetClockCharacteristics(This,pdwCharacteristics)
+#define IMFPresentationClock_GetContinuityKey(This,pdwContinuityKey) (This)->lpVtbl->GetContinuityKey(This,pdwContinuityKey)
+#define IMFPresentationClock_GetCorrelatedTime(This,dwReserved,pllClockTime,phnsSystemTime) (This)->lpVtbl->GetCorrelatedTime(This,dwReserved,pllClockTime,phnsSystemTime)
+#define IMFPresentationClock_GetProperties(This,pClockProperties) (This)->lpVtbl->GetProperties(This,pClockProperties)
+#define IMFPresentationClock_GetState(This,dwReserved,peClockState) (This)->lpVtbl->GetState(This,dwReserved,peClockState)
+#define IMFPresentationClock_AddClockStateSink(This,pStateSink) (This)->lpVtbl->AddClockStateSink(This,pStateSink)
+#define IMFPresentationClock_GetTime(This,phnsClockTime) (This)->lpVtbl->GetTime(This,phnsClockTime)
+#define IMFPresentationClock_GetTimeSource(This,ppTimeSource) (This)->lpVtbl->GetTimeSource(This,ppTimeSource)
+#define IMFPresentationClock_Pause() (This)->lpVtbl->Pause(This)
+#define IMFPresentationClock_RemoveClockStateSink(This,pStateSink) (This)->lpVtbl->RemoveClockStateSink(This,pStateSink)
+#define IMFPresentationClock_SetTimeSource(This,pTimeSource) (This)->lpVtbl->SetTimeSource(This,pTimeSource)
+#define IMFPresentationClock_Start(This,llClockStartOffset) (This)->lpVtbl->Start(This,llClockStartOffset)
+#define IMFPresentationClock_Stop() (This)->lpVtbl->Stop(This)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IMFStreamSink
+DECLARE_INTERFACE_(IMFStreamSink,IMFMediaEventGenerator)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFMediaEventGenerator methods */
+ /*[call_as(BeginGetEvent)] */
+ STDMETHOD_(HRESULT,BeginGetEvent)(THIS_ IMFAsyncCallback *pCallback,IUnknown *punkState) PURE;
+ STDMETHOD_(HRESULT,EndGetEvent)(THIS_ IMFAsyncResult *pResult,IMFMediaEvent **ppEvent) PURE;
+ STDMETHOD_(HRESULT,GetEvent)(THIS_ DWORD dwFlags,IMFMediaEvent **ppEvent) PURE;
+ STDMETHOD_(HRESULT,QueueEvent)(THIS_ MediaEventType met,REFGUID guidExtendedType,HRESULT hrStatus,const PROPVARIANT *pvValue) PURE;
+ STDMETHOD_(HRESULT,RemoteEndGetEvent)(THIS_ IUnknown *pResult,DWORD *pcbEvent,BYTE **ppbEvent) PURE;
+
+ /* IMFStreamSink methods */
+ STDMETHOD_(HRESULT,Flush)(THIS) PURE;
+ STDMETHOD_(HRESULT,GetIdentifier)(THIS_ DWORD *pdwIdentifier) PURE;
+ STDMETHOD_(HRESULT,GetMediaSink)(THIS_ IMFMediaSink **ppMediaSink) PURE;
+ STDMETHOD_(HRESULT,GetMediaTypeHandler)(THIS_ IMFMediaTypeHandler **ppHandler) PURE;
+ STDMETHOD_(HRESULT,PlaceMarker)(THIS_ MFSTREAMSINK_MARKER_TYPE eMarkerType,const PROPVARIANT *pvarMarkerValue,const PROPVARIANT *pvarContextValue) PURE;
+ STDMETHOD_(HRESULT,ProcessSample)(THIS_ IMFSample *pSample) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IMFStreamSink_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFStreamSink_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFStreamSink_Release(This) (This)->pVtbl->Release(This)
+#define IMFStreamSink_BeginGetEvent(This,pCallback,punkState) (This)->lpVtbl->BeginGetEvent(This,pCallback,punkState)
+#define IMFStreamSink_EndGetEvent(This,pResult,ppEvent) (This)->lpVtbl->EndGetEvent(This,pResult,ppEvent)
+#define IMFStreamSink_GetEvent(This,dwFlags,ppEvent) (This)->lpVtbl->GetEvent(This,dwFlags,ppEvent)
+#define IMFStreamSink_QueueEvent(This,met,guidExtendedType,hrStatus,pvValue) (This)->lpVtbl->QueueEvent(This,met,guidExtendedType,hrStatus,pvValue)
+#define IMFStreamSink_RemoteEndGetEvent(This,pResult,pcbEvent,ppbEvent) (This)->lpVtbl->RemoteEndGetEvent(This,pResult,pcbEvent,ppbEvent)
+#define IMFStreamSink_Flush() (This)->lpVtbl->Flush(This)
+#define IMFStreamSink_GetIdentifier(This,pdwIdentifier) (This)->lpVtbl->GetIdentifier(This,pdwIdentifier)
+#define IMFStreamSink_GetMediaSink(This,ppMediaSink) (This)->lpVtbl->GetMediaSink(This,ppMediaSink)
+#define IMFStreamSink_GetMediaTypeHandler(This,ppHandler) (This)->lpVtbl->GetMediaTypeHandler(This,ppHandler)
+#define IMFStreamSink_PlaceMarker(This,eMarkerType,pvarMarkerValue,pvarContextValue) (This)->lpVtbl->PlaceMarker(This,eMarkerType,pvarMarkerValue,pvarContextValue)
+#define IMFStreamSink_ProcessSample(This,pSample) (This)->lpVtbl->ProcessSample(This,pSample)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IMFMediaSink
+DECLARE_INTERFACE_(IMFMediaSink,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFMediaSink methods */
+ STDMETHOD_(HRESULT,AddStreamSink)(THIS_ DWORD dwStreamSinkIdentifier,IMFMediaType *pMediaType,IMFStreamSink **ppStreamSink) PURE;
+ STDMETHOD_(HRESULT,GetCharacteristics)(THIS_ DWORD *pdwCharacteristics) PURE;
+ STDMETHOD_(HRESULT,GetPresentationClock)(THIS_ IMFPresentationClock **ppPresentationClock) PURE;
+ STDMETHOD_(HRESULT,GetStreamSinkById)(THIS_ DWORD dwStreamSinkIdentifier,IMFStreamSink **ppStreamSink) PURE;
+ STDMETHOD_(HRESULT,GetStreamSinkByIndex)(THIS_ DWORD dwIndex,IMFStreamSink **ppStreamSink) PURE;
+ STDMETHOD_(HRESULT,GetStreamSinkCount)(THIS_ DWORD *pcStreamSinkCount) PURE;
+ STDMETHOD_(HRESULT,RemoveStreamSink)(THIS_ DWORD dwStreamSinkIdentifier) PURE;
+ STDMETHOD_(HRESULT,SetPresentationClock)(THIS_ IMFPresentationClock *pPresentationClock) PURE;
+ STDMETHOD_(HRESULT,Shutdown)(THIS) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IMFMediaSink_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFMediaSink_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFMediaSink_Release(This) (This)->pVtbl->Release(This)
+#define IMFMediaSink_AddStreamSink(This,dwStreamSinkIdentifier,pMediaType,ppStreamSink) (This)->lpVtbl->AddStreamSink(This,dwStreamSinkIdentifier,pMediaType,ppStreamSink)
+#define IMFMediaSink_GetCharacteristics(This,pdwCharacteristics) (This)->lpVtbl->GetCharacteristics(This,pdwCharacteristics)
+#define IMFMediaSink_GetPresentationClock(This,ppPresentationClock) (This)->lpVtbl->GetPresentationClock(This,ppPresentationClock)
+#define IMFMediaSink_GetStreamSinkById(This,dwStreamSinkIdentifier,ppStreamSink) (This)->lpVtbl->GetStreamSinkById(This,dwStreamSinkIdentifier,ppStreamSink)
+#define IMFMediaSink_GetStreamSinkByIndex(This,dwIndex,ppStreamSink) (This)->lpVtbl->GetStreamSinkByIndex(This,dwIndex,ppStreamSink)
+#define IMFMediaSink_GetStreamSinkCount(This,pcStreamSinkCount) (This)->lpVtbl->GetStreamSinkCount(This,pcStreamSinkCount)
+#define IMFMediaSink_RemoveStreamSink(This,dwStreamSinkIdentifier) (This)->lpVtbl->RemoveStreamSink(This,dwStreamSinkIdentifier)
+#define IMFMediaSink_SetPresentationClock(This,pPresentationClock) (This)->lpVtbl->SetPresentationClock(This,pPresentationClock)
+#define IMFMediaSink_Shutdown() (This)->lpVtbl->Shutdown(This)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IMFSchemeHandler
+DECLARE_INTERFACE_(IMFSchemeHandler,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFSchemeHandler methods */
+ STDMETHOD_(HRESULT,BeginCreateObject)(THIS_ LPCWSTR pwszURL,DWORD dwFlags,IPropertyStore *pProps,IUnknown **ppIUnknownCancelCookie,IMFAsyncCallback *pCallback,IUnknown *punkState) PURE;
+ STDMETHOD_(HRESULT,CancelObjectCreation)(THIS_ IUnknown *pIUnknownCancelCookie) PURE;
+ STDMETHOD_(HRESULT,EndCreateObject)(THIS_ IMFAsyncResult *pResult,MF_OBJECT_TYPE *pObjectType,IUnknown **ppObject) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IMFSchemeHandler_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFSchemeHandler_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFSchemeHandler_Release(This) (This)->pVtbl->Release(This)
+#define IMFSchemeHandler_BeginCreateObject(This,pwszURL,dwFlags,pProps,ppIUnknownCancelCookie,pCallback,punkState) (This)->lpVtbl->BeginCreateObject(This,pwszURL,dwFlags,pProps,ppIUnknownCancelCookie,pCallback,punkState)
+#define IMFSchemeHandler_CancelObjectCreation(This,pIUnknownCancelCookie) (This)->lpVtbl->CancelObjectCreation(This,pIUnknownCancelCookie)
+#define IMFSchemeHandler_EndCreateObject(This,pResult,pObjectType,ppObject) (This)->lpVtbl->EndCreateObject(This,pResult,pObjectType,ppObject)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IMFMediaSource
+DECLARE_INTERFACE_(IMFMediaSource,IMFMediaEventGenerator)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFMediaSource methods */
+ STDMETHOD_(HRESULT,CreatePresentationDescriptor)(THIS_ IMFPresentationDescriptor **ppPresentationDescriptor) PURE;
+ STDMETHOD_(HRESULT,GetCharacteristics)(THIS_ DWORD *pdwCharacteristics) PURE;
+ STDMETHOD_(HRESULT,Pause)(THIS) PURE;
+ STDMETHOD_(HRESULT,RemoteCreatePresentationDescriptor)(THIS_ DWORD *pcbPD,BYTE **pbPD,IMFPresentationDescriptor **ppRemotePD) PURE;
+ STDMETHOD_(HRESULT,Shutdown)(THIS) PURE;
+ //[call_as(CreatePresentationDescriptor)]
+ STDMETHOD_(HRESULT,Start)(THIS_ IMFPresentationDescriptor *pPresentationDescriptor,const GUID *pguidTimeFormat,const PROPVARIANT *pvarStartPosition) PURE;
+ STDMETHOD_(HRESULT,Stop)(THIS) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IMFMediaSource_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFMediaSource_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFMediaSource_Release(This) (This)->pVtbl->Release(This)
+#define IMFMediaSource_CreatePresentationDescriptor(This,ppPresentationDescriptor) (This)->lpVtbl->CreatePresentationDescriptor(This,ppPresentationDescriptor)
+#define IMFMediaSource_GetCharacteristics(This,pdwCharacteristics) (This)->lpVtbl->GetCharacteristics(This,pdwCharacteristics)
+#define IMFMediaSource_Pause() (This)->lpVtbl->Pause(This)
+#define IMFMediaSource_RemoteCreatePresentationDescriptor(This,pcbPD,pbPD,ppRemotePD) (This)->lpVtbl->RemoteCreatePresentationDescriptor(This,pcbPD,pbPD,ppRemotePD)
+#define IMFMediaSource_Shutdown() (This)->lpVtbl->Shutdown(This)
+#define IMFMediaSource_Start(This,pPresentationDescriptor,pguidTimeFormat,pvarStartPosition) (This)->lpVtbl->Start(This,pPresentationDescriptor,pguidTimeFormat,pvarStartPosition)
+#define IMFMediaSource_Stop() (This)->lpVtbl->Stop(This)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IMFPMPServer
+DECLARE_INTERFACE_(IMFPMPServer,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFPMPServer methods */
+ STDMETHOD_(HRESULT,CreateObjectByCLSID)(THIS_ REFCLSID clsid,REFIID riid,void **ppObject) PURE;
+ STDMETHOD_(HRESULT,LockProcess)(THIS) PURE;
+ STDMETHOD_(HRESULT,UnlockProcess)(THIS) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IMFPMPServer_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFPMPServer_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFPMPServer_Release(This) (This)->pVtbl->Release(This)
+#define IMFPMPServer_CreateObjectByCLSID(This,clsid,riid,ppObject) (This)->lpVtbl->CreateObjectByCLSID(This,clsid,riid,ppObject)
+#define IMFPMPServer_LockProcess() (This)->lpVtbl->LockProcess(This)
+#define IMFPMPServer_UnlockProcess() (This)->lpVtbl->UnlockProcess(This)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IMFTopologyNode
+DECLARE_INTERFACE_(IMFTopologyNode,IMFAttributes)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFAttributes methods */
+ STDMETHOD_(HRESULT,Compare)(THIS_ IMFAttributes *pTheirs,MF_ATTRIBUTES_MATCH_TYPE MatchType,WINBOOL *pbResult) PURE;
+ STDMETHOD_(HRESULT,CompareItem)(THIS_ REFGUID guidKey,REFPROPVARIANT Value,WINBOOL *pbResult) PURE;
+ STDMETHOD_(HRESULT,CopyAllItems)(THIS_ IMFAttributes *pDest) PURE;
+ STDMETHOD_(HRESULT,DeleteAllItems)(THIS) PURE;
+ STDMETHOD_(HRESULT,DeleteItem)(THIS_ REFGUID guidKey) PURE;
+ STDMETHOD_(HRESULT,GetAllocatedBlob)(THIS_ REFGUID guidKey,UINT8 **ppBuf,UINT32 *pcbSize) PURE;
+ STDMETHOD_(HRESULT,GetAllocatedString)(THIS_ REFGUID guidKey,LPWSTR *ppwszValue,UINT32 *pcchLength) PURE;
+ STDMETHOD_(HRESULT,GetBlob)(THIS_ REFGUID guidKey,UINT8 *pBuf,UINT32 cbBufSize,UINT32 *pcbBlobSize) PURE;
+ STDMETHOD_(HRESULT,GetBlobSize)(THIS_ REFGUID guidKey,UINT32 *pcbBlobSize) PURE;
+ STDMETHOD_(HRESULT,GetCount)(THIS_ UINT32 *pcItems) PURE;
+ STDMETHOD_(HRESULT,GetDouble)(THIS_ REFGUID guidKey,double *pfValue) PURE;
+ STDMETHOD_(HRESULT,GetGUID)(THIS_ REFGUID guidKey,GUID *pguidValue) PURE;
+ STDMETHOD_(HRESULT,GetItem)(THIS_ REFGUID guidKey,PROPVARIANT *pValue) PURE;
+ STDMETHOD_(HRESULT,GetItemByIndex)(THIS_ UINT32 unIndex,GUID *pguidKey,PROPVARIANT *pValue) PURE;
+ STDMETHOD_(HRESULT,GetItemType)(THIS_ REFGUID guidKey,MF_ATTRIBUTE_TYPE *pType) PURE;
+ STDMETHOD_(HRESULT,GetString)(THIS_ REFGUID guidKey,LPWSTR pwszValue,UINT32 cchBufSize,UINT32 *pcchLength) PURE;
+ STDMETHOD_(HRESULT,GetStringLength)(THIS_ REFGUID guidKey,UINT32 *pcchLength) PURE;
+ STDMETHOD_(HRESULT,GetUINT32)(THIS_ REFGUID guidKey,UINT32 *punValue) PURE;
+ STDMETHOD_(HRESULT,GetUINT64)(THIS_ REFGUID guidKey,UINT64 *punValue) PURE;
+ STDMETHOD_(HRESULT,GetUnknown)(THIS_ REFGUID guidKey,REFIID riid,LPVOID *ppv) PURE;
+ STDMETHOD_(HRESULT,LockStore)(THIS) PURE;
+ STDMETHOD_(HRESULT,SetBlob)(THIS_ REFGUID guidKey,const UINT8 *pBuf,UINT32 cbBufSize) PURE;
+ STDMETHOD_(HRESULT,SetDouble)(THIS_ REFGUID guidKey,double fValue) PURE;
+ STDMETHOD_(HRESULT,SetGUID)(THIS_ REFGUID guidKey,REFGUID guidValue) PURE;
+ STDMETHOD_(HRESULT,SetItem)(THIS_ REFGUID guidKey,REFPROPVARIANT Value) PURE;
+ STDMETHOD_(HRESULT,SetString)(THIS_ REFGUID guidKey,LPCWSTR wszValue) PURE;
+ STDMETHOD_(HRESULT,SetUINT32)(THIS_ REFGUID guidKey,UINT32 unValue) PURE;
+ STDMETHOD_(HRESULT,SetUINT64)(THIS_ REFGUID guidKey,UINT64 unValue) PURE;
+ STDMETHOD_(HRESULT,SetUnknown)(THIS_ REFGUID guidKey,IUnknown *pUnknown) PURE;
+ STDMETHOD_(HRESULT,UnlockStore)(THIS) PURE;
+
+ /* IMFTopologyNode methods */
+ STDMETHOD_(HRESULT,CloneFrom)(THIS_ IMFTopologyNode *pNode) PURE;
+ STDMETHOD_(HRESULT,ConnectOutput)(THIS_ DWORD dwOutputIndex,IMFTopologyNode *pDownstreamNode,DWORD dwInputIndexOnDownstreamNode) PURE;
+ STDMETHOD_(HRESULT,DisconnectOutput)(THIS_ DWORD dwOutputIndex) PURE;
+ STDMETHOD_(HRESULT,GetInput)(THIS_ DWORD dwInputIndex,IMFTopologyNode **ppUpstreamNode,DWORD *pdwOutputIndexOnUpstreamNode) PURE;
+ STDMETHOD_(HRESULT,GetInputCount)(THIS_ DWORD *pcInputs) PURE;
+ STDMETHOD_(HRESULT,GetInputPrefType)(THIS_ DWORD dwInputIndex,IMFMediaType **ppType) PURE;
+ STDMETHOD_(HRESULT,GetNodeType)(THIS_ MF_TOPOLOGY_TYPE *pType) PURE;
+ STDMETHOD_(HRESULT,GetObject)(THIS_ IUnknown **ppObject) PURE;
+ STDMETHOD_(HRESULT,GetOutput)(THIS_ DWORD dwOutputIndex,IMFTopologyNode **ppDownstreamNode,DWORD *pdwInputIndexOnDownstreamNode) PURE;
+ STDMETHOD_(HRESULT,GetOutputCount)(THIS_ DWORD *pcOutputs) PURE;
+ STDMETHOD_(HRESULT,GetOutputPrefType)(THIS_ DWORD dwOutputIndex,IMFMediaType **ppType) PURE;
+ STDMETHOD_(HRESULT,GetTopoNodeID)(THIS_ TOPOID *pID) PURE;
+ /* [call_as(GetInputPrefType)] */
+ STDMETHOD_(HRESULT,RemoteGetInputPrefType)(THIS_ DWORD dwInputIndex,DWORD *pcbData,BYTE **ppbData) PURE;
+ /* [call_as(GetOutputPrefType)] */
+ STDMETHOD_(HRESULT,RemoteGetOutputPrefType)(THIS_ DWORD dwOutputIndex,DWORD *pcbData,BYTE **ppbData) PURE;
+ STDMETHOD_(HRESULT,SetInputPrefType)(THIS_ DWORD dwInputIndex,IMFMediaType *pType) PURE;
+ STDMETHOD_(HRESULT,SetObject)(THIS_ IUnknown *pObject) PURE;
+ STDMETHOD_(HRESULT,SetOutputPrefType)(THIS_ DWORD dwOutputIndex,IMFMediaType *pType) PURE;
+ STDMETHOD_(HRESULT,SetTopoNodeID)(THIS_ TOPOID llTopoID) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IMFTopologyNode_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFTopologyNode_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFTopologyNode_Release(This) (This)->pVtbl->Release(This)
+#define IMFTopologyNode_Compare(This,pTheirs,MatchType,pbResult) (This)->lpVtbl->Compare(This,pTheirs,MatchType,pbResult)
+#define IMFTopologyNode_CompareItem(This,guidKey,Value,pbResult) (This)->lpVtbl->CompareItem(This,guidKey,Value,pbResult)
+#define IMFTopologyNode_CopyAllItems(This,pDest) (This)->lpVtbl->CopyAllItems(This,pDest)
+#define IMFTopologyNode_DeleteAllItems() (This)->lpVtbl->DeleteAllItems(This)
+#define IMFTopologyNode_DeleteItem(This,guidKey) (This)->lpVtbl->DeleteItem(This,guidKey)
+#define IMFTopologyNode_GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) (This)->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize)
+#define IMFTopologyNode_GetAllocatedString(This,guidKey,ppwszValue,pcchLength) (This)->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength)
+#define IMFTopologyNode_GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) (This)->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize)
+#define IMFTopologyNode_GetBlobSize(This,guidKey,pcbBlobSize) (This)->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize)
+#define IMFTopologyNode_GetCount(This,pcItems) (This)->lpVtbl->GetCount(This,pcItems)
+#define IMFTopologyNode_GetDouble(This,guidKey,pfValue) (This)->lpVtbl->GetDouble(This,guidKey,pfValue)
+#define IMFTopologyNode_GetGUID(This,guidKey,pguidValue) (This)->lpVtbl->GetGUID(This,guidKey,pguidValue)
+#define IMFTopologyNode_GetItem(This,guidKey,pValue) (This)->lpVtbl->GetItem(This,guidKey,pValue)
+#define IMFTopologyNode_GetItemByIndex(This,unIndex,pguidKey,pValue) (This)->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue)
+#define IMFTopologyNode_GetItemType(This,guidKey,pType) (This)->lpVtbl->GetItemType(This,guidKey,pType)
+#define IMFTopologyNode_GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) (This)->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength)
+#define IMFTopologyNode_GetStringLength(This,guidKey,pcchLength) (This)->lpVtbl->GetStringLength(This,guidKey,pcchLength)
+#define IMFTopologyNode_GetUINT32(This,guidKey,punValue) (This)->lpVtbl->GetUINT32(This,guidKey,punValue)
+#define IMFTopologyNode_GetUINT64(This,guidKey,punValue) (This)->lpVtbl->GetUINT64(This,guidKey,punValue)
+#define IMFTopologyNode_GetUnknown(This,guidKey,riid,ppv) (This)->lpVtbl->GetUnknown(This,guidKey,riid,ppv)
+#define IMFTopologyNode_LockStore() (This)->lpVtbl->LockStore(This)
+#define IMFTopologyNode_SetBlob(This,guidKey,pBuf,cbBufSize) (This)->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize)
+#define IMFTopologyNode_SetDouble(This,guidKey,fValue) (This)->lpVtbl->SetDouble(This,guidKey,fValue)
+#define IMFTopologyNode_SetGUID(This,guidKey,guidValue) (This)->lpVtbl->SetGUID(This,guidKey,guidValue)
+#define IMFTopologyNode_SetItem(This,guidKey,Value) (This)->lpVtbl->SetItem(This,guidKey,Value)
+#define IMFTopologyNode_SetString(This,guidKey,wszValue) (This)->lpVtbl->SetString(This,guidKey,wszValue)
+#define IMFTopologyNode_SetUINT32(This,guidKey,unValue) (This)->lpVtbl->SetUINT32(This,guidKey,unValue)
+#define IMFTopologyNode_SetUINT64(This,guidKey,unValue) (This)->lpVtbl->SetUINT64(This,guidKey,unValue)
+#define IMFTopologyNode_SetUnknown(This,guidKey,pUnknown) (This)->lpVtbl->SetUnknown(This,guidKey,pUnknown)
+#define IMFTopologyNode_UnlockStore() (This)->lpVtbl->UnlockStore(This)
+#define IMFTopologyNode_CloneFrom(This,pNode) (This)->lpVtbl->CloneFrom(This,pNode)
+#define IMFTopologyNode_ConnectOutput(This,dwOutputIndex,pDownstreamNode,dwInputIndexOnDownstreamNode) (This)->lpVtbl->ConnectOutput(This,dwOutputIndex,pDownstreamNode,dwInputIndexOnDownstreamNode)
+#define IMFTopologyNode_DisconnectOutput(This,dwOutputIndex) (This)->lpVtbl->DisconnectOutput(This,dwOutputIndex)
+#define IMFTopologyNode_GetInput(This,dwInputIndex,ppUpstreamNode,pdwOutputIndexOnUpstreamNode) (This)->lpVtbl->GetInput(This,dwInputIndex,ppUpstreamNode,pdwOutputIndexOnUpstreamNode)
+#define IMFTopologyNode_GetInputCount(This,pcInputs) (This)->lpVtbl->GetInputCount(This,pcInputs)
+#define IMFTopologyNode_GetInputPrefType(This,dwInputIndex,ppType) (This)->lpVtbl->GetInputPrefType(This,dwInputIndex,ppType)
+#define IMFTopologyNode_GetNodeType(This,pType) (This)->lpVtbl->GetNodeType(This,pType)
+#define IMFTopologyNode_GetObject(This,ppObject) (This)->lpVtbl->GetObject(This,ppObject)
+#define IMFTopologyNode_GetOutput(This,dwOutputIndex,ppDownstreamNode,pdwInputIndexOnDownstreamNode) (This)->lpVtbl->GetOutput(This,dwOutputIndex,ppDownstreamNode,pdwInputIndexOnDownstreamNode)
+#define IMFTopologyNode_GetOutputCount(This,pcOutputs) (This)->lpVtbl->GetOutputCount(This,pcOutputs)
+#define IMFTopologyNode_GetOutputPrefType(This,dwOutputIndex,ppType) (This)->lpVtbl->GetOutputPrefType(This,dwOutputIndex,ppType)
+#define IMFTopologyNode_GetTopoNodeID(This,pID) (This)->lpVtbl->GetTopoNodeID(This,pID)
+#define IMFTopologyNode_RemoteGetInputPrefType(This,dwInputIndex,pcbData,ppbData) (This)->lpVtbl->RemoteGetInputPrefType(This,dwInputIndex,pcbData,ppbData)
+#define IMFTopologyNode_RemoteGetOutputPrefType(This,dwOutputIndex,pcbData,ppbData) (This)->lpVtbl->RemoteGetOutputPrefType(This,dwOutputIndex,pcbData,ppbData)
+#define IMFTopologyNode_SetInputPrefType(This,dwInputIndex,pType) (This)->lpVtbl->SetInputPrefType(This,dwInputIndex,pType)
+#define IMFTopologyNode_SetObject(This,pObject) (This)->lpVtbl->SetObject(This,pObject)
+#define IMFTopologyNode_SetOutputPrefType(This,dwOutputIndex,pType) (This)->lpVtbl->SetOutputPrefType(This,dwOutputIndex,pType)
+#define IMFTopologyNode_SetTopoNodeID(This,llTopoID) (This)->lpVtbl->SetTopoNodeID(This,llTopoID)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IMFTopology
+DECLARE_INTERFACE_(IMFTopology,IMFAttributes)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFAttributes methods */
+ STDMETHOD_(HRESULT,Compare)(THIS_ IMFAttributes *pTheirs,MF_ATTRIBUTES_MATCH_TYPE MatchType,WINBOOL *pbResult) PURE;
+ STDMETHOD_(HRESULT,CompareItem)(THIS_ REFGUID guidKey,REFPROPVARIANT Value,WINBOOL *pbResult) PURE;
+ STDMETHOD_(HRESULT,CopyAllItems)(THIS_ IMFAttributes *pDest) PURE;
+ STDMETHOD_(HRESULT,DeleteAllItems)(THIS) PURE;
+ STDMETHOD_(HRESULT,DeleteItem)(THIS_ REFGUID guidKey) PURE;
+ STDMETHOD_(HRESULT,GetAllocatedBlob)(THIS_ REFGUID guidKey,UINT8 **ppBuf,UINT32 *pcbSize) PURE;
+ STDMETHOD_(HRESULT,GetAllocatedString)(THIS_ REFGUID guidKey,LPWSTR *ppwszValue,UINT32 *pcchLength) PURE;
+ STDMETHOD_(HRESULT,GetBlob)(THIS_ REFGUID guidKey,UINT8 *pBuf,UINT32 cbBufSize,UINT32 *pcbBlobSize) PURE;
+ STDMETHOD_(HRESULT,GetBlobSize)(THIS_ REFGUID guidKey,UINT32 *pcbBlobSize) PURE;
+ STDMETHOD_(HRESULT,GetCount)(THIS_ UINT32 *pcItems) PURE;
+ STDMETHOD_(HRESULT,GetDouble)(THIS_ REFGUID guidKey,double *pfValue) PURE;
+ STDMETHOD_(HRESULT,GetGUID)(THIS_ REFGUID guidKey,GUID *pguidValue) PURE;
+ STDMETHOD_(HRESULT,GetItem)(THIS_ REFGUID guidKey,PROPVARIANT *pValue) PURE;
+ STDMETHOD_(HRESULT,GetItemByIndex)(THIS_ UINT32 unIndex,GUID *pguidKey,PROPVARIANT *pValue) PURE;
+ STDMETHOD_(HRESULT,GetItemType)(THIS_ REFGUID guidKey,MF_ATTRIBUTE_TYPE *pType) PURE;
+ STDMETHOD_(HRESULT,GetString)(THIS_ REFGUID guidKey,LPWSTR pwszValue,UINT32 cchBufSize,UINT32 *pcchLength) PURE;
+ STDMETHOD_(HRESULT,GetStringLength)(THIS_ REFGUID guidKey,UINT32 *pcchLength) PURE;
+ STDMETHOD_(HRESULT,GetUINT32)(THIS_ REFGUID guidKey,UINT32 *punValue) PURE;
+ STDMETHOD_(HRESULT,GetUINT64)(THIS_ REFGUID guidKey,UINT64 *punValue) PURE;
+ STDMETHOD_(HRESULT,GetUnknown)(THIS_ REFGUID guidKey,REFIID riid,LPVOID *ppv) PURE;
+ STDMETHOD_(HRESULT,LockStore)(THIS) PURE;
+ STDMETHOD_(HRESULT,SetBlob)(THIS_ REFGUID guidKey,const UINT8 *pBuf,UINT32 cbBufSize) PURE;
+ STDMETHOD_(HRESULT,SetDouble)(THIS_ REFGUID guidKey,double fValue) PURE;
+ STDMETHOD_(HRESULT,SetGUID)(THIS_ REFGUID guidKey,REFGUID guidValue) PURE;
+ STDMETHOD_(HRESULT,SetItem)(THIS_ REFGUID guidKey,REFPROPVARIANT Value) PURE;
+ STDMETHOD_(HRESULT,SetString)(THIS_ REFGUID guidKey,LPCWSTR wszValue) PURE;
+ STDMETHOD_(HRESULT,SetUINT32)(THIS_ REFGUID guidKey,UINT32 unValue) PURE;
+ STDMETHOD_(HRESULT,SetUINT64)(THIS_ REFGUID guidKey,UINT64 unValue) PURE;
+ STDMETHOD_(HRESULT,SetUnknown)(THIS_ REFGUID guidKey,IUnknown *pUnknown) PURE;
+ STDMETHOD_(HRESULT,UnlockStore)(THIS) PURE;
+
+ /* IMFTopology methods */
+ STDMETHOD_(HRESULT,ActivateObject)(THIS_ REFIID riid,void **ppv) PURE;
+ STDMETHOD_(HRESULT,DetachObject)(THIS) PURE;
+ STDMETHOD_(HRESULT,ShutdownObject)(THIS) PURE;
+ STDMETHOD_(HRESULT,AddNode)(THIS_ IMFTopologyNode *pNode) PURE;
+ STDMETHOD_(HRESULT,Clear)(THIS) PURE;
+ STDMETHOD_(HRESULT,CloneFrom)(THIS_ IMFTopology *pTopology) PURE;
+ STDMETHOD_(HRESULT,GetNode)(THIS_ WORD wIndex,IMFTopologyNode **ppNode) PURE;
+ STDMETHOD_(HRESULT,GetNodeByID)(THIS_ TOPOID qwTopoNodeID,IMFTopologyNode **ppNode) PURE;
+ STDMETHOD_(HRESULT,GetNodeCount)(THIS_ WORD *pwNodes) PURE;
+ STDMETHOD_(HRESULT,GetOutputNodeCollection)(THIS_ IMFCollection **ppCollection) PURE;
+ STDMETHOD_(HRESULT,GetSourceNodeCollection)(THIS_ IMFCollection **ppCollection) PURE;
+ STDMETHOD_(HRESULT,GetTopologyID)(THIS_ TOPOID *pID) PURE;
+ STDMETHOD_(HRESULT,RemoveNode)(THIS_ IMFTopologyNode *pNode) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IMFTopology_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFTopology_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFTopology_Release(This) (This)->pVtbl->Release(This)
+#define IMFTopology_Compare(This,pTheirs,MatchType,pbResult) (This)->lpVtbl->Compare(This,pTheirs,MatchType,pbResult)
+#define IMFTopology_CompareItem(This,guidKey,Value,pbResult) (This)->lpVtbl->CompareItem(This,guidKey,Value,pbResult)
+#define IMFTopology_CopyAllItems(This,pDest) (This)->lpVtbl->CopyAllItems(This,pDest)
+#define IMFTopology_DeleteAllItems() (This)->lpVtbl->DeleteAllItems(This)
+#define IMFTopology_DeleteItem(This,guidKey) (This)->lpVtbl->DeleteItem(This,guidKey)
+#define IMFTopology_GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) (This)->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize)
+#define IMFTopology_GetAllocatedString(This,guidKey,ppwszValue,pcchLength) (This)->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength)
+#define IMFTopology_GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) (This)->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize)
+#define IMFTopology_GetBlobSize(This,guidKey,pcbBlobSize) (This)->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize)
+#define IMFTopology_GetCount(This,pcItems) (This)->lpVtbl->GetCount(This,pcItems)
+#define IMFTopology_GetDouble(This,guidKey,pfValue) (This)->lpVtbl->GetDouble(This,guidKey,pfValue)
+#define IMFTopology_GetGUID(This,guidKey,pguidValue) (This)->lpVtbl->GetGUID(This,guidKey,pguidValue)
+#define IMFTopology_GetItem(This,guidKey,pValue) (This)->lpVtbl->GetItem(This,guidKey,pValue)
+#define IMFTopology_GetItemByIndex(This,unIndex,pguidKey,pValue) (This)->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue)
+#define IMFTopology_GetItemType(This,guidKey,pType) (This)->lpVtbl->GetItemType(This,guidKey,pType)
+#define IMFTopology_GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) (This)->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength)
+#define IMFTopology_GetStringLength(This,guidKey,pcchLength) (This)->lpVtbl->GetStringLength(This,guidKey,pcchLength)
+#define IMFTopology_GetUINT32(This,guidKey,punValue) (This)->lpVtbl->GetUINT32(This,guidKey,punValue)
+#define IMFTopology_GetUINT64(This,guidKey,punValue) (This)->lpVtbl->GetUINT64(This,guidKey,punValue)
+#define IMFTopology_GetUnknown(This,guidKey,riid,ppv) (This)->lpVtbl->GetUnknown(This,guidKey,riid,ppv)
+#define IMFTopology_LockStore() (This)->lpVtbl->LockStore(This)
+#define IMFTopology_SetBlob(This,guidKey,pBuf,cbBufSize) (This)->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize)
+#define IMFTopology_SetDouble(This,guidKey,fValue) (This)->lpVtbl->SetDouble(This,guidKey,fValue)
+#define IMFTopology_SetGUID(This,guidKey,guidValue) (This)->lpVtbl->SetGUID(This,guidKey,guidValue)
+#define IMFTopology_SetItem(This,guidKey,Value) (This)->lpVtbl->SetItem(This,guidKey,Value)
+#define IMFTopology_SetString(This,guidKey,wszValue) (This)->lpVtbl->SetString(This,guidKey,wszValue)
+#define IMFTopology_SetUINT32(This,guidKey,unValue) (This)->lpVtbl->SetUINT32(This,guidKey,unValue)
+#define IMFTopology_SetUINT64(This,guidKey,unValue) (This)->lpVtbl->SetUINT64(This,guidKey,unValue)
+#define IMFTopology_SetUnknown(This,guidKey,pUnknown) (This)->lpVtbl->SetUnknown(This,guidKey,pUnknown)
+#define IMFTopology_UnlockStore() (This)->lpVtbl->UnlockStore(This)
+#define IMFTopology_ActivateObject(This,riid,ppv) (This)->lpVtbl->ActivateObject(This,riid,ppv)
+#define IMFTopology_DetachObject() (This)->lpVtbl->DetachObject(This)
+#define IMFTopology_ShutdownObject() (This)->lpVtbl->ShutdownObject(This)
+#define IMFTopology_AddNode(This,pNode) (This)->lpVtbl->AddNode(This,pNode)
+#define IMFTopology_Clear() (This)->lpVtbl->Clear(This)
+#define IMFTopology_CloneFrom(This,pTopology) (This)->lpVtbl->CloneFrom(This,pTopology)
+#define IMFTopology_GetNode(This,wIndex,ppNode) (This)->lpVtbl->GetNode(This,wIndex,ppNode)
+#define IMFTopology_GetNodeByID(This,qwTopoNodeID,ppNode) (This)->lpVtbl->GetNodeByID(This,qwTopoNodeID,ppNode)
+#define IMFTopology_GetNodeCount(This,pwNodes) (This)->lpVtbl->GetNodeCount(This,pwNodes)
+#define IMFTopology_GetOutputNodeCollection(This,ppCollection) (This)->lpVtbl->GetOutputNodeCollection(This,ppCollection)
+#define IMFTopology_GetSourceNodeCollection(This,ppCollection) (This)->lpVtbl->GetSourceNodeCollection(This,ppCollection)
+#define IMFTopology_GetTopologyID(This,pID) (This)->lpVtbl->GetTopologyID(This,pID)
+#define IMFTopology_RemoveNode(This,pNode) (This)->lpVtbl->RemoveNode(This,pNode)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IMFTopoLoader
+DECLARE_INTERFACE_(IMFTopoLoader,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFTopoLoader methods */
+ STDMETHOD_(HRESULT,Load)(THIS_ IMFTopology *pInputTopo,IMFTopology **ppOutputTopo,IMFTopology *pCurrentTopo) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IMFTopoLoader_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFTopoLoader_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFTopoLoader_Release(This) (This)->pVtbl->Release(This)
+#define IMFTopoLoader_Load(This,pInputTopo,ppOutputTopo,pCurrentTopo) (This)->lpVtbl->Load(This,pInputTopo,ppOutputTopo,pCurrentTopo)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IMFMediaSession
+DECLARE_INTERFACE_(IMFMediaSession,IMFMediaEventGenerator)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFMediaEventGenerator methods */
+ /*[call_as(BeginGetEvent)] */
+ STDMETHOD_(HRESULT,BeginGetEvent)(THIS_ IMFAsyncCallback *pCallback,IUnknown *punkState) PURE;
+ STDMETHOD_(HRESULT,EndGetEvent)(THIS_ IMFAsyncResult *pResult,IMFMediaEvent **ppEvent) PURE;
+ STDMETHOD_(HRESULT,GetEvent)(THIS_ DWORD dwFlags,IMFMediaEvent **ppEvent) PURE;
+ STDMETHOD_(HRESULT,QueueEvent)(THIS_ MediaEventType met,REFGUID guidExtendedType,HRESULT hrStatus,const PROPVARIANT *pvValue) PURE;
+ STDMETHOD_(HRESULT,RemoteEndGetEvent)(THIS_ IUnknown *pResult,DWORD *pcbEvent,BYTE **ppbEvent) PURE;
+
+ /* IMFMediaSession methods */
+ STDMETHOD_(HRESULT,ClearTopologies)(THIS) PURE;
+ STDMETHOD_(HRESULT,Close)(THIS) PURE;
+ STDMETHOD_(HRESULT,GetClock)(THIS_ IMFClock **ppClock) PURE;
+ STDMETHOD_(HRESULT,GetFullTopology)(THIS_ DWORD dwGetFullTopologyFlags,TOPOID TopoId,IMFTopology **ppFullTopo) PURE;
+ STDMETHOD_(HRESULT,GetSessionCapabilities)(THIS_ DWORD *pdwCaps) PURE;
+ STDMETHOD_(HRESULT,Pause)(THIS) PURE;
+ STDMETHOD_(HRESULT,SetTopology)(THIS_ DWORD dwSetTopologyFlags,IMFTopology *pTopology) PURE;
+ STDMETHOD_(HRESULT,Shutdown)(THIS) PURE;
+ STDMETHOD_(HRESULT,Start)(THIS_ const GUID *pguidTimeFormat,const PROPVARIANT *pvarStartPosition) PURE;
+ STDMETHOD_(HRESULT,Stop)(THIS) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IMFMediaSession_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFMediaSession_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFMediaSession_Release(This) (This)->pVtbl->Release(This)
+#define IMFMediaSession_BeginGetEvent(This,pCallback,punkState) (This)->lpVtbl->BeginGetEvent(This,pCallback,punkState)
+#define IMFMediaSession_EndGetEvent(This,pResult,ppEvent) (This)->lpVtbl->EndGetEvent(This,pResult,ppEvent)
+#define IMFMediaSession_GetEvent(This,dwFlags,ppEvent) (This)->lpVtbl->GetEvent(This,dwFlags,ppEvent)
+#define IMFMediaSession_QueueEvent(This,met,guidExtendedType,hrStatus,pvValue) (This)->lpVtbl->QueueEvent(This,met,guidExtendedType,hrStatus,pvValue)
+#define IMFMediaSession_RemoteEndGetEvent(This,pResult,pcbEvent,ppbEvent) (This)->lpVtbl->RemoteEndGetEvent(This,pResult,pcbEvent,ppbEvent)
+#define IMFMediaSession_ClearTopologies() (This)->lpVtbl->ClearTopologies(This)
+#define IMFMediaSession_Close() (This)->lpVtbl->Close(This)
+#define IMFMediaSession_GetClock(This,ppClock) (This)->lpVtbl->GetClock(This,ppClock)
+#define IMFMediaSession_GetFullTopology(This,dwGetFullTopologyFlags,TopoId,ppFullTopo) (This)->lpVtbl->GetFullTopology(This,dwGetFullTopologyFlags,TopoId,ppFullTopo)
+#define IMFMediaSession_GetSessionCapabilities(This,pdwCaps) (This)->lpVtbl->GetSessionCapabilities(This,pdwCaps)
+#define IMFMediaSession_Pause() (This)->lpVtbl->Pause(This)
+#define IMFMediaSession_SetTopology(This,dwSetTopologyFlags,pTopology) (This)->lpVtbl->SetTopology(This,dwSetTopologyFlags,pTopology)
+#define IMFMediaSession_Shutdown() (This)->lpVtbl->Shutdown(This)
+#define IMFMediaSession_Start(This,pguidTimeFormat,pvarStartPosition) (This)->lpVtbl->Start(This,pguidTimeFormat,pvarStartPosition)
+#define IMFMediaSession_Stop() (This)->lpVtbl->Stop(This)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IMFActivate
+DECLARE_INTERFACE_(IMFActivate,IMFAttributes)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFAttributes methods */
+ STDMETHOD_(HRESULT,Compare)(THIS_ IMFAttributes *pTheirs,MF_ATTRIBUTES_MATCH_TYPE MatchType,WINBOOL *pbResult) PURE;
+ STDMETHOD_(HRESULT,CompareItem)(THIS_ REFGUID guidKey,REFPROPVARIANT Value,WINBOOL *pbResult) PURE;
+ STDMETHOD_(HRESULT,CopyAllItems)(THIS_ IMFAttributes *pDest) PURE;
+ STDMETHOD_(HRESULT,DeleteAllItems)(THIS) PURE;
+ STDMETHOD_(HRESULT,DeleteItem)(THIS_ REFGUID guidKey) PURE;
+ STDMETHOD_(HRESULT,GetAllocatedBlob)(THIS_ REFGUID guidKey,UINT8 **ppBuf,UINT32 *pcbSize) PURE;
+ STDMETHOD_(HRESULT,GetAllocatedString)(THIS_ REFGUID guidKey,LPWSTR *ppwszValue,UINT32 *pcchLength) PURE;
+ STDMETHOD_(HRESULT,GetBlob)(THIS_ REFGUID guidKey,UINT8 *pBuf,UINT32 cbBufSize,UINT32 *pcbBlobSize) PURE;
+ STDMETHOD_(HRESULT,GetBlobSize)(THIS_ REFGUID guidKey,UINT32 *pcbBlobSize) PURE;
+ STDMETHOD_(HRESULT,GetCount)(THIS_ UINT32 *pcItems) PURE;
+ STDMETHOD_(HRESULT,GetDouble)(THIS_ REFGUID guidKey,double *pfValue) PURE;
+ STDMETHOD_(HRESULT,GetGUID)(THIS_ REFGUID guidKey,GUID *pguidValue) PURE;
+ STDMETHOD_(HRESULT,GetItem)(THIS_ REFGUID guidKey,PROPVARIANT *pValue) PURE;
+ STDMETHOD_(HRESULT,GetItemByIndex)(THIS_ UINT32 unIndex,GUID *pguidKey,PROPVARIANT *pValue) PURE;
+ STDMETHOD_(HRESULT,GetItemType)(THIS_ REFGUID guidKey,MF_ATTRIBUTE_TYPE *pType) PURE;
+ STDMETHOD_(HRESULT,GetString)(THIS_ REFGUID guidKey,LPWSTR pwszValue,UINT32 cchBufSize,UINT32 *pcchLength) PURE;
+ STDMETHOD_(HRESULT,GetStringLength)(THIS_ REFGUID guidKey,UINT32 *pcchLength) PURE;
+ STDMETHOD_(HRESULT,GetUINT32)(THIS_ REFGUID guidKey,UINT32 *punValue) PURE;
+ STDMETHOD_(HRESULT,GetUINT64)(THIS_ REFGUID guidKey,UINT64 *punValue) PURE;
+ STDMETHOD_(HRESULT,GetUnknown)(THIS_ REFGUID guidKey,REFIID riid,LPVOID *ppv) PURE;
+ STDMETHOD_(HRESULT,LockStore)(THIS) PURE;
+ STDMETHOD_(HRESULT,SetBlob)(THIS_ REFGUID guidKey,const UINT8 *pBuf,UINT32 cbBufSize) PURE;
+ STDMETHOD_(HRESULT,SetDouble)(THIS_ REFGUID guidKey,double fValue) PURE;
+ STDMETHOD_(HRESULT,SetGUID)(THIS_ REFGUID guidKey,REFGUID guidValue) PURE;
+ STDMETHOD_(HRESULT,SetItem)(THIS_ REFGUID guidKey,REFPROPVARIANT Value) PURE;
+ STDMETHOD_(HRESULT,SetString)(THIS_ REFGUID guidKey,LPCWSTR wszValue) PURE;
+ STDMETHOD_(HRESULT,SetUINT32)(THIS_ REFGUID guidKey,UINT32 unValue) PURE;
+ STDMETHOD_(HRESULT,SetUINT64)(THIS_ REFGUID guidKey,UINT64 unValue) PURE;
+ STDMETHOD_(HRESULT,SetUnknown)(THIS_ REFGUID guidKey,IUnknown *pUnknown) PURE;
+ STDMETHOD_(HRESULT,UnlockStore)(THIS) PURE;
+
+ /* IMFActivate methods */
+ STDMETHOD_(HRESULT,ActivateObject)(THIS_ REFIID riid,void **ppv) PURE;
+ STDMETHOD_(HRESULT,DetachObject)(THIS) PURE;
+ STDMETHOD_(HRESULT,ShutdownObject)(THIS) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IMFActivate_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFActivate_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFActivate_Release(This) (This)->pVtbl->Release(This)
+#define IMFActivate_Compare(This,pTheirs,MatchType,pbResult) (This)->lpVtbl->Compare(This,pTheirs,MatchType,pbResult)
+#define IMFActivate_CompareItem(This,guidKey,Value,pbResult) (This)->lpVtbl->CompareItem(This,guidKey,Value,pbResult)
+#define IMFActivate_CopyAllItems(This,pDest) (This)->lpVtbl->CopyAllItems(This,pDest)
+#define IMFActivate_DeleteAllItems() (This)->lpVtbl->DeleteAllItems(This)
+#define IMFActivate_DeleteItem(This,guidKey) (This)->lpVtbl->DeleteItem(This,guidKey)
+#define IMFActivate_GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) (This)->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize)
+#define IMFActivate_GetAllocatedString(This,guidKey,ppwszValue,pcchLength) (This)->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength)
+#define IMFActivate_GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) (This)->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize)
+#define IMFActivate_GetBlobSize(This,guidKey,pcbBlobSize) (This)->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize)
+#define IMFActivate_GetCount(This,pcItems) (This)->lpVtbl->GetCount(This,pcItems)
+#define IMFActivate_GetDouble(This,guidKey,pfValue) (This)->lpVtbl->GetDouble(This,guidKey,pfValue)
+#define IMFActivate_GetGUID(This,guidKey,pguidValue) (This)->lpVtbl->GetGUID(This,guidKey,pguidValue)
+#define IMFActivate_GetItem(This,guidKey,pValue) (This)->lpVtbl->GetItem(This,guidKey,pValue)
+#define IMFActivate_GetItemByIndex(This,unIndex,pguidKey,pValue) (This)->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue)
+#define IMFActivate_GetItemType(This,guidKey,pType) (This)->lpVtbl->GetItemType(This,guidKey,pType)
+#define IMFActivate_GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) (This)->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength)
+#define IMFActivate_GetStringLength(This,guidKey,pcchLength) (This)->lpVtbl->GetStringLength(This,guidKey,pcchLength)
+#define IMFActivate_GetUINT32(This,guidKey,punValue) (This)->lpVtbl->GetUINT32(This,guidKey,punValue)
+#define IMFActivate_GetUINT64(This,guidKey,punValue) (This)->lpVtbl->GetUINT64(This,guidKey,punValue)
+#define IMFActivate_GetUnknown(This,guidKey,riid,ppv) (This)->lpVtbl->GetUnknown(This,guidKey,riid,ppv)
+#define IMFActivate_LockStore() (This)->lpVtbl->LockStore(This)
+#define IMFActivate_SetBlob(This,guidKey,pBuf,cbBufSize) (This)->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize)
+#define IMFActivate_SetDouble(This,guidKey,fValue) (This)->lpVtbl->SetDouble(This,guidKey,fValue)
+#define IMFActivate_SetGUID(This,guidKey,guidValue) (This)->lpVtbl->SetGUID(This,guidKey,guidValue)
+#define IMFActivate_SetItem(This,guidKey,Value) (This)->lpVtbl->SetItem(This,guidKey,Value)
+#define IMFActivate_SetString(This,guidKey,wszValue) (This)->lpVtbl->SetString(This,guidKey,wszValue)
+#define IMFActivate_SetUINT32(This,guidKey,unValue) (This)->lpVtbl->SetUINT32(This,guidKey,unValue)
+#define IMFActivate_SetUINT64(This,guidKey,unValue) (This)->lpVtbl->SetUINT64(This,guidKey,unValue)
+#define IMFActivate_SetUnknown(This,guidKey,pUnknown) (This)->lpVtbl->SetUnknown(This,guidKey,pUnknown)
+#define IMFActivate_UnlockStore() (This)->lpVtbl->UnlockStore(This)
+#define IMFActivate_ActivateObject(This,riid,ppv) (This)->lpVtbl->ActivateObject(This,riid,ppv)
+#define IMFActivate_DetachObject() (This)->lpVtbl->DetachObject(This)
+#define IMFActivate_ShutdownObject() (This)->lpVtbl->ShutdownObject(This)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IMFStreamDescriptor
+DECLARE_INTERFACE_(IMFStreamDescriptor,IMFAttributes)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFAttributes methods */
+ STDMETHOD_(HRESULT,Compare)(THIS_ IMFAttributes *pTheirs,MF_ATTRIBUTES_MATCH_TYPE MatchType,WINBOOL *pbResult) PURE;
+ STDMETHOD_(HRESULT,CompareItem)(THIS_ REFGUID guidKey,REFPROPVARIANT Value,WINBOOL *pbResult) PURE;
+ STDMETHOD_(HRESULT,CopyAllItems)(THIS_ IMFAttributes *pDest) PURE;
+ STDMETHOD_(HRESULT,DeleteAllItems)(THIS) PURE;
+ STDMETHOD_(HRESULT,DeleteItem)(THIS_ REFGUID guidKey) PURE;
+ STDMETHOD_(HRESULT,GetAllocatedBlob)(THIS_ REFGUID guidKey,UINT8 **ppBuf,UINT32 *pcbSize) PURE;
+ STDMETHOD_(HRESULT,GetAllocatedString)(THIS_ REFGUID guidKey,LPWSTR *ppwszValue,UINT32 *pcchLength) PURE;
+ STDMETHOD_(HRESULT,GetBlob)(THIS_ REFGUID guidKey,UINT8 *pBuf,UINT32 cbBufSize,UINT32 *pcbBlobSize) PURE;
+ STDMETHOD_(HRESULT,GetBlobSize)(THIS_ REFGUID guidKey,UINT32 *pcbBlobSize) PURE;
+ STDMETHOD_(HRESULT,GetCount)(THIS_ UINT32 *pcItems) PURE;
+ STDMETHOD_(HRESULT,GetDouble)(THIS_ REFGUID guidKey,double *pfValue) PURE;
+ STDMETHOD_(HRESULT,GetGUID)(THIS_ REFGUID guidKey,GUID *pguidValue) PURE;
+ STDMETHOD_(HRESULT,GetItem)(THIS_ REFGUID guidKey,PROPVARIANT *pValue) PURE;
+ STDMETHOD_(HRESULT,GetItemByIndex)(THIS_ UINT32 unIndex,GUID *pguidKey,PROPVARIANT *pValue) PURE;
+ STDMETHOD_(HRESULT,GetItemType)(THIS_ REFGUID guidKey,MF_ATTRIBUTE_TYPE *pType) PURE;
+ STDMETHOD_(HRESULT,GetString)(THIS_ REFGUID guidKey,LPWSTR pwszValue,UINT32 cchBufSize,UINT32 *pcchLength) PURE;
+ STDMETHOD_(HRESULT,GetStringLength)(THIS_ REFGUID guidKey,UINT32 *pcchLength) PURE;
+ STDMETHOD_(HRESULT,GetUINT32)(THIS_ REFGUID guidKey,UINT32 *punValue) PURE;
+ STDMETHOD_(HRESULT,GetUINT64)(THIS_ REFGUID guidKey,UINT64 *punValue) PURE;
+ STDMETHOD_(HRESULT,GetUnknown)(THIS_ REFGUID guidKey,REFIID riid,LPVOID *ppv) PURE;
+ STDMETHOD_(HRESULT,LockStore)(THIS) PURE;
+ STDMETHOD_(HRESULT,SetBlob)(THIS_ REFGUID guidKey,const UINT8 *pBuf,UINT32 cbBufSize) PURE;
+ STDMETHOD_(HRESULT,SetDouble)(THIS_ REFGUID guidKey,double fValue) PURE;
+ STDMETHOD_(HRESULT,SetGUID)(THIS_ REFGUID guidKey,REFGUID guidValue) PURE;
+ STDMETHOD_(HRESULT,SetItem)(THIS_ REFGUID guidKey,REFPROPVARIANT Value) PURE;
+ STDMETHOD_(HRESULT,SetString)(THIS_ REFGUID guidKey,LPCWSTR wszValue) PURE;
+ STDMETHOD_(HRESULT,SetUINT32)(THIS_ REFGUID guidKey,UINT32 unValue) PURE;
+ STDMETHOD_(HRESULT,SetUINT64)(THIS_ REFGUID guidKey,UINT64 unValue) PURE;
+ STDMETHOD_(HRESULT,SetUnknown)(THIS_ REFGUID guidKey,IUnknown *pUnknown) PURE;
+ STDMETHOD_(HRESULT,UnlockStore)(THIS) PURE;
+
+ /* IMFStreamDescriptor methods */
+ STDMETHOD_(HRESULT,GetMediaTypeHandler)(THIS_ IMFMediaTypeHandler **ppMediaTypeHandler) PURE;
+ STDMETHOD_(HRESULT,GetStreamIdentifier)(THIS_ DWORD *pdwStreamIdentifier) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IMFStreamDescriptor_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFStreamDescriptor_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFStreamDescriptor_Release(This) (This)->pVtbl->Release(This)
+#define IMFStreamDescriptor_Compare(This,pTheirs,MatchType,pbResult) (This)->lpVtbl->Compare(This,pTheirs,MatchType,pbResult)
+#define IMFStreamDescriptor_CompareItem(This,guidKey,Value,pbResult) (This)->lpVtbl->CompareItem(This,guidKey,Value,pbResult)
+#define IMFStreamDescriptor_CopyAllItems(This,pDest) (This)->lpVtbl->CopyAllItems(This,pDest)
+#define IMFStreamDescriptor_DeleteAllItems() (This)->lpVtbl->DeleteAllItems(This)
+#define IMFStreamDescriptor_DeleteItem(This,guidKey) (This)->lpVtbl->DeleteItem(This,guidKey)
+#define IMFStreamDescriptor_GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) (This)->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize)
+#define IMFStreamDescriptor_GetAllocatedString(This,guidKey,ppwszValue,pcchLength) (This)->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength)
+#define IMFStreamDescriptor_GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) (This)->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize)
+#define IMFStreamDescriptor_GetBlobSize(This,guidKey,pcbBlobSize) (This)->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize)
+#define IMFStreamDescriptor_GetCount(This,pcItems) (This)->lpVtbl->GetCount(This,pcItems)
+#define IMFStreamDescriptor_GetDouble(This,guidKey,pfValue) (This)->lpVtbl->GetDouble(This,guidKey,pfValue)
+#define IMFStreamDescriptor_GetGUID(This,guidKey,pguidValue) (This)->lpVtbl->GetGUID(This,guidKey,pguidValue)
+#define IMFStreamDescriptor_GetItem(This,guidKey,pValue) (This)->lpVtbl->GetItem(This,guidKey,pValue)
+#define IMFStreamDescriptor_GetItemByIndex(This,unIndex,pguidKey,pValue) (This)->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue)
+#define IMFStreamDescriptor_GetItemType(This,guidKey,pType) (This)->lpVtbl->GetItemType(This,guidKey,pType)
+#define IMFStreamDescriptor_GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) (This)->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength)
+#define IMFStreamDescriptor_GetStringLength(This,guidKey,pcchLength) (This)->lpVtbl->GetStringLength(This,guidKey,pcchLength)
+#define IMFStreamDescriptor_GetUINT32(This,guidKey,punValue) (This)->lpVtbl->GetUINT32(This,guidKey,punValue)
+#define IMFStreamDescriptor_GetUINT64(This,guidKey,punValue) (This)->lpVtbl->GetUINT64(This,guidKey,punValue)
+#define IMFStreamDescriptor_GetUnknown(This,guidKey,riid,ppv) (This)->lpVtbl->GetUnknown(This,guidKey,riid,ppv)
+#define IMFStreamDescriptor_LockStore() (This)->lpVtbl->LockStore(This)
+#define IMFStreamDescriptor_SetBlob(This,guidKey,pBuf,cbBufSize) (This)->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize)
+#define IMFStreamDescriptor_SetDouble(This,guidKey,fValue) (This)->lpVtbl->SetDouble(This,guidKey,fValue)
+#define IMFStreamDescriptor_SetGUID(This,guidKey,guidValue) (This)->lpVtbl->SetGUID(This,guidKey,guidValue)
+#define IMFStreamDescriptor_SetItem(This,guidKey,Value) (This)->lpVtbl->SetItem(This,guidKey,Value)
+#define IMFStreamDescriptor_SetString(This,guidKey,wszValue) (This)->lpVtbl->SetString(This,guidKey,wszValue)
+#define IMFStreamDescriptor_SetUINT32(This,guidKey,unValue) (This)->lpVtbl->SetUINT32(This,guidKey,unValue)
+#define IMFStreamDescriptor_SetUINT64(This,guidKey,unValue) (This)->lpVtbl->SetUINT64(This,guidKey,unValue)
+#define IMFStreamDescriptor_SetUnknown(This,guidKey,pUnknown) (This)->lpVtbl->SetUnknown(This,guidKey,pUnknown)
+#define IMFStreamDescriptor_UnlockStore() (This)->lpVtbl->UnlockStore(This)
+#define IMFStreamDescriptor_GetMediaTypeHandler(This,ppMediaTypeHandler) (This)->lpVtbl->GetMediaTypeHandler(This,ppMediaTypeHandler)
+#define IMFStreamDescriptor_GetStreamIdentifier(This,pdwStreamIdentifier) (This)->lpVtbl->GetStreamIdentifier(This,pdwStreamIdentifier)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IMFRemoteDesktopPlugin
+DECLARE_INTERFACE_(IMFRemoteDesktopPlugin,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFRemoteDesktopPlugin methods */
+ STDMETHOD_(HRESULT,UpdateTopology)(THIS_ IMFTopology *pTopology) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IMFRemoteDesktopPlugin_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFRemoteDesktopPlugin_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFRemoteDesktopPlugin_Release(This) (This)->pVtbl->Release(This)
+#define IMFRemoteDesktopPlugin_UpdateTopology(This,pTopology) (This)->lpVtbl->UpdateTopology(This,pTopology)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IMFNetProxyLocator
+DECLARE_INTERFACE_(IMFNetProxyLocator,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFNetProxyLocator methods */
+ STDMETHOD_(HRESULT,Clone)(THIS_ IMFNetProxyLocator **ppProxyLocator) PURE;
+ STDMETHOD_(HRESULT,FindFirstProxy)(THIS_ LPCWSTR pszHost,LPCWSTR pszUrl,WINBOOL fReserved) PURE;
+ STDMETHOD_(HRESULT,FindNextProxy)(THIS) PURE;
+ STDMETHOD_(HRESULT,GetCurrentProxy)(THIS_ LPWSTR pszStr,DWORD *pcchStr) PURE;
+ STDMETHOD_(HRESULT,RegisterProxyResult)(THIS_ HRESULT hrOp) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IMFNetProxyLocator_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFNetProxyLocator_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFNetProxyLocator_Release(This) (This)->pVtbl->Release(This)
+#define IMFNetProxyLocator_Clone(This,ppProxyLocator) (This)->lpVtbl->Clone(This,ppProxyLocator)
+#define IMFNetProxyLocator_FindFirstProxy(This,pszHost,pszUrl,fReserved) (This)->lpVtbl->FindFirstProxy(This,pszHost,pszUrl,fReserved)
+#define IMFNetProxyLocator_FindNextProxy() (This)->lpVtbl->FindNextProxy(This)
+#define IMFNetProxyLocator_GetCurrentProxy(This,pszStr,pcchStr) (This)->lpVtbl->GetCurrentProxy(This,pszStr,pcchStr)
+#define IMFNetProxyLocator_RegisterProxyResult(This,hrOp) (This)->lpVtbl->RegisterProxyResult(This,hrOp)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IMFMediaTypeHandler
+DECLARE_INTERFACE_(IMFMediaTypeHandler,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFMediaTypeHandler methods */
+ STDMETHOD_(HRESULT,GetCurrentMediaType)(THIS_ IMFMediaType **ppMediaType) PURE;
+ STDMETHOD_(HRESULT,GetMajorType)(THIS_ GUID *pguidMajorType) PURE;
+ STDMETHOD_(HRESULT,GetMediaTypeByIndex)(THIS_ DWORD dwIndex,IMFMediaType **ppType) PURE;
+ STDMETHOD_(HRESULT,GetMediaTypeCount)(THIS_ DWORD *pdwTypeCount) PURE;
+ STDMETHOD_(HRESULT,IsMediaTypeSupported)(THIS_ IMFMediaType *pMediaType,IMFMediaType **ppMediaType) PURE;
+ /* [call_as(GetCurrentMediaType)] */
+ STDMETHOD_(HRESULT,RemoteGetCurrentMediaType)(THIS_ BYTE **ppbData,DWORD *pcbData) PURE;
+ STDMETHOD_(HRESULT,SetCurrentMediaType)(THIS_ IMFMediaType *pMediaType) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IMFMediaTypeHandler_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFMediaTypeHandler_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFMediaTypeHandler_Release(This) (This)->pVtbl->Release(This)
+#define IMFMediaTypeHandler_GetCurrentMediaType(This,ppMediaType) (This)->lpVtbl->GetCurrentMediaType(This,ppMediaType)
+#define IMFMediaTypeHandler_GetMajorType(This,pguidMajorType) (This)->lpVtbl->GetMajorType(This,pguidMajorType)
+#define IMFMediaTypeHandler_GetMediaTypeByIndex(This,dwIndex,ppType) (This)->lpVtbl->GetMediaTypeByIndex(This,dwIndex,ppType)
+#define IMFMediaTypeHandler_GetMediaTypeCount(This,pdwTypeCount) (This)->lpVtbl->GetMediaTypeCount(This,pdwTypeCount)
+#define IMFMediaTypeHandler_IsMediaTypeSupported(This,pMediaType,ppMediaType) (This)->lpVtbl->IsMediaTypeSupported(This,pMediaType,ppMediaType)
+#define IMFMediaTypeHandler_RemoteGetCurrentMediaType(This,ppbData,pcbData) (This)->lpVtbl->RemoteGetCurrentMediaType(This,ppbData,pcbData)
+#define IMFMediaTypeHandler_SetCurrentMediaType(This,pMediaType) (This)->lpVtbl->SetCurrentMediaType(This,pMediaType)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IMFSampleGrabberSinkCallback
+DECLARE_INTERFACE_(IMFSampleGrabberSinkCallback,IMFClockStateSink)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFClockStateSink methods */
+ STDMETHOD_(HRESULT,OnClockPause)(THIS_ MFTIME hnsSystemTime) PURE;
+ STDMETHOD_(HRESULT,OnClockRestart)(THIS_ MFTIME hnsSystemTime) PURE;
+ STDMETHOD_(HRESULT,OnClockSetRate)(THIS_ MFTIME hnsSystemTime,float flRate) PURE;
+ STDMETHOD_(HRESULT,OnClockStart)(THIS_ MFTIME hnsSystemTime,LONGLONG llClockStartOffset) PURE;
+ STDMETHOD_(HRESULT,OnClockStop)(THIS_ MFTIME hnssSystemTime) PURE;
+
+ /* IMFSampleGrabberSinkCallback methods */
+ STDMETHOD_(HRESULT,OnProcessSample)(THIS_ REFGUID guidMajorMediaType,DWORD dwSampleFlags,LONGLONG llSampleTime,LONGLONG llSampleDuration,const BYTE *pSampleBuffer,DWORD dwSampleSize) PURE;
+ STDMETHOD_(HRESULT,OnSetPresentationClock)(THIS_ IMFPresentationClock *pPresentationClock) PURE;
+ STDMETHOD_(HRESULT,OnShutdown)(THIS) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IMFSampleGrabberSinkCallback_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFSampleGrabberSinkCallback_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFSampleGrabberSinkCallback_Release(This) (This)->pVtbl->Release(This)
+#define IMFSampleGrabberSinkCallback_OnClockPause(This,hnsSystemTime) (This)->lpVtbl->OnClockPause(This,hnsSystemTime)
+#define IMFSampleGrabberSinkCallback_OnClockRestart(This,hnsSystemTime) (This)->lpVtbl->OnClockRestart(This,hnsSystemTime)
+#define IMFSampleGrabberSinkCallback_OnClockSetRate(This,hnsSystemTime,flRate) (This)->lpVtbl->OnClockSetRate(This,hnsSystemTime,flRate)
+#define IMFSampleGrabberSinkCallback_OnClockStart(This,hnsSystemTime,llClockStartOffset) (This)->lpVtbl->OnClockStart(This,hnsSystemTime,llClockStartOffset)
+#define IMFSampleGrabberSinkCallback_OnClockStop(This,hnssSystemTime) (This)->lpVtbl->OnClockStop(This,hnssSystemTime)
+#define IMFSampleGrabberSinkCallback_OnProcessSample(This,guidMajorMediaType,dwSampleFlags,llSampleTime,llSampleDuration,pSampleBuffer,dwSampleSize) (This)->lpVtbl->OnProcessSample(This,guidMajorMediaType,dwSampleFlags,llSampleTime,llSampleDuration,pSampleBuffer,dwSampleSize)
+#define IMFSampleGrabberSinkCallback_OnSetPresentationClock(This,pPresentationClock) (This)->lpVtbl->OnSetPresentationClock(This,pPresentationClock)
+#define IMFSampleGrabberSinkCallback_OnShutdown() (This)->lpVtbl->OnShutdown(This)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IMFSequencerSource
+DECLARE_INTERFACE_(IMFSequencerSource,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFSequencerSource methods */
+ STDMETHOD_(HRESULT,AppendTopology)(THIS_ IMFTopology *pTopology,DWORD dwFlags,MFSequencerElementId *pdwId) PURE;
+ STDMETHOD_(HRESULT,DeleteTopology)(THIS_ MFSequencerElementId dwId) PURE;
+ STDMETHOD_(HRESULT,GetPresentationContext)(THIS_ IMFPresentationDescriptor *pPD,MFSequencerElementId *pId,IMFTopology **ppTopology) PURE;
+ STDMETHOD_(HRESULT,UpdateTopology)(THIS_ MFSequencerElementId dwId,IMFTopology *pTopology) PURE;
+ STDMETHOD_(HRESULT,UpdateTopologyFlags)(THIS_ MFSequencerElementId dwId,DWORD dwFlags) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IMFSequencerSource_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFSequencerSource_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFSequencerSource_Release(This) (This)->pVtbl->Release(This)
+#define IMFSequencerSource_AppendTopology(This,pTopology,dwFlags,pdwId) (This)->lpVtbl->AppendTopology(This,pTopology,dwFlags,pdwId)
+#define IMFSequencerSource_DeleteTopology(This,dwId) (This)->lpVtbl->DeleteTopology(This,dwId)
+#define IMFSequencerSource_GetPresentationContext(This,pPD,pId,ppTopology) (This)->lpVtbl->GetPresentationContext(This,pPD,pId,ppTopology)
+#define IMFSequencerSource_UpdateTopology(This,dwId,pTopology) (This)->lpVtbl->UpdateTopology(This,dwId,pTopology)
+#define IMFSequencerSource_UpdateTopologyFlags(This,dwId,dwFlags) (This)->lpVtbl->UpdateTopologyFlags(This,dwId,dwFlags)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IMFSourceResolver
+DECLARE_INTERFACE_(IMFSourceResolver,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFSourceResolver methods */
+ STDMETHOD_(HRESULT,BeginCreateObjectFromByteStream)(THIS_ IMFByteStream *pByteStream,LPCWSTR pwszURL,DWORD dwFlags,IPropertyStore *pProps,IUnknown **ppIUnknownCancelCookie,IMFAsyncCallback *pCallback,IUnknown *punkState) PURE;
+ STDMETHOD_(HRESULT,BeginCreateObjectFromURL)(THIS_ LPCWSTR pwszURL,DWORD dwFlags,IPropertyStore *pProps,IUnknown **ppIUnknownCancelCookie,IMFAsyncCallback *pCallback,IUnknown *punkState) PURE;
+ STDMETHOD_(HRESULT,CancelObjectCreation)(THIS_ IUnknown **ppIUnknownCancelCookie) PURE;
+ STDMETHOD_(HRESULT,CreateObjectFromByteStream)(THIS_ IMFByteStream *pByteStream,LPCWSTR pwszURL,DWORD dwFlags,IPropertyStore *pProps,MF_OBJECT_TYPE *pObjectType,IUnknown **ppObject) PURE;
+ STDMETHOD_(HRESULT,CreateObjectFromURL)(THIS_ LPCWSTR pwszURL,DWORD dwFlags,IPropertyStore *pProps,MF_OBJECT_TYPE *pObjectType,IUnknown **ppObject) PURE;
+ STDMETHOD_(HRESULT,EndCreateObjectFromByteStream)(THIS_ IMFAsyncResult *pResult,MF_OBJECT_TYPE *pObjectType,IUnknown **ppObject) PURE;
+ STDMETHOD_(HRESULT,EndCreateObjectFromURL)(THIS_ IMFAsyncResult *pResult,MF_OBJECT_TYPE *pObjectType,IUnknown **ppObject) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IMFSourceResolver_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFSourceResolver_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFSourceResolver_Release(This) (This)->pVtbl->Release(This)
+#define IMFSourceResolver_BeginCreateObjectFromByteStream(This,pByteStream,pwszURL,dwFlags,pProps,ppIUnknownCancelCookie,pCallback,punkState) (This)->lpVtbl->BeginCreateObjectFromByteStream(This,pByteStream,pwszURL,dwFlags,pProps,ppIUnknownCancelCookie,pCallback,punkState)
+#define IMFSourceResolver_BeginCreateObjectFromURL(This,pwszURL,dwFlags,pProps,ppIUnknownCancelCookie,pCallback,punkState) (This)->lpVtbl->BeginCreateObjectFromURL(This,pwszURL,dwFlags,pProps,ppIUnknownCancelCookie,pCallback,punkState)
+#define IMFSourceResolver_CancelObjectCreation(This,ppIUnknownCancelCookie) (This)->lpVtbl->CancelObjectCreation(This,ppIUnknownCancelCookie)
+#define IMFSourceResolver_CreateObjectFromByteStream(This,pByteStream,pwszURL,dwFlags,pProps,pObjectType,ppObject) (This)->lpVtbl->CreateObjectFromByteStream(This,pByteStream,pwszURL,dwFlags,pProps,pObjectType,ppObject)
+#define IMFSourceResolver_CreateObjectFromURL(This,pwszURL,dwFlags,pProps,pObjectType,ppObject) (This)->lpVtbl->CreateObjectFromURL(This,pwszURL,dwFlags,pProps,pObjectType,ppObject)
+#define IMFSourceResolver_EndCreateObjectFromByteStream(This,pResult,pObjectType,ppObject) (This)->lpVtbl->EndCreateObjectFromByteStream(This,pResult,pObjectType,ppObject)
+#define IMFSourceResolver_EndCreateObjectFromURL(This,pResult,pObjectType,ppObject) (This)->lpVtbl->EndCreateObjectFromURL(This,pResult,pObjectType,ppObject)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IMFQualityManager
+DECLARE_INTERFACE_(IMFQualityManager,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFQualityManager methods */
+ STDMETHOD_(HRESULT,NotifyPresentationClock)(THIS_ IMFPresentationClock *pClock) PURE;
+ STDMETHOD_(HRESULT,NotifyProcessInput)(THIS_ IMFTopologyNode *pNode,long lInputIndex,IMFSample *pSample) PURE;
+ STDMETHOD_(HRESULT,NotifyProcessOutput)(THIS_ IMFTopologyNode *pNode,long lOutputIndex,IMFSample *pSample) PURE;
+ STDMETHOD_(HRESULT,NotifyQualityEvent)(THIS_ IUnknown *pObject,IMFMediaEvent *pEvent) PURE;
+ STDMETHOD_(HRESULT,NotifyTopology)(THIS_ IMFTopology *pTopology) PURE;
+ STDMETHOD_(HRESULT,Shutdown)(THIS) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IMFQualityManager_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFQualityManager_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFQualityManager_Release(This) (This)->pVtbl->Release(This)
+#define IMFQualityManager_NotifyPresentationClock(This,pClock) (This)->lpVtbl->NotifyPresentationClock(This,pClock)
+#define IMFQualityManager_NotifyProcessInput(This,pNode,lInputIndex,pSample) (This)->lpVtbl->NotifyProcessInput(This,pNode,lInputIndex,pSample)
+#define IMFQualityManager_NotifyProcessOutput(This,pNode,lOutputIndex,pSample) (This)->lpVtbl->NotifyProcessOutput(This,pNode,lOutputIndex,pSample)
+#define IMFQualityManager_NotifyQualityEvent(This,pObject,pEvent) (This)->lpVtbl->NotifyQualityEvent(This,pObject,pEvent)
+#define IMFQualityManager_NotifyTopology(This,pTopology) (This)->lpVtbl->NotifyTopology(This,pTopology)
+#define IMFQualityManager_Shutdown() (This)->lpVtbl->Shutdown(This)
+#endif /*COBJMACROS*/
+
+#if (_WIN32_WINNT >= 0x0601)
+#undef INTERFACE
+#define INTERFACE IMFTranscodeProfile
+DECLARE_INTERFACE_(IMFTranscodeProfile,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFTranscodeProfile methods */
+ STDMETHOD_(HRESULT,GetAudioAttributes)(THIS_ IMFAttributes **ppAttrs) PURE;
+ STDMETHOD_(HRESULT,GetContainerAttributes)(THIS_ IMFAttributes **ppAttrs) PURE;
+ STDMETHOD_(HRESULT,GetVideoAttributes)(THIS_ IMFAttributes **ppAttrs) PURE;
+ STDMETHOD_(HRESULT,SetAudioAttributes)(THIS_ IMFAttributes *pAttrs) PURE;
+ STDMETHOD_(HRESULT,SetContainerAttributes)(THIS_ IMFAttributes *pAttrs) PURE;
+ STDMETHOD_(HRESULT,SetVideoAttributes)(THIS_ IMFAttributes *pAttrs) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IMFTranscodeProfile_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFTranscodeProfile_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFTranscodeProfile_Release(This) (This)->pVtbl->Release(This)
+#define IMFTranscodeProfile_GetAudioAttributes(This,ppAttrs) (This)->lpVtbl->GetAudioAttributes(This,ppAttrs)
+#define IMFTranscodeProfile_GetContainerAttributes(This,ppAttrs) (This)->lpVtbl->GetContainerAttributes(This,ppAttrs)
+#define IMFTranscodeProfile_GetVideoAttributes(This,ppAttrs) (This)->lpVtbl->GetVideoAttributes(This,ppAttrs)
+#define IMFTranscodeProfile_SetAudioAttributes(This,pAttrs) (This)->lpVtbl->SetAudioAttributes(This,pAttrs)
+#define IMFTranscodeProfile_SetContainerAttributes(This,pAttrs) (This)->lpVtbl->SetContainerAttributes(This,pAttrs)
+#define IMFTranscodeProfile_SetVideoAttributes(This,pAttrs) (This)->lpVtbl->SetVideoAttributes(This,pAttrs)
+#endif /*COBJMACROS*/
+
+typedef struct _MF_TRANSCODE_SINK_INFO {
+ DWORD dwVideoStreamID;
+ IMFMediaType *pVideoMediaType;
+ DWORD dwAudioStreamID;
+ IMFMediaType *pAudioMediaType;
+} MF_TRANSCODE_SINK_INFO;
+
+#undef INTERFACE
+#define INTERFACE IMFTranscodeSinkInfoProvider
+DECLARE_INTERFACE_(IMFTranscodeSinkInfoProvider,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFTranscodeSinkInfoProvider methods */
+ STDMETHOD_(HRESULT,GetSinkInfo)(THIS_ MF_TRANSCODE_SINK_INFO *pSinkInfo) PURE;
+ STDMETHOD_(HRESULT,SetOutputByteStream)(THIS_ IMFActivate *pByteStreamActivate) PURE;
+ STDMETHOD_(HRESULT,SetOutputFile)(THIS_ LPCWSTR pwszFileName) PURE;
+ STDMETHOD_(HRESULT,SetProfile)(THIS_ IMFTranscodeProfile *pProfile) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IMFTranscodeSinkInfoProvider_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFTranscodeSinkInfoProvider_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFTranscodeSinkInfoProvider_Release(This) (This)->pVtbl->Release(This)
+#define IMFTranscodeSinkInfoProvider_GetSinkInfo(This,pSinkInfo) (This)->lpVtbl->GetSinkInfo(This,pSinkInfo)
+#define IMFTranscodeSinkInfoProvider_SetOutputByteStream(This,pByteStreamActivate) (This)->lpVtbl->SetOutputByteStream(This,pByteStreamActivate)
+#define IMFTranscodeSinkInfoProvider_SetOutputFile(This,pwszFileName) (This)->lpVtbl->SetOutputFile(This,pwszFileName)
+#define IMFTranscodeSinkInfoProvider_SetProfile(This,pProfile) (This)->lpVtbl->SetProfile(This,pProfile)
+#endif /*COBJMACROS*/
+
+#endif /*(_WIN32_WINNT >= 0x0601)*/
+typedef enum _MFVP_MESSAGE_TYPE MFVP_MESSAGE_TYPE;
+#undef INTERFACE
+#define INTERFACE IMFVideoSampleAllocator
+DECLARE_INTERFACE_(IMFVideoSampleAllocator,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFVideoSampleAllocator methods */
+ STDMETHOD_(HRESULT,GetCurrentMediaType)(THIS_ IMFVideoMediaType **ppMediaType) PURE;
+ STDMETHOD_(HRESULT,ProcessMessage)(THIS_ MFVP_MESSAGE_TYPE eMessage,ULONG_PTR ulParam) PURE;
+ STDMETHOD_(HRESULT,AllocateSample)(THIS_ IMFSample **ppSample) PURE;
+ STDMETHOD_(HRESULT,InitializeSampleAllocator)(THIS_ DWORD cRequestedFrames,IMFMediaType *pMediaType) PURE;
+ STDMETHOD_(HRESULT,SetDirectXManager)(THIS_ IUnknown *pManager) PURE;
+ STDMETHOD_(HRESULT,UninitializeSampleAllocator)(THIS) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IMFVideoSampleAllocator_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFVideoSampleAllocator_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFVideoSampleAllocator_Release(This) (This)->pVtbl->Release(This)
+#define IMFVideoSampleAllocator_GetCurrentMediaType(This,ppMediaType) (This)->lpVtbl->GetCurrentMediaType(This,ppMediaType)
+#define IMFVideoSampleAllocator_ProcessMessage(This,eMessage,ulParam) (This)->lpVtbl->ProcessMessage(This,eMessage,ulParam)
+#define IMFVideoSampleAllocator_AllocateSample(This,ppSample) (This)->lpVtbl->AllocateSample(This,ppSample)
+#define IMFVideoSampleAllocator_InitializeSampleAllocator(This,cRequestedFrames,pMediaType) (This)->lpVtbl->InitializeSampleAllocator(This,cRequestedFrames,pMediaType)
+#define IMFVideoSampleAllocator_SetDirectXManager(This,pManager) (This)->lpVtbl->SetDirectXManager(This,pManager)
+#define IMFVideoSampleAllocator_UninitializeSampleAllocator() (This)->lpVtbl->UninitializeSampleAllocator(This)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IMFObjectReferenceStream
+DECLARE_INTERFACE_(IMFObjectReferenceStream,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFObjectReferenceStream methods */
+ STDMETHOD_(HRESULT,LoadReference)(THIS_ REFIID riid,void **ppv) PURE;
+ STDMETHOD_(HRESULT,SaveReference)(THIS_ REFIID riid,IUnknown *pUnk) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IMFObjectReferenceStream_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFObjectReferenceStream_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFObjectReferenceStream_Release(This) (This)->pVtbl->Release(This)
+#define IMFObjectReferenceStream_LoadReference(This,riid,ppv) (This)->lpVtbl->LoadReference(This,riid,ppv)
+#define IMFObjectReferenceStream_SaveReference(This,riid,pUnk) (This)->lpVtbl->SaveReference(This,riid,pUnk)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IMFWorkQueueServices
+DECLARE_INTERFACE_(IMFWorkQueueServices,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFWorkQueueServices methods */
+ STDMETHOD_(HRESULT,BeginRegisterPlatformWorkQueueWithMMCSS)(THIS_ DWORD dwPlatformWorkQueue,LPCWSTR wszClass,DWORD dwTaskId,IMFAsyncCallback *pCallback,IUnknown *pState) PURE;
+ STDMETHOD_(HRESULT,BeginRegisterTopologyWorkQueuesWithMMCSS)(THIS_ IMFAsyncCallback *pCallback,IUnknown *pState) PURE;
+ STDMETHOD_(HRESULT,BeginUnregisterPlatformWorkQueueWithMMCSS)(THIS_ DWORD dwPlatformWorkQueue,IMFAsyncCallback *pCallback,IUnknown *pState) PURE;
+ STDMETHOD_(HRESULT,BeginUnregisterTopologyWorkQueuesWithMMCSS)(THIS_ IMFAsyncCallback *pCallback,IUnknown *pState) PURE;
+ STDMETHOD_(HRESULT,EndRegisterPlatformWorkQueueWithMMCSS)(THIS_ IMFAsyncResult *pResult,DWORD *pdwTaskId) PURE;
+ STDMETHOD_(HRESULT,EndRegisterTopologyWorkQueuesWithMMCSS)(THIS_ IMFAsyncResult *pResult) PURE;
+ STDMETHOD_(HRESULT,EndUnregisterPlatformWorkQueueWithMMCSS)(THIS_ IMFAsyncResult *pResult) PURE;
+ STDMETHOD_(HRESULT,EndUnregisterTopologyWorkQueuesWithMMCSS)(THIS_ IMFAsyncResult *pResult) PURE;
+ STDMETHOD_(HRESULT,GetPlaftormWorkQueueMMCSSClass)(THIS_ DWORD dwPlatformWorkQueueId,LPWSTR pwszClass,DWORD *pcchClass) PURE;
+ STDMETHOD_(HRESULT,GetPlatformWorkQueueMMCSSTaskId)(THIS_ DWORD dwPlatformWorkQueueId,DWORD *pdwTaskId) PURE;
+ STDMETHOD_(HRESULT,GetTopologyWorkQueueMMCSSClass)(THIS_ DWORD dwTopologyWorkQueueId,LPWSTR pwszClass,DWORD *pcchClass) PURE;
+ STDMETHOD_(HRESULT,GetTopologyWorkQueueMMCSSTaskId)(THIS_ DWORD dwTopologyWorkQueueId,DWORD *pdwTaskId) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IMFWorkQueueServices_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFWorkQueueServices_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFWorkQueueServices_Release(This) (This)->pVtbl->Release(This)
+#define IMFWorkQueueServices_BeginRegisterPlatformWorkQueueWithMMCSS(This,dwPlatformWorkQueue,wszClass,dwTaskId,pCallback,pState) (This)->lpVtbl->BeginRegisterPlatformWorkQueueWithMMCSS(This,dwPlatformWorkQueue,wszClass,dwTaskId,pCallback,pState)
+#define IMFWorkQueueServices_BeginRegisterTopologyWorkQueuesWithMMCSS(This,pCallback,pState) (This)->lpVtbl->BeginRegisterTopologyWorkQueuesWithMMCSS(This,pCallback,pState)
+#define IMFWorkQueueServices_BeginUnregisterPlatformWorkQueueWithMMCSS(This,dwPlatformWorkQueue,pCallback,pState) (This)->lpVtbl->BeginUnregisterPlatformWorkQueueWithMMCSS(This,dwPlatformWorkQueue,pCallback,pState)
+#define IMFWorkQueueServices_BeginUnregisterTopologyWorkQueuesWithMMCSS(This,pCallback,pState) (This)->lpVtbl->BeginUnregisterTopologyWorkQueuesWithMMCSS(This,pCallback,pState)
+#define IMFWorkQueueServices_EndRegisterPlatformWorkQueueWithMMCSS(This,pResult,pdwTaskId) (This)->lpVtbl->EndRegisterPlatformWorkQueueWithMMCSS(This,pResult,pdwTaskId)
+#define IMFWorkQueueServices_EndRegisterTopologyWorkQueuesWithMMCSS(This,pResult) (This)->lpVtbl->EndRegisterTopologyWorkQueuesWithMMCSS(This,pResult)
+#define IMFWorkQueueServices_EndUnregisterPlatformWorkQueueWithMMCSS(This,pResult) (This)->lpVtbl->EndUnregisterPlatformWorkQueueWithMMCSS(This,pResult)
+#define IMFWorkQueueServices_EndUnregisterTopologyWorkQueuesWithMMCSS(This,pResult) (This)->lpVtbl->EndUnregisterTopologyWorkQueuesWithMMCSS(This,pResult)
+#define IMFWorkQueueServices_GetPlaftormWorkQueueMMCSSClass(This,dwPlatformWorkQueueId,pwszClass,pcchClass) (This)->lpVtbl->GetPlaftormWorkQueueMMCSSClass(This,dwPlatformWorkQueueId,pwszClass,pcchClass)
+#define IMFWorkQueueServices_GetPlatformWorkQueueMMCSSTaskId(This,dwPlatformWorkQueueId,pdwTaskId) (This)->lpVtbl->GetPlatformWorkQueueMMCSSTaskId(This,dwPlatformWorkQueueId,pdwTaskId)
+#define IMFWorkQueueServices_GetTopologyWorkQueueMMCSSClass(This,dwTopologyWorkQueueId,pwszClass,pcchClass) (This)->lpVtbl->GetTopologyWorkQueueMMCSSClass(This,dwTopologyWorkQueueId,pwszClass,pcchClass)
+#define IMFWorkQueueServices_GetTopologyWorkQueueMMCSSTaskId(This,dwTopologyWorkQueueId,pdwTaskId) (This)->lpVtbl->GetTopologyWorkQueueMMCSSTaskId(This,dwTopologyWorkQueueId,pdwTaskId)
+#endif /*COBJMACROS*/
+
+#if (_WIN32_WINNT >= 0x0601)
+
+#undef INTERFACE
+#define INTERFACE IMFVideoSampleAllocatorNotify
+DECLARE_INTERFACE_(IMFVideoSampleAllocatorNotify,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFVideoSampleAllocatorNotify methods */
+ STDMETHOD_(HRESULT,NotifyRelease)(THIS) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IMFVideoSampleAllocatorNotify_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFVideoSampleAllocatorNotify_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFVideoSampleAllocatorNotify_Release(This) (This)->pVtbl->Release(This)
+#define IMFVideoSampleAllocatorNotify_NotifyRelease() (This)->lpVtbl->NotifyRelease(This)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IMFVideoSampleAllocatorCallback
+DECLARE_INTERFACE_(IMFVideoSampleAllocatorCallback,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFVideoSampleAllocatorCallback methods */
+ STDMETHOD_(HRESULT,GetFreeSampleCount)(THIS_ LONG *plSamples) PURE;
+ STDMETHOD_(HRESULT,SetCallback)(THIS_ IMFVideoSampleAllocatorNotify *pNotify) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IMFVideoSampleAllocatorCallback_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFVideoSampleAllocatorCallback_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFVideoSampleAllocatorCallback_Release(This) (This)->pVtbl->Release(This)
+#define IMFVideoSampleAllocatorCallback_GetFreeSampleCount(This,plSamples) (This)->lpVtbl->GetFreeSampleCount(This,plSamples)
+#define IMFVideoSampleAllocatorCallback_SetCallback(This,pNotify) (This)->lpVtbl->SetCallback(This,pNotify)
+#endif /*COBJMACROS*/
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+HRESULT MFCreate3GPMediaSink(IMFByteStream *pIByteStream,IMFMediaType *pVideoMediaType,IMFMediaType *pAudioMediaType,IMFMediaSink **ppIMediaSink);
+HRESULT MFCreateAggregateSource(IMFCollection *pSourceCollection,IMFMediaSource **ppAggSource);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /*(_WIN32_WINNT >= 0x0601)*/
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+HRESULT WINAPI MFCreateAlignedMemoryBuffer(DWORD cbMaxLength,DWORD fAlignmentFlags,IMFMediaBuffer **ppBuffer);
+HRESULT WINAPI MFCreateASFContentInfo(IMFASFContentInfo **ppIContentInfo);
+HRESULT WINAPI MFCreateASFIndexer(IMFASFIndexer **ppIIndexer);
+HRESULT WINAPI MFCreateASFIndexerByteStream(IMFByteStream *pIContentByteStream,QWORD cbIndexStartOffset,IMFByteStream **pIIndexByteStream);
+HRESULT WINAPI MFCreateASFMediaSink(IMFByteStream *pIByteStream,IMFMediaSink **ppIMediaSink);
+HRESULT WINAPI MFCreateASFMediaSinkActivate(LPCWSTR pwszFileName,IMFASFContentInfo *pContentInfo,IMFActivate **ppIActivate);
+HRESULT WINAPI MFCreateASFMultiplexer(IMFASFMultiplexer **ppIMultiplexer);
+HRESULT WINAPI MFCreateASFProfile(IMFASFProfile **ppIProfile);
+HRESULT WINAPI MFCreateASFProfileFromPresentationDescriptor(IMFPresentationDescriptor *pIPD,IMFASFProfile **ppIProfile);
+HRESULT WINAPI MFCreateASFSplitter(IMFASFSplitter **ppISplitter);
+HRESULT WINAPI MFCreateMediaSession(IMFAttributes *pConfiguration,IMFMediaSession **ppMS);
+HRESULT WINAPI MFCreateMP3MediaSink(IMFByteStream *pTargetByteStream,IMFMediaSink **ppMediaSink);
+HRESULT WINAPI MFCreateMPEG4MediaSink(IMFByteStream *pIByteStream,IMFMediaType *pVideoMediaType,IMFMediaType *pAudioMediaType,IMFMediaSink **ppIMediaSink);
+HRESULT WINAPI MFCreateNetSchemePlugin(REFIID riid,LPVOID *ppvHandler);
+HRESULT WINAPI MFCreatePMPServer(DWORD dwCreationFlags,IMFPMPServer **ppPMPServer);
+HRESULT WINAPI MFCreatePMPMediaSession(DWORD dwCreationFlags,IMFAttributes *pConfiguration,IMFMediaSession **ppMediaSession,IMFActivate **ppEnablerActivate);
+HRESULT WINAPI MFCreatePathFromURL(LPCWSTR pwszFileURL,LPWSTR *ppwszFilePath);
+HRESULT WINAPI MFCreatePresentationClock(IMFPresentationClock **ppPresentationClock);
+HRESULT WINAPI MFCreatePresentationDescriptor(DWORD cStreamDescriptors,IMFStreamDescriptor **apStreamDescriptors,IMFPresentationDescriptor **ppPresentationDescriptor);
+HRESULT WINAPI MFCreatePresentationDescriptorFromASFProfile(IMFASFProfile *pIProfile,IMFPresentationDescriptor **ppIPD);
+HRESULT WINAPI MFCreateProxyLocator(LPCWSTR pszProtocol,IPropertyStore *pProxyConfig,IMFNetProxyLocator **ppProxyLocator);
+HRESULT WINAPI MFCreateRemoteDesktopPlugin(IMFRemoteDesktopPlugin **ppPlugin);
+HRESULT WINAPI MFCreateSample(IMFSample **ppIMFSample);
+HRESULT WINAPI MFCreateSampleCopierMFT(IMFTransform **ppCopierMFT);
+HRESULT WINAPI MFCreateSampleGrabberSinkActivate(IMFMediaType *pIMFMediaType,IMFSampleGrabberSinkCallback *pIMFSampleGrabberSinkCallback,IMFActivate **ppIActivate);
+HRESULT WINAPI MFCreateSequencerSource(IUnknown *pReserved,IMFSequencerSource **ppSequencerSource);
+HRESULT WINAPI MFCreateSimpleTypeHandler(IMFMediaTypeHandler **ppHandler);
+HRESULT WINAPI MFCreateStandardQualityManager(IMFQualityManager **ppQualityManager);
+HRESULT WINAPI MFCreateStreamDescriptor(DWORD dwStreamIdentifier,DWORD cMediaTypes,IMFMediaType **apMediaTypes,IMFStreamDescriptor **ppDescriptor);
+HRESULT WINAPI MFCreateSourceResolver(IMFSourceResolver **ppISourceResolver);
+HRESULT WINAPI MFCreateSystemTimeSource(IMFPresentationTimeSource **ppSystemTimeSource);
+HRESULT WINAPI MFCreateTopoLoader(IMFTopoLoader **ppObj);
+HRESULT WINAPI MFCreateTopology(IMFTopology **ppTopo);
+HRESULT WINAPI MFCreateTopologyNode(MF_TOPOLOGY_TYPE NodeType,IMFTopologyNode **ppNode);
+HRESULT WINAPI MFCreateVideoRenderer(REFIID riidRenderer,void **ppVideoRenderer);
+HRESULT WINAPI MFCreateVideoRendererActivate(HWND hwndVideo,IMFActivate **ppActivate);
+HRESULT WINAPI MFGetService(IUnknown *punkObject,REFGUID guidService,REFIID riid,LPVOID *ppvObject);
+HRESULT WINAPI MFGetSupportedMimeTypes(PROPVARIANT *pPropVarMimeTypeArray);
+HRESULT WINAPI MFGetSupportedSchemes(PROPVARIANT *pPropVarSchemeArray);
+MFTIME WINAPI MFGetSystemTime(void);
+HRESULT WINAPI MFShutdownObject(IUnknown *pUnk);
+HRESULT WINAPI CreateNamedPropertyStore(INamedPropertyStore **ppStore);
+HRESULT WINAPI CreatePropertyStore(IPropertyStore **ppStore);
+#ifdef __cplusplus
+}
+#endif
+#if (_WIN32_WINNT >= 0x0601)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+HRESULT WINAPI MFCreateTranscodeProfile(IMFTranscodeProfile **ppTranscodeProfile);
+HRESULT WINAPI MFCreateTranscodeSinkActivate(IMFActivate **ppActivate);
+HRESULT WINAPI MFCreateTranscodeTopology(IMFMediaSource *pSrc,LPCWSTR pwszOutputFilePath,IMFTranscodeProfile *pProfile,IMFTopology **ppTranscodeTopo);
+HRESULT WINAPI MFEnumDeviceSources(IMFAttributes *pAttributes,IMFActivate ***pppSourceActivate,UINT32 *pcSourceActivate);
+HRESULT WINAPI MFGetTopoNodeCurrentType(IMFTopologyNode *pNode,DWORD dwStreamIndex,WINBOOL fOutput,IMFMediaType **ppType);
+HRESULT WINAPI MFTranscodeGetAudioOutputAvailableTypes(REFGUID guidSubType,DWORD dwMFTFlags,IMFAttributes *pCodecConfig,IMFCollection **ppAvailableTypes);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /*(_WIN32_WINNT >= 0x0601)*/
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_MFIDL*/
diff --git a/mingw-w64-headers/include/mfmp2dlna.h b/mingw-w64-headers/include/mfmp2dlna.h
new file mode 100644
index 0000000..fa67452
--- /dev/null
+++ b/mingw-w64-headers/include/mfmp2dlna.h
@@ -0,0 +1,33 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_MFMP2DLNA
+#define _INC_MFMP2DLNA
+
+#if (_WIN32_WINNT >= 0x0601)
+#ifdef __cplusplus
+extern "C" {
+#endif
+typedef struct _MFMPEG2DLNASINKSTATS {
+ DWORDLONG cBytesWritten;
+ BOOL fPAL;
+ DWORD fccVideo;
+ DWORD dwVideoWidth;
+ DWORD dwVideoHeight;
+ DWORDLONG cVideoFramesReceived;
+ DWORDLONG cVideoFramesEncoded;
+ DWORDLONG cVideoFramesSkipped;
+ DWORDLONG cBlackVideoFramesEncoded;
+ DWORDLONG cVideoFramesDuplicated;
+ DWORD cAudioSamplesPerSec;
+ DWORD cAudioChannels;
+ DWORDLONG cAudioBytesReceived;
+ DWORDLONG cAudioFramesEncoded;
+} MFMPEG2DLNASINKSTATS;
+#ifdef __cplusplus
+}
+#endif
+#endif /*(_WIN32_WINNT >= 0x0601)*/
+#endif /*_INC_MFMP2DLNA*/
diff --git a/mingw-w64-headers/include/mfobjects.h b/mingw-w64-headers/include/mfobjects.h
new file mode 100644
index 0000000..9dbf0e1
--- /dev/null
+++ b/mingw-w64-headers/include/mfobjects.h
@@ -0,0 +1,1338 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_MFOBJECTS
+#define _INC_MFOBJECTS
+
+#if (_WIN32_WINNT >= 0x0600)
+
+typedef struct IMFAsyncCallback IMFAsyncCallback;
+typedef struct IMFMediaEvent IMFMediaEvent;
+typedef struct IMFPresentationDescriptor IMFPresentationDescriptor;
+typedef struct IPropertyStore IPropertyStore;
+typedef LPVOID MediaEventType;
+typedef struct PROPVARIANT *REFPROPVARIANT;
+__MINGW_EXTENSION typedef unsigned __int64 QWORD;
+
+enum MF_ATTRIBUTE_SERIALIZE_OPTIONS {
+ MF_ATTRIBUTE_SERIALIZE_UNKNOWN_BYREF = 0x00000001
+};
+
+typedef enum _MF_ATTRIBUTE_TYPE {
+ MF_ATTRIBUTE_UINT32 = VT_UI4,
+ MF_ATTRIBUTE_UINT64 = VT_UI8,
+ MF_ATTRIBUTE_DOUBLE = VT_R8,
+ MF_ATTRIBUTE_GUID = VT_CLSID,
+ MF_ATTRIBUTE_STRING = VT_LPWSTR,
+ MF_ATTRIBUTE_BLOB = VT_VECTOR | VT_UI1,
+ MF_ATTRIBUTE_IUNKNOWN = VT_UNKNOWN
+} MF_ATTRIBUTE_TYPE;
+
+typedef enum _MF_ATTRIBUTES_MATCH_TYPE {
+ MF_ATTRIBUTES_MATCH_OUR_ITEMS = 0,
+ MF_ATTRIBUTES_MATCH_THEIR_ITEMS = 1,
+ MF_ATTRIBUTES_MATCH_ALL_ITEMS = 2,
+ MF_ATTRIBUTES_MATCH_INTERSECTION = 3,
+ MF_ATTRIBUTES_MATCH_SMALLER = 4
+} MF_ATTRIBUTES_MATCH_TYPE;
+
+typedef enum _MF_CONNECT_METHOD {
+ MF_CONNECT_DIRECT = 0x00000000,
+ MF_CONNECT_ALLOW_CONVERTER = 0x00000001,
+ MF_CONNECT_ALLOW_DECODER = 0x00000003,
+ MF_CONNECT_RESOLVE_INDEPENDENT_OUTPUTTYPES = 0x00000004,
+ MF_CONNECT_AS_OPTIONAL = 0x00010000,
+ MF_CONNECT_AS_OPTIONAL_BRANCH = 0x00020000
+} MF_CONNECT_METHOD;
+
+typedef enum MF_FILE_ACCESSMODE {
+ MF_ACCESSMODE_READ = 1,
+ MF_ACCESSMODE_WRITE = 2,
+ MF_ACCESSMODE_READWRITE = 3
+} MF_FILE_ACCESSMODE;
+
+typedef enum {
+ MF_FILEFLAGS_NONE = 0x00000000,
+ MF_FILEFLAGS_NOBUFFERING = 0x00000001,
+ MF_FILEFLAGS_ALLOW_WRITE_SHARING = 0x00000002
+} MF_FILE_FLAGS;
+
+typedef enum {
+ MF_OPENMODE_FAIL_IF_NOT_EXIST = 0,
+ MF_OPENMODE_FAIL_IF_EXIST = 1,
+ MF_OPENMODE_RESET_IF_EXIST = 2,
+ MF_OPENMODE_APPEND_IF_EXIST = 3,
+ MF_OPENMODE_DELETE_IF_EXIST = 4
+} MF_FILE_OPENMODE;
+
+typedef enum _MFVideoTransferFunction {
+ MFVideoTransFunc_Unknown = 0,
+ MFVideoTransFunc_10 = 1,
+ MFVideoTransFunc_18 = 2,
+ MFVideoTransFunc_20 = 3,
+ MFVideoTransFunc_22 = 4,
+ MFVideoTransFunc_709 = 5,
+ MFVideoTransFunc_240M = 6,
+ MFVideoTransFunc_sRGB = 7,
+ MFVideoTransFunc_28 = 8,
+ MFVideoTransFunc_Log_100 = 9,
+ MFVideoTransFunc_Log_316 = 10,
+ MFVideoTransFunc_709_sym = 11,
+ MFVideoTransFunc_Last,
+ MFVideoTransFunc_ForceDWORD = 0x7FFFFFFF
+} MFVideoTransferFunction;
+
+#if (_WIN32_WINNT >= 0x0601)
+
+typedef enum _MF_Plugin_Type {
+ MF_Plugin_Type_MFT = 0,
+ MF_Plugin_Type_MediaSource = 1
+} MF_Plugin_Type;
+
+#endif /*(_WIN32_WINNT >= 0x0601)*/
+
+typedef enum _MFBYTESTREAM_SEEK_ORIGIN {
+ msoBegin,
+ msoCurrent
+} MFBYTESTREAM_SEEK_ORIGIN;
+
+typedef enum _MFNominalRange {
+ MFNominalRange_Unknown = 0,
+ MFNominalRange_Normal = 1,
+ MFNominalRange_Wide = 2,
+ MFNominalRange_0_255 = 1,
+ MFNominalRange_16_235 = 2,
+ MFNominalRange_48_208 = 3,
+ MFNominalRange_64_127 = 4
+} MFNominalRange;
+
+typedef enum _MFStandardVideoFormat {
+ MFStdVideoFormat_reserved = 0,
+ MFStdVideoFormat_NTSC,
+ MFStdVideoFormat_PAL,
+ MFStdVideoFormat_DVD_NTSC,
+ MFStdVideoFormat_DVD_PAL,
+ MFStdVideoFormat_DV_PAL,
+ MFStdVideoFormat_DV_NTSC,
+ MFStdVideoFormat_ATSC_SD480i,
+ MFStdVideoFormat_ATSC_HD1080i,
+ MFStdVideoFormat_ATSC_HD720p
+} MFStandardVideoFormat;
+
+typedef enum _MFVideoChromaSubsampling {
+ MFVideoChromaSubsampling_Unknown = 0,
+ MFVideoChromaSubsampling_ProgressiveChroma = 0x8,
+ MFVideoChromaSubsampling_Horizontally_Cosited = 0x4,
+ MFVideoChromaSubsampling_Vertically_Cosited = 0x2,
+ MFVideoChromaSubsampling_Vertically_AlignedChromaPlanes = 0x1,
+ MFVideoChromaSubsampling_MPEG2 =
+ MFVideoChromaSubsampling_Horizontally_Cosited |
+ MFVideoChromaSubsampling_Vertically_AlignedChromaPlanes,
+ MFVideoChromaSubsampling_MPEG1 =
+ MFVideoChromaSubsampling_Vertically_AlignedChromaPlanes,
+ MFVideoChromaSubsampling_DV_PAL =
+ MFVideoChromaSubsampling_Horizontally_Cosited |
+ MFVideoChromaSubsampling_Vertically_Cosited,
+ MFVideoChromaSubsampling_Cosited =
+ MFVideoChromaSubsampling_Horizontally_Cosited |
+ MFVideoChromaSubsampling_Vertically_Cosited |
+ MFVideoChromaSubsampling_Vertically_AlignedChromaPlanes,
+ MFVideoChromaSubsampling_Last = MFVideoChromaSubsampling_Cosited + 1,
+ MFVideoChromaSubsampling_ForceDWORD = 0x7FFFFFFF
+} MFVideoChromaSubsampling;
+
+typedef enum _MFVideoInterlaceMode {
+ MFVideoInterlace_Unknown = 0,
+ MFVideoInterlace_Progressive = 2,
+ MFVideoInterlace_FieldInterleavedUpperFirst = 3,
+ MFVideoInterlace_FieldInterleavedLowerFirst = 4,
+ MFVideoInterlace_FieldSingleUpper = 5,
+ MFVideoInterlace_FieldSingleLower = 6,
+ MFVideoInterlace_MixedInterlaceOrProgressive = 7,
+ MFVideoInterlace_Last,
+ MFVideoInterlace_ForceDWORD = 0x7FFFFFFF
+} MFVideoInterlaceMode;
+
+typedef enum _MFVideoLighting {
+ MFVideoLighting_Unknown = 0,
+ MFVideoLighting_bright = 1,
+ MFVideoLighting_office = 2,
+ MFVideoLighting_dim = 3,
+ MFVideoLighting_dark = 4,
+ MFVideoLighting_Last,
+ MFVideoLighting_ForceDWORD = 0x7FFFFFFF
+} MFVideoLighting;
+
+typedef enum _MFVideoPrimaries {
+ MFVideoPrimaries_Unknown = 0,
+ MFVideoPrimaries_reserved = 1,
+ MFVideoPrimaries_BT709 = 2,
+ MFVideoPrimaries_BT470_2_SysM = 3,
+ MFVideoPrimaries_BT470_2_SysBG = 4,
+ MFVideoPrimaries_SMPTE170M = 5,
+ MFVideoPrimaries_SMPTE240M = 6,
+ MFVideoPrimaries_EBU3213 = 7,
+ MFVideoPrimaries_SMPTE_C = 8,
+ MFVideoPrimaries_Last,
+ MFVideoPrimaries_ForceDWORD = 0x7FFFFFFF
+} MFVideoPrimaries;
+
+typedef enum _MFVideoTransferMatrix {
+ MFVideoTransferMatrix_Unknown = 0,
+ MFVideoTransferMatrix_BT709 = 1,
+ MFVideoTransferMatrix_BT601 = 2,
+ MFVideoTransferMatrix_SMPTE240M = 3,
+ MFVideoTransferMatrix_Last,
+ MFVideoTransferMatrix_ForceDWORD = 0x7FFFFFFF
+} MFVideoTransferMatrix;
+
+typedef struct _MFRatio {
+ DWORD Numerator;
+ DWORD Denominator;
+} MFRatio;
+
+typedef struct _MFOffset {
+ WORD fract;
+ short value;
+} MFOffset;
+
+typedef struct _MFVideoArea {
+ MFOffset OffsetX;
+ MFOffset OffsetY;
+ SIZE Area;
+} MFVideoArea;
+
+typedef enum _MFVideoFlags {
+ MFVideoFlag_PAD_TO_Mask = 0x0001 | 0x0002,
+ MFVideoFlag_PAD_TO_None = 0 * 0x0001,
+ MFVideoFlag_PAD_TO_4x3 = 1 * 0x0001,
+ MFVideoFlag_PAD_TO_16x9 = 2 * 0x0001,
+ MFVideoFlag_SrcContentHintMask = 0x0004 | 0x0008 | 0x0010,
+ MFVideoFlag_SrcContentHintNone = 0 * 0x0004,
+ MFVideoFlag_SrcContentHint16x9 = 1 * 0x0004,
+ MFVideoFlag_SrcContentHint235_1 = 2 * 0x0004,
+ MFVideoFlag_AnalogProtected = 0x0020,
+ MFVideoFlag_DigitallyProtected = 0x0040,
+ MFVideoFlag_ProgressiveContent = 0x0080,
+ MFVideoFlag_FieldRepeatCountMask = 0x0100 | 0x0200 | 0x0400,
+ MFVideoFlag_FieldRepeatCountShift = 8,
+ MFVideoFlag_ProgressiveSeqReset = 0x0800,
+ MFVideoFlag_PanScanEnabled = 0x20000,
+ MFVideoFlag_LowerFieldFirst = 0x40000,
+ MFVideoFlag_BottomUpLinearRep = 0x80000,
+ MFVideoFlags_DXVASurface = 0x100000,
+ MFVideoFlags_RenderTargetSurface = 0x400000,
+ MFVideoFlags_ForceQWORD = 0x7FFFFFFF
+} MFVideoFlags;
+
+typedef struct _MFVideoCompressedInfo {
+ LONGLONG AvgBitrate;
+ LONGLONG AvgBitErrorRate;
+ DWORD MaxKeyFrameSpacing;
+} MFVideoCompressedInfo;
+
+typedef struct _MFVideoInfo {
+ DWORD dwWidth;
+ DWORD dwHeight;
+ MFRatio PixelAspectRatio;
+ MFVideoChromaSubsampling SourceChromaSubsampling;
+ MFVideoInterlaceMode InterlaceMode;
+ MFVideoTransferFunction TransferFunction;
+ MFVideoPrimaries ColorPrimaries;
+ MFVideoTransferMatrix TransferMatrix;
+ MFVideoLighting SourceLighting;
+ MFRatio FramesPerSecond;
+ MFNominalRange NominalRange;
+ MFVideoArea GeometricAperture;
+ MFVideoArea MinimumDisplayAperture;
+ MFVideoArea PanScanAperture;
+ unsigned __int64 VideoFlags;
+} MFVideoInfo;
+
+typedef struct _MFARGB {
+ BYTE rgbBlue;
+ BYTE rgbGreen;
+ BYTE rgbRed;
+ BYTE rgbAlpha;
+} MFARGB;
+
+typedef struct __MFAYUVSample {
+ BYTE bCrValue;
+ BYTE bCbValue;
+ BYTE bYValue;
+ BYTE bSampleAlpha8;
+} MFAYUVSample;
+
+typedef union _MFPaletteEntry {
+ MFARGB ARGB;
+ MFAYUVSample AYCbCr;
+} MFPaletteEntry;
+
+typedef struct _MFVideoSurfaceInfo {
+ DWORD Format;
+ DWORD PaletteEntries;
+ MFPaletteEntry Palette[];
+} MFVideoSurfaceInfo;
+
+typedef struct _MFVIDEOFORMAT {
+ DWORD dwSize;
+ MFVideoInfo videoInfo;
+ GUID guidFormat;
+ MFVideoCompressedInfo compressedInfo;
+ MFVideoSurfaceInfo surfaceInfo;
+} MFVIDEOFORMAT;
+
+#define MF_MEDIATYPE_EQUAL_MAJOR_TYPES 0x00000001
+#define MF_MEDIATYPE_EQUAL_FORMAT_TYPES 0x00000002
+#define MF_MEDIATYPE_EQUAL_FORMAT_DATA 0x00000004
+#define MF_MEDIATYPE_EQUAL_FORMAT_USER_DATA 0x00000008
+
+#define MFBYTESTREAM_IS_READABLE 0x00000001
+#define MFBYTESTREAM_IS_WRITABLE 0x00000002
+#define MFBYTESTREAM_IS_SEEKABLE 0x00000004
+#define MFBYTESTREAM_IS_REMOTE 0x00000008
+#define MFBYTESTREAM_IS_DIRECTORY 0x00000080
+#define MFBYTESTREAM_HAS_SLOW_SEEK 0x00000100
+#define MFBYTESTREAM_IS_PARTIALLY_DOWNLOADED 0x00000200
+#define MFBYTESTREAM_SHARE_WRITE 0x00000400
+
+#undef INTERFACE
+#define INTERFACE IMFRemoteAsyncCallback
+DECLARE_INTERFACE_(IMFRemoteAsyncCallback,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFRemoteAsyncCallback methods */
+ STDMETHOD(Invoke)(THIS) PURE; /*Not used by applications.*/
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IMFRemoteAsyncCallback_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFRemoteAsyncCallback_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFRemoteAsyncCallback_Release(This) (This)->pVtbl->Release(This)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IMFAsyncResult
+DECLARE_INTERFACE_(IMFAsyncResult,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFAsyncResult methods */
+ STDMETHOD_(HRESULT,GetObject)(THIS_ IUnknown **ppObject) PURE;
+ STDMETHOD_(HRESULT,GetState)(THIS_ IUnknown **ppunkState) PURE;
+ STDMETHOD_(IUnknown *,GetStateNoAddRef)(THIS) PURE;
+ STDMETHOD_(HRESULT,GetStatus)(THIS) PURE;
+ STDMETHOD_(HRESULT,SetStatus)(THIS_ HRESULT hrStatus) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IMFAsyncResult_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFAsyncResult_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFAsyncResult_Release(This) (This)->pVtbl->Release(This)
+#define IMFAsyncResult_GetObject(This,ppObject) (This)->lpVtbl->GetObject(This,ppObject)
+#define IMFAsyncResult_GetState(This,ppunkState) (This)->lpVtbl->GetState(This,ppunkState)
+#define IMFAsyncResult_GetStateNoAddRef() (This)->lpVtbl->GetStateNoAddRef(This)
+#define IMFAsyncResult_GetStatus() (This)->lpVtbl->GetStatus(This)
+#define IMFAsyncResult_SetStatus(This,hrStatus) (This)->lpVtbl->SetStatus(This,hrStatus)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IMFMediaEventGenerator
+DECLARE_INTERFACE_(IMFMediaEventGenerator,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFMediaEventGenerator methods */
+ /*[call_as(BeginGetEvent)] */
+ STDMETHOD_(HRESULT,BeginGetEvent)(THIS_ IMFAsyncCallback *pCallback,IUnknown *punkState) PURE;
+ STDMETHOD_(HRESULT,EndGetEvent)(THIS_ IMFAsyncResult *pResult,IMFMediaEvent **ppEvent) PURE;
+ STDMETHOD_(HRESULT,GetEvent)(THIS_ DWORD dwFlags,IMFMediaEvent **ppEvent) PURE;
+ STDMETHOD_(HRESULT,QueueEvent)(THIS_ MediaEventType met,REFGUID guidExtendedType,HRESULT hrStatus,const PROPVARIANT *pvValue) PURE;
+ STDMETHOD_(HRESULT,RemoteEndGetEvent)(THIS_ IUnknown *pResult,DWORD *pcbEvent,BYTE **ppbEvent) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IMFMediaEventGenerator_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFMediaEventGenerator_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFMediaEventGenerator_Release(This) (This)->pVtbl->Release(This)
+#define IMFMediaEventGenerator_BeginGetEvent(This,pCallback,punkState) (This)->lpVtbl->BeginGetEvent(This,pCallback,punkState)
+#define IMFMediaEventGenerator_EndGetEvent(This,pResult,ppEvent) (This)->lpVtbl->EndGetEvent(This,pResult,ppEvent)
+#define IMFMediaEventGenerator_GetEvent(This,dwFlags,ppEvent) (This)->lpVtbl->GetEvent(This,dwFlags,ppEvent)
+#define IMFMediaEventGenerator_QueueEvent(This,met,guidExtendedType,hrStatus,pvValue) (This)->lpVtbl->QueueEvent(This,met,guidExtendedType,hrStatus,pvValue)
+#define IMFMediaEventGenerator_RemoteEndGetEvent(This,pResult,pcbEvent,ppbEvent) (This)->lpVtbl->RemoteEndGetEvent(This,pResult,pcbEvent,ppbEvent)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IMFMediaBuffer
+DECLARE_INTERFACE_(IMFMediaBuffer,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFMediaBuffer methods */
+ STDMETHOD_(HRESULT,GetCurrentLength)(THIS_ DWORD *pcbCurrentLength) PURE;
+ STDMETHOD_(HRESULT,GetMaxLength)(THIS_ DWORD *pcbMaxLength) PURE;
+ STDMETHOD_(HRESULT,Lock)(THIS_ BYTE **ppbBuffer,DWORD *pcbMaxLength,DWORD *pcbCurrentLength) PURE;
+ STDMETHOD_(HRESULT,SetCurrentLength)(THIS_ DWORD cbCurrentLength) PURE;
+ STDMETHOD_(HRESULT,Unlock)(THIS) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IMFMediaBuffer_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFMediaBuffer_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFMediaBuffer_Release(This) (This)->pVtbl->Release(This)
+#define IMFMediaBuffer_GetCurrentLength(This,pcbCurrentLength) (This)->lpVtbl->GetCurrentLength(This,pcbCurrentLength)
+#define IMFMediaBuffer_GetMaxLength(This,pcbMaxLength) (This)->lpVtbl->GetMaxLength(This,pcbMaxLength)
+#define IMFMediaBuffer_Lock(This,ppbBuffer,pcbMaxLength,pcbCurrentLength) (This)->lpVtbl->Lock(This,ppbBuffer,pcbMaxLength,pcbCurrentLength)
+#define IMFMediaBuffer_SetCurrentLength(This,cbCurrentLength) (This)->lpVtbl->SetCurrentLength(This,cbCurrentLength)
+#define IMFMediaBuffer_Unlock() (This)->lpVtbl->Unlock(This)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IMFAttributes
+DECLARE_INTERFACE_(IMFAttributes,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFAttributes methods */
+ STDMETHOD_(HRESULT,Compare)(THIS_ IMFAttributes *pTheirs,MF_ATTRIBUTES_MATCH_TYPE MatchType,WINBOOL *pbResult) PURE;
+ STDMETHOD_(HRESULT,CompareItem)(THIS_ REFGUID guidKey,REFPROPVARIANT Value,WINBOOL *pbResult) PURE;
+ STDMETHOD_(HRESULT,CopyAllItems)(THIS_ IMFAttributes *pDest) PURE;
+ STDMETHOD_(HRESULT,DeleteAllItems)(THIS) PURE;
+ STDMETHOD_(HRESULT,DeleteItem)(THIS_ REFGUID guidKey) PURE;
+ STDMETHOD_(HRESULT,GetAllocatedBlob)(THIS_ REFGUID guidKey,UINT8 **ppBuf,UINT32 *pcbSize) PURE;
+ STDMETHOD_(HRESULT,GetAllocatedString)(THIS_ REFGUID guidKey,LPWSTR *ppwszValue,UINT32 *pcchLength) PURE;
+ STDMETHOD_(HRESULT,GetBlob)(THIS_ REFGUID guidKey,UINT8 *pBuf,UINT32 cbBufSize,UINT32 *pcbBlobSize) PURE;
+ STDMETHOD_(HRESULT,GetBlobSize)(THIS_ REFGUID guidKey,UINT32 *pcbBlobSize) PURE;
+ STDMETHOD_(HRESULT,GetCount)(THIS_ UINT32 *pcItems) PURE;
+ STDMETHOD_(HRESULT,GetDouble)(THIS_ REFGUID guidKey,double *pfValue) PURE;
+ STDMETHOD_(HRESULT,GetGUID)(THIS_ REFGUID guidKey,GUID *pguidValue) PURE;
+ STDMETHOD_(HRESULT,GetItem)(THIS_ REFGUID guidKey,PROPVARIANT *pValue) PURE;
+ STDMETHOD_(HRESULT,GetItemByIndex)(THIS_ UINT32 unIndex,GUID *pguidKey,PROPVARIANT *pValue) PURE;
+ STDMETHOD_(HRESULT,GetItemType)(THIS_ REFGUID guidKey,MF_ATTRIBUTE_TYPE *pType) PURE;
+ STDMETHOD_(HRESULT,GetString)(THIS_ REFGUID guidKey,LPWSTR pwszValue,UINT32 cchBufSize,UINT32 *pcchLength) PURE;
+ STDMETHOD_(HRESULT,GetStringLength)(THIS_ REFGUID guidKey,UINT32 *pcchLength) PURE;
+ STDMETHOD_(HRESULT,GetUINT32)(THIS_ REFGUID guidKey,UINT32 *punValue) PURE;
+ STDMETHOD_(HRESULT,GetUINT64)(THIS_ REFGUID guidKey,UINT64 *punValue) PURE;
+ STDMETHOD_(HRESULT,GetUnknown)(THIS_ REFGUID guidKey,REFIID riid,LPVOID *ppv) PURE;
+ STDMETHOD_(HRESULT,LockStore)(THIS) PURE;
+ STDMETHOD_(HRESULT,SetBlob)(THIS_ REFGUID guidKey,const UINT8 *pBuf,UINT32 cbBufSize) PURE;
+ STDMETHOD_(HRESULT,SetDouble)(THIS_ REFGUID guidKey,double fValue) PURE;
+ STDMETHOD_(HRESULT,SetGUID)(THIS_ REFGUID guidKey,REFGUID guidValue) PURE;
+ STDMETHOD_(HRESULT,SetItem)(THIS_ REFGUID guidKey,REFPROPVARIANT Value) PURE;
+ STDMETHOD_(HRESULT,SetString)(THIS_ REFGUID guidKey,LPCWSTR wszValue) PURE;
+ STDMETHOD_(HRESULT,SetUINT32)(THIS_ REFGUID guidKey,UINT32 unValue) PURE;
+ STDMETHOD_(HRESULT,SetUINT64)(THIS_ REFGUID guidKey,UINT64 unValue) PURE;
+ STDMETHOD_(HRESULT,SetUnknown)(THIS_ REFGUID guidKey,IUnknown *pUnknown) PURE;
+ STDMETHOD_(HRESULT,UnlockStore)(THIS) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IMFAttributes_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFAttributes_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFAttributes_Release(This) (This)->pVtbl->Release(This)
+#define IMFAttributes_Compare(This,pTheirs,MatchType,pbResult) (This)->lpVtbl->Compare(This,pTheirs,MatchType,pbResult)
+#define IMFAttributes_CompareItem(This,guidKey,Value,pbResult) (This)->lpVtbl->CompareItem(This,guidKey,Value,pbResult)
+#define IMFAttributes_CopyAllItems(This,pDest) (This)->lpVtbl->CopyAllItems(This,pDest)
+#define IMFAttributes_DeleteAllItems() (This)->lpVtbl->DeleteAllItems(This)
+#define IMFAttributes_DeleteItem(This,guidKey) (This)->lpVtbl->DeleteItem(This,guidKey)
+#define IMFAttributes_GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) (This)->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize)
+#define IMFAttributes_GetAllocatedString(This,guidKey,ppwszValue,pcchLength) (This)->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength)
+#define IMFAttributes_GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) (This)->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize)
+#define IMFAttributes_GetBlobSize(This,guidKey,pcbBlobSize) (This)->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize)
+#define IMFAttributes_GetCount(This,pcItems) (This)->lpVtbl->GetCount(This,pcItems)
+#define IMFAttributes_GetDouble(This,guidKey,pfValue) (This)->lpVtbl->GetDouble(This,guidKey,pfValue)
+#define IMFAttributes_GetGUID(This,guidKey,pguidValue) (This)->lpVtbl->GetGUID(This,guidKey,pguidValue)
+#define IMFAttributes_GetItem(This,guidKey,pValue) (This)->lpVtbl->GetItem(This,guidKey,pValue)
+#define IMFAttributes_GetItemByIndex(This,unIndex,pguidKey,pValue) (This)->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue)
+#define IMFAttributes_GetItemType(This,guidKey,pType) (This)->lpVtbl->GetItemType(This,guidKey,pType)
+#define IMFAttributes_GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) (This)->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength)
+#define IMFAttributes_GetStringLength(This,guidKey,pcchLength) (This)->lpVtbl->GetStringLength(This,guidKey,pcchLength)
+#define IMFAttributes_GetUINT32(This,guidKey,punValue) (This)->lpVtbl->GetUINT32(This,guidKey,punValue)
+#define IMFAttributes_GetUINT64(This,guidKey,punValue) (This)->lpVtbl->GetUINT64(This,guidKey,punValue)
+#define IMFAttributes_GetUnknown(This,guidKey,riid,ppv) (This)->lpVtbl->GetUnknown(This,guidKey,riid,ppv)
+#define IMFAttributes_LockStore() (This)->lpVtbl->LockStore(This)
+#define IMFAttributes_SetBlob(This,guidKey,pBuf,cbBufSize) (This)->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize)
+#define IMFAttributes_SetDouble(This,guidKey,fValue) (This)->lpVtbl->SetDouble(This,guidKey,fValue)
+#define IMFAttributes_SetGUID(This,guidKey,guidValue) (This)->lpVtbl->SetGUID(This,guidKey,guidValue)
+#define IMFAttributes_SetItem(This,guidKey,Value) (This)->lpVtbl->SetItem(This,guidKey,Value)
+#define IMFAttributes_SetString(This,guidKey,wszValue) (This)->lpVtbl->SetString(This,guidKey,wszValue)
+#define IMFAttributes_SetUINT32(This,guidKey,unValue) (This)->lpVtbl->SetUINT32(This,guidKey,unValue)
+#define IMFAttributes_SetUINT64(This,guidKey,unValue) (This)->lpVtbl->SetUINT64(This,guidKey,unValue)
+#define IMFAttributes_SetUnknown(This,guidKey,pUnknown) (This)->lpVtbl->SetUnknown(This,guidKey,pUnknown)
+#define IMFAttributes_UnlockStore() (This)->lpVtbl->UnlockStore(This)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IMFMediaType
+DECLARE_INTERFACE_(IMFMediaType,IMFAttributes)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFAttributes methods */
+ STDMETHOD_(HRESULT,Compare)(THIS_ IMFAttributes *pTheirs,MF_ATTRIBUTES_MATCH_TYPE MatchType,WINBOOL *pbResult) PURE;
+ STDMETHOD_(HRESULT,CompareItem)(THIS_ REFGUID guidKey,REFPROPVARIANT Value,WINBOOL *pbResult) PURE;
+ STDMETHOD_(HRESULT,CopyAllItems)(THIS_ IMFAttributes *pDest) PURE;
+ STDMETHOD_(HRESULT,DeleteAllItems)(THIS) PURE;
+ STDMETHOD_(HRESULT,DeleteItem)(THIS_ REFGUID guidKey) PURE;
+ STDMETHOD_(HRESULT,GetAllocatedBlob)(THIS_ REFGUID guidKey,UINT8 **ppBuf,UINT32 *pcbSize) PURE;
+ STDMETHOD_(HRESULT,GetAllocatedString)(THIS_ REFGUID guidKey,LPWSTR *ppwszValue,UINT32 *pcchLength) PURE;
+ STDMETHOD_(HRESULT,GetBlob)(THIS_ REFGUID guidKey,UINT8 *pBuf,UINT32 cbBufSize,UINT32 *pcbBlobSize) PURE;
+ STDMETHOD_(HRESULT,GetBlobSize)(THIS_ REFGUID guidKey,UINT32 *pcbBlobSize) PURE;
+ STDMETHOD_(HRESULT,GetCount)(THIS_ UINT32 *pcItems) PURE;
+ STDMETHOD_(HRESULT,GetDouble)(THIS_ REFGUID guidKey,double *pfValue) PURE;
+ STDMETHOD_(HRESULT,GetGUID)(THIS_ REFGUID guidKey,GUID *pguidValue) PURE;
+ STDMETHOD_(HRESULT,GetItem)(THIS_ REFGUID guidKey,PROPVARIANT *pValue) PURE;
+ STDMETHOD_(HRESULT,GetItemByIndex)(THIS_ UINT32 unIndex,GUID *pguidKey,PROPVARIANT *pValue) PURE;
+ STDMETHOD_(HRESULT,GetItemType)(THIS_ REFGUID guidKey,MF_ATTRIBUTE_TYPE *pType) PURE;
+ STDMETHOD_(HRESULT,GetString)(THIS_ REFGUID guidKey,LPWSTR pwszValue,UINT32 cchBufSize,UINT32 *pcchLength) PURE;
+ STDMETHOD_(HRESULT,GetStringLength)(THIS_ REFGUID guidKey,UINT32 *pcchLength) PURE;
+ STDMETHOD_(HRESULT,GetUINT32)(THIS_ REFGUID guidKey,UINT32 *punValue) PURE;
+ STDMETHOD_(HRESULT,GetUINT64)(THIS_ REFGUID guidKey,UINT64 *punValue) PURE;
+ STDMETHOD_(HRESULT,GetUnknown)(THIS_ REFGUID guidKey,REFIID riid,LPVOID *ppv) PURE;
+ STDMETHOD_(HRESULT,LockStore)(THIS) PURE;
+ STDMETHOD_(HRESULT,SetBlob)(THIS_ REFGUID guidKey,const UINT8 *pBuf,UINT32 cbBufSize) PURE;
+ STDMETHOD_(HRESULT,SetDouble)(THIS_ REFGUID guidKey,double fValue) PURE;
+ STDMETHOD_(HRESULT,SetGUID)(THIS_ REFGUID guidKey,REFGUID guidValue) PURE;
+ STDMETHOD_(HRESULT,SetItem)(THIS_ REFGUID guidKey,REFPROPVARIANT Value) PURE;
+ STDMETHOD_(HRESULT,SetString)(THIS_ REFGUID guidKey,LPCWSTR wszValue) PURE;
+ STDMETHOD_(HRESULT,SetUINT32)(THIS_ REFGUID guidKey,UINT32 unValue) PURE;
+ STDMETHOD_(HRESULT,SetUINT64)(THIS_ REFGUID guidKey,UINT64 unValue) PURE;
+ STDMETHOD_(HRESULT,SetUnknown)(THIS_ REFGUID guidKey,IUnknown *pUnknown) PURE;
+ STDMETHOD_(HRESULT,UnlockStore)(THIS) PURE;
+
+ /* IMFMediaType methods */
+ STDMETHOD_(HRESULT,FreeRepresentation)(THIS_ GUID guidRepresentation,void *pvRepresentation) PURE;
+ STDMETHOD_(HRESULT,GetMajorType)(THIS_ GUID *pguidMajorType) PURE;
+ STDMETHOD_(HRESULT,GetRepresentation)(THIS_ GUID guidRepresentation,void **ppvRepresentation) PURE;
+ STDMETHOD_(HRESULT,IsCompressedFormat)(THIS_ WINBOOL *pfCompressed) PURE;
+ STDMETHOD_(HRESULT,IsEqual)(THIS_ IMFMediaType *pIMediaType,DWORD *pdwFlags) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IMFMediaType_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFMediaType_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFMediaType_Release(This) (This)->pVtbl->Release(This)
+#define IMFMediaType_Compare(This,pTheirs,MatchType,pbResult) (This)->lpVtbl->Compare(This,pTheirs,MatchType,pbResult)
+#define IMFMediaType_CompareItem(This,guidKey,Value,pbResult) (This)->lpVtbl->CompareItem(This,guidKey,Value,pbResult)
+#define IMFMediaType_CopyAllItems(This,pDest) (This)->lpVtbl->CopyAllItems(This,pDest)
+#define IMFMediaType_DeleteAllItems() (This)->lpVtbl->DeleteAllItems(This)
+#define IMFMediaType_DeleteItem(This,guidKey) (This)->lpVtbl->DeleteItem(This,guidKey)
+#define IMFMediaType_GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) (This)->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize)
+#define IMFMediaType_GetAllocatedString(This,guidKey,ppwszValue,pcchLength) (This)->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength)
+#define IMFMediaType_GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) (This)->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize)
+#define IMFMediaType_GetBlobSize(This,guidKey,pcbBlobSize) (This)->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize)
+#define IMFMediaType_GetCount(This,pcItems) (This)->lpVtbl->GetCount(This,pcItems)
+#define IMFMediaType_GetDouble(This,guidKey,pfValue) (This)->lpVtbl->GetDouble(This,guidKey,pfValue)
+#define IMFMediaType_GetGUID(This,guidKey,pguidValue) (This)->lpVtbl->GetGUID(This,guidKey,pguidValue)
+#define IMFMediaType_GetItem(This,guidKey,pValue) (This)->lpVtbl->GetItem(This,guidKey,pValue)
+#define IMFMediaType_GetItemByIndex(This,unIndex,pguidKey,pValue) (This)->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue)
+#define IMFMediaType_GetItemType(This,guidKey,pType) (This)->lpVtbl->GetItemType(This,guidKey,pType)
+#define IMFMediaType_GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) (This)->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength)
+#define IMFMediaType_GetStringLength(This,guidKey,pcchLength) (This)->lpVtbl->GetStringLength(This,guidKey,pcchLength)
+#define IMFMediaType_GetUINT32(This,guidKey,punValue) (This)->lpVtbl->GetUINT32(This,guidKey,punValue)
+#define IMFMediaType_GetUINT64(This,guidKey,punValue) (This)->lpVtbl->GetUINT64(This,guidKey,punValue)
+#define IMFMediaType_GetUnknown(This,guidKey,riid,ppv) (This)->lpVtbl->GetUnknown(This,guidKey,riid,ppv)
+#define IMFMediaType_LockStore() (This)->lpVtbl->LockStore(This)
+#define IMFMediaType_SetBlob(This,guidKey,pBuf,cbBufSize) (This)->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize)
+#define IMFMediaType_SetDouble(This,guidKey,fValue) (This)->lpVtbl->SetDouble(This,guidKey,fValue)
+#define IMFMediaType_SetGUID(This,guidKey,guidValue) (This)->lpVtbl->SetGUID(This,guidKey,guidValue)
+#define IMFMediaType_SetItem(This,guidKey,Value) (This)->lpVtbl->SetItem(This,guidKey,Value)
+#define IMFMediaType_SetString(This,guidKey,wszValue) (This)->lpVtbl->SetString(This,guidKey,wszValue)
+#define IMFMediaType_SetUINT32(This,guidKey,unValue) (This)->lpVtbl->SetUINT32(This,guidKey,unValue)
+#define IMFMediaType_SetUINT64(This,guidKey,unValue) (This)->lpVtbl->SetUINT64(This,guidKey,unValue)
+#define IMFMediaType_SetUnknown(This,guidKey,pUnknown) (This)->lpVtbl->SetUnknown(This,guidKey,pUnknown)
+#define IMFMediaType_UnlockStore() (This)->lpVtbl->UnlockStore(This)
+#define IMFMediaType_FreeRepresentation(This,guidRepresentation,pvRepresentation) (This)->lpVtbl->FreeRepresentation(This,guidRepresentation,pvRepresentation)
+#define IMFMediaType_GetMajorType(This,pguidMajorType) (This)->lpVtbl->GetMajorType(This,pguidMajorType)
+#define IMFMediaType_GetRepresentation(This,guidRepresentation,ppvRepresentation) (This)->lpVtbl->GetRepresentation(This,guidRepresentation,ppvRepresentation)
+#define IMFMediaType_IsCompressedFormat(This,pfCompressed) (This)->lpVtbl->IsCompressedFormat(This,pfCompressed)
+#define IMFMediaType_IsEqual(This,pIMediaType,pdwFlags) (This)->lpVtbl->IsEqual(This,pIMediaType,pdwFlags)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IMFAudioMediaType
+DECLARE_INTERFACE_(IMFAudioMediaType,IMFAudioMediaType)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFAttributes methods */
+ STDMETHOD_(HRESULT,Compare)(THIS_ IMFAttributes *pTheirs,MF_ATTRIBUTES_MATCH_TYPE MatchType,WINBOOL *pbResult) PURE;
+ STDMETHOD_(HRESULT,CompareItem)(THIS_ REFGUID guidKey,REFPROPVARIANT Value,WINBOOL *pbResult) PURE;
+ STDMETHOD_(HRESULT,CopyAllItems)(THIS_ IMFAttributes *pDest) PURE;
+ STDMETHOD_(HRESULT,DeleteAllItems)(THIS) PURE;
+ STDMETHOD_(HRESULT,DeleteItem)(THIS_ REFGUID guidKey) PURE;
+ STDMETHOD_(HRESULT,GetAllocatedBlob)(THIS_ REFGUID guidKey,UINT8 **ppBuf,UINT32 *pcbSize) PURE;
+ STDMETHOD_(HRESULT,GetAllocatedString)(THIS_ REFGUID guidKey,LPWSTR *ppwszValue,UINT32 *pcchLength) PURE;
+ STDMETHOD_(HRESULT,GetBlob)(THIS_ REFGUID guidKey,UINT8 *pBuf,UINT32 cbBufSize,UINT32 *pcbBlobSize) PURE;
+ STDMETHOD_(HRESULT,GetBlobSize)(THIS_ REFGUID guidKey,UINT32 *pcbBlobSize) PURE;
+ STDMETHOD_(HRESULT,GetCount)(THIS_ UINT32 *pcItems) PURE;
+ STDMETHOD_(HRESULT,GetDouble)(THIS_ REFGUID guidKey,double *pfValue) PURE;
+ STDMETHOD_(HRESULT,GetGUID)(THIS_ REFGUID guidKey,GUID *pguidValue) PURE;
+ STDMETHOD_(HRESULT,GetItem)(THIS_ REFGUID guidKey,PROPVARIANT *pValue) PURE;
+ STDMETHOD_(HRESULT,GetItemByIndex)(THIS_ UINT32 unIndex,GUID *pguidKey,PROPVARIANT *pValue) PURE;
+ STDMETHOD_(HRESULT,GetItemType)(THIS_ REFGUID guidKey,MF_ATTRIBUTE_TYPE *pType) PURE;
+ STDMETHOD_(HRESULT,GetString)(THIS_ REFGUID guidKey,LPWSTR pwszValue,UINT32 cchBufSize,UINT32 *pcchLength) PURE;
+ STDMETHOD_(HRESULT,GetStringLength)(THIS_ REFGUID guidKey,UINT32 *pcchLength) PURE;
+ STDMETHOD_(HRESULT,GetUINT32)(THIS_ REFGUID guidKey,UINT32 *punValue) PURE;
+ STDMETHOD_(HRESULT,GetUINT64)(THIS_ REFGUID guidKey,UINT64 *punValue) PURE;
+ STDMETHOD_(HRESULT,GetUnknown)(THIS_ REFGUID guidKey,REFIID riid,LPVOID *ppv) PURE;
+ STDMETHOD_(HRESULT,LockStore)(THIS) PURE;
+ STDMETHOD_(HRESULT,SetBlob)(THIS_ REFGUID guidKey,const UINT8 *pBuf,UINT32 cbBufSize) PURE;
+ STDMETHOD_(HRESULT,SetDouble)(THIS_ REFGUID guidKey,double fValue) PURE;
+ STDMETHOD_(HRESULT,SetGUID)(THIS_ REFGUID guidKey,REFGUID guidValue) PURE;
+ STDMETHOD_(HRESULT,SetItem)(THIS_ REFGUID guidKey,REFPROPVARIANT Value) PURE;
+ STDMETHOD_(HRESULT,SetString)(THIS_ REFGUID guidKey,LPCWSTR wszValue) PURE;
+ STDMETHOD_(HRESULT,SetUINT32)(THIS_ REFGUID guidKey,UINT32 unValue) PURE;
+ STDMETHOD_(HRESULT,SetUINT64)(THIS_ REFGUID guidKey,UINT64 unValue) PURE;
+ STDMETHOD_(HRESULT,SetUnknown)(THIS_ REFGUID guidKey,IUnknown *pUnknown) PURE;
+ STDMETHOD_(HRESULT,UnlockStore)(THIS) PURE;
+
+ /* IMFMediaType methods */
+ STDMETHOD_(HRESULT,FreeRepresentation)(THIS_ GUID guidRepresentation,void *pvRepresentation) PURE;
+ STDMETHOD_(HRESULT,GetMajorType)(THIS_ GUID *pguidMajorType) PURE;
+ STDMETHOD_(HRESULT,GetRepresentation)(THIS_ GUID guidRepresentation,void **ppvRepresentation) PURE;
+ STDMETHOD_(HRESULT,IsCompressedFormat)(THIS_ WINBOOL *pfCompressed) PURE;
+ STDMETHOD_(HRESULT,IsEqual)(THIS_ IMFMediaType *pIMediaType,DWORD *pdwFlags) PURE;
+
+ /* IMFAudioMediaType methods */
+ STDMETHOD_(const WAVEFORMATEX *,GetAudioFormat)(THIS) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IMFAudioMediaType_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFAudioMediaType_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFAudioMediaType_Release(This) (This)->pVtbl->Release(This)
+#define IMFAudioMediaType_Compare(This,pTheirs,MatchType,pbResult) (This)->lpVtbl->Compare(This,pTheirs,MatchType,pbResult)
+#define IMFAudioMediaType_CompareItem(This,guidKey,Value,pbResult) (This)->lpVtbl->CompareItem(This,guidKey,Value,pbResult)
+#define IMFAudioMediaType_CopyAllItems(This,pDest) (This)->lpVtbl->CopyAllItems(This,pDest)
+#define IMFAudioMediaType_DeleteAllItems() (This)->lpVtbl->DeleteAllItems(This)
+#define IMFAudioMediaType_DeleteItem(This,guidKey) (This)->lpVtbl->DeleteItem(This,guidKey)
+#define IMFAudioMediaType_GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) (This)->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize)
+#define IMFAudioMediaType_GetAllocatedString(This,guidKey,ppwszValue,pcchLength) (This)->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength)
+#define IMFAudioMediaType_GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) (This)->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize)
+#define IMFAudioMediaType_GetBlobSize(This,guidKey,pcbBlobSize) (This)->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize)
+#define IMFAudioMediaType_GetCount(This,pcItems) (This)->lpVtbl->GetCount(This,pcItems)
+#define IMFAudioMediaType_GetDouble(This,guidKey,pfValue) (This)->lpVtbl->GetDouble(This,guidKey,pfValue)
+#define IMFAudioMediaType_GetGUID(This,guidKey,pguidValue) (This)->lpVtbl->GetGUID(This,guidKey,pguidValue)
+#define IMFAudioMediaType_GetItem(This,guidKey,pValue) (This)->lpVtbl->GetItem(This,guidKey,pValue)
+#define IMFAudioMediaType_GetItemByIndex(This,unIndex,pguidKey,pValue) (This)->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue)
+#define IMFAudioMediaType_GetItemType(This,guidKey,pType) (This)->lpVtbl->GetItemType(This,guidKey,pType)
+#define IMFAudioMediaType_GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) (This)->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength)
+#define IMFAudioMediaType_GetStringLength(This,guidKey,pcchLength) (This)->lpVtbl->GetStringLength(This,guidKey,pcchLength)
+#define IMFAudioMediaType_GetUINT32(This,guidKey,punValue) (This)->lpVtbl->GetUINT32(This,guidKey,punValue)
+#define IMFAudioMediaType_GetUINT64(This,guidKey,punValue) (This)->lpVtbl->GetUINT64(This,guidKey,punValue)
+#define IMFAudioMediaType_GetUnknown(This,guidKey,riid,ppv) (This)->lpVtbl->GetUnknown(This,guidKey,riid,ppv)
+#define IMFAudioMediaType_LockStore() (This)->lpVtbl->LockStore(This)
+#define IMFAudioMediaType_SetBlob(This,guidKey,pBuf,cbBufSize) (This)->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize)
+#define IMFAudioMediaType_SetDouble(This,guidKey,fValue) (This)->lpVtbl->SetDouble(This,guidKey,fValue)
+#define IMFAudioMediaType_SetGUID(This,guidKey,guidValue) (This)->lpVtbl->SetGUID(This,guidKey,guidValue)
+#define IMFAudioMediaType_SetItem(This,guidKey,Value) (This)->lpVtbl->SetItem(This,guidKey,Value)
+#define IMFAudioMediaType_SetString(This,guidKey,wszValue) (This)->lpVtbl->SetString(This,guidKey,wszValue)
+#define IMFAudioMediaType_SetUINT32(This,guidKey,unValue) (This)->lpVtbl->SetUINT32(This,guidKey,unValue)
+#define IMFAudioMediaType_SetUINT64(This,guidKey,unValue) (This)->lpVtbl->SetUINT64(This,guidKey,unValue)
+#define IMFAudioMediaType_SetUnknown(This,guidKey,pUnknown) (This)->lpVtbl->SetUnknown(This,guidKey,pUnknown)
+#define IMFAudioMediaType_UnlockStore() (This)->lpVtbl->UnlockStore(This)
+#define IMFAudioMediaType_FreeRepresentation(This,guidRepresentation,pvRepresentation) (This)->lpVtbl->FreeRepresentation(This,guidRepresentation,pvRepresentation)
+#define IMFAudioMediaType_GetMajorType(This,pguidMajorType) (This)->lpVtbl->GetMajorType(This,pguidMajorType)
+#define IMFAudioMediaType_GetRepresentation(This,guidRepresentation,ppvRepresentation) (This)->lpVtbl->GetRepresentation(This,guidRepresentation,ppvRepresentation)
+#define IMFAudioMediaType_IsCompressedFormat(This,pfCompressed) (This)->lpVtbl->IsCompressedFormat(This,pfCompressed)
+#define IMFAudioMediaType_IsEqual(This,pIMediaType,pdwFlags) (This)->lpVtbl->IsEqual(This,pIMediaType,pdwFlags)
+#define IMFAudioMediaType_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IMFSample
+DECLARE_INTERFACE_(IMFSample,IMFAttributes)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFAttributes methods */
+ STDMETHOD_(HRESULT,Compare)(THIS_ IMFAttributes *pTheirs,MF_ATTRIBUTES_MATCH_TYPE MatchType,WINBOOL *pbResult) PURE;
+ STDMETHOD_(HRESULT,CompareItem)(THIS_ REFGUID guidKey,REFPROPVARIANT Value,WINBOOL *pbResult) PURE;
+ STDMETHOD_(HRESULT,CopyAllItems)(THIS_ IMFAttributes *pDest) PURE;
+ STDMETHOD_(HRESULT,DeleteAllItems)(THIS) PURE;
+ STDMETHOD_(HRESULT,DeleteItem)(THIS_ REFGUID guidKey) PURE;
+ STDMETHOD_(HRESULT,GetAllocatedBlob)(THIS_ REFGUID guidKey,UINT8 **ppBuf,UINT32 *pcbSize) PURE;
+ STDMETHOD_(HRESULT,GetAllocatedString)(THIS_ REFGUID guidKey,LPWSTR *ppwszValue,UINT32 *pcchLength) PURE;
+ STDMETHOD_(HRESULT,GetBlob)(THIS_ REFGUID guidKey,UINT8 *pBuf,UINT32 cbBufSize,UINT32 *pcbBlobSize) PURE;
+ STDMETHOD_(HRESULT,GetBlobSize)(THIS_ REFGUID guidKey,UINT32 *pcbBlobSize) PURE;
+ STDMETHOD_(HRESULT,GetCount)(THIS_ UINT32 *pcItems) PURE;
+ STDMETHOD_(HRESULT,GetDouble)(THIS_ REFGUID guidKey,double *pfValue) PURE;
+ STDMETHOD_(HRESULT,GetGUID)(THIS_ REFGUID guidKey,GUID *pguidValue) PURE;
+ STDMETHOD_(HRESULT,GetItem)(THIS_ REFGUID guidKey,PROPVARIANT *pValue) PURE;
+ STDMETHOD_(HRESULT,GetItemByIndex)(THIS_ UINT32 unIndex,GUID *pguidKey,PROPVARIANT *pValue) PURE;
+ STDMETHOD_(HRESULT,GetItemType)(THIS_ REFGUID guidKey,MF_ATTRIBUTE_TYPE *pType) PURE;
+ STDMETHOD_(HRESULT,GetString)(THIS_ REFGUID guidKey,LPWSTR pwszValue,UINT32 cchBufSize,UINT32 *pcchLength) PURE;
+ STDMETHOD_(HRESULT,GetStringLength)(THIS_ REFGUID guidKey,UINT32 *pcchLength) PURE;
+ STDMETHOD_(HRESULT,GetUINT32)(THIS_ REFGUID guidKey,UINT32 *punValue) PURE;
+ STDMETHOD_(HRESULT,GetUINT64)(THIS_ REFGUID guidKey,UINT64 *punValue) PURE;
+ STDMETHOD_(HRESULT,GetUnknown)(THIS_ REFGUID guidKey,REFIID riid,LPVOID *ppv) PURE;
+ STDMETHOD_(HRESULT,LockStore)(THIS) PURE;
+ STDMETHOD_(HRESULT,SetBlob)(THIS_ REFGUID guidKey,const UINT8 *pBuf,UINT32 cbBufSize) PURE;
+ STDMETHOD_(HRESULT,SetDouble)(THIS_ REFGUID guidKey,double fValue) PURE;
+ STDMETHOD_(HRESULT,SetGUID)(THIS_ REFGUID guidKey,REFGUID guidValue) PURE;
+ STDMETHOD_(HRESULT,SetItem)(THIS_ REFGUID guidKey,REFPROPVARIANT Value) PURE;
+ STDMETHOD_(HRESULT,SetString)(THIS_ REFGUID guidKey,LPCWSTR wszValue) PURE;
+ STDMETHOD_(HRESULT,SetUINT32)(THIS_ REFGUID guidKey,UINT32 unValue) PURE;
+ STDMETHOD_(HRESULT,SetUINT64)(THIS_ REFGUID guidKey,UINT64 unValue) PURE;
+ STDMETHOD_(HRESULT,SetUnknown)(THIS_ REFGUID guidKey,IUnknown *pUnknown) PURE;
+ STDMETHOD_(HRESULT,UnlockStore)(THIS) PURE;
+
+ /* IMFMediaType methods */
+ STDMETHOD_(HRESULT,FreeRepresentation)(THIS_ GUID guidRepresentation,void *pvRepresentation) PURE;
+ STDMETHOD_(HRESULT,GetMajorType)(THIS_ GUID *pguidMajorType) PURE;
+ STDMETHOD_(HRESULT,GetRepresentation)(THIS_ GUID guidRepresentation,void **ppvRepresentation) PURE;
+ STDMETHOD_(HRESULT,IsCompressedFormat)(THIS_ WINBOOL *pfCompressed) PURE;
+ STDMETHOD_(HRESULT,IsEqual)(THIS_ IMFMediaType *pIMediaType,DWORD *pdwFlags) PURE;
+
+ /* IMFSample methods */
+ STDMETHOD_(HRESULT,AddBuffer)(THIS_ IMFMediaBuffer *pBuffer) PURE;
+ STDMETHOD_(HRESULT,ConvertToContiguousBuffer)(THIS_ IMFMediaBuffer **ppBuffer) PURE;
+ STDMETHOD_(HRESULT,CopyToBuffer)(THIS_ IMFMediaBuffer *pBuffer) PURE;
+ STDMETHOD_(HRESULT,GetBufferByIndex)(THIS_ DWORD dwIndex,IMFMediaBuffer **ppBuffer) PURE;
+ STDMETHOD_(HRESULT,GetBufferCount)(THIS_ DWORD *pdwBufferCount) PURE;
+ STDMETHOD_(HRESULT,GetSampleDuration)(THIS_ LONGLONG *phnsSampleDuration) PURE;
+ STDMETHOD_(HRESULT,GetSampleFlags)(THIS_ DWORD *pdwSampleFlags) PURE;
+ STDMETHOD_(HRESULT,GetSampleTime)(THIS_ LONGLONG *phnsSampleTime) PURE;
+ STDMETHOD_(HRESULT,GetTotalLength)(THIS_ DWORD *pcbTotalLength) PURE;
+ STDMETHOD_(HRESULT,RemoveAllBuffers)(THIS) PURE;
+ STDMETHOD_(HRESULT,RemoveBufferByIndex)(THIS_ DWORD dwIndex) PURE;
+ STDMETHOD_(HRESULT,SetSampleDuration)(THIS_ LONGLONG hnsSampleDuration) PURE;
+ STDMETHOD_(HRESULT,SetSampleFlags)(THIS_ DWORD dwSampleFlags) PURE;
+ STDMETHOD_(HRESULT,SetSampleTime)(THIS_ LONGLONG hnsSampleTime) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IMFSample_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFSample_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFSample_Release(This) (This)->pVtbl->Release(This)
+#define IMFSample_Compare(This,pTheirs,MatchType,pbResult) (This)->lpVtbl->Compare(This,pTheirs,MatchType,pbResult)
+#define IMFSample_CompareItem(This,guidKey,Value,pbResult) (This)->lpVtbl->CompareItem(This,guidKey,Value,pbResult)
+#define IMFSample_CopyAllItems(This,pDest) (This)->lpVtbl->CopyAllItems(This,pDest)
+#define IMFSample_DeleteAllItems() (This)->lpVtbl->DeleteAllItems(This)
+#define IMFSample_DeleteItem(This,guidKey) (This)->lpVtbl->DeleteItem(This,guidKey)
+#define IMFSample_GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) (This)->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize)
+#define IMFSample_GetAllocatedString(This,guidKey,ppwszValue,pcchLength) (This)->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength)
+#define IMFSample_GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) (This)->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize)
+#define IMFSample_GetBlobSize(This,guidKey,pcbBlobSize) (This)->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize)
+#define IMFSample_GetCount(This,pcItems) (This)->lpVtbl->GetCount(This,pcItems)
+#define IMFSample_GetDouble(This,guidKey,pfValue) (This)->lpVtbl->GetDouble(This,guidKey,pfValue)
+#define IMFSample_GetGUID(This,guidKey,pguidValue) (This)->lpVtbl->GetGUID(This,guidKey,pguidValue)
+#define IMFSample_GetItem(This,guidKey,pValue) (This)->lpVtbl->GetItem(This,guidKey,pValue)
+#define IMFSample_GetItemByIndex(This,unIndex,pguidKey,pValue) (This)->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue)
+#define IMFSample_GetItemType(This,guidKey,pType) (This)->lpVtbl->GetItemType(This,guidKey,pType)
+#define IMFSample_GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) (This)->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength)
+#define IMFSample_GetStringLength(This,guidKey,pcchLength) (This)->lpVtbl->GetStringLength(This,guidKey,pcchLength)
+#define IMFSample_GetUINT32(This,guidKey,punValue) (This)->lpVtbl->GetUINT32(This,guidKey,punValue)
+#define IMFSample_GetUINT64(This,guidKey,punValue) (This)->lpVtbl->GetUINT64(This,guidKey,punValue)
+#define IMFSample_GetUnknown(This,guidKey,riid,ppv) (This)->lpVtbl->GetUnknown(This,guidKey,riid,ppv)
+#define IMFSample_LockStore() (This)->lpVtbl->LockStore(This)
+#define IMFSample_SetBlob(This,guidKey,pBuf,cbBufSize) (This)->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize)
+#define IMFSample_SetDouble(This,guidKey,fValue) (This)->lpVtbl->SetDouble(This,guidKey,fValue)
+#define IMFSample_SetGUID(This,guidKey,guidValue) (This)->lpVtbl->SetGUID(This,guidKey,guidValue)
+#define IMFSample_SetItem(This,guidKey,Value) (This)->lpVtbl->SetItem(This,guidKey,Value)
+#define IMFSample_SetString(This,guidKey,wszValue) (This)->lpVtbl->SetString(This,guidKey,wszValue)
+#define IMFSample_SetUINT32(This,guidKey,unValue) (This)->lpVtbl->SetUINT32(This,guidKey,unValue)
+#define IMFSample_SetUINT64(This,guidKey,unValue) (This)->lpVtbl->SetUINT64(This,guidKey,unValue)
+#define IMFSample_SetUnknown(This,guidKey,pUnknown) (This)->lpVtbl->SetUnknown(This,guidKey,pUnknown)
+#define IMFSample_UnlockStore() (This)->lpVtbl->UnlockStore(This)
+#define IMFSample_FreeRepresentation(This,guidRepresentation,pvRepresentation) (This)->lpVtbl->FreeRepresentation(This,guidRepresentation,pvRepresentation)
+#define IMFSample_GetMajorType(This,pguidMajorType) (This)->lpVtbl->GetMajorType(This,pguidMajorType)
+#define IMFSample_GetRepresentation(This,guidRepresentation,ppvRepresentation) (This)->lpVtbl->GetRepresentation(This,guidRepresentation,ppvRepresentation)
+#define IMFSample_IsCompressedFormat(This,pfCompressed) (This)->lpVtbl->IsCompressedFormat(This,pfCompressed)
+#define IMFSample_IsEqual(This,pIMediaType,pdwFlags) (This)->lpVtbl->IsEqual(This,pIMediaType,pdwFlags)
+#define IMFSample_AddBuffer(This,pBuffer) (This)->lpVtbl->AddBuffer(This,pBuffer)
+#define IMFSample_ConvertToContiguousBuffer(This,ppBuffer) (This)->lpVtbl->ConvertToContiguousBuffer(This,ppBuffer)
+#define IMFSample_CopyToBuffer(This,pBuffer) (This)->lpVtbl->CopyToBuffer(This,pBuffer)
+#define IMFSample_GetBufferByIndex(This,dwIndex,ppBuffer) (This)->lpVtbl->GetBufferByIndex(This,dwIndex,ppBuffer)
+#define IMFSample_GetBufferCount(This,pdwBufferCount) (This)->lpVtbl->GetBufferCount(This,pdwBufferCount)
+#define IMFSample_GetSampleDuration(This,phnsSampleDuration) (This)->lpVtbl->GetSampleDuration(This,phnsSampleDuration)
+#define IMFSample_GetSampleFlags(This,pdwSampleFlags) (This)->lpVtbl->GetSampleFlags(This,pdwSampleFlags)
+#define IMFSample_GetSampleTime(This,phnsSampleTime) (This)->lpVtbl->GetSampleTime(This,phnsSampleTime)
+#define IMFSample_GetTotalLength(This,pcbTotalLength) (This)->lpVtbl->GetTotalLength(This,pcbTotalLength)
+#define IMFSample_RemoveAllBuffers() (This)->lpVtbl->RemoveAllBuffers(This)
+#define IMFSample_RemoveBufferByIndex(This,dwIndex) (This)->lpVtbl->RemoveBufferByIndex(This,dwIndex)
+#define IMFSample_SetSampleDuration(This,hnsSampleDuration) (This)->lpVtbl->SetSampleDuration(This,hnsSampleDuration)
+#define IMFSample_SetSampleFlags(This,dwSampleFlags) (This)->lpVtbl->SetSampleFlags(This,dwSampleFlags)
+#define IMFSample_SetSampleTime(This,hnsSampleTime) (This)->lpVtbl->SetSampleTime(This,hnsSampleTime)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IMF2DBuffer
+DECLARE_INTERFACE_(IMF2DBuffer,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMF2DBuffer methods */
+ STDMETHOD_(HRESULT,ContiguousCopyFrom)(THIS_ const BYTE *pbSrcBuffer,DWORD cbSrcBuffer) PURE;
+ STDMETHOD_(HRESULT,ContiguousCopyTo)(THIS_ BYTE *pbDestBuffer,DWORD cbDestBuffer) PURE;
+ STDMETHOD_(HRESULT,GetContiguousLength)(THIS_ DWORD *pcbLength) PURE;
+ STDMETHOD_(HRESULT,GetScanline0AndPitch)(THIS_ BYTE **pbScanline0,LONG *plPitch) PURE;
+ STDMETHOD_(HRESULT,IsContiguousFormat)(THIS_ WINBOOL *pfIsContiguous) PURE;
+ STDMETHOD_(HRESULT,Lock2D)(THIS_ BYTE **pbScanline0,LONG *plPitch) PURE;
+ STDMETHOD_(HRESULT,Unlock2D)(THIS) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IMF2DBuffer_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMF2DBuffer_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMF2DBuffer_Release(This) (This)->pVtbl->Release(This)
+#define IMF2DBuffer_ContiguousCopyFrom(This,pbSrcBuffer,cbSrcBuffer) (This)->lpVtbl->ContiguousCopyFrom(This,pbSrcBuffer,cbSrcBuffer)
+#define IMF2DBuffer_ContiguousCopyTo(This,pbDestBuffer,cbDestBuffer) (This)->lpVtbl->ContiguousCopyTo(This,pbDestBuffer,cbDestBuffer)
+#define IMF2DBuffer_GetContiguousLength(This,pcbLength) (This)->lpVtbl->GetContiguousLength(This,pcbLength)
+#define IMF2DBuffer_GetScanline0AndPitch(This,pbScanline0,plPitch) (This)->lpVtbl->GetScanline0AndPitch(This,pbScanline0,plPitch)
+#define IMF2DBuffer_IsContiguousFormat(This,pfIsContiguous) (This)->lpVtbl->IsContiguousFormat(This,pfIsContiguous)
+#define IMF2DBuffer_Lock2D(This,pbScanline0,plPitch) (This)->lpVtbl->Lock2D(This,pbScanline0,plPitch)
+#define IMF2DBuffer_Unlock2D() (This)->lpVtbl->Unlock2D(This)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IMFAsyncCallback
+DECLARE_INTERFACE_(IMFAsyncCallback,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFAsyncCallback methods */
+ STDMETHOD_(HRESULT,GetParameters)(THIS_ DWORD *pdwFlags,DWORD *pdwQueue) PURE;
+ STDMETHOD_(HRESULT,Invoke)(THIS_ IMFAsyncResult *pAsyncResult) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IMFAsyncCallback_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFAsyncCallback_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFAsyncCallback_Release(This) (This)->pVtbl->Release(This)
+#define IMFAsyncCallback_GetParameters(This,pdwFlags,pdwQueue) (This)->lpVtbl->GetParameters(This,pdwFlags,pdwQueue)
+#define IMFAsyncCallback_Invoke(This,pAsyncResult) (This)->lpVtbl->Invoke(This,pAsyncResult)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IMFByteStream
+DECLARE_INTERFACE_(IMFByteStream,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFByteStream methods */
+ STDMETHOD_(HRESULT,GetParameters)(THIS_ DWORD *pdwFlags,DWORD *pdwQueue) PURE;
+ STDMETHOD_(HRESULT,MFInvokeCallback)(THIS_ IMFAsyncResult *pAsyncResult) PURE;
+ STDMETHOD_(HRESULT,BeginRead)(THIS_ BYTE *pb,ULONG cb,IMFAsyncCallback *pCallback,IUnknown *punkState) PURE;
+ STDMETHOD_(HRESULT,BeginWrite)(THIS_ const BYTE *pb,ULONG cb,IMFAsyncCallback *pCallback,IUnknown *punkState) PURE;
+ STDMETHOD_(HRESULT,Close)(THIS) PURE;
+ STDMETHOD_(HRESULT,EndRead)(THIS_ IMFAsyncResult *pResult,ULONG *pcbRead) PURE;
+ STDMETHOD_(HRESULT,EndWrite)(THIS_ IMFAsyncResult *pResult,ULONG *pcbWritten) PURE;
+ STDMETHOD_(HRESULT,Flush)(THIS) PURE;
+ STDMETHOD_(HRESULT,GetCapabilities)(THIS_ DWORD *pdwCapabilities) PURE;
+ STDMETHOD_(HRESULT,GetCurrentPosition)(THIS_ QWORD *pqwPosition) PURE;
+ STDMETHOD_(HRESULT,GetLength)(THIS_ QWORD *pqwLength) PURE;
+ STDMETHOD_(HRESULT,IsEndOfStream)(THIS_ WINBOOL *pfEndOfStream) PURE;
+ STDMETHOD_(HRESULT,Read)(THIS_ BYTE *pb,ULONG cb,ULONG *pcbRead) PURE;
+ STDMETHOD_(HRESULT,Seek)(THIS_ MFBYTESTREAM_SEEK_ORIGIN SeekOrigin,LONGLONG qwSeekOffset,DWORD dwSeekFlags,QWORD *pqwCurrentPosition) PURE;
+ STDMETHOD_(HRESULT,SetCurrentPosition)(THIS_ QWORD qwPosition) PURE;
+ STDMETHOD_(HRESULT,SetLength)(THIS_ QWORD qwLength) PURE;
+ STDMETHOD_(HRESULT,Write)(THIS_ const BYTE *pb,ULONG cb,ULONG *pcbWritten) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IMFByteStream_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFByteStream_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFByteStream_Release(This) (This)->pVtbl->Release(This)
+#define IMFByteStream_GetParameters(This,pdwFlags,pdwQueue) (This)->lpVtbl->GetParameters(This,pdwFlags,pdwQueue)
+#define IMFByteStream_MFInvokeCallback(This,pAsyncResult) (This)->lpVtbl->MFInvokeCallback(This,pAsyncResult)
+#define IMFByteStream_BeginRead(This,pb,cb,pCallback,punkState) (This)->lpVtbl->BeginRead(This,pb,cb,pCallback,punkState)
+#define IMFByteStream_BeginWrite(This,pb,cb,pCallback,punkState) (This)->lpVtbl->BeginWrite(This,pb,cb,pCallback,punkState)
+#define IMFByteStream_Close() (This)->lpVtbl->Close(This)
+#define IMFByteStream_EndRead(This,pResult,pcbRead) (This)->lpVtbl->EndRead(This,pResult,pcbRead)
+#define IMFByteStream_EndWrite(This,pResult,pcbWritten) (This)->lpVtbl->EndWrite(This,pResult,pcbWritten)
+#define IMFByteStream_Flush() (This)->lpVtbl->Flush(This)
+#define IMFByteStream_GetCapabilities(This,pdwCapabilities) (This)->lpVtbl->GetCapabilities(This,pdwCapabilities)
+#define IMFByteStream_GetCurrentPosition(This,pqwPosition) (This)->lpVtbl->GetCurrentPosition(This,pqwPosition)
+#define IMFByteStream_GetLength(This,pqwLength) (This)->lpVtbl->GetLength(This,pqwLength)
+#define IMFByteStream_IsEndOfStream(This,pfEndOfStream) (This)->lpVtbl->IsEndOfStream(This,pfEndOfStream)
+#define IMFByteStream_Read(This,pb,cb,pcbRead) (This)->lpVtbl->Read(This,pb,cb,pcbRead)
+#define IMFByteStream_Seek(This,SeekOrigin,qwSeekOffset,dwSeekFlags,pqwCurrentPosition) (This)->lpVtbl->Seek(This,SeekOrigin,qwSeekOffset,dwSeekFlags,pqwCurrentPosition)
+#define IMFByteStream_SetCurrentPosition(This,qwPosition) (This)->lpVtbl->SetCurrentPosition(This,qwPosition)
+#define IMFByteStream_SetLength(This,qwLength) (This)->lpVtbl->SetLength(This,qwLength)
+#define IMFByteStream_Write(This,pb,cb,pcbWritten) (This)->lpVtbl->Write(This,pb,cb,pcbWritten)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IMFMediaEvent
+DECLARE_INTERFACE_(IMFMediaEvent,IMFAttributes)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFAttributes methods */
+ STDMETHOD_(HRESULT,Compare)(THIS_ IMFAttributes *pTheirs,MF_ATTRIBUTES_MATCH_TYPE MatchType,BOOL *pbResult) PURE;
+ STDMETHOD_(HRESULT,CompareItem)(THIS_ REFGUID guidKey,REFPROPVARIANT Value,BOOL *pbResult) PURE;
+ STDMETHOD_(HRESULT,CopyAllItems)(THIS_ IMFAttributes *pDest) PURE;
+ STDMETHOD_(HRESULT,DeleteAllItems)(THIS) PURE;
+ STDMETHOD_(HRESULT,DeleteItem)(THIS_ REFGUID guidKey) PURE;
+ STDMETHOD_(HRESULT,GetAllocatedBlob)(THIS_ REFGUID guidKey,UINT8 **ppBuf,UINT32 *pcbSize) PURE;
+ STDMETHOD_(HRESULT,GetAllocatedString)(THIS_ REFGUID guidKey,LPWSTR *ppwszValue,UINT32 *pcchLength) PURE;
+ STDMETHOD_(HRESULT,GetBlob)(THIS_ REFGUID guidKey,UINT8 *pBuf,UINT32 cbBufSize,UINT32 *pcbBlobSize) PURE;
+ STDMETHOD_(HRESULT,GetBlobSize)(THIS_ REFGUID guidKey,UINT32 *pcbBlobSize) PURE;
+ STDMETHOD_(HRESULT,GetCount)(THIS_ UINT32 *pcItems) PURE;
+ STDMETHOD_(HRESULT,GetDouble)(THIS_ REFGUID guidKey,double *pfValue) PURE;
+ STDMETHOD_(HRESULT,GetGUID)(THIS_ REFGUID guidKey,GUID *pguidValue) PURE;
+ STDMETHOD_(HRESULT,GetItem)(THIS_ REFGUID guidKey,PROPVARIANT *pValue) PURE;
+ STDMETHOD_(HRESULT,GetItemByIndex)(THIS_ UINT32 unIndex,GUID *pguidKey,PROPVARIANT *pValue) PURE;
+ STDMETHOD_(HRESULT,GetItemType)(THIS_ REFGUID guidKey,MF_ATTRIBUTE_TYPE *pType) PURE;
+ STDMETHOD_(HRESULT,GetString)(THIS_ REFGUID guidKey,LPWSTR pwszValue,UINT32 cchBufSize,UINT32 *pcchLength) PURE;
+ STDMETHOD_(HRESULT,GetStringLength)(THIS_ REFGUID guidKey,UINT32 *pcchLength) PURE;
+ STDMETHOD_(HRESULT,GetUINT32)(THIS_ REFGUID guidKey,UINT32 *punValue) PURE;
+ STDMETHOD_(HRESULT,GetUINT64)(THIS_ REFGUID guidKey,UINT64 *punValue) PURE;
+ STDMETHOD_(HRESULT,GetUnknown)(THIS_ REFGUID guidKey,REFIID riid,LPVOID *ppv) PURE;
+ STDMETHOD_(HRESULT,LockStore)(THIS) PURE;
+ STDMETHOD_(HRESULT,SetBlob)(THIS_ REFGUID guidKey,const UINT8 *pBuf,UINT32 cbBufSize) PURE;
+ STDMETHOD_(HRESULT,SetDouble)(THIS_ REFGUID guidKey,double fValue) PURE;
+ STDMETHOD_(HRESULT,SetGUID)(THIS_ REFGUID guidKey,REFGUID guidValue) PURE;
+ STDMETHOD_(HRESULT,SetItem)(THIS_ REFGUID guidKey,REFPROPVARIANT Value) PURE;
+ STDMETHOD_(HRESULT,SetString)(THIS_ REFGUID guidKey,LPCWSTR wszValue) PURE;
+ STDMETHOD_(HRESULT,SetUINT32)(THIS_ REFGUID guidKey,UINT32 unValue) PURE;
+ STDMETHOD_(HRESULT,SetUINT64)(THIS_ REFGUID guidKey,UINT64 unValue) PURE;
+ STDMETHOD_(HRESULT,SetUnknown)(THIS_ REFGUID guidKey,IUnknown *pUnknown) PURE;
+ STDMETHOD_(HRESULT,UnlockStore)(THIS) PURE;
+
+ /* IMFMediaEvent methods */
+ STDMETHOD_(HRESULT,GetExtendedType)(THIS_ GUID *pguidExtendedType) PURE;
+ STDMETHOD_(HRESULT,GetStatus)(THIS_ HRESULT *phrStatus) PURE;
+ STDMETHOD_(HRESULT,GetType)(THIS_ MediaEventType *pmet) PURE;
+ STDMETHOD_(HRESULT,GetValue)(THIS_ PROPVARIANT *pvValue) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IMFMediaEvent_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFMediaEvent_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFMediaEvent_Release(This) (This)->pVtbl->Release(This)
+#define IMFMediaEvent_Compare(This,pTheirs,MatchType,pbResult) (This)->lpVtbl->Compare(This,pTheirs,MatchType,pbResult)
+#define IMFMediaEvent_CompareItem(This,guidKey,Value,pbResult) (This)->lpVtbl->CompareItem(This,guidKey,Value,pbResult)
+#define IMFMediaEvent_CopyAllItems(This,pDest) (This)->lpVtbl->CopyAllItems(This,pDest)
+#define IMFMediaEvent_DeleteAllItems() (This)->lpVtbl->DeleteAllItems(This)
+#define IMFMediaEvent_DeleteItem(This,guidKey) (This)->lpVtbl->DeleteItem(This,guidKey)
+#define IMFMediaEvent_GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) (This)->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize)
+#define IMFMediaEvent_GetAllocatedString(This,guidKey,ppwszValue,pcchLength) (This)->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength)
+#define IMFMediaEvent_GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) (This)->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize)
+#define IMFMediaEvent_GetBlobSize(This,guidKey,pcbBlobSize) (This)->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize)
+#define IMFMediaEvent_GetCount(This,pcItems) (This)->lpVtbl->GetCount(This,pcItems)
+#define IMFMediaEvent_GetDouble(This,guidKey,pfValue) (This)->lpVtbl->GetDouble(This,guidKey,pfValue)
+#define IMFMediaEvent_GetGUID(This,guidKey,pguidValue) (This)->lpVtbl->GetGUID(This,guidKey,pguidValue)
+#define IMFMediaEvent_GetItem(This,guidKey,pValue) (This)->lpVtbl->GetItem(This,guidKey,pValue)
+#define IMFMediaEvent_GetItemByIndex(This,unIndex,pguidKey,pValue) (This)->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue)
+#define IMFMediaEvent_GetItemType(This,guidKey,pType) (This)->lpVtbl->GetItemType(This,guidKey,pType)
+#define IMFMediaEvent_GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) (This)->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength)
+#define IMFMediaEvent_GetStringLength(This,guidKey,pcchLength) (This)->lpVtbl->GetStringLength(This,guidKey,pcchLength)
+#define IMFMediaEvent_GetUINT32(This,guidKey,punValue) (This)->lpVtbl->GetUINT32(This,guidKey,punValue)
+#define IMFMediaEvent_GetUINT64(This,guidKey,punValue) (This)->lpVtbl->GetUINT64(This,guidKey,punValue)
+#define IMFMediaEvent_GetUnknown(This,guidKey,riid,ppv) (This)->lpVtbl->GetUnknown(This,guidKey,riid,ppv)
+#define IMFMediaEvent_LockStore() (This)->lpVtbl->LockStore(This)
+#define IMFMediaEvent_SetBlob(This,guidKey,pBuf,cbBufSize) (This)->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize)
+#define IMFMediaEvent_SetDouble(This,guidKey,fValue) (This)->lpVtbl->SetDouble(This,guidKey,fValue)
+#define IMFMediaEvent_SetGUID(This,guidKey,guidValue) (This)->lpVtbl->SetGUID(This,guidKey,guidValue)
+#define IMFMediaEvent_SetItem(This,guidKey,Value) (This)->lpVtbl->SetItem(This,guidKey,Value)
+#define IMFMediaEvent_SetString(This,guidKey,wszValue) (This)->lpVtbl->SetString(This,guidKey,wszValue)
+#define IMFMediaEvent_SetUINT32(This,guidKey,unValue) (This)->lpVtbl->SetUINT32(This,guidKey,unValue)
+#define IMFMediaEvent_SetUINT64(This,guidKey,unValue) (This)->lpVtbl->SetUINT64(This,guidKey,unValue)
+#define IMFMediaEvent_SetUnknown(This,guidKey,pUnknown) (This)->lpVtbl->SetUnknown(This,guidKey,pUnknown)
+#define IMFMediaEvent_UnlockStore() (This)->lpVtbl->UnlockStore(This)
+#define IMFMediaEvent_GetExtendedType(This,pguidExtendedType) (This)->lpVtbl->GetExtendedType(This,pguidExtendedType)
+#define IMFMediaEvent_GetStatus(This,phrStatus) (This)->lpVtbl->GetStatus(This,phrStatus)
+#define IMFMediaEvent_GetType(This,pmet) (This)->lpVtbl->GetType(This,pmet)
+#define IMFMediaEvent_GetValue(This,pvValue) (This)->lpVtbl->GetValue(This,pvValue)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IMFVideoMediaType
+DECLARE_INTERFACE_(IMFVideoMediaType,IMFMediaType)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFAttributes methods */
+ STDMETHOD_(HRESULT,Compare)(THIS_ IMFAttributes *pTheirs,MF_ATTRIBUTES_MATCH_TYPE MatchType,WINBOOL *pbResult) PURE;
+ STDMETHOD_(HRESULT,CompareItem)(THIS_ REFGUID guidKey,REFPROPVARIANT Value,WINBOOL *pbResult) PURE;
+ STDMETHOD_(HRESULT,CopyAllItems)(THIS_ IMFAttributes *pDest) PURE;
+ STDMETHOD_(HRESULT,DeleteAllItems)(THIS) PURE;
+ STDMETHOD_(HRESULT,DeleteItem)(THIS_ REFGUID guidKey) PURE;
+ STDMETHOD_(HRESULT,GetAllocatedBlob)(THIS_ REFGUID guidKey,UINT8 **ppBuf,UINT32 *pcbSize) PURE;
+ STDMETHOD_(HRESULT,GetAllocatedString)(THIS_ REFGUID guidKey,LPWSTR *ppwszValue,UINT32 *pcchLength) PURE;
+ STDMETHOD_(HRESULT,GetBlob)(THIS_ REFGUID guidKey,UINT8 *pBuf,UINT32 cbBufSize,UINT32 *pcbBlobSize) PURE;
+ STDMETHOD_(HRESULT,GetBlobSize)(THIS_ REFGUID guidKey,UINT32 *pcbBlobSize) PURE;
+ STDMETHOD_(HRESULT,GetCount)(THIS_ UINT32 *pcItems) PURE;
+ STDMETHOD_(HRESULT,GetDouble)(THIS_ REFGUID guidKey,double *pfValue) PURE;
+ STDMETHOD_(HRESULT,GetGUID)(THIS_ REFGUID guidKey,GUID *pguidValue) PURE;
+ STDMETHOD_(HRESULT,GetItem)(THIS_ REFGUID guidKey,PROPVARIANT *pValue) PURE;
+ STDMETHOD_(HRESULT,GetItemByIndex)(THIS_ UINT32 unIndex,GUID *pguidKey,PROPVARIANT *pValue) PURE;
+ STDMETHOD_(HRESULT,GetItemType)(THIS_ REFGUID guidKey,MF_ATTRIBUTE_TYPE *pType) PURE;
+ STDMETHOD_(HRESULT,GetString)(THIS_ REFGUID guidKey,LPWSTR pwszValue,UINT32 cchBufSize,UINT32 *pcchLength) PURE;
+ STDMETHOD_(HRESULT,GetStringLength)(THIS_ REFGUID guidKey,UINT32 *pcchLength) PURE;
+ STDMETHOD_(HRESULT,GetUINT32)(THIS_ REFGUID guidKey,UINT32 *punValue) PURE;
+ STDMETHOD_(HRESULT,GetUINT64)(THIS_ REFGUID guidKey,UINT64 *punValue) PURE;
+ STDMETHOD_(HRESULT,GetUnknown)(THIS_ REFGUID guidKey,REFIID riid,LPVOID *ppv) PURE;
+ STDMETHOD_(HRESULT,LockStore)(THIS) PURE;
+ STDMETHOD_(HRESULT,SetBlob)(THIS_ REFGUID guidKey,const UINT8 *pBuf,UINT32 cbBufSize) PURE;
+ STDMETHOD_(HRESULT,SetDouble)(THIS_ REFGUID guidKey,double fValue) PURE;
+ STDMETHOD_(HRESULT,SetGUID)(THIS_ REFGUID guidKey,REFGUID guidValue) PURE;
+ STDMETHOD_(HRESULT,SetItem)(THIS_ REFGUID guidKey,REFPROPVARIANT Value) PURE;
+ STDMETHOD_(HRESULT,SetString)(THIS_ REFGUID guidKey,LPCWSTR wszValue) PURE;
+ STDMETHOD_(HRESULT,SetUINT32)(THIS_ REFGUID guidKey,UINT32 unValue) PURE;
+ STDMETHOD_(HRESULT,SetUINT64)(THIS_ REFGUID guidKey,UINT64 unValue) PURE;
+ STDMETHOD_(HRESULT,SetUnknown)(THIS_ REFGUID guidKey,IUnknown *pUnknown) PURE;
+ STDMETHOD_(HRESULT,UnlockStore)(THIS) PURE;
+
+ /* IMFMediaType methods */
+ STDMETHOD_(HRESULT,FreeRepresentation)(THIS_ GUID guidRepresentation,void *pvRepresentation) PURE;
+ STDMETHOD_(HRESULT,GetMajorType)(THIS_ GUID *pguidMajorType) PURE;
+ STDMETHOD_(HRESULT,GetRepresentation)(THIS_ GUID guidRepresentation,void **ppvRepresentation) PURE;
+ STDMETHOD_(HRESULT,IsCompressedFormat)(THIS_ WINBOOL *pfCompressed) PURE;
+ STDMETHOD_(HRESULT,IsEqual)(THIS_ IMFMediaType *pIMediaType,DWORD *pdwFlags) PURE;
+
+ /* IMFVideoMediaType methods */
+ STDMETHOD_(const MFVIDEOFORMAT *,GetVideoFormat)(THIS) PURE;
+ STDMETHOD_(HRESULT,GetVideoRepresentation)(THIS_ GUID guidRepresentation,LPVOID *ppvRepresentation,LONG lStride) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IMFVideoMediaType_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFVideoMediaType_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFVideoMediaType_Release(This) (This)->pVtbl->Release(This)
+#define IMFVideoMediaType_Compare(This,pTheirs,MatchType,pbResult) (This)->lpVtbl->Compare(This,pTheirs,MatchType,pbResult)
+#define IMFVideoMediaType_CompareItem(This,guidKey,Value,pbResult) (This)->lpVtbl->CompareItem(This,guidKey,Value,pbResult)
+#define IMFVideoMediaType_CopyAllItems(This,pDest) (This)->lpVtbl->CopyAllItems(This,pDest)
+#define IMFVideoMediaType_DeleteAllItems() (This)->lpVtbl->DeleteAllItems(This)
+#define IMFVideoMediaType_DeleteItem(This,guidKey) (This)->lpVtbl->DeleteItem(This,guidKey)
+#define IMFVideoMediaType_GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) (This)->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize)
+#define IMFVideoMediaType_GetAllocatedString(This,guidKey,ppwszValue,pcchLength) (This)->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength)
+#define IMFVideoMediaType_GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) (This)->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize)
+#define IMFVideoMediaType_GetBlobSize(This,guidKey,pcbBlobSize) (This)->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize)
+#define IMFVideoMediaType_GetCount(This,pcItems) (This)->lpVtbl->GetCount(This,pcItems)
+#define IMFVideoMediaType_GetDouble(This,guidKey,pfValue) (This)->lpVtbl->GetDouble(This,guidKey,pfValue)
+#define IMFVideoMediaType_GetGUID(This,guidKey,pguidValue) (This)->lpVtbl->GetGUID(This,guidKey,pguidValue)
+#define IMFVideoMediaType_GetItem(This,guidKey,pValue) (This)->lpVtbl->GetItem(This,guidKey,pValue)
+#define IMFVideoMediaType_GetItemByIndex(This,unIndex,pguidKey,pValue) (This)->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue)
+#define IMFVideoMediaType_GetItemType(This,guidKey,pType) (This)->lpVtbl->GetItemType(This,guidKey,pType)
+#define IMFVideoMediaType_GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) (This)->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength)
+#define IMFVideoMediaType_GetStringLength(This,guidKey,pcchLength) (This)->lpVtbl->GetStringLength(This,guidKey,pcchLength)
+#define IMFVideoMediaType_GetUINT32(This,guidKey,punValue) (This)->lpVtbl->GetUINT32(This,guidKey,punValue)
+#define IMFVideoMediaType_GetUINT64(This,guidKey,punValue) (This)->lpVtbl->GetUINT64(This,guidKey,punValue)
+#define IMFVideoMediaType_GetUnknown(This,guidKey,riid,ppv) (This)->lpVtbl->GetUnknown(This,guidKey,riid,ppv)
+#define IMFVideoMediaType_LockStore() (This)->lpVtbl->LockStore(This)
+#define IMFVideoMediaType_SetBlob(This,guidKey,pBuf,cbBufSize) (This)->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize)
+#define IMFVideoMediaType_SetDouble(This,guidKey,fValue) (This)->lpVtbl->SetDouble(This,guidKey,fValue)
+#define IMFVideoMediaType_SetGUID(This,guidKey,guidValue) (This)->lpVtbl->SetGUID(This,guidKey,guidValue)
+#define IMFVideoMediaType_SetItem(This,guidKey,Value) (This)->lpVtbl->SetItem(This,guidKey,Value)
+#define IMFVideoMediaType_SetString(This,guidKey,wszValue) (This)->lpVtbl->SetString(This,guidKey,wszValue)
+#define IMFVideoMediaType_SetUINT32(This,guidKey,unValue) (This)->lpVtbl->SetUINT32(This,guidKey,unValue)
+#define IMFVideoMediaType_SetUINT64(This,guidKey,unValue) (This)->lpVtbl->SetUINT64(This,guidKey,unValue)
+#define IMFVideoMediaType_SetUnknown(This,guidKey,pUnknown) (This)->lpVtbl->SetUnknown(This,guidKey,pUnknown)
+#define IMFVideoMediaType_UnlockStore() (This)->lpVtbl->UnlockStore(This)
+#define IMFVideoMediaType_FreeRepresentation(This,guidRepresentation,pvRepresentation) (This)->lpVtbl->FreeRepresentation(This,guidRepresentation,pvRepresentation)
+#define IMFVideoMediaType_GetMajorType(This,pguidMajorType) (This)->lpVtbl->GetMajorType(This,pguidMajorType)
+#define IMFVideoMediaType_GetRepresentation(This,guidRepresentation,ppvRepresentation) (This)->lpVtbl->GetRepresentation(This,guidRepresentation,ppvRepresentation)
+#define IMFVideoMediaType_IsCompressedFormat(This,pfCompressed) (This)->lpVtbl->IsCompressedFormat(This,pfCompressed)
+#define IMFVideoMediaType_IsEqual(This,pIMediaType,pdwFlags) (This)->lpVtbl->IsEqual(This,pIMediaType,pdwFlags)
+#define IMFVideoMediaType_GetVideoFormat() (This)->lpVtbl->GetVideoFormat(This)
+#define IMFVideoMediaType_GetVideoRepresentation(This,guidRepresentation,ppvRepresentation,lStride) (This)->lpVtbl->GetVideoRepresentation(This,guidRepresentation,ppvRepresentation,lStride)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IMFCollection
+DECLARE_INTERFACE_(IMFCollection,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFCollection methods */
+ STDMETHOD_(HRESULT,AddElement)(THIS_ IUnknown *pUnkElement) PURE;
+ STDMETHOD_(HRESULT,GetElement)(THIS_ DWORD dwElementIndex,IUnknown **ppUnkElement) PURE;
+ STDMETHOD_(HRESULT,GetElementCount)(THIS_ DWORD *pcElements) PURE;
+ STDMETHOD_(HRESULT,InsertElementAt)(THIS_ DWORD dwIndex,IUnknown *pUnknown) PURE;
+ STDMETHOD_(HRESULT,RemoveAllElements)(THIS) PURE;
+ STDMETHOD_(HRESULT,RemoveElement)(THIS_ DWORD dwElementIndex,IUnknown **ppUnkElement) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IMFCollection_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFCollection_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFCollection_Release(This) (This)->pVtbl->Release(This)
+#define IMFCollection_AddElement(This,pUnkElement) (This)->lpVtbl->AddElement(This,pUnkElement)
+#define IMFCollection_GetElement(This,dwElementIndex,ppUnkElement) (This)->lpVtbl->GetElement(This,dwElementIndex,ppUnkElement)
+#define IMFCollection_GetElementCount(This,pcElements) (This)->lpVtbl->GetElementCount(This,pcElements)
+#define IMFCollection_InsertElementAt(This,dwIndex,pUnknown) (This)->lpVtbl->InsertElementAt(This,dwIndex,pUnknown)
+#define IMFCollection_RemoveAllElements() (This)->lpVtbl->RemoveAllElements(This)
+#define IMFCollection_RemoveElement(This,dwElementIndex,ppUnkElement) (This)->lpVtbl->RemoveElement(This,dwElementIndex,ppUnkElement)
+#endif /*COBJMACROS*/
+
+#if (_WIN32_WINNT >= 0x0601)
+#undef INTERFACE
+#define INTERFACE IMFPluginControl
+DECLARE_INTERFACE_(IMFPluginControl,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFPluginControl methods */
+ STDMETHOD_(HRESULT,GetDisabledByIndex)(THIS_ DWORD pluginType,DWORD index,CLSID *clsid) PURE;
+ STDMETHOD_(HRESULT,GetPreferredClsid)(THIS_ DWORD pluginType,LPCWSTR selector,CLSID *clsid) PURE;
+ STDMETHOD_(HRESULT,GetPreferredClsidByIndex)(THIS_ DWORD pluginType,DWORD index,LPWSTR *selector,CLSID *clsid) PURE;
+ STDMETHOD_(HRESULT,IsDisabled)(THIS_ DWORD pluginType,REFCLSID clsid) PURE;
+ STDMETHOD_(HRESULT,SetDisabled)(THIS_ DWORD pluginType,REFCLSID clsid,WINBOOL disabled) PURE;
+ STDMETHOD_(HRESULT,SetPreferredClsid)(THIS_ DWORD pluginType,LPCWSTR selector,const CLSID *clsid) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IMFPluginControl_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFPluginControl_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFPluginControl_Release(This) (This)->pVtbl->Release(This)
+#define IMFPluginControl_GetDisabledByIndex(This,pluginType,index,clsid) (This)->lpVtbl->GetDisabledByIndex(This,pluginType,index,clsid)
+#define IMFPluginControl_GetPreferredClsid(This,pluginType,selector,clsid) (This)->lpVtbl->GetPreferredClsid(This,pluginType,selector,clsid)
+#define IMFPluginControl_GetPreferredClsidByIndex(This,pluginType,index,selector,clsid) (This)->lpVtbl->GetPreferredClsidByIndex(This,pluginType,index,selector,clsid)
+#define IMFPluginControl_IsDisabled(This,pluginType,clsid) (This)->lpVtbl->IsDisabled(This,pluginType,clsid)
+#define IMFPluginControl_SetDisabled(This,pluginType,clsid,disabled) (This)->lpVtbl->SetDisabled(This,pluginType,clsid,disabled)
+#define IMFPluginControl_SetPreferredClsid(This,pluginType,selector,clsid) (This)->lpVtbl->SetPreferredClsid(This,pluginType,selector,clsid)
+#endif /*COBJMACROS*/
+#endif /*(_WIN32_WINNT >= 0x0601)*/
+
+HRESULT WINAPI Invoke(IMFAsyncResult *pAsyncResult);
+HRESULT WINAPI MFDeserializeAttributesFromStream(IMFAttributes *pAttr,DWORD dwOptions,IStream *pStm);
+HRESULT WINAPI MFDeserializePresentationDescriptor(DWORD cbData,BYTE *pbData,IMFPresentationDescriptor **ppPD);
+HRESULT WINAPI MFGetAttribute2UINT32asUINT64(IMFAttributes *pAttributes,REFGUID guidKey,UINT32 *punHigh32,UINT32 *punLow32);
+HRESULT WINAPI MFSerializeAttributesToStream(IMFAttributes *pAttr,DWORD dwOptions,IStream *pStm);
+
+typedef enum MF_OBJECT_TYPE MF_OBJECT_TYPE;
+
+/*[call_as(BeginCreateObjectFromByteStream)]*/
+HRESULT WINAPI RemoteBeginCreateObjectFromByteStream(
+ IMFByteStream* pByteStream,
+ LPCWSTR pwszURL,
+ IPropertyStore *pProps,
+ DWORD dwFlags,
+ IMFRemoteAsyncCallback *pCallback
+);
+
+/*[call_as(BeginCreateObjectFromURL)]*/
+HRESULT WINAPI RemoteBeginCreateObjectFromURL(
+ LPCWSTR pwszURL,
+ DWORD dwFlags,
+ IPropertyStore *pProps,
+ IMFRemoteAsyncCallback *pCallback
+);
+
+/*[call_as(BeginEnableContent)]*/
+HRESULT WINAPI RemoteBeginEnableContent(
+ REFCLSID clsidType,
+ BYTE *pbData,
+ DWORD cbData,
+ IMFRemoteAsyncCallback *pCallback
+);
+
+/*[call_as(BeginGetEvent)]*/
+HRESULT WINAPI RemoteBeginGetEvent(
+ IMFRemoteAsyncCallback* pCallback
+);
+
+/*[call_as(BeginRegisterPlatformWorkQueueWithMMCSS)]*/
+HRESULT WINAPI RemoteBeginRegisterPlatformWorkQueueWithMMCSS(
+ DWORD dwPlatformWorkQueue,
+ LPCWSTR wszClass,
+ DWORD dwTaskId,
+ IMFRemoteAsyncCallback *pCallback
+);
+
+/*[call_as(BeginRegisterTopologyWorkQueuesWithMMCSS)]*/
+HRESULT WINAPI RemoteBeginRegisterTopologyWorkQueuesWithMMCSS(
+ IMFRemoteAsyncCallback *pCallback
+);
+
+/*[call_as(BeginUnregisterPlatformWorkQueueWithMMCSS)]*/
+HRESULT WINAPI RemoteBeginUnregisterPlatformWorkQueueWithMMCSS(
+ DWORD dwPlatformWorkQueue,
+ IMFRemoteAsyncCallback *pCallback
+);
+
+/*[call_as(BeginUnregisterTopologyWorkQueuesWithMMCSS)]*/
+HRESULT WINAPI RemoteBeginUnregisterTopologyWorkQueuesWithMMCSS(
+ IMFRemoteAsyncCallback *pCallback
+);
+
+/*[call_as(CreateObjectByCLSID)]*/
+HRESULT WINAPI RemoteCreateObjectByCLSID(
+ REFCLSID clsid,
+ BYTE *pbData,
+ DWORD cbData,
+ REFIID riid,
+ void **ppv
+);
+
+/*[call_as(CreatePresentationDescriptor)]*/
+HRESULT WINAPI RemoteCreatePresentationDescriptor(
+ DWORD *pcbPD,
+ BYTE **pbPD,
+ IMFPresentationDescriptor **ppRemotePD
+);
+
+/*call_as(EndCreateObjectFromByteStream)]*/
+HRESULT WINAPI RemoteEndCreateObjectFromByteStream(
+ IUnknown *pResult,
+ MF_OBJECT_TYPE *pObjectType,
+ IUnknown **ppObject
+);
+
+/*[call_as(EndCreateObjectFromURL)]*/
+HRESULT WINAPI RemoteEndCreateObjectFromURL(
+ IUnknown *pResult,
+ MF_OBJECT_TYPE *pObjectType,
+ IUnknown **ppObject
+);
+
+/*[call_as(EndEnableContent)]*/
+HRESULT WINAPI RemoteEndEnableContent(
+ IUnknown *pResult
+);
+
+/*[call_as(EndGetEvent)]*/
+HRESULT WINAPI RemoteEndGetEvent(
+ IUnknown *pResult,
+ DWORD *pcbEvent,
+ BYTE **ppbEvent
+);
+
+/*[call_as(EndRegisterPlatformWorkQueueWithMMCSS)]*/
+HRESULT WINAPI RemoteEndRegisterPlatformWorkQueueWithMMCSS(
+ IUnknown *pResult,
+ DWORD *pdwTaskId
+);
+
+/*[call_as(EndRegisterTopologyWorkQueuesWithMMCSS)]*/
+HRESULT WINAPI RemoteEndRegisterTopologyWorkQueuesWithMMCSS(
+ IUnknown *pResult
+);
+
+/*[call_as(EndUnregisterPlatformWorkQueueWithMMCSS)]*/
+HRESULT WINAPI RemoteEndUnregisterPlatformWorkQueueWithMMCSS(
+ IUnknown *pResult
+);
+
+/*[call_as(EndUnregisterTopologyWorkQueuesWithMMCSS)]*/
+HRESULT WINAPI RemoteEndUnregisterTopologyWorkQueuesWithMMCSS(
+ IUnknown *pResult
+);
+
+/*[call_as(GetCurrentMediaType)]*/
+HRESULT WINAPI RemoteGetCurrentMediaType(
+ BYTE **ppbData,
+ DWORD *pcbData
+);
+
+/*[call_as(GetInputPrefType)]*/
+HRESULT WINAPI RemoteGetInputPrefType(
+ DWORD dwInputIndex,
+ DWORD *pcbData,
+ BYTE **ppbData
+);
+
+/*call_as(GetOutputPrefType)]*/
+HRESULT WINAPI RemoteGetOutputPrefType(
+ DWORD dwOutputIndex,
+ DWORD *pcbData,
+ BYTE **ppbData
+);
+
+/*[call_as(RequestSample)]*/
+HRESULT WINAPI RemoteRequestSample();
+
+#if (_WIN32_WINNT >= 0x0601)
+HRESULT WINAPI MFGetPluginControl(IMFPluginControl **ppPluginControl);
+#endif /*(_WIN32_WINNT >= 0x0601)*/
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
+#endif /* _INC_MFOBJECTS */
diff --git a/mingw-w64-headers/include/mfplay.h b/mingw-w64-headers/include/mfplay.h
new file mode 100644
index 0000000..516f583
--- /dev/null
+++ b/mingw-w64-headers/include/mfplay.h
@@ -0,0 +1,345 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_MFPLAY
+#define _INC_MFPLAY
+#include <evr.h>
+
+#if (_WIN32_WINNT >= 0x0601)
+
+typedef enum _MFP_CREATION_OPTIONS {
+ MFP_OPTION_NONE = 0,
+ MFP_OPTION_FREE_THREADED_CALLBACK = 0x00000001,
+ MFP_OPTION_NO_MMCSS = 0x00000002,
+ MFP_OPTION_NO_REMOTE_DESKTOP_OPTIMIZATION = 0x00000004
+} _MFP_CREATION_OPTIONS;
+
+typedef enum _MFP_MEDIAITEM_CHARACTERISTICS {
+ MFP_MEDIAITEM_IS_LIVE = 0x00000001,
+ MFP_MEDIAITEM_CAN_SEEK = 0x00000002,
+ MFP_MEDIAITEM_CAN_PAUSE = 0x00000004,
+ MFP_MEDIAITEM_HAS_SLOW_SEEK = 0x00000008
+} _MFP_MEDIAITEM_CHARACTERISTICS;
+
+typedef enum _MFP_CREDENTIAL_FLAGS {
+ MFP_CREDENTIAL_PROMPT = 0x00000001,
+ MFP_CREDENTIAL_SAVE = 0x00000002,
+ MFP_CREDENTIAL_DO_NOT_CACHE = 0x00000004,
+ MFP_CREDENTIAL_CLEAR_TEXT = 0x00000008,
+ MFP_CREDENTIAL_PROXY = 0x00000010,
+ MFP_CREDENTIAL_LOGGED_ON_USER = 0x00000020
+} _MFP_CREDENTIAL_FLAGS;
+
+enum _MFT_ENUM_FLAG {
+ MFT_ENUM_FLAG_SYNCMFT = 0x00000001,
+ MFT_ENUM_FLAG_ASYNCMFT = 0x00000002,
+ MFT_ENUM_FLAG_HARDWARE = 0x00000004,
+ MFT_ENUM_FLAG_FIELDOFUSE = 0x00000008,
+ MFT_ENUM_FLAG_LOCALMFT = 0x00000010,
+ MFT_ENUM_FLAG_TRANSCODE_ONLY = 0x00000020,
+ MFT_ENUM_FLAG_SORTANDFILTER = 0x00000040,
+ MFT_ENUM_FLAG_ALL = 0x0000003F
+};
+
+typedef enum MFP_EVENT_TYPE {
+ MFP_EVENT_TYPE_PLAY = 0,
+ MFP_EVENT_TYPE_PAUSE = 1,
+ MFP_EVENT_TYPE_STOP = 2,
+ MFP_EVENT_TYPE_POSITION_SET = 3,
+ MFP_EVENT_TYPE_RATE_SET = 4,
+ MFP_EVENT_TYPE_MEDIAITEM_CREATED = 5,
+ MFP_EVENT_TYPE_MEDIAITEM_SET = 6,
+ MFP_EVENT_TYPE_FRAME_STEP = 7,
+ MFP_EVENT_TYPE_MEDIAITEM_CLEARED = 8,
+ MFP_EVENT_TYPE_MF = 9,
+ MFP_EVENT_TYPE_ERROR = 10,
+ MFP_EVENT_TYPE_PLAYBACK_ENDED = 11,
+ MFP_EVENT_TYPE_ACQUIRE_USER_CREDENTIAL = 12
+} MFP_EVENT_TYPE;
+
+typedef enum MFP_MEDIAPLAYER_STATE {
+ MFP_MEDIAPLAYER_STATE_EMPTY = 0x00000000,
+ MFP_MEDIAPLAYER_STATE_STOPPED = 0x00000001,
+ MFP_MEDIAPLAYER_STATE_PLAYING = 0x00000002,
+ MFP_MEDIAPLAYER_STATE_PAUSED = 0x00000003,
+ MFP_MEDIAPLAYER_STATE_SHUTDOWN = 0x00000004
+} MFP_MEDIAPLAYER_STATE;
+
+#undef INTERFACE
+#define INTERFACE IMFPMediaItem
+DECLARE_INTERFACE_(IMFPMediaItem,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFPMediaItem methods */
+ STDMETHOD_(HRESULT,GetCharacteristics)(THIS_ MFP_MEDIAITEM_CHARACTERISTICS *pCharacteristics) PURE;
+ STDMETHOD_(HRESULT,GetDuration)(THIS_ REFGUID guidPositionType,PROPVARIANT *pvDurationValue) PURE;
+ STDMETHOD_(HRESULT,GetMediaPlayer)(THIS_ IMFPMediaPlayer **ppMediaPlayer) PURE;
+ STDMETHOD_(HRESULT,GetMetadata)(THIS_ IPropertyStore **ppMetadataStore) PURE;
+ STDMETHOD_(HRESULT,GetNumberOfStreams)(THIS_ DWORD *pdwStreamCount) PURE;
+ STDMETHOD_(HRESULT,GetObject)(THIS_ IUnknown **ppIUnknown) PURE;
+ STDMETHOD_(HRESULT,GetPresentationAttribute)(THIS_ REFGUID guidMFAttribute,PROPVARIANT *pvValue) PURE;
+ STDMETHOD_(HRESULT,GetStartStopPosition)(THIS_ GUID *pguidStartPositionType,PROPVARIANT *pvStartValue,GUID *pguidStopPositionType,PROPVARIANT *pvStopValue) PURE;
+ STDMETHOD_(HRESULT,GetStreamAttribute)(THIS_ DWORD dwStreamIndex,REFGUID guidMFAttribute,PROPVARIANT *pvValue) PURE;
+ STDMETHOD_(HRESULT,GetStreamSelection)(THIS_ DWORD dwStreamIndex,WINBOOL *pfEnabled) PURE;
+ STDMETHOD_(HRESULT,GetURL)(THIS_ LPWSTR *ppwszURL) PURE;
+ STDMETHOD_(HRESULT,GetUserData)(THIS_ DWORD_PTR *pdwUserData) PURE;
+ STDMETHOD_(HRESULT,HasAudio)(THIS_ WINBOOL *pfHasAudio,WINBOOL *pfSelected) PURE;
+ STDMETHOD_(HRESULT,HasVideo)(THIS_ WINBOOL *pfHasVideo,WINBOOL *pfSelected) PURE;
+ STDMETHOD_(HRESULT,IsProtected)(THIS_ WINBOOL *pfProtected) PURE;
+ STDMETHOD_(HRESULT,SetStartStopPosition)(THIS_ const GUID *pguidStartPositionType,const PROPVARIANT *pvStartValue,const GUID *pguidStopPositionType,const PROPVARIANT *pvStopValue) PURE;
+ STDMETHOD_(HRESULT,SetStreamSelection)(THIS_ DWORD dwStreamIndex,WINBOOL fEnabled) PURE;
+ STDMETHOD_(HRESULT,SetStreamSink)(THIS_ DWORD dwStreamIndex,IUnknown *pMediaSink) PURE;
+ STDMETHOD_(HRESULT,SetUserData)(THIS_ DWORD_PTR dwUserData) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IMFPMediaItem_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFPMediaItem_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFPMediaItem_Release(This) (This)->pVtbl->Release(This)
+#define IMFPMediaItem_GetCharacteristics(This,pCharacteristics) (This)->lpVtbl->GetCharacteristics(This,pCharacteristics)
+#define IMFPMediaItem_GetDuration(This,guidPositionType,pvDurationValue) (This)->lpVtbl->GetDuration(This,guidPositionType,pvDurationValue)
+#define IMFPMediaItem_GetMediaPlayer(This,ppMediaPlayer) (This)->lpVtbl->GetMediaPlayer(This,ppMediaPlayer)
+#define IMFPMediaItem_GetMetadata(This,ppMetadataStore) (This)->lpVtbl->GetMetadata(This,ppMetadataStore)
+#define IMFPMediaItem_GetNumberOfStreams(This,pdwStreamCount) (This)->lpVtbl->GetNumberOfStreams(This,pdwStreamCount)
+#define IMFPMediaItem_GetObject(This,ppIUnknown) (This)->lpVtbl->GetObject(This,ppIUnknown)
+#define IMFPMediaItem_GetPresentationAttribute(This,guidMFAttribute,pvValue) (This)->lpVtbl->GetPresentationAttribute(This,guidMFAttribute,pvValue)
+#define IMFPMediaItem_GetStartStopPosition(This,pguidStartPositionType,pvStartValue,pguidStopPositionType,pvStopValue) (This)->lpVtbl->GetStartStopPosition(This,pguidStartPositionType,pvStartValue,pguidStopPositionType,pvStopValue)
+#define IMFPMediaItem_GetStreamAttribute(This,dwStreamIndex,guidMFAttribute,pvValue) (This)->lpVtbl->GetStreamAttribute(This,dwStreamIndex,guidMFAttribute,pvValue)
+#define IMFPMediaItem_GetStreamSelection(This,dwStreamIndex,pfEnabled) (This)->lpVtbl->GetStreamSelection(This,dwStreamIndex,pfEnabled)
+#define IMFPMediaItem_GetURL(This,ppwszURL) (This)->lpVtbl->GetURL(This,ppwszURL)
+#define IMFPMediaItem_GetUserData(This,pdwUserData) (This)->lpVtbl->GetUserData(This,pdwUserData)
+#define IMFPMediaItem_HasAudio(This,pfHasAudio,pfSelected) (This)->lpVtbl->HasAudio(This,pfHasAudio,pfSelected)
+#define IMFPMediaItem_HasVideo(This,pfHasVideo,pfSelected) (This)->lpVtbl->HasVideo(This,pfHasVideo,pfSelected)
+#define IMFPMediaItem_IsProtected(This,pfProtected) (This)->lpVtbl->IsProtected(This,pfProtected)
+#define IMFPMediaItem_SetStartStopPosition(This,pguidStartPositionType,pvStartValue,pguidStopPositionType,pvStopValue) (This)->lpVtbl->SetStartStopPosition(This,pguidStartPositionType,pvStartValue,pguidStopPositionType,pvStopValue)
+#define IMFPMediaItem_SetStreamSelection(This,dwStreamIndex,fEnabled) (This)->lpVtbl->SetStreamSelection(This,dwStreamIndex,fEnabled)
+#define IMFPMediaItem_SetStreamSink(This,dwStreamIndex,pMediaSink) (This)->lpVtbl->SetStreamSink(This,dwStreamIndex,pMediaSink)
+#define IMFPMediaItem_SetUserData(This,dwUserData) (This)->lpVtbl->SetUserData(This,dwUserData)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IMFPMediaPlayer
+DECLARE_INTERFACE_(IMFPMediaPlayer,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFPMediaPlayer methods */
+ STDMETHOD_(HRESULT,ClearMediaItem)(THIS) PURE;
+ STDMETHOD_(HRESULT,CreateMediaItemFromObject)(THIS_ IUnknown *pIUnknownObj,BOOL fSync,DWORD_PTR dwUserData,IMFPMediaItem **ppMediaItem) PURE;
+ STDMETHOD_(HRESULT,CreateMediaItemFromURL)(THIS_ LPCWSTR pwszURL,BOOL fSync,DWORD_PTR dwUserData,IMFPMediaItem **ppMediaItem) PURE;
+ STDMETHOD_(HRESULT,FrameStep)(THIS) PURE;
+ STDMETHOD_(HRESULT,GetAspectRatioMode)(THIS_ DWORD *pdwAspectRatioMode) PURE;
+ STDMETHOD_(HRESULT,GetBalance)(THIS_ float *pflBalance) PURE;
+ STDMETHOD_(HRESULT,GetBorderColor)(THIS_ COLORREF *pClr) PURE;
+ STDMETHOD_(HRESULT,GetDuration)(THIS_ REFGUID guidPositionType,PROPVARIANT *pvDurationValue) PURE;
+ STDMETHOD_(HRESULT,GetIdealVideoSize)(THIS_ SIZE *pszMin,SIZE *pszMax) PURE;
+ STDMETHOD_(HRESULT,GetMediaItem)(THIS_ IMFPMediaItem **ppIMFPMediaItem) PURE;
+ STDMETHOD_(HRESULT,GetMute)(THIS_ WINBOOL *pfMute) PURE;
+ STDMETHOD_(HRESULT,GetNativeVideoSize)(THIS_ SIZE *pszVideo,SIZE *pszARVideo) PURE;
+ STDMETHOD_(HRESULT,GetPosition)(THIS_ REFGUID guidPositionType,PROPVARIANT *pvPositionValue) PURE;
+ STDMETHOD_(HRESULT,GetRate)(THIS_ float *pflRate) PURE;
+ STDMETHOD_(HRESULT,GetState)(THIS_ MFP_MEDIAPLAYER_STATE *peState) PURE;
+ STDMETHOD_(HRESULT,GetSupportedRates)(THIS_ WINBOOL fForwardDirection,float *pflSlowestRate,float *pflFastestRate) PURE;
+ STDMETHOD_(HRESULT,GetVideoSourceRect)(THIS_ MFVideoNormalizedRect *pnrcSource) PURE;
+ STDMETHOD_(HRESULT,GetVideoWindow)(THIS_ HWND *phwndVideo) PURE;
+ STDMETHOD_(HRESULT,GetVolume)(THIS_ float *pflVolume) PURE;
+ STDMETHOD_(HRESULT,InsertEffect)(THIS_ IUnknown *pEffect,WINBOOL fOptional) PURE;
+ STDMETHOD_(HRESULT,Pause)(THIS) PURE;
+ STDMETHOD_(HRESULT,Play)(THIS) PURE;
+ STDMETHOD_(HRESULT,RemoveAllEffects)(THIS) PURE;
+ STDMETHOD_(HRESULT,RemoveEffect)(THIS_ IUnknown *pEffect) PURE;
+ STDMETHOD(SetAspectRatioMode)(THIS_ DWORD dwAspectRatioMode) PURE;
+ STDMETHOD_(HRESULT,SetBalance)(THIS_ float flBalance) PURE;
+ STDMETHOD_(HRESULT,SetBorderColor)(THIS_ COLORREF Clr) PURE;
+ STDMETHOD_(HRESULT,SetMediaItem)(THIS_ IMFPMediaItem *pIMFPMediaItem) PURE;
+ STDMETHOD_(HRESULT,SetMute)(THIS_ WINBOOL fMute) PURE;
+ STDMETHOD_(HRESULT,SetPosition)(THIS_ REFGUID guidPositionType,const PROPVARIANT *pvPositionValue) PURE;
+ STDMETHOD_(HRESULT,SetRate)(THIS_ float flRate) PURE;
+ STDMETHOD_(HRESULT,SetVideoSourceRect)(THIS_ const MFVideoNormalizedRect *pnrcSource) PURE;
+ STDMETHOD_(HRESULT,SetVolume)(THIS_ float flVolume) PURE;
+ STDMETHOD_(HRESULT,Shutdown)(THIS) PURE;
+ STDMETHOD_(HRESULT,Stop)(THIS) PURE;
+ STDMETHOD_(HRESULT,UpdateVideo)(THIS) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IMFPMediaPlayer_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFPMediaPlayer_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFPMediaPlayer_Release(This) (This)->pVtbl->Release(This)
+#define IMFPMediaPlayer_ClearMediaItem() (This)->lpVtbl->ClearMediaItem(This)
+#define IMFPMediaPlayer_CreateMediaItemFromObject(This,pIUnknownObj,fSync,dwUserData,ppMediaItem) (This)->lpVtbl->CreateMediaItemFromObject(This,pIUnknownObj,fSync,dwUserData,ppMediaItem)
+#define IMFPMediaPlayer_CreateMediaItemFromURL(This,pwszURL,fSync,dwUserData,ppMediaItem) (This)->lpVtbl->CreateMediaItemFromURL(This,pwszURL,fSync,dwUserData,ppMediaItem)
+#define IMFPMediaPlayer_FrameStep() (This)->lpVtbl->FrameStep(This)
+#define IMFPMediaPlayer_GetAspectRatioMode(This,pdwAspectRatioMode) (This)->lpVtbl->GetAspectRatioMode(This,pdwAspectRatioMode)
+#define IMFPMediaPlayer_GetBalance(This,pflBalance) (This)->lpVtbl->GetBalance(This,pflBalance)
+#define IMFPMediaPlayer_GetBorderColor(This,pClr) (This)->lpVtbl->GetBorderColor(This,pClr)
+#define IMFPMediaPlayer_GetDuration(This,guidPositionType,pvDurationValue) (This)->lpVtbl->GetDuration(This,guidPositionType,pvDurationValue)
+#define IMFPMediaPlayer_GetIdealVideoSize(This,pszMin,pszMax) (This)->lpVtbl->GetIdealVideoSize(This,pszMin,pszMax)
+#define IMFPMediaPlayer_GetMediaItem(This,ppIMFPMediaItem) (This)->lpVtbl->GetMediaItem(This,ppIMFPMediaItem)
+#define IMFPMediaPlayer_GetMute(This,pfMute) (This)->lpVtbl->GetMute(This,pfMute)
+#define IMFPMediaPlayer_GetNativeVideoSize(This,pszVideo,pszARVideo) (This)->lpVtbl->GetNativeVideoSize(This,pszVideo,pszARVideo)
+#define IMFPMediaPlayer_GetPosition(This,guidPositionType,pvPositionValue) (This)->lpVtbl->GetPosition(This,guidPositionType,pvPositionValue)
+#define IMFPMediaPlayer_GetRate(This,pflRate) (This)->lpVtbl->GetRate(This,pflRate)
+#define IMFPMediaPlayer_GetState(This,peState) (This)->lpVtbl->GetState(This,peState)
+#define IMFPMediaPlayer_GetSupportedRates(This,fForwardDirection,pflSlowestRate,pflFastestRate) (This)->lpVtbl->GetSupportedRates(This,fForwardDirection,pflSlowestRate,pflFastestRate)
+#define IMFPMediaPlayer_GetVideoSourceRect(This,pnrcSource) (This)->lpVtbl->GetVideoSourceRect(This,pnrcSource)
+#define IMFPMediaPlayer_GetVideoWindow(This,phwndVideo) (This)->lpVtbl->GetVideoWindow(This,phwndVideo)
+#define IMFPMediaPlayer_GetVolume(This,pflVolume) (This)->lpVtbl->GetVolume(This,pflVolume)
+#define IMFPMediaPlayer_InsertEffect(This,pEffect,fOptional) (This)->lpVtbl->InsertEffect(This,pEffect,fOptional)
+#define IMFPMediaPlayer_Pause() (This)->lpVtbl->Pause(This)
+#define IMFPMediaPlayer_Play() (This)->lpVtbl->Play(This)
+#define IMFPMediaPlayer_RemoveAllEffects() (This)->lpVtbl->RemoveAllEffects(This)
+#define IMFPMediaPlayer_RemoveEffect(This,pEffect) (This)->lpVtbl->RemoveEffect(This,pEffect)
+#define IMFPMediaPlayer_SetAspectRatioMode(This,dwAspectRatioMode) (This)->lpVtbl->SetAspectRatioMode(This,dwAspectRatioMode)
+#define IMFPMediaPlayer_SetBalance(This,flBalance) (This)->lpVtbl->SetBalance(This,flBalance)
+#define IMFPMediaPlayer_SetBorderColor(This,Clr) (This)->lpVtbl->SetBorderColor(This,Clr)
+#define IMFPMediaPlayer_SetMediaItem(This,pIMFPMediaItem) (This)->lpVtbl->SetMediaItem(This,pIMFPMediaItem)
+#define IMFPMediaPlayer_SetMute(This,fMute) (This)->lpVtbl->SetMute(This,fMute)
+#define IMFPMediaPlayer_SetPosition(This,guidPositionType,pvPositionValue) (This)->lpVtbl->SetPosition(This,guidPositionType,pvPositionValue)
+#define IMFPMediaPlayer_SetRate(This,flRate) (This)->lpVtbl->SetRate(This,flRate)
+#define IMFPMediaPlayer_SetVideoSourceRect(This,pnrcSource) (This)->lpVtbl->SetVideoSourceRect(This,pnrcSource)
+#define IMFPMediaPlayer_SetVolume(This,flVolume) (This)->lpVtbl->SetVolume(This,flVolume)
+#define IMFPMediaPlayer_Shutdown() (This)->lpVtbl->Shutdown(This)
+#define IMFPMediaPlayer_Stop() (This)->lpVtbl->Stop(This)
+#define IMFPMediaPlayer_UpdateVideo() (This)->lpVtbl->UpdateVideo(This)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IMFPMediaPlayerCallback
+DECLARE_INTERFACE_(IMFPMediaPlayerCallback,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFPMediaPlayerCallback methods */
+ STDMETHOD(OnMediaPlayerEvent)(THIS_ MFP_EVENT_HEADER *pEventHeader) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IMFPMediaPlayerCallback_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFPMediaPlayerCallback_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFPMediaPlayerCallback_Release(This) (This)->pVtbl->Release(This)
+#define IMFPMediaPlayerCallback_OnMediaPlayerEvent(This,pEventHeader) (This)->lpVtbl->OnMediaPlayerEvent(This,pEventHeader)
+#endif /*COBJMACROS*/
+
+typedef struct MFP_EVENT_HEADER {
+ MFP_EVENT_TYPE eEventType;
+ HRESULT hrEvent;
+ IMFPMediaPlayer *pMediaPlayer;
+ MFP_MEDIAPLAYER_STATE eState;
+ IPropertyStore *pPropertyStore;
+} MFP_EVENT_HEADER;
+
+typedef struct MFP_PLAY_EVENT {
+ MFP_EVENT_HEADER header;
+ IMFPMediaItem *pMediaItem;
+} MFP_PLAY_EVENT;
+
+typedef struct MFP_PAUSE_EVENT {
+ MFP_EVENT_HEADER header;
+ IMFPMediaItem *pMediaItem;
+} MFP_PAUSE_EVENT;
+
+typedef struct MFP_STOP_EVENT {
+ MFP_EVENT_HEADER header;
+ IMFPMediaItem *pMediaItem;
+} MFP_STOP_EVENT;
+
+typedef struct MFP_POSITION_SET_EVENT {
+ MFP_EVENT_HEADER header;
+ IMFPMediaItem *pMediaItem;
+} MFP_POSITION_SET_EVENT;
+
+typedef struct MFP_RATE_SET_EVENT {
+ MFP_EVENT_HEADER header;
+ IMFPMediaItem *pMediaItem;
+ float flRate;
+} MFP_RATE_SET_EVENT;
+
+typedef struct MFP_MEDIAITEM_CREATED_EVENT {
+ MFP_EVENT_HEADER header;
+ IMFPMediaItem *pMediaItem;
+ DWORD_PTR dwUserData;
+} MFP_MEDIAITEM_CREATED_EVENT;
+
+typedef struct MFP_MEDIAITEM_SET_EVENT {
+ MFP_EVENT_HEADER header;
+ IMFPMediaItem *pMediaItem;
+} MFP_MEDIAITEM_SET_EVENT;
+
+typedef struct MFP_FRAME_STEP_EVENT {
+ MFP_EVENT_HEADER header;
+ IMFPMediaItem *pMediaItem;
+} MFP_FRAME_STEP_EVENT;
+
+typedef struct MFP_MEDIAITEM_CLEARED_EVENT {
+ MFP_EVENT_HEADER header;
+ IMFPMediaItem *pMediaItem;
+} MFP_MEDIAITEM_CLEARED_EVENT;
+
+typedef struct MFP_MF_EVENT {
+ MFP_EVENT_HEADER header;
+ MediaEventType MFEventType;
+ IMFMediaEvent *pMFMediaEvent;
+ IMFPMediaItem *pMediaItem;
+} MFP_MF_EVENT;
+
+typedef struct MFP_ERROR_EVENT {
+ MFP_EVENT_HEADER header;
+} MFP_ERROR_EVENT;
+
+typedef struct MFP_PLAYBACK_ENDED_EVENT {
+ MFP_EVENT_HEADER header;
+ IMFPMediaItem *pMediaItem;
+} MFP_PLAYBACK_ENDED_EVENT;
+
+typedef struct MFP_ACQUIRE_USER_CREDENTIAL_EVENT {
+ MFP_EVENT_HEADER header;
+ DWORD_PTR dwUserData;
+ BOOL fProceedWithAuthentication;
+ HRESULT hrAuthenticationStatus;
+ LPCWSTR pwszURL;
+ LPCWSTR pwszSite;
+ LPCWSTR pwszRealm;
+ LPCWSTR pwszPackage;
+ LONG nRetries;
+ MFP_CREDENTIAL_FLAGS flags;
+ IMFNetCredential *pCredential;
+} MFP_ACQUIRE_USER_CREDENTIAL_EVENT;
+
+typedef UINT32 MFP_CREATION_OPTIONS;
+typedef UINT32 MFP_MEDIAITEM_CHARACTERISTICS;
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+HRESULT WINAPI MFPCreateMediaPlayer(LPCWSTR pwszURL,WINBOOL fStartPlayback,MFP_CREATION_OPTIONS creationOptions,IMFPMediaPlayerCallback *pCallback,HWND hWnd,IMFPMediaPlayer **ppMediaPlayer);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*(_WIN32_WINNT >= 0x0601)*/
+
+#endif /*_INC_MFPLAY*/
diff --git a/mingw-w64-headers/include/mfreadwrite.h b/mingw-w64-headers/include/mfreadwrite.h
new file mode 100644
index 0000000..28f369d
--- /dev/null
+++ b/mingw-w64-headers/include/mfreadwrite.h
@@ -0,0 +1,143 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_MFREADWRITE
+#define _INC_MFREADWRITE
+
+#if (_WIN32_WINNT >= 0x0601)
+
+typedef enum MF_SOURCE_READER_FLAG {
+ MF_SOURCE_READERF_ERROR = 0x00000001,
+ MF_SOURCE_READERF_ENDOFSTREAM = 0x00000002,
+ MF_SOURCE_READERF_NEWSTREAM = 0x00000004,
+ MF_SOURCE_READERF_NATIVEMEDIATYPECHANGED = 0x00000010,
+ MF_SOURCE_READERF_CURRENTMEDIATYPECHANGED = 0x00000020,
+ MF_SOURCE_READERF_STREAMTICK = 0x00000100
+} MF_SOURCE_READER_FLAG;
+
+typedef struct _MF_SINK_WRITER_STATISTICS {
+ DWORD cb;
+ LONGLONG llLastTimestampReceived;
+ LONGLONG llLastTimestampEncoded;
+ LONGLONG llLastTimestampProcessed;
+ LONGLONG llLastStreamTickReceived;
+ LONGLONG llLastSinkSampleRequest;
+ QWORD qwNumSamplesReceived;
+ QWORD qwNumSamplesEncoded;
+ QWORD qwNumSamplesProcessed;
+ QWORD qwNumStreamTicksReceived;
+ DWORD dwByteCountQueued;
+ QWORD qwByteCountProcessed;
+ DWORD dwNumOutstandingSinkSampleRequests;
+ DWORD dwAverageSampleRateReceived;
+ DWORD dwAverageSampleRateEncoded;
+ DWORD dwAverageSampleRateProcessed;
+} MF_SINK_WRITER_STATISTICS;
+
+#undef INTERFACE
+#define INTERFACE IMFSinkWriter
+DECLARE_INTERFACE_(IMFSinkWriter,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFSinkWriter methods */
+ STDMETHOD_(HRESULT,AddStream)(THIS_ IMFMediaType *pTargetMediaType,DWORD *pdwStreamIndex) PURE;
+ STDMETHOD_(HRESULT,BeginWriting)(THIS) PURE;
+ STDMETHOD_(HRESULT,Finalize)(THIS) PURE;
+ STDMETHOD_(HRESULT,Flush)(THIS_ DWORD dwStreamIndex) PURE;
+ STDMETHOD_(HRESULT,GetServiceForStream)(THIS_ DWORD dwStreamIndex,REFGUID guidService,REFIID riid,LPVOID *ppvObject) PURE;
+ STDMETHOD_(HRESULT,GetStatistics)(THIS_ DWORD dwStreamIndex,MF_SINK_WRITER_STATISTICS *pStats) PURE;
+ STDMETHOD_(HRESULT,NotifyEndOfSegment)(THIS_ DWORD dwStreamIndex) PURE;
+ STDMETHOD_(HRESULT,PlaceMarker)(THIS_ DWORD dwStreamIndex,LPVOID pvContext) PURE;
+ STDMETHOD_(HRESULT,SendStreamTick)(THIS_ DWORD dwStreamIndex,LONGLONG llTimestamp) PURE;
+ STDMETHOD_(HRESULT,SetInputMediaType)(THIS_ DWORD dwStreamIndex,IMFMediaType *pInputMediaType,IMFAttributes *pEncodingParameters) PURE;
+ STDMETHOD_(HRESULT,WriteSample)(THIS_ DWORD dwStreamIndex,IMFSample *pSample) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IMFSinkWriter_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFSinkWriter_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFSinkWriter_Release(This) (This)->pVtbl->Release(This)
+#define IMFSinkWriter_AddStream(This,pTargetMediaType,pdwStreamIndex) (This)->lpVtbl->AddStream(This,pTargetMediaType,pdwStreamIndex)
+#define IMFSinkWriter_BeginWriting() (This)->lpVtbl->BeginWriting(This)
+#define IMFSinkWriter_Finalize() (This)->lpVtbl->Finalize(This)
+#define IMFSinkWriter_Flush(This,dwStreamIndex) (This)->lpVtbl->Flush(This,dwStreamIndex)
+#define IMFSinkWriter_GetServiceForStream(This,dwStreamIndex,guidService,riid,ppvObject) (This)->lpVtbl->GetServiceForStream(This,dwStreamIndex,guidService,riid,ppvObject)
+#define IMFSinkWriter_GetStatistics(This,dwStreamIndex,pStats) (This)->lpVtbl->GetStatistics(This,dwStreamIndex,pStats)
+#define IMFSinkWriter_NotifyEndOfSegment(This,dwStreamIndex) (This)->lpVtbl->NotifyEndOfSegment(This,dwStreamIndex)
+#define IMFSinkWriter_PlaceMarker(This,dwStreamIndex,pvContext) (This)->lpVtbl->PlaceMarker(This,dwStreamIndex,pvContext)
+#define IMFSinkWriter_SendStreamTick(This,dwStreamIndex,llTimestamp) (This)->lpVtbl->SendStreamTick(This,dwStreamIndex,llTimestamp)
+#define IMFSinkWriter_SetInputMediaType(This,dwStreamIndex,pInputMediaType,pEncodingParameters) (This)->lpVtbl->SetInputMediaType(This,dwStreamIndex,pInputMediaType,pEncodingParameters)
+#define IMFSinkWriter_WriteSample(This,dwStreamIndex,pSample) (This)->lpVtbl->WriteSample(This,dwStreamIndex,pSample)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IMFSourceReader
+DECLARE_INTERFACE_(IMFSourceReader,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFSourceReader methods */
+ STDMETHOD_(HRESULT,Flush)(THIS_ DWORD dwStreamIndex) PURE;
+ STDMETHOD_(HRESULT,GetCurrentMediaType)(THIS_ DWORD dwStreamIndex,IMFMediaType **ppMediaType) PURE;
+ STDMETHOD_(HRESULT,GetNativeMediaType)(THIS_ DWORD dwStreamIndex,DWORD dwMediaTypeIndex,IMFMediaType **ppMediaType) PURE;
+ STDMETHOD_(HRESULT,GetPresentationAttribute)(THIS_ DWORD dwStreamIndex,REFGUID guidAttribute,PROPVARIANT *pvarAttribute) PURE;
+ STDMETHOD_(HRESULT,GetServiceForStream)(THIS_ DWORD dwStreamIndex,REFGUID guidService,REFIID riid,LPVOID *ppvObject) PURE;
+ STDMETHOD_(HRESULT,GetStreamSelection)(THIS_ DWORD dwStreamIndex,BOOL *pfSelected) PURE;
+ STDMETHOD_(HRESULT,ReadSample)(THIS_ DWORD dwStreamIndex,DWORD dwControlFlags,DWORD *pdwActualStreamIndex,DWORD *pdwStreamFlags,LONGLONG *pllTimestamp,IMFSample **ppSample) PURE;
+ STDMETHOD_(HRESULT,SetCurrentMediaType)(THIS_ DWORD dwStreamIndex,DWORD *pdwReserved,IMFMediaType *pMediaType) PURE;
+ STDMETHOD_(HRESULT,SetCurrentPosition)(THIS_ REFGUID guidTimeFormat,REFPROPVARIANT varPosition) PURE;
+ STDMETHOD_(HRESULT,SetStreamSelection)(THIS_ DWORD dwStreamIndex,BOOL fSelected) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IMFSourceReader_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFSourceReader_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFSourceReader_Release(This) (This)->pVtbl->Release(This)
+#define IMFSourceReader_Flush(This,dwStreamIndex) (This)->lpVtbl->Flush(This,dwStreamIndex)
+#define IMFSourceReader_GetCurrentMediaType(This,dwStreamIndex,ppMediaType) (This)->lpVtbl->GetCurrentMediaType(This,dwStreamIndex,ppMediaType)
+#define IMFSourceReader_GetNativeMediaType(This,dwStreamIndex,dwMediaTypeIndex,ppMediaType) (This)->lpVtbl->GetNativeMediaType(This,dwStreamIndex,dwMediaTypeIndex,ppMediaType)
+#define IMFSourceReader_GetPresentationAttribute(This,dwStreamIndex,guidAttribute,pvarAttribute) (This)->lpVtbl->GetPresentationAttribute(This,dwStreamIndex,guidAttribute,pvarAttribute)
+#define IMFSourceReader_GetServiceForStream(This,dwStreamIndex,guidService,riid,ppvObject) (This)->lpVtbl->GetServiceForStream(This,dwStreamIndex,guidService,riid,ppvObject)
+#define IMFSourceReader_GetStreamSelection(This,dwStreamIndex,pfSelected) (This)->lpVtbl->GetStreamSelection(This,dwStreamIndex,pfSelected)
+#define IMFSourceReader_ReadSample(This,dwStreamIndex,dwControlFlags,pdwActualStreamIndex,pdwStreamFlags,pllTimestamp,ppSample) (This)->lpVtbl->ReadSample(This,dwStreamIndex,dwControlFlags,pdwActualStreamIndex,pdwStreamFlags,pllTimestamp,ppSample)
+#define IMFSourceReader_SetCurrentMediaType(This,dwStreamIndex,pdwReserved,pMediaType) (This)->lpVtbl->SetCurrentMediaType(This,dwStreamIndex,pdwReserved,pMediaType)
+#define IMFSourceReader_SetCurrentPosition(This,guidTimeFormat,varPosition) (This)->lpVtbl->SetCurrentPosition(This,guidTimeFormat,varPosition)
+#define IMFSourceReader_SetStreamSelection(This,dwStreamIndex,fSelected) (This)->lpVtbl->SetStreamSelection(This,dwStreamIndex,fSelected)
+#endif /*COBJMACROS*/
+
+#define MF_SOURCE_READER_FIRST_VIDEO_STREAM 0xFFFFFFFC
+#define MF_SOURCE_READER_FIRST_AUDIO_STREAM 0xFFFFFFFD
+#define MF_SOURCE_READER_ALL_STREAMS 0xFFFFFFFE
+#define MF_SOURCE_READER_MEDIASOURCE 0xFFFFFFFF
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+HRESULT WINAPI MFCreateSinkWriterFromMediaSink(IMFMediaSink *pMediaSink,IMFAttributes *pAttributes,IMFSinkWriter **ppSinkWriter);
+HRESULT WINAPI MFCreateSinkWriterFromURL(LPCWSTR pwszOutputURL,IMFByteStream *pByteStream,IMFAttributes *pAttributes,IMFSinkWriter **ppSinkWriter);
+HRESULT WINAPI MFCreateSourceReaderFromByteStream(IMFByteStream *pByteStream,IMFAttributes *pAttributes,IMFSourceReader **ppSourceReader);
+HRESULT WINAPI MFCreateSourceReaderFromMediaSource(IMFMediaSource *pMediaSource,IMFAttributes *pAttributes,IMFSourceReader **ppSourceReader);
+HRESULT WINAPI MFCreateSourceReaderFromURL(LPCWSTR pwszURL,IMFAttributes *pAttributes,IMFSourceReader **ppSourceReader);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*(_WIN32_WINNT >= 0x0601)*/
+#endif /*_INC_MFREADWRITE*/
diff --git a/mingw-w64-headers/include/mftransform.h b/mingw-w64-headers/include/mftransform.h
new file mode 100644
index 0000000..2a635a1
--- /dev/null
+++ b/mingw-w64-headers/include/mftransform.h
@@ -0,0 +1,208 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_MFTRANSFORM
+#define _INC_MFTRANSFORM
+
+#include <mfidl.h>
+
+#if (_WIN32_WINNT >= 0x0600)
+/*Not supported.*/
+ enum _MFT_DRAIN_TYPE {
+ MFT_DRAIN_PRODUCE_TAILS = 0x00000000,
+ MFT_DRAIN_NO_TAILS = 0x00000001
+ };
+
+#if (_WIN32_WINNT >= 0x0601)
+ enum _MFT_ENUM_FLAG {
+ MFT_ENUM_FLAG_SYNCMFT = 0x00000001,
+ MFT_ENUM_FLAG_ASYNCMFT = 0x00000002,
+ MFT_ENUM_FLAG_HARDWARE = 0x00000004,
+ MFT_ENUM_FLAG_FIELDOFUSE = 0x00000008,
+ MFT_ENUM_FLAG_LOCALMFT = 0x00000010,
+ MFT_ENUM_FLAG_TRANSCODE_ONLY = 0x00000020,
+ MFT_ENUM_FLAG_SORTANDFILTER = 0x00000040,
+ MFT_ENUM_FLAG_ALL = 0x0000003F
+};
+#endif /*(_WIN32_WINNT >= 0x0601)*/
+
+ enum _MFT_INPUT_STATUS_FLAGS {
+ MFT_INPUT_STATUS_ACCEPT_DATA = 0x00000001
+ };
+
+ enum _MFT_INPUT_DATA_BUFFER_FLAGS {
+ MFT_INPUT_DATA_BUFFER_PLACEHOLDER = 0xFFFFFFFF
+ };
+
+ enum _MFT_OUTPUT_STREAM_INFO_FLAGS {
+ MFT_OUTPUT_STREAM_WHOLE_SAMPLES = 0x00000001,
+ MFT_OUTPUT_STREAM_SINGLE_SAMPLE_PER_BUFFER = 0x00000002,
+ MFT_OUTPUT_STREAM_FIXED_SAMPLE_SIZE = 0x00000004,
+ MFT_OUTPUT_STREAM_DISCARDABLE = 0x00000008,
+ MFT_OUTPUT_STREAM_OPTIONAL = 0x00000010,
+ MFT_OUTPUT_STREAM_PROVIDES_SAMPLES = 0x00000100,
+ MFT_OUTPUT_STREAM_CAN_PROVIDE_SAMPLES = 0x00000200,
+ MFT_OUTPUT_STREAM_LAZY_READ = 0x00000400,
+ MFT_OUTPUT_STREAM_REMOVABLE = 0x00000800
+ };
+
+ enum _MFT_OUTPUT_STATUS_FLAGS {
+ MFT_OUTPUT_STATUS_SAMPLE_READY = 0x00000001
+ };
+
+ enum _MFT_OUTPUT_DATA_BUFFER_FLAGS {
+ MFT_OUTPUT_DATA_BUFFER_INCOMPLETE = 0x01000000,
+ MFT_OUTPUT_DATA_BUFFER_FORMAT_CHANGE = 0x00000100,
+ MFT_OUTPUT_DATA_BUFFER_STREAM_END = 0x00000200,
+ MFT_OUTPUT_DATA_BUFFER_NO_SAMPLE = 0x00000300
+ };
+
+ enum _MFT_INPUT_STREAM_INFO_FLAGS {
+ MFT_INPUT_STREAM_WHOLE_SAMPLES = 0x00000001,
+ MFT_INPUT_STREAM_SINGLE_SAMPLE_PER_BUFFER = 0x00000002,
+ MFT_INPUT_STREAM_FIXED_SAMPLE_SIZE = 0x00000004,
+ MFT_INPUT_STREAM_HOLDS_BUFFERS = 0x00000008,
+ MFT_INPUT_STREAM_DOES_NOT_ADDREF = 0x00000100,
+ MFT_INPUT_STREAM_REMOVABLE = 0x00000200,
+ MFT_INPUT_STREAM_OPTIONAL = 0x00000400,
+ MFT_INPUT_STREAM_PROCESSES_IN_PLACE = 0x00000800
+ };
+
+ typedef enum _VSS_HARDWARE_OPTIONS {
+ VSS_BREAKEX_FLAG_MASK_LUNS = 0x00000001,
+ VSS_BREAKEX_FLAG_MAKE_READ_WRITE = 0x00000002,
+ VSS_BREAKEX_FLAG_REVERT_IDENTITY_ALL = 0x00000004,
+ VSS_BREAKEX_FLAG_REVERT_IDENTITY_NONE = 0x00000008,
+ VSS_ONLUNSTATECHANGE_NOTIFY_READ_WRITE = 0x00000100,
+ VSS_ONLUNSTATECHANGE_NOTIFY_LUN_PRE_RECOVERY = 0x00000200,
+ VSS_ONLUNSTATECHANGE_NOTIFY_LUN_POST_RECOVERY = 0x00000400,
+ VSS_ONLUNSTATECHANGE_DO_MASK_LUNS = 0x00000800
+ } VSS_HARDWARE_OPTIONS, *PVSS_HARDWARE_OPTIONS;
+
+ enum _MFT_SET_TYPE_FLAGS {
+ MFT_SET_TYPE_TEST_ONLY = 0x00000001
+ };
+
+ enum _MFT_PROCESS_OUTPUT_STATUS {
+ MFT_PROCESS_OUTPUT_STATUS_NEW_STREAMS = 0x00000100
+ };
+
+ enum _MFT_PROCESS_OUTPUT_FLAGS {
+ MFT_PROCESS_OUTPUT_DISCARD_WHEN_NO_BUFFER = 0x00000001
+ };
+
+typedef enum _MFT_MESSAGE_TYPE {
+ MFT_MESSAGE_COMMAND_FLUSH = 0x00000000,
+ MFT_MESSAGE_COMMAND_DRAIN = 0x00000001,
+ MFT_MESSAGE_SET_D3D_MANAGER = 0x00000002,
+ MFT_MESSAGE_NOTIFY_BEGIN_STREAMING = 0x10000000,
+ MFT_MESSAGE_NOTIFY_END_STREAMING = 0x10000001,
+ MFT_MESSAGE_NOTIFY_END_OF_STREAM = 0x10000002,
+ MFT_MESSAGE_NOTIFY_START_OF_STREAM = 0x10000003,
+ MFT_MESSAGE_COMMAND_MARKER = 0x20000000
+} MFT_MESSAGE_TYPE;
+
+typedef struct _MFT_INPUT_STREAM_INFO {
+ LONGLONG hnsMaxLatency;
+ DWORD dwFlags;
+ DWORD cbSize;
+ DWORD cbMaxLookahead;
+ DWORD cbAlignment;
+} MFT_INPUT_STREAM_INFO;
+
+typedef struct _MFT_OUTPUT_STREAM_INFO {
+ DWORD dwFlags;
+ DWORD cbSize;
+ DWORD cbAlignment;
+} MFT_OUTPUT_STREAM_INFO;
+
+typedef struct _MFT_OUTPUT_DATA_BUFFER {
+ DWORD dwStreamID;
+ IMFSample *pSample;
+ DWORD dwStatus;
+ IMFCollection *pEvents;
+} MFT_OUTPUT_DATA_BUFFER;
+
+#undef INTERFACE
+#define INTERFACE IMFTransform
+DECLARE_INTERFACE_(IMFTransform,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFTransform methods */
+ STDMETHOD_(HRESULT,AddInputStreams)(THIS_ DWORD cStreams,DWORD *adwStreamIDs) PURE;
+ STDMETHOD_(HRESULT,DeleteInputStream)(THIS_ DWORD dwStreamID) PURE;
+ STDMETHOD_(HRESULT,GetAttributes)(THIS_ IMFAttributes **pAttributes) PURE;
+ STDMETHOD_(HRESULT,GetInputAvailableType)(THIS_ DWORD dwInputStreamID,DWORD dwTypeIndex,IMFMediaType **ppType) PURE;
+ STDMETHOD_(HRESULT,GetInputCurrentType)(THIS_ DWORD dwInputStreamID,IMFMediaType **ppType) PURE;
+ STDMETHOD_(HRESULT,GetInputStatus)(THIS_ DWORD dwInputStreamID,DWORD *pdwFlags) PURE;
+ STDMETHOD_(HRESULT,GetInputStreamAttributes)(THIS_ DWORD dwInputStreamID,IMFAttributes **ppAttributes) PURE;
+ STDMETHOD_(HRESULT,GetInputStreamInfo)(THIS_ DWORD dwInputStreamID,MFT_INPUT_STREAM_INFO *pStreamInfo) PURE;
+ STDMETHOD_(HRESULT,GetOutputAvailableType)(THIS_ DWORD dwOutputStreamID,DWORD dwTypeIndex,IMFMediaType **ppType) PURE;
+ STDMETHOD_(HRESULT,GetOutputCurrentType)(THIS_ DWORD dwOutputStreamID,IMFMediaType **ppType) PURE;
+ STDMETHOD_(HRESULT,GetOutputStatus)(THIS_ DWORD *pdwFlags) PURE;
+ STDMETHOD_(HRESULT,GetOutputStreamAttributes)(THIS_ DWORD dwOutputStreamID,IMFAttributes **ppAttributes) PURE;
+ STDMETHOD_(HRESULT,GetOutputStreamInfo)(THIS_ DWORD dwOutputStreamID,MFT_OUTPUT_STREAM_INFO *pStreamInfo) PURE;
+ STDMETHOD_(HRESULT,GetStreamCount)(THIS_ DWORD *pcInputStreams,DWORD *pcOutputStreams) PURE;
+ STDMETHOD_(HRESULT,GetStreamIDs)(THIS_ DWORD dwInputIDArraySize,DWORD *pdwInputIDs,DWORD dwOutputIDArraySize,DWORD *pdwOutputIDs) PURE;
+ STDMETHOD_(HRESULT,GetStreamLimits)(THIS_ DWORD *pdwInputMinimum,DWORD *pdwInputMaximum,DWORD *pdwOutputMinimum,DWORD *pdwOutputMaximum) PURE;
+ STDMETHOD_(HRESULT,ProcessEvent)(THIS_ DWORD dwInputStreamID,IMFMediaEvent *pEvent) PURE;
+ STDMETHOD_(HRESULT,ProcessInput)(THIS_ DWORD dwInputStreamID,IMFSample *pSample,DWORD dwFlags) PURE;
+ STDMETHOD_(HRESULT,ProcessMessage)(THIS_ MFT_MESSAGE_TYPE eMessage,ULONG_PTR ulParam) PURE;
+ STDMETHOD_(HRESULT,ProcessOutput)(THIS_ DWORD dwFlags,DWORD cOutputBufferCount,MFT_OUTPUT_DATA_BUFFER *pOutputSamples,DWORD *pdwStatus) PURE;
+ STDMETHOD_(HRESULT,SetInputType)(THIS_ DWORD dwInputStreamID,IMFMediaType *pType,DWORD dwFlags) PURE;
+ STDMETHOD_(HRESULT,SetOutputBounds)(THIS_ LONGLONG hnsLowerBound,LONGLONG hnsUpperBound) PURE;
+ STDMETHOD_(HRESULT,SetOutputType)(THIS_ DWORD dwOutputStreamID,IMFMediaType *pType,DWORD dwFlags) PURE;
+
+ END_INTERFACE
+};
+
+#ifdef COBJMACROS
+#define IMFTransform_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFTransform_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFTransform_Release(This) (This)->pVtbl->Release(This)
+#define IMFTransform_AddInputStreams(This,cStreams,adwStreamIDs) (This)->lpVtbl->AddInputStreams(This,cStreams,adwStreamIDs)
+#define IMFTransform_DeleteInputStream(This,dwStreamID) (This)->lpVtbl->DeleteInputStream(This,dwStreamID)
+#define IMFTransform_GetAttributes(This,pAttributes) (This)->lpVtbl->GetAttributes(This,pAttributes)
+#define IMFTransform_GetInputAvailableType(This,dwInputStreamID,dwTypeIndex,ppType) (This)->lpVtbl->GetInputAvailableType(This,dwInputStreamID,dwTypeIndex,ppType)
+#define IMFTransform_GetInputCurrentType(This,dwInputStreamID,ppType) (This)->lpVtbl->GetInputCurrentType(This,dwInputStreamID,ppType)
+#define IMFTransform_GetInputStatus(This,dwInputStreamID,pdwFlags) (This)->lpVtbl->GetInputStatus(This,dwInputStreamID,pdwFlags)
+#define IMFTransform_GetInputStreamAttributes(This,dwInputStreamID,ppAttributes) (This)->lpVtbl->GetInputStreamAttributes(This,dwInputStreamID,ppAttributes)
+#define IMFTransform_GetInputStreamInfo(This,dwInputStreamID,pStreamInfo) (This)->lpVtbl->GetInputStreamInfo(This,dwInputStreamID,pStreamInfo)
+#define IMFTransform_GetOutputAvailableType(This,dwOutputStreamID,dwTypeIndex,ppType) (This)->lpVtbl->GetOutputAvailableType(This,dwOutputStreamID,dwTypeIndex,ppType)
+#define IMFTransform_GetOutputCurrentType(This,dwOutputStreamID,ppType) (This)->lpVtbl->GetOutputCurrentType(This,dwOutputStreamID,ppType)
+#define IMFTransform_GetOutputStatus(This,pdwFlags) (This)->lpVtbl->GetOutputStatus(This,pdwFlags)
+#define IMFTransform_GetOutputStreamAttributes(This,dwOutputStreamID,ppAttributes) (This)->lpVtbl->GetOutputStreamAttributes(This,dwOutputStreamID,ppAttributes)
+#define IMFTransform_GetOutputStreamInfo(This,dwOutputStreamID,pStreamInfo) (This)->lpVtbl->GetOutputStreamInfo(This,dwOutputStreamID,pStreamInfo)
+#define IMFTransform_GetStreamCount(This,pcInputStreams,pcOutputStreams) (This)->lpVtbl->GetStreamCount(This,pcInputStreams,pcOutputStreams)
+#define IMFTransform_GetStreamIDs(This,dwInputIDArraySize,pdwInputIDs,dwOutputIDArraySize,pdwOutputIDs) (This)->lpVtbl->GetStreamIDs(This,dwInputIDArraySize,pdwInputIDs,dwOutputIDArraySize,pdwOutputIDs)
+#define IMFTransform_GetStreamLimits(This,pdwInputMinimum,pdwInputMaximum,pdwOutputMinimum,pdwOutputMaximum) (This)->lpVtbl->GetStreamLimits(This,pdwInputMinimum,pdwInputMaximum,pdwOutputMinimum,pdwOutputMaximum)
+#define IMFTransform_ProcessEvent(This,dwInputStreamID,pEvent) (This)->lpVtbl->ProcessEvent(This,dwInputStreamID,pEvent)
+#define IMFTransform_ProcessInput(This,dwInputStreamID,pSample,dwFlags) (This)->lpVtbl->ProcessInput(This,dwInputStreamID,pSample,dwFlags)
+#define IMFTransform_ProcessMessage(This,eMessage,ulParam) (This)->lpVtbl->ProcessMessage(This,eMessage,ulParam)
+#define IMFTransform_ProcessOutput(This,dwFlags,cOutputBufferCount,pOutputSamples,pdwStatus) (This)->lpVtbl->ProcessOutput(This,dwFlags,cOutputBufferCount,pOutputSamples,pdwStatus)
+#define IMFTransform_SetInputType(This,dwInputStreamID,pType,dwFlags) (This)->lpVtbl->SetInputType(This,dwInputStreamID,pType,dwFlags)
+#define IMFTransform_SetOutputBounds(This,hnsLowerBound,hnsUpperBound) (This)->lpVtbl->SetOutputBounds(This,hnsLowerBound,hnsUpperBound)
+#define IMFTransform_SetOutputType(This,dwOutputStreamID,pType,dwFlags) (This)->lpVtbl->SetOutputType(This,dwOutputStreamID,pType,dwFlags)
+#endif /*COBJMACROS*/
+
+#if (_WIN32_WINNT >= 0x0601)
+#ifdef __cplusplus
+extern "C" {
+#endif
+HRESULT WINAPI MFCreateTransformActivate(IMFActivate **ppActivate);
+#ifdef __cplusplus
+}
+#endif
+#endif /*(_WIN32_WINNT >= 0x0601)*/
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
+#endif /*_INC_MFTRANSFORM*/
diff --git a/mingw-w64-headers/include/mmreg.h b/mingw-w64-headers/include/mmreg.h
index 8653f6d..bad1ea7 100644
--- a/mingw-w64-headers/include/mmreg.h
+++ b/mingw-w64-headers/include/mmreg.h
@@ -2598,6 +2598,24 @@
#define MIXERCONTROL_CONTROLTYPE_SRS_SYNTHSELECT (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 8)
#endif
+#if (_WIN32_WINNT >= 0x0600)
+#define WAVE_FORMAT_MPEG_HEAAC 0x1610
+
+typedef struct heaacwaveinfo_tag {
+ WAVEFORMATEX wfx;
+ WORD wPayloadType;
+ WORD wAudioProfileLevelIndication;
+ WORD wStructType;
+ WORD wReserved1;
+ DWORD dwReserved2;
+} HEAACWAVEINFO, *PHEAACWAVEINFO;
+
+typedef struct heaacwaveformat_tag {
+ HEAACWAVEINFO wfInfo;
+ BYTE pbAudioSpecificConfig[1];
+} HEAACWAVEFORMAT, *PHEAACWAVEFORMAT;
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
#ifndef RC_INVOKED
#include "poppack.h"
#endif
diff --git a/mingw-w64-headers/include/mprapi.h b/mingw-w64-headers/include/mprapi.h
index efc2b0a..49ac3fd 100644
--- a/mingw-w64-headers/include/mprapi.h
+++ b/mingw-w64-headers/include/mprapi.h
@@ -13,6 +13,10 @@
extern "C" {
#endif
+#ifndef CALLBACK
+#define CALLBACK WINAPI
+#endif
+
#define RRAS_SERVICE_NAME TEXT("RemoteAccess")
#define PID_IPX 0x0000002B
@@ -506,9 +510,6 @@
WINBOOL WINAPI MprAdminAcceptNewConnection(RAS_CONNECTION_0 *pRasConnection0,RAS_CONNECTION_1 *pRasConnection1);
WINBOOL WINAPI MprAdminAcceptNewConnection2(RAS_CONNECTION_0 *pRasConnection0,RAS_CONNECTION_1 *pRasConnection1,RAS_CONNECTION_2 *pRasConnection2);
WINBOOL WINAPI MprAdminAcceptNewLink (RAS_PORT_0 *pRasPort0,RAS_PORT_1 *pRasPort1);
-#if (_WIN32_WINNT >= 0x0600)
- WINBOOL WINAPI MprAdminAcceptReauthentication(RAS_CONNECTION_0 *pRasConnection0,RAS_CONNECTION_1 *pRasConnection1,RAS_CONNECTION_2 *pRasConnection2,RAS_CONNECTION_3 *pRasConnection3);
-#endif
VOID WINAPI MprAdminConnectionHangupNotification(RAS_CONNECTION_0 *pRasConnection0,RAS_CONNECTION_1 *pRasConnection1);
VOID WINAPI MprAdminConnectionHangupNotification2(RAS_CONNECTION_0 *pRasConnection0,RAS_CONNECTION_1 *pRasConnection1,RAS_CONNECTION_2 *pRasConnection2);
DWORD WINAPI MprAdminConnectionRemoveQuarantine(HANDLE hRasServer,HANDLE hRasConnection,WINBOOL fIsIpAddress);
@@ -615,6 +616,313 @@
#define MprInfoBlockExists(h,t) (MprInfoBlockFind((h),(t),NULL,NULL,NULL)==NO_ERROR)
+#if (_WIN32_WINNT >= 0x0600)
+typedef enum _RAS_QUARANTINE_STATE {
+ RAS_QUAR_STATE_NORMAL,
+ RAS_QUAR_STATE_QUARANTINE,
+ RAS_QUAR_STATE_PROBATION,
+ RAS_QUAR_STATE_NOT_CAPABLE
+} RAS_QUARANTINE_STATE;
+
+typedef struct _MPR_FILTER_0 {
+ WINBOOL fEnabled;
+} MPR_FILTER_0, *PMPR_FILTER_0;
+
+typedef struct _MPR_SERVER_2 {
+ DWORD dwNumPptpPorts;
+ DWORD dwPptpPortFlags;
+ DWORD dwNumL2tpPorts;
+ DWORD dwL2tpPortFlags;
+ DWORD dwNumSstpPorts;
+ DWORD dwSstpPortFlags;
+} MPR_SERVER_2, *PMPR_SERVER_2;
+
+typedef struct _PPP_IPV6CP_INFO {
+ DWORD dwVersion;
+ DWORD dwSize;
+ DWORD dwError;
+ BYTE bInterfaceIdentifier[8];
+ BYTE bRemoteInterfaceIdentifier[8];
+ DWORD dwOptions;
+ DWORD dwRemoteOptions;
+ BYTE bPrefix[8];
+ DWORD dwPrefixLength;
+} PPP_IPV6_CP_INFO, *PPPP_IPV6_CP_INFO;
+
+typedef struct _PPP_INFO_3 {
+ PPP_NBFCP_INFO nbf;
+ PPP_IPCP_INFO2 ip;
+ PPP_IPV6_CP_INFO ipv6;
+ PPP_CCP_INFO ccp;
+ PPP_LCP_INFO lcp;
+} PPP_INFO_3;
+
+typedef struct _RAS_CONNECTION_3 {
+ DWORD dwVersion;
+ DWORD dwSize;
+ HANDLE hConnection;
+ WCHAR wszUserName[UNLEN + 1];
+ ROUTER_INTERFACE_TYPE dwInterfaceType;
+ GUID guid;
+ PPP_INFO_3 PppInfo3;
+ RAS_QUARANTINE_STATE rasQuarState;
+ FILETIME timer;
+} RAS_CONNECTION_3, *PRAS_CONNECTION_3;
+
+WINBOOL CALLBACK MprAdminAcceptNewConnection3(
+ RAS_CONNECTION_0 *pRasConnection0,
+ RAS_CONNECTION_1 *pRasConnection1,
+ RAS_CONNECTION_2 *pRasConnection2,
+ RAS_CONNECTION_3 *pRasConnection3
+);
+
+WINBOOL CALLBACK MprAdminAcceptReauthentication(
+ RAS_CONNECTION_0 *pRasConnection0,
+ RAS_CONNECTION_1 *pRasConnection1,
+ RAS_CONNECTION_2 *pRasConnection2,
+ RAS_CONNECTION_3 *pRasConnection3
+);
+
+void CALLBACK MprAdminConnectionHangupNotification3(
+ RAS_CONNECTION_0 *pRasConnection0,
+ RAS_CONNECTION_1 *pRasConnection1,
+ RAS_CONNECTION_2 *pRasConnection2,
+ RAS_CONNECTION_3 *pRasConnection3
+);
+
+DWORD MprAdminConnectionRemoveQuarantine(
+ HANDLE hRasServer,
+ HANDLE hRasConnection,
+ WINBOOL fIsIpAddress
+);
+
+DWORD CALLBACK MprAdminGetIpv6AddressForUser(
+ WCHAR *lpwszUserName,
+ WCHAR *lpwszPortName,
+ in6_addr *lpdwIpv6Address,
+ WINBOOL *bNotifyRelease
+);
+
+DWORD CALLBACK MprAdminReleaseIpv6AddressForUser(
+ WCHAR *lpwszUserName,
+ WCHAR *lpwszPortName,
+ in6_addr *lpdwIpv6Address
+);
+
+DWORD WINAPI MprConfigFilterGetInfo(
+ HANDLE hMprConfig,
+ DWORD dwLevel,
+ DWORD dwTransportId,
+ LPBYTE lpBuffer
+);
+
+DWORD WINAPI MprConfigFilterSetInfo(
+ HANDLE hMprConfig,
+ DWORD dwLevel,
+ DWORD dwTransportId,
+ LPBYTE lpBuffer
+);
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
+#if (_WIN32_WINNT >= 0x0601)
+#define MPRAPI_RAS_CONNECTION_OBJECT_REVISION_1 0x01
+#define MPRAPI_MPR_SERVER_OBJECT_REVISION_1 0x01
+#define MPRAPI_MPR_SERVER_SET_CONFIG_OBJECT_REVISION_1 0x01
+
+typedef enum {
+ MPRAPI_OBJECT_TYPE_RAS_CONNECTION_OBJECT = 0x1,
+ MPRAPI_OBJECT_TYPE_MPR_SERVER_OBJECT = 0x2,
+ MPRAPI_OBJECT_TYPE_MPR_SERVER_SET_CONFIG_OBJECT = 0x3,
+ MPRAPI_OBJECT_TYPE_AUTH_VALIDATION_OBJECT = 0x4,
+ MPRAPI_OBJECT_TYPE_UPDATE_CONNECTION_OBJECT = 0x5
+} MPRAPI_OBJECT_TYPE;
+
+typedef struct _MPRAPI_OBJECT_HEADER {
+ UCHAR revision;
+} MPRAPI_OBJECT_HEADER, *PMPRAPI_OBJECT_HEADER;
+
+typedef struct _AUTH_VALIDATION_EX {
+ MPRAPI_OBJECT_HEADER Header;
+ HANDLE hRasConnection;
+ WCHAR wszUserName[UNLEN + 1 ];
+ WCHAR wszLogonDomain[DNLEN + 1 ];
+ DWORD AuthInfoSize;
+ BYTE AuthInfo[1];
+} AUTH_VALIDATION_EX, *PAUTH_VALIDATION_EX;
+
+#define RAS_FLAGS_PPP_CONNECTION 0x00000001
+#define RAS_FLAGS_MESSENGER_PRESENT 0x00000002
+#define RAS_FLAGS_QUARANTINE_PRESENT 0x00000008
+#define RAS_FLAGS_ARAP_CONNECTION 0x00000010
+#define RAS_FLAGS_IKEV2_CONNECTION 0x00000010
+#define RAS_FLAGS_DORMANT 0x00000020
+
+#define IPADDRESSLEN 15
+
+typedef struct _PPP_PROJECTION_INFO {
+ DWORD dwIPv4NegotiationError;
+ WCHAR wszAddress[IPADDRESSLEN + 1];
+ WCHAR wszRemoteAddress[IPADDRESSLEN + 1];
+ DWORD dwIPv4Options;
+ DWORD dwIPv4RemoteOptions;
+ ULONG64 IPv4SubInterfaceIndex;
+ DWORD dwIPv6NegotiationError;
+ BYTE bInterfaceIdentifier[8];
+ BYTE bRemoteInterfaceIdentifier[8];
+ BYTE bPrefix[8];
+ DWORD dwPrefixLength;
+ ULONG64 IPv6SubInterfaceIndex;
+ DWORD dwLcpError;
+ DWORD dwAuthenticationProtocol;
+ DWORD dwAuthenticationData;
+ DWORD dwRemoteAuthenticationProtocol;
+ DWORD dwRemoteAuthenticationData;
+ DWORD dwLcpTerminateReason;
+ DWORD dwLcpRemoteTerminateReason;
+ DWORD dwLcpOptions;
+ DWORD dwLcpRemoteOptions;
+ DWORD dwEapTypeId;
+ DWORD dwRemoteEapTypeId;
+ DWORD dwCcpError;
+ DWORD dwCompressionAlgorithm;
+ DWORD dwCcpOptions;
+ DWORD dwRemoteCompressionAlgorithm;
+ DWORD dwCcpRemoteOptions;
+} PPP_PROJECTION_INFO, *PPP_PROJECTION_INFO;
+
+typedef struct _IKEV2_PROJECTION_INFO {
+ DWORD dwIPv4NegotiationError;
+ WCHAR wszAddress[IPADDRESSLEN + 1];
+ WCHAR wszRemoteAddress[IPADDRESSLEN + 1];
+ ULONG64 IPv4SubInterfaceIndex;
+ DWORD dwIPv6NegotiationError;
+ BYTE bInterfaceIdentifier[8];
+ BYTE bRemoteInterfaceIdentifier[8];
+ BYTE bPrefix[8];
+ DWORD dwPrefixLength;
+ ULONG64 IPv6SubInterfaceIndex;
+ DWORD dwOptions;
+ DWORD dwAuthenticationProtocol;
+ DWORD dwEapTypeId;
+ DWORD dwCompressionAlgorithm;
+ DWORD dwEncryptionMethod;
+} IKEV2_PROJECTION_INFO, *PIKEV2_PROJECTION_INFO;
+
+typedef struct _PROJECTION_INFO {
+ UCHAR projectionInfoType;
+ __MINGW_EXTENSION union {
+ IKEV2_PROJECTION_INFO Ikev2ProjectionInfo;
+ PPP_PROJECTION_INFO PppProjectionInfo;
+ } DUMMYUNIONNAME;
+} PROJECTION_INFO, *PPROJECTION_INFO;
+
+typedef struct _RAS_CONNECTION_EX {
+ MPRAPI_OBJECT_HEADER Header;
+ DWORD dwConnectDuration;
+ ROUTER_INTERFACE_TYPE dwInterfaceType;
+ DWORD dwConnectionFlags;
+ WCHAR wszInterfaceName[MAX_INTERFACE_NAME_LEN + 1];
+ WCHAR wszUserName[UNLEN + 1];
+ WCHAR wszLogonDomain[DNLEN + 1];
+ WCHAR wszRemoteComputer[NETBIOS_NAME_LEN + 1];
+ GUID guid;
+ RAS_QUARANTINE_STATE rasQuarState;
+ FILETIME probationTime;
+ DWORD dwBytesXmited;
+ DWORD dwBytesRcved;
+ DWORD dwFramesXmited;
+ DWORD dwFramesRcved;
+ DWORD dwCrcErr;
+ DWORD dwTimeoutErr;
+ DWORD dwAlignmentErr;
+ DWORD dwHardwareOverrunErr;
+ DWORD dwFramingErr;
+ DWORD dwBufferOverrunErr;
+ DWORD dwCompressionRatioIn;
+ DWORD dwCompressionRatioOut;
+ DWORD dwNumSwitchOvers;
+ WCHAR wszRemoteEndpointAddress[MAXIPADRESSLEN+1];
+ WCHAR wszLocalEndpointAddress[MAXIPADRESSLEN+1];
+ PROJECTION_INFO ProjectionInfo;
+ HANDLE hConnection;
+ HANDLE hInterface;
+} RAS_CONNECTION_EX, *PRAS_CONNECTION_EX;
+
+typedef struct _RAS_UPDATE_CONNECTION {
+ MPRAPI_OBJECT_HEADER Header;
+ DWORD dwIfIndex;
+ WCHAR wszLocalEndpointAddress[MAXIPADRESSLEN+1];
+ WCHAR wszRemoteEndpointAddress[MAXIPADRESSLEN+1];
+} RAS_UPDATE_CONNECTION, *PRAS_UPDATE_CONNECTION;
+
+#define MPRAPI_IKEV2_SET_TUNNEL_CONFIG_PARAMS 0x01
+
+typedef struct _IKEV2_TUNNEL_CONFIG_PARAMS {
+ DWORD dwIdleTimeout;
+ DWORD dwNetworkBlackoutTime;
+ DWORD dwSaLifeTime;
+ DWORD dwSaDataSizeForRenegotiation;
+ DWORD dwConfigOptions;
+ DWORD dwTotalCertificates;
+ CERT_NAME_BLOB *certificateNames;
+} IKEV2_TUNNEL_CONFIG_PARAMS, *PIKEV2_TUNNEL_CONFIG_PARAMS;
+
+typedef struct _IKEV2_CONFIG_PARAMS {
+ DWORD dwNumPorts;
+ DWORD dwPortFlags;
+ DWORD dwTunnelConfigParamFlags;
+ IKEV2_TUNNEL_CONFIG_PARAMS TunnelConfigParams;
+} IKEV2_CONFIG_PARAMS, *PIKEV2_CONFIG_PARAMS;
+
+typedef struct _PPTP_CONFIG_PARAMS {
+ DWORD dwNumPorts;
+ DWORD dwPortFlags;
+} PPTP_CONFIG_PARAMS, *PPPTP_CONFIG_PARAMS;
+
+typedef struct _L2TP_CONFIG_PARAMS {
+ DWORD dwNumPorts;
+ DWORD dwPortFlags;
+} L2TP_CONFIG_PARAMS, *L2TP_CONFIG_PARAMS;
+
+typedef struct _SSTP_CERT_INFO {
+ BOOL isDefault;
+ CRYPT_HASH_BLOB certBlob;
+} SSTP_CERT_INFO, *SSTP_CERT_INFO;
+
+typedef struct _SSTP_CONFIG_PARAMS {
+ DWORD dwNumPorts;
+ DWORD dwPortFlags;
+ BOOL isUseHttps;
+ DWORD certAlgorithm;
+ SSTP_CERT_INFO sstpCertDetails;
+} SSTP_CONFIG_PARAMS, *SSTP_CONFIG_PARAMS;
+
+typedef struct _MPRAPI_TUNNEL_CONFIG_PARAMS {
+ IKEV2_CONFIG_PARAMS IkeConfigParams;
+ PPTP_CONFIG_PARAMS PptpConfigParams;
+ L2TP_CONFIG_PARAMS L2tpConfigParams;
+ SSTP_CONFIG_PARAMS SstpConfigParams;
+} MPRAPI_TUNNEL_CONFIG_PARAMS, *PMPRAPI_TUNNEL_CONFIG_PARAMS;
+
+typedef struct _MPR_SERVER_SET_CONFIG_EX {
+ MPRAPI_OBJECT_HEADER Header;
+ DWORD setConfigForProtocols;
+ MPRAPI_TUNNEL_CONFIG_PARAMS ConfigParams;
+} MPR_SERVER_SET_CONFIG_EX, *PMPR_SERVER_SET_CONFIG_EX;
+
+DWORD APIENTRY MprConfigServerConnect(
+ LPWSTR lpwsServerName,
+ HANDLE *phMprConfig
+);
+
+DWORD APIENTRY MprConfigServerSetInfo(
+ HANDLE hMprConfig,
+ MPR_SERVER_SET_CONFIG_EX *pSetServerConfig
+);
+
+#endif /*(_WIN32_WINNT >= 0x0601)*/
+
#ifdef __cplusplus
}
#endif
diff --git a/mingw-w64-headers/include/msctfmonitorapi.h b/mingw-w64-headers/include/msctfmonitorapi.h
new file mode 100644
index 0000000..ebb8421
--- /dev/null
+++ b/mingw-w64-headers/include/msctfmonitorapi.h
@@ -0,0 +1,19 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+
+#ifndef _INC_MSCTFMONITORAPI
+#define _INC_MSCTFMONITORAPI
+
+#if (_WIN32_WINNT >= 0x0600)
+/* CALLBACKS
+HRESULT CALLBACK UninitLocalMsCtfMonitor(void);
+HRESULT CALLBACK InitLocalMsCtfMonitor(
+ DWORD dwFlags
+);
+*/
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
+#endif _INC_MSCTFMONITORAPI
diff --git a/mingw-w64-headers/include/msdrm.h b/mingw-w64-headers/include/msdrm.h
new file mode 100644
index 0000000..a272345
--- /dev/null
+++ b/mingw-w64-headers/include/msdrm.h
@@ -0,0 +1,50 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_NDHELPER
+#define _INC_NDHELPER
+#if (_WIN32_WINNT >= 0x0600)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef LPVOID DRMHSESSION;
+
+HRESULT WINAPI DRMCreateClientSession(
+ DRMCALLBACK pfnCallback,
+ UINT uCallbackVersion,
+ PWSTR wszGroupIDProviderType,
+ PWSTR wszGroupID,
+ DRMHSESSION *phClient
+);
+
+HRESULT WINAPI DRMAcquireIssuanceLicenseTemplate(
+ DRMHSESSION hClient,
+ UINT uFlags,
+ VOID *pvReserved,
+ UINT cReserved,
+ PWSTR *pwszReserved,
+ PWSTR wszURL,
+ VOID *pvContext
+);
+
+HRESULT DRMIsWindowProtected(
+ HWND hwnd,
+ WINBOOL *pfProtected
+);
+
+HRESULT DRMRegisterProtectedWindow(
+ DRMENVHANDLE hEnv,
+ HWND hwnd
+);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
+#endif /*_INC_NDHELPER*/
diff --git a/mingw-w64-headers/include/msrdc.h b/mingw-w64-headers/include/msrdc.h
new file mode 100644
index 0000000..47f94d2
--- /dev/null
+++ b/mingw-w64-headers/include/msrdc.h
@@ -0,0 +1,315 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_MSRDC
+#define _INC_MSRDC
+
+#if (_WIN32_WINNT >= 0x0600)
+
+typedef LPVOID SimilarityFileIndexT;
+
+typedef enum _GeneratorParametersType {
+ RDCGENTYPE_Unused = 0,
+ RDCGENTYPE_FilterMax = 1
+} GeneratorParametersType;
+
+typedef enum _RdcCreatedTables {
+ RDCTABLE_InvalidOrUnknown = 0,
+ RDCTABLE_Existing = 1,
+ RDCTABLE_New = 2
+} RdcCreatedTables;
+
+typedef enum _RdcMappingAccessMode {
+ RDCMAPPING_Undefined = 0,
+ RDCMAPPING_ReadOnly = 1,
+ RDCMAPPING_ReadWrite = 2
+} RdcMappingAccessMode;
+
+typedef enum _RDC_ErrorCode {
+ RDC_NoError = 0,
+ RDC_HeaderVersionNewer = 1,
+ RDC_HeaderVersionOlder = 2,
+ RDC_HeaderMissingOrCorrupt = 3,
+ RDC_HeaderWrongType = 4,
+ RDC_DataMissingOrCorrupt = 5,
+ RDC_DataTooManyRecords = 6,
+ RDC_FileChecksumMismatch = 7,
+ RDC_ApplicationError = 8,
+ RDC_Aborted = 9,
+ RDC_Win32Error = 10
+} RDC_ErrorCode;
+
+typedef enum _RdcNeedType {
+ RDCNEED_SOURCE = 0,
+ RDCNEED_TARGET = 1,
+ RDCNEED_SEED = 2,
+ RDCNEED_SEED_MAX = 255
+} RdcNeedType;
+
+typedef struct _FindSimilarFileIndexResults {
+ SimilarityFileIndexT m_FileIndex;
+ unsigned m_MatchCount;
+} FindSimilarFileIndexResults;
+
+typedef struct _RdcBufferPointer {
+ ULONG m_Size;
+ ULONG m_Used;
+ BYTE *m_Data;
+} RdcBufferPointer;
+
+typedef struct _RdcNeed {
+ RdcNeedType m_BlockType;
+ unsigned __int64 m_FileOffset;
+ unsigned __int64 m_BlockLength;
+} RdcNeed;
+
+typedef struct _RdcNeedPointer {
+ ULONG m_Size;
+ ULONG m_Used;
+ RdcNeed *m_Data;
+} RdcNeedPointer;
+
+typedef struct _RdcSignature {
+ BYTE m_Signature[MSRDC_SIGNATURE_HASHSIZE];
+ USHORT m_BlockLength;
+} RdcSignature;
+
+typedef struct _RdcSignaturePointer {
+ ULONG m_Size;
+ ULONG m_Used;
+ RdcSignature *m_Data;
+} RdcSignaturePointer;
+
+typedef struct _SimilarityData {
+ unsigned char m_Data[16];
+} SimilarityData;
+
+typedef struct _SimilarityDumpData {
+ SimilarityFileIndexT m_FileIndex;
+ SimilarityData m_Data;
+} SimilarityDumpData;
+
+typedef struct _SimilarityFileId {
+ byte m_FileId[SimilarityFileIdMaxSize];
+} SimilarityFileId;
+
+struct SimilarityMappedViewInfo {
+ unsigned char *m_Data;
+ DWORD m_Length;
+};
+
+#undef INTERFACE
+#define INTERFACE IRdcFileWriter
+DECLARE_INTERFACE_(IRdcFileWriter,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IRdcFileWriter methods */
+ STDMETHOD_(HRESULT,Write)(THIS_ ULONGLONG offsetFileStart,ULONG bytesToWrite,BYTE *buffer) PURE;
+ STDMETHOD_(HRESULT,Truncate)(THIS) PURE;
+ STDMETHOD_(HRESULT,DeleteOnClose)(THIS) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IRdcFileWriter_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IRdcFileWriter_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IRdcFileWriter_Release(This) (This)->pVtbl->Release(This)
+#define IRdcFileWriter_Write(This,offsetFileStart,bytesToWrite,buffer) (This)->lpVtbl->Write(This,offsetFileStart,bytesToWrite,buffer)
+#define IRdcFileWriter_Truncate() (This)->lpVtbl->Truncate(This)
+#define IRdcFileWriter_DeleteOnClose() (This)->lpVtbl->DeleteOnClose(This)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE ISimilarityFileIdTable
+DECLARE_INTERFACE_(ISimilarityFileIdTable,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* ISimilarityFileIdTable methods */
+ STDMETHOD_(HRESULT,CreateTable)(THIS_ wchar_t *path,WINBOOL truncate,BYTE *securityDescriptor,DWORD recordSize,RdcCreatedTables *isNew) PURE;
+ STDMETHOD_(HRESULT,CreateTableIndirect)(THIS_ IRdcFileWriter *fileIdFile,WINBOOL truncate,DWORD recordSize,RdcCreatedTables *isNew) PURE;
+ STDMETHOD_(HRESULT,CloseTable)(THIS_ WINBOOL isValid) PURE;
+ STDMETHOD_(HRESULT,Append)(THIS_ SimilarityFileId *similarityFileId,SimilarityFileIndexT *similarityFileIndex) PURE;
+ STDMETHOD_(HRESULT,Lookup)(THIS_ SimilarityFileIndexT similarityFileIndex,SimilarityFileId *similarityFileId) PURE;
+ STDMETHOD_(HRESULT,Invalidate)(THIS_ SimilarityFileIndexT similarityFileIndex) PURE;
+ STDMETHOD_(HRESULT,GetRecordCount)(THIS_ DWORD *recordCount) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define ISimilarityFileIdTable_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define ISimilarityFileIdTable_AddRef(This) (This)->pVtbl->AddRef(This)
+#define ISimilarityFileIdTable_Release(This) (This)->pVtbl->Release(This)
+#define ISimilarityFileIdTable_CreateTable(This,path,truncate,securityDescriptor,recordSize,isNew) (This)->lpVtbl->CreateTable(This,path,truncate,securityDescriptor,recordSize,isNew)
+#define ISimilarityFileIdTable_CreateTableIndirect(This,fileIdFile,truncate,recordSize,isNew) (This)->lpVtbl->CreateTableIndirect(This,fileIdFile,truncate,recordSize,isNew)
+#define ISimilarityFileIdTable_CloseTable(This,isValid) (This)->lpVtbl->CloseTable(This,isValid)
+#define ISimilarityFileIdTable_Append(This,similarityFileId,similarityFileIndex) (This)->lpVtbl->Append(This,similarityFileId,similarityFileIndex)
+#define ISimilarityFileIdTable_Lookup(This,similarityFileIndex,similarityFileId) (This)->lpVtbl->Lookup(This,similarityFileIndex,similarityFileId)
+#define ISimilarityFileIdTable_Invalidate(This,similarityFileIndex) (This)->lpVtbl->Invalidate(This,similarityFileIndex)
+#define ISimilarityFileIdTable_GetRecordCount(This,recordCount) (This)->lpVtbl->GetRecordCount(This,recordCount)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE ISimilarityTraitsMappedView
+DECLARE_INTERFACE_(ISimilarityTraitsMappedView,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* ISimilarityTraitsMappedView methods */
+ STDMETHOD_(HRESULT,Flush)(THIS) PURE;
+ STDMETHOD_(HRESULT,Unmap)(THIS) PURE;
+ STDMETHOD_(HRESULT,Get)(THIS_ unsigned __int64 fileOffset,WINBOOL dirty,DWORD numElements,SimilarityMappedViewInfo *viewInfo) PURE;
+ STDMETHOD(GetView)(THIS_ unsigned char const **mappedPageBegin,unsigned char const **mappedPageEnd) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define ISimilarityTraitsMappedView_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define ISimilarityTraitsMappedView_AddRef(This) (This)->pVtbl->AddRef(This)
+#define ISimilarityTraitsMappedView_Release(This) (This)->pVtbl->Release(This)
+#define ISimilarityTraitsMappedView_Flush() (This)->lpVtbl->Flush(This)
+#define ISimilarityTraitsMappedView_Unmap() (This)->lpVtbl->Unmap(This)
+#define ISimilarityTraitsMappedView_Get(This,fileOffset,dirty,numElements,viewInfo) (This)->lpVtbl->Get(This,fileOffset,dirty,numElements,viewInfo)
+#define ISimilarityTraitsMappedView_GetView(This,mappedPageBegin,mappedPageEnd) (This)->lpVtbl->GetView(This,mappedPageBegin,mappedPageEnd)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IFindSimilarResults
+DECLARE_INTERFACE_(IFindSimilarResults,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IFindSimilarResults methods */
+ STDMETHOD_(HRESULT,GetSize)(THIS_ DWORD *size) PURE;
+ STDMETHOD_(HRESULT,GetNextFileId)(THIS_ DWORD *numTraitsMatched,SimilarityFileId *similarityFileId) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IFindSimilarResults_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IFindSimilarResults_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IFindSimilarResults_Release(This) (This)->pVtbl->Release(This)
+#define IFindSimilarResults_GetSize(This,size) (This)->lpVtbl->GetSize(This,size)
+#define IFindSimilarResults_GetNextFileId(This,numTraitsMatched,similarityFileId) (This)->lpVtbl->GetNextFileId(This,numTraitsMatched,similarityFileId)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE ISimilarityTraitsMapping
+DECLARE_INTERFACE_(ISimilarityTraitsMapping,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* ISimilarityTraitsMapping methods */
+ STDMETHOD(CloseMapping)(THIS) PURE;
+ STDMETHOD_(HRESULT,SetFileSize)(THIS_ unsigned __int64 *fileSize) PURE;
+ STDMETHOD_(HRESULT,GetFileSize)(THIS_ unsigned __int64 *fileSize) PURE;
+ STDMETHOD_(HRESULT,OpenMapping)(THIS_ RdcMappingAccessMode accessMode,unsigned __int64 begin,unsigned __int64 end,unsigned __int64 *actualEnd) PURE;
+ STDMETHOD_(HRESULT,ResizeMapping)(THIS_ RdcMappingAccessMode accessMode,unsigned __int64 begin,unsigned __int64 end,unsigned __int64 *actualEnd) PURE;
+ STDMETHOD(GetPageSize)(THIS_ DWORD *pageSize) PURE;
+ STDMETHOD_(HRESULT,CreateView)(THIS_ DWORD minimumMappedPages,RdcMappingAccessMode accessMode,ISimilarityTraitsMappedView **mappedView) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define ISimilarityTraitsMapping_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define ISimilarityTraitsMapping_AddRef(This) (This)->pVtbl->AddRef(This)
+#define ISimilarityTraitsMapping_Release(This) (This)->pVtbl->Release(This)
+#define ISimilarityTraitsMapping_CloseMapping() (This)->lpVtbl->CloseMapping(This)
+#define ISimilarityTraitsMapping_SetFileSize(This,fileSize) (This)->lpVtbl->SetFileSize(This,fileSize)
+#define ISimilarityTraitsMapping_GetFileSize(This,fileSize) (This)->lpVtbl->GetFileSize(This,fileSize)
+#define ISimilarityTraitsMapping_OpenMapping(This,accessMode,begin,end,actualEnd) (This)->lpVtbl->OpenMapping(This,accessMode,begin,end,actualEnd)
+#define ISimilarityTraitsMapping_ResizeMapping(This,accessMode,begin,end,actualEnd) (This)->lpVtbl->ResizeMapping(This,accessMode,begin,end,actualEnd)
+#define ISimilarityTraitsMapping_GetPageSize(This,pageSize) (This)->lpVtbl->GetPageSize(This,pageSize)
+#define ISimilarityTraitsMapping_CreateView(This,minimumMappedPages,accessMode,mappedView) (This)->lpVtbl->CreateView(This,minimumMappedPages,accessMode,mappedView)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE ISimilarityReportProgress
+DECLARE_INTERFACE_(ISimilarityReportProgress,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* ISimilarityReportProgress methods */
+ STDMETHOD_(HRESULT,ReportProgress)(THIS_ DWORD percentCompleted) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define ISimilarityReportProgress_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define ISimilarityReportProgress_AddRef(This) (This)->pVtbl->AddRef(This)
+#define ISimilarityReportProgress_Release(This) (This)->pVtbl->Release(This)
+#define ISimilarityReportProgress_ReportProgress(This,percentCompleted) (This)->lpVtbl->ReportProgress(This,percentCompleted)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE ISimilarity
+DECLARE_INTERFACE_(ISimilarity,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* ISimilarity methods */
+ STDMETHOD_(HRESULT,CreateTable)(THIS_ wchar_t *path,WINBOOL truncate,BYTE *securityDescriptor,DWORD recordSize,RdcCreatedTables *isNew) PURE;
+ STDMETHOD_(HRESULT,CreateTableIndirect)(THIS_ ISimilarityTraitsMapping *mapping,IRdcFileWriter *fileIdFile,WINBOOL truncate,DWORD recordSize,RdcCreatedTables *isNew) PURE;
+ STDMETHOD_(HRESULT,CloseTable)(THIS_ WINBOOL isValid) PURE;
+ STDMETHOD_(HRESULT,Append)(THIS_ SimilarityFileId *similarityFileId,SimilarityData *similarityData) PURE;
+ STDMETHOD_(HRESULT,FindSimilarFileId)(THIS_ SimilarityData *similarityData,DWORD resultsSize,IFindSimilarResults **findSimilarResults) PURE;
+ STDMETHOD_(HRESULT,CopyAndSwap)(THIS_ ISimilarityReportProgress *reportProgress) PURE;
+ STDMETHOD_(HRESULT,GetRecordCount)(THIS_ DWORD *recordCount) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define ISimilarity_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define ISimilarity_AddRef(This) (This)->pVtbl->AddRef(This)
+#define ISimilarity_Release(This) (This)->pVtbl->Release(This)
+#define ISimilarity_CreateTable(This,path,truncate,securityDescriptor,recordSize,isNew) (This)->lpVtbl->CreateTable(This,path,truncate,securityDescriptor,recordSize,isNew)
+#define ISimilarity_CreateTableIndirect(This,mapping,fileIdFile,truncate,recordSize,isNew) (This)->lpVtbl->CreateTableIndirect(This,mapping,fileIdFile,truncate,recordSize,isNew)
+#define ISimilarity_CloseTable(This,isValid) (This)->lpVtbl->CloseTable(This,isValid)
+#define ISimilarity_Append(This,similarityFileId,similarityData) (This)->lpVtbl->Append(This,similarityFileId,similarityData)
+#define ISimilarity_FindSimilarFileId(This,similarityData,resultsSize,findSimilarResults) (This)->lpVtbl->FindSimilarFileId(This,similarityData,resultsSize,findSimilarResults)
+#define ISimilarity_CopyAndSwap(This,reportProgress) (This)->lpVtbl->CopyAndSwap(This,reportProgress)
+#define ISimilarity_GetRecordCount(This,recordCount) (This)->lpVtbl->GetRecordCount(This,recordCount)
+#endif /*COBJMACROS*/
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
+#endif /* _INC_MSRDC */
+
diff --git a/mingw-w64-headers/include/mstcpip.h b/mingw-w64-headers/include/mstcpip.h
index 68b9fee..1664d69 100644
--- a/mingw-w64-headers/include/mstcpip.h
+++ b/mingw-w64-headers/include/mstcpip.h
@@ -6,6 +6,8 @@
#ifndef _MSTCPIP_
#define _MSTCPIP_
+#include <_mingw_unicode.h>
+
struct tcp_keepalive {
u_long onoff;
u_long keepalivetime;
@@ -28,5 +30,162 @@
#define RCVALL_ON 1
#define RCVALL_SOCKETLEVELONLY 2
+#if (_WIN32_WINNT >= 0x0600)
+#define SOCKET_SETTINGS_GUARANTEE_ENCRYPTION 0x00000001
+#define SOCKET_SETTINGS_ALLOW_INSECURE 0x00000002
+
+typedef enum _SOCKET_SECURITY_PROTOCOL {
+ SOCKET_SECURITY_PROTOCOL_DEFAULT,
+ SOCKET_SECURITY_PROTOCOL_IPSEC,
+ SOCKET_SECURITY_PROTOCOL_INVALID
+} SOCKET_SECURITY_PROTOCOL;
+
+typedef enum _SOCKET_USAGE_TYPE {
+ SYSTEM_CRITICAL_SOCKET = 1
+} SOCKET_USAGE_TYPE;
+
+typedef struct _SOCKET_PEER_TARGET_NAME {
+ SOCKET_SECURITY_PROTOCOL SecurityProtocol;
+ SOCKADDR_STORAGE PeerAddress;
+ ULONG PeerTargetNameStringLen;
+ wchar_t AllStrings[];
+} SOCKET_PEER_TARGET_NAME;
+
+typedef struct _SOCKET_SECURITY_QUERY_INFO {
+ SOCKET_SECURITY_PROTOCOL SecurityProtocol;
+ ULONG Flags;
+ UINT64 PeerApplicationAccessTokenHandle;
+ UINT64 PeerMachineAccessTokenHandle;
+} SOCKET_SECURITY_QUERY_INFO;
+
+typedef struct _SOCKET_SECURITY_QUERY_TEMPLATE {
+ SOCKET_SECURITY_PROTOCOL SecurityProtocol;
+ SOCKADDR_STORAGE PeerAddress;
+ ULONG PeerTokenAccessMask;
+} SOCKET_SECURITY_QUERY_TEMPLATE;
+
+typedef struct _SOCKET_SECURITY_SETTINGS {
+ SOCKET_SECURITY_PROTOCOL SecurityProtocol;
+ ULONG SecurityFlags;
+} SOCKET_SECURITY_SETTINGS;
+
+#define SOCKET_SETTINGS_IPSEC_SKIP_FILTER_INSTANTIATION 0x00000001
+
+typedef struct _SOCKET_SECURITY_SETTINGS_IPSEC {
+ SOCKET_SECURITY_PROTOCOL SecurityProtocol;
+ ULONG SecurityFlags;
+ ULONG IpsecFlags;
+ GUID AuthipMMPolicyKey;
+ GUID AuthipQMPolicyKey;
+ GUID Reserved;
+ UINT64 Reserved2;
+ ULONG UserNameStringLen;
+ ULONG DomainNameStringLen;
+ ULONG PasswordStringLen;
+ wchar_t AllStrings[];
+} SOCKET_SECURITY_SETTINGS_IPSEC;
+
+#define RtlIpv6AddressToString __MINGW_NAME_AW(RtlIpv6AddressToString)
+#define RtlIpv6AddressToStringEx __MINGW_NAME_AW(RtlIpv6AddressToStringEx)
+
+LPWSTR NTAPI RtlIpv6AddressToStringA(
+ const IN6_ADDR *Addr,
+ LPSTR S
+);
+
+LPSTR NTAPI RtlIpv6AddressToStringW(
+ const IN6_ADDR *Addr,
+ LPWSTR S
+);
+
+LONG NTAPI RtlIpv6AddressToStringExA(
+ const IN6_ADDR *Address,
+ ULONG ScopeId,
+ USHORT Port,
+ LPSTR AddressString,
+ PULONG AddressStringLength
+);
+
+LONG NTAPI RtlIpv6AddressToStringExW(
+ const IN6_ADDR *Address,
+ ULONG ScopeId,
+ USHORT Port,
+ LPWSTR AddressString,
+ PULONG AddressStringLength
+);
+
+#define RtlIpv4AddressToString __MINGW_NAME_AW(RtlIpv4AddressToString)
+LPTSTR NTAPI RtlIpv4AddressToStringA(
+ const IN_ADDR *Addr,
+ LPSTR S
+);
+
+LPTSTR NTAPI RtlIpv4AddressToStringW(
+ const IN_ADDR *Addr,
+ LPWSTR S
+);
+
+#define RtlIpv4AddressToStringEx __MINGW_NAME_AW(RtlIpv4AddressToStringEx)
+LONG NTAPI RtlIpv4AddressToStringExA(
+ const IN_ADDR *Address,
+ USHORT Port,
+ LPSTR AddressString,
+ PULONG AddressStringLength
+);
+
+LONG NTAPI RtlIpv4AddressToStringExW(
+ const IN_ADDR *Address,
+ USHORT Port,
+ LPWSTR AddressString,
+ PULONG AddressStringLength
+);
+
+#define RtlIpv4StringToAddress __MINGW_NAME_AW(RtlIpv4StringToAddress)
+LONG NTAPI RtlIpv4StringToAddressA(
+ PCSTR S,
+ BOOLEAN Strict,
+ LPSTR *Terminator,
+ IN_ADDR *Addr
+);
+
+LONG NTAPI RtlIpv4StringToAddressW(
+ PCWSTR S,
+ BOOLEAN Strict,
+ LPWSTR *Terminator,
+ IN_ADDR *Addr
+);
+
+#define RtlIpv4StringToAddressEx __MINGW_NAME_AW(RtlIpv4StringToAddressEx)
+LONG NTAPI RtlIpv4StringToAddressExA(
+ PCSTR AddressString,
+ BOOLEAN Strict,
+ IN_ADDR *Address,
+ PUSHORT Port
+);
+
+LONG NTAPI RtlIpv4StringToAddressExW(
+ PCWSTR AddressString,
+ BOOLEAN Strict,
+ IN_ADDR *Address,
+ PUSHORT Port
+);
+
+#define RtlIpv6StringToAddressEx __MINGW_NAME_AW(RtlIpv6StringToAddressEx)
+LONG NTAPI RtlIpv6StringToAddressExA(
+ PCSTR AddressString,
+ IN6_ADDR *Address,
+ PULONG ScopeId,
+ PUSHORT Port
+);
+
+LONG NTAPI RtlIpv6StringToAddressExW(
+ PCSTR AddressString,
+ IN6_ADDR *Address,
+ PULONG ScopeId,
+ PUSHORT Port
+);
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
#endif /* _MSTCPIP_ */
diff --git a/mingw-w64-headers/include/mswsock.h b/mingw-w64-headers/include/mswsock.h
index 4d461b2..94d10e9 100644
--- a/mingw-w64-headers/include/mswsock.h
+++ b/mingw-w64-headers/include/mswsock.h
@@ -184,6 +184,23 @@
#define WSAID_WSARECVMSG {0xf689d7c8,0x6f1f,0x436b,{0x8a,0x53,0xe5,0x4f,0xe3,0x51,0xc3,0x22}}
+#if (_WIN32_WINNT >= 0x0600)
+int WSAAPI WSAPoll(
+ WSAPOLLFD fdarray[],
+ ULONG nfds,
+ INT timeout
+);
+
+int WSAAPI WSASendMsg(
+ SOCKET s,
+ LPWSAMSG lpMsg,
+ DWORD dwFlags,
+ LPDWORD lpNumberOfBytesSent,
+ LPWSAOVERLAPPED lpOverlapped,
+ LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine
+);
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
#ifdef __cplusplus
}
#endif
diff --git a/mingw-w64-headers/include/muiload.h b/mingw-w64-headers/include/muiload.h
new file mode 100644
index 0000000..f5be23f
--- /dev/null
+++ b/mingw-w64-headers/include/muiload.h
@@ -0,0 +1,27 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+
+#ifndef _INC_MUILOAD
+#define _INC_MUILOAD
+
+/*Fixme: These are static functions as opposed to dllimported*/
+
+WINBOOL WINAPI FreeMUILibrary(
+ HMODULE hResModule
+);
+
+HINSTANCE WINAPI LoadMUILibrary(
+ LPCTSTR pszFullModuleName,
+ DWORD dwLangConvention,
+ LANGID LangID
+);
+
+WINBOOL WINAPI GetUILanguageFallbackList(
+ PWSTR pFallbackList,
+ ULONG cchFallbackList,
+ PULONG pcchFallbackListOut
+);
+#endif /*_INC_MUILOAD*/
diff --git a/mingw-w64-headers/include/mxdc.h b/mingw-w64-headers/include/mxdc.h
new file mode 100644
index 0000000..23112b8
--- /dev/null
+++ b/mingw-w64-headers/include/mxdc.h
@@ -0,0 +1,61 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_MXDC
+#define _INC_MXDC
+#if (_WIN32_WINNT >= 0x0600)
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct tagMxdcEscapeHeader {
+ ULONG cbInput;
+ ULONG cbOutput;
+ ULONG opCode;
+} MXDC_ESCAPE_HEADER_T, *P_MXDC_ESCAPE_HEADER_T;
+
+typedef struct _tagMxdcGetFileNameData {
+ ULONG cbOutput;
+ wchar_t wszData[1];
+} MXDC_GET_FILENAME_DATA_T, *P_MXDC_GET_FILENAME_DATA_T;
+
+typedef struct tagMxdcPrintTicketData {
+ DWORD dwDataSize;
+ BYTE bData[1];
+} MXDC_PRINTTICKET_DATA_T, *P_MXDC_PRINTTICKET_DATA_T;
+
+typedef struct tagMxdcPrintTicketEscape {
+ MXDC_ESCAPE_HEADER_T mxdcEscape;
+ MXDC_PRINTTICKET_DATA_T printTicketData;
+} MXDC_PRINTTICKET_ESCAPE_T, *P_MXDC_PRINTTICKET_ESCAPE_T;
+
+typedef struct tagMxdcS0PageData {
+ ULONG dwSize;
+ BYTE bData[1];
+} MXDC_S0PAGE_DATA_T, *P_MXDC_S0PAGE_DATA_T;
+
+typedef struct tagMxdcS0PagePassthroughEscape {
+ MXDC_ESCAPE_HEADER_T mxdcEscape;
+ MXDC_S0PAGE_DATA_T xpsS0PageData;
+} MXDC_S0PAGE_PASSTHROUGH_ESCAPE_T, *P_MXDC_S0PAGE_PASSTHROUGH_ESCAPE_T;
+
+typedef struct tagMxdcXpsS0PageResource {
+ DWORD dwSize;
+ DWORD dwResourceType;
+ BYTE szUri[MAX_PATH];
+ DWORD dwDataSize;
+ BYTE bData[1];
+} MXDC_XPS_S0PAGE_RESOURCE_T, *P_MXDC_XPS_S0PAGE_RESOURCE_T;
+
+typedef struct tagMxdcS0PageResourceEscape {
+ MXDC_ESCAPE_HEADER_T mxdcEscape;
+ MXDC_XPS_S0PAGE_RESOURCE_T xpsS0PageResourcePassthrough;
+} MXDC_S0PAGE_RESOURCE_ESCAPE_T, *P_MXDC_S0PAGE_RESOURCE_ESCAPE_T;
+
+#ifdef __cplusplus
+}
+#endif
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_MXDC*/
diff --git a/mingw-w64-headers/include/napenforcementclient.h b/mingw-w64-headers/include/napenforcementclient.h
new file mode 100644
index 0000000..4c0f893
--- /dev/null
+++ b/mingw-w64-headers/include/napenforcementclient.h
@@ -0,0 +1,39 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_NAPENFORCEMENTCLIENT
+#define _INC_NAPENFORCEMENTCLIENT
+
+#if (_WIN32_WINNT >= 0x0600)
+
+#define defaultProtocolMaxSize 0x0FA0
+#define maxProtocolMaxSize 0xFFFF
+#define minProtocolMaxSize 0x012C
+#define ProtocolMaxSize range(minProtocolMaxSize, maxProtocolMaxSize)
+
+ typedef struct tagConnections {
+ UINT16 count;
+ INapEnforcementClientConnection **connections;
+ }Connections;
+
+#ifndef NAPTypes
+#define NAPTypes
+ typedef FILETIME ProbationTime;
+ typedef UINT32 ProtocolMaxSize;
+ typedef UINT32 NapComponentId;
+ typedef NapComponentId SystemHealthEntityId;
+ typedef NapComponentId EnforcementEntityId;
+ typedef UINT16 SystemHealthEntityCount;
+ typedef UINT16 EnforcementEntityCount;
+ typedef CountedString StringCorrelationId;
+ typedef GUID ConnectionId;
+ typedef UINT8 Percentage;
+ typedef UINT32 MessageId;
+#endif /* NAPTypes */
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
+#endif /* _INC_NAPENFORCEMENTCLIENT */
+
diff --git a/mingw-w64-headers/include/naperror.h b/mingw-w64-headers/include/naperror.h
new file mode 100644
index 0000000..3f8e838
--- /dev/null
+++ b/mingw-w64-headers/include/naperror.h
@@ -0,0 +1,39 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_NAPERROR
+#define _INC_NAPERROR
+
+#if (_WIN32_WINNT >= 0x0600)
+
+#define NAP_E_INVALID_PACKET _HRESULT_TYPEDEF_(0x80270001L)
+#define NAP_E_MISSING_SOH _HRESULT_TYPEDEF_(0x80270002L)
+#define NAP_E_CONFLICTING_ID _HRESULT_TYPEDEF_(0x80270003L)
+#define NAP_E_NO_CACHED_SOH _HRESULT_TYPEDEF_(0x80270004L)
+#define NAP_E_STILL_BOUND _HRESULT_TYPEDEF_(0x80270005L)
+#define NAP_E_NOT_REGISTERED _HRESULT_TYPEDEF_(0x80270006L)
+#define NAP_E_NOT_INITIALIZED _HRESULT_TYPEDEF_(0x80270007L)
+#define NAP_E_MISMATCHED_ID _HRESULT_TYPEDEF_(0x80270008L)
+#define NAP_E_NOT_PENDING _HRESULT_TYPEDEF_(0x80270009L)
+#define NAP_E_ID_NOT_FOUND _HRESULT_TYPEDEF_(0x8027000AL)
+#define NAP_E_MAXSIZE_TOO_SMALL _HRESULT_TYPEDEF_(0x8027000BL)
+#define NAP_E_SERVICE_NOT_RUNNING _HRESULT_TYPEDEF_(0x8027000CL)
+#define NAP_S_CERT_ALREADY_PRESENT _HRESULT_TYPEDEF_(0x0027000DL)
+#define NAP_E_ENTITY_DISABLED _HRESULT_TYPEDEF_(0x8027000EL)
+#define NAP_E_NETSH_GROUPPOLICY_ERROR _HRESULT_TYPEDEF_(0x8027000FL)
+#define NAP_E_TOO_MANY_CALLS _HRESULT_TYPEDEF_(0x80270010L)
+
+#if (_WIN32_WINNT >= 0x0601)
+
+#define NAP_E_SHV_CONFIG_EXISTED _HRESULT_TYPEDEF_(0x80270011L)
+#define NAP_E_SHV_CONFIG_NOT_FOUND _HRESULT_TYPEDEF_(0x80270012L)
+#define NAP_E_SHV_TIMEOUT _HRESULT_TYPEDEF_(0x80270013L)
+
+#endif /*(_WIN32_WINNT >= 0x0601)*/
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
+#endif /* _INC_NAPERROR */
+
diff --git a/mingw-w64-headers/include/napmicrosoftvendorids.h b/mingw-w64-headers/include/napmicrosoftvendorids.h
new file mode 100644
index 0000000..87ab682
--- /dev/null
+++ b/mingw-w64-headers/include/napmicrosoftvendorids.h
@@ -0,0 +1,25 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_NAPMICROSOFTVENDORIDS
+#define _INC_NAPMICROSOFTVENDORIDS
+
+#if (_WIN32_WINNT >= 0x0600)
+#define NapSystemId 0x00013700
+#define NapDhcpEnforcementId 0x00013701
+#define NapRasEnforcementId 0x00013702
+#define NapIpsecEnforcementId 0x00013703
+#define Nap8021xEnforcementId 0x00013704
+#define NapAnywhereAccessEnforcementId 0x00013705
+#define NapIsaEnforcementId 0x00013706
+#define NapEapEnforcementId 0x00013707
+#define NapOutOfBoxSystemHealthId 0x00013780
+#define NapSmsSystemHealthId 0x00013781
+#define NapFCSv1SystemHealthId 0x00013782
+#define NapFCSv2SystemHealthId 0x00013783
+#define NapTpmSystemHealthId 0x00013784
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
+#endif /* _INC_NAPMICROSOFTVENDORIDS */
diff --git a/mingw-w64-headers/include/napprotocol.h b/mingw-w64-headers/include/napprotocol.h
new file mode 100644
index 0000000..d0d944f
--- /dev/null
+++ b/mingw-w64-headers/include/napprotocol.h
@@ -0,0 +1,64 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_NAPTYPES
+#define _INC_NAPTYPES
+
+#if (_WIN32_WINNT >= 0x0600)
+
+typedef enum tagSoHAttributeType {
+ sohAttributeTypeSystemHealthId = 2,
+ sohAttributeTypeIpv4FixupServers = 3,
+ sohAttributeTypeComplianceResultCodes = 4,
+ sohAttributeTypeTimeOfLastUpdate = 5,
+ sohAttributeTypeClientId = 6,
+ sohAttributeTypeVendorSpecific = 7,
+ sohAttributeTypeHealthClass = 8,
+ sohAttributeTypeSoftwareVersion = 9,
+ sohAttributeTypeProductName = 10,
+ sohAttributeTypeHealthClassStatus = 11,
+ sohAttributeTypeSoHGenerationTime = 12,
+ sohAttributeTypeErrorCodes = 13,
+ sohAttributeTypeFailureCategory = 14,
+ sohAttributeTypeIpv6FixupServers = 15,
+ sohAttributeTypeExtendedIsolationState = 16
+} SoHAttributeType;
+
+typedef union tagSoHAttributeValue {
+ SystemHealthEntityId idVal;
+ struct tagIpv4Addresses {
+ UINT16 count;
+ Ipv4Address *addresses;
+ } v4AddressesVal;
+ struct tagIpv6Addresses {
+ UINT16 count;
+ Ipv6Address *addresses;
+ } v6AddressesVal;
+ ResultCodes codesVal;
+ FILETIME dateTimeVal;
+ struct tagVendorSpecific {
+ UINT32 vendorId;
+ UINT16 size;
+ BYTE *vendorSpecificData;
+ } vendorSpecificVal;
+ UINT8 uint8Val;
+ struct tagOctetString {
+ UINT16 size;
+ BYTE *data;
+ } octetStringVal;
+}SoHAttributeValue;
+
+typedef enum tagHealthClassValue {
+ healthClassFirewall = 0,
+ healthClassPatchLevel = 1,
+ healthClassAntiVirus = 2,
+ healthClassCriticalUpdate = 3,
+ healthClassReserved = 128
+} HealthClassValue;
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
+#endif /* _INC_NAPTYPES */
+
diff --git a/mingw-w64-headers/include/naptypes.h b/mingw-w64-headers/include/naptypes.h
new file mode 100644
index 0000000..a8a5d6e
--- /dev/null
+++ b/mingw-w64-headers/include/naptypes.h
@@ -0,0 +1,213 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_NAPTYPES
+#define _INC_NAPTYPES
+
+#if (_WIN32_WINNT >= 0x0600)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define maxSoHAttributeCount 0x64
+#define maxSoHAttributeSize 0xFA0
+#define minNetworkSoHSize 0xC
+#define maxNetworkSoHSize 0xFA0
+#define maxDwordCountPerSoHAttribute (maxSoHAttributeSize / sizeof(DWORD))
+#define maxIpv4CountPerSoHAttribute (maxSoHAttributeSize / 0x4)
+#define maxIpv6CountPerSoHAttribute (maxSoHAttributeSize / 0x10)
+#define maxStringLength 0x400
+#define maxStringLengthInBytes ((maxStringLength + 1) * sizeof(WCHAR))
+#define maxSystemHealthEntityCount 0x14
+#define SystemHealthEntityCount 0x14 /*[range(0, maxSystemHealthEntityCount)]*/
+#define maxEnforcerCount 0x14
+#define EnforcementEntityCount 0x14 /*[range(0, maxEnforcerCount)]*/
+#define maxPrivateDataSize 0xC8
+#define maxConnectionCountPerEnforcer 0x14
+#define maxCachedSoHCount (maxSystemHealthEntityCount * maxEnforcerCount * maxConnectionCountPerEnforcer)
+#define freshSoHRequest 0x1
+#define shaFixup 0x1
+#define failureCategoryCount 0x5
+#define ComponentTypeEnforcementClientSoH 0x1
+#define ComponentTypeEnforcementClientRp 0x2
+
+#ifndef NAPTypes
+#define NAPTypes
+ typedef FILETIME ProbationTime;
+ typedef UINT32 ProtocolMaxSize;
+ typedef UINT32 NapComponentId;
+ typedef NapComponentId SystemHealthEntityId;
+ typedef NapComponentId EnforcementEntityId;
+ typedef UINT16 SystemHealthEntityCount;
+ typedef UINT16 EnforcementEntityCount;
+ typedef CountedString StringCorrelationId;
+ typedef GUID ConnectionId;
+ typedef UINT8 Percentage;
+ typedef UINT32 MessageId;
+#endif /* NAPTypes */
+
+ typedef enum tagFixupState {
+ fixupStateSuccess = 0,
+ fixupStateInProgress = 1,
+ fixupStateCouldNotUpdate = 2
+ } FixupState;
+
+typedef enum tagFailureCategory {
+ failureCategoryNone = 0,
+ failureCategoryOther = 1,
+ failureCategoryClientComponent = 2,
+ failureCategoryClientCommunication = 3,
+ failureCategoryServerComponent = 4,
+ failureCategoryServerCommunication = 5
+} FailureCategory;
+
+ typedef enum tagIsolationState {
+ isolationStateNotRestricted = 1,
+ isolationStateInProbation = 2,
+ isolationStateRestrictedAccess = 3
+ } IsolationState;
+
+ typedef enum tagExtendedIsolationState {
+ extendedIsolationStateNoData = 0,
+ extendedIsolationStateTransition = 1,
+ extendedIsolationStateInfected = 2,
+ extendedIsolationStateUnknown = 3
+ } ExtendedIsolationState;
+
+ typedef enum tagRemoteConfigurationType {
+ remoteConfigTypeMachine = 1,
+ remoteConfigTypeConfigBlob = 2
+ } RemoteConfigurationType;
+
+ typedef enum tagNapNotifyType {
+ napNotifyTypeUnknown = 0,
+ napNotifyTypeServiceState = 1,
+ napNotifyTypeQuarState = 2
+ } NapNotifyType;
+
+ typedef enum _NAPI_PROVIDER_LEVEL {
+ ProviderLevel_None = 0,
+ ProviderLevel_Secondary,
+ ProviderLevel_Primary
+ } NAPI_PROVIDER_LEVEL;
+
+ typedef enum _NAPI_PROVIDER_TYPE {
+ ProviderType_Application = 1,
+ ProviderType_Service
+ } NAPI_PROVIDER_TYPE;
+
+ typedef struct tagResultCodes {
+ UINT16 count;
+ HRESULT *results;
+ } ResultCodes;
+
+ typedef struct tagCorrelationId {
+ GUID connId;
+ FILETIME timeStamp;
+ } CorrelationId;
+
+ typedef struct tagSoHAttribute {
+ UINT16 type;
+ UINT16 size;
+ BYTE * value;
+ } SoHAttribute;
+
+ typedef struct tagCountedString {
+ UINT16 length;
+ WCHAR *string;
+ } CountedString;
+
+ typedef struct tagIpv4Address {
+ BYTE addr[4];
+ } Ipv4Address;
+
+ typedef struct tagIpv6Address {
+ BYTE addr[16];
+ } Ipv6Address;
+
+ typedef struct tagSoH {
+ UINT16 count;
+ SoHAttribute *attributes;
+ } SoH, SoHRequest, SoHResponse;
+
+ typedef struct tagFixupInfo {
+ FixupState state;
+ Percentage percentage;
+ ResultCodes resultCodes;
+ MessageId fixupMsgId;
+ } FixupInfo;
+
+#define failureCategoryCount 5
+
+ typedef struct tagFailureCategoryMapping {
+ WINBOOL mappingCompliance[failureCategoryCount];
+ } FailureCategoryMapping;
+
+ typedef struct tagIsolationInfo {
+ IsolationState isolationState;
+ ProbationTime probEndTime;
+ CountedString failureUrl;
+ } IsolationInfo;
+
+ typedef struct tagIsolationInfoEx {
+ IsolationState isolationState;
+ ExtendedIsolationState extendedIsolationState;
+ ProbationTime probEndTime;
+ CountedString failureUrl;
+ } IsolationInfoEx;
+
+ typedef struct tagNapComponentRegistrationInfo {
+ NapComponentId id;
+ CountedString friendlyName;
+ CountedString description;
+ CountedString version;
+ CountedString vendorName;
+ CLSID infoClsid;
+ CLSID configClsid;
+ FILETIME registrationDate;
+ UINT32 componentType;
+ } NapComponentRegistrationInfo;
+
+ typedef struct tagPrivateData {
+ UINT16 size;
+ BYTE * data;
+ } PrivateData;
+
+ typedef struct tagNetworkSoH {
+ UINT16 size;
+ BYTE * data;
+ } NetworkSoH, NetworkSoHRequest, NetworkSoHResponse;
+
+ typedef struct tagSystemHealthAgentState {
+ SystemHealthEntityId id;
+ ResultCodes shaResultCodes;
+ FailureCategory failureCategory;
+ FixupInfo fixupInfo;
+ }SystemHealthAgentState;
+
+typedef struct _NAPI_DOMAIN_DESCRIPTION_BLOB {
+ DWORD AuthLevel;
+ DWORD cchDomainName;
+ DWORD OffsetNextDomainDescription;
+ DWORD OffsetThisDomainName;
+} NAPI_DOMAIN_DESCRIPTION_BLOB, *PNAPI_DOMAIN_DESCRIPTION_BLOB;
+
+typedef struct _NAPI_PROVIDER_INSTALLATION_BLOB {
+ DWORD dwVersion;
+ DWORD dwProviderType;
+ DWORD fSupportsWildCard;
+ DWORD cDomains;
+ DWORD OffsetFirstDomain;
+} NAPI_PROVIDER_INSTALLATION_BLOB, *PNAPI_PROVIDER_INSTALLATION_BLOB;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
+#endif /* _INC_NAPTYPES */
+
diff --git a/mingw-w64-headers/include/naputil.h b/mingw-w64-headers/include/naputil.h
new file mode 100644
index 0000000..d55fac5
--- /dev/null
+++ b/mingw-w64-headers/include/naputil.h
@@ -0,0 +1,43 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_NAPUTIL
+#define _INC_NAPUTIL
+
+#include <naptypes.h>
+/* Duplicated in naputil.w */
+
+#if (_WIN32_WINNT >= 0x0600)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define NAPAPI DECLSPEC_IMPORT
+
+ NAPAPI HRESULT WINAPI AllocConnections(Connections **connections,UINT16 connectionsCount);
+ NAPAPI VOID WINAPI FreeConnections(Connections *connections);
+ NAPAPI HRESULT WINAPI AllocFixupInfo(FixupInfo **fixupInfo,UINT16 countResultCodes);
+ NAPAPI VOID WINAPI FreeCountedString(CountedString *countedString);
+ NAPAPI VOID WINAPI FreeFixupInfo(FixupInfo *fixupInfo);
+ NAPAPI VOID WINAPI FreeIsolationInfo(IsolationInfo *isolationInfo);
+ NAPAPI VOID WINAPI FreeIsolationInfoEx(IsolationInfoEx *isolationInfo);
+ NAPAPI VOID WINAPI FreeNapComponentRegistrationInfoArray(UINT16 count,NapComponentRegistrationInfo **info);
+ NAPAPI VOID WINAPI FreeNetworkSoH(NetworkSoH *networkSoh);
+ NAPAPI VOID WINAPI FreePrivateData(PrivateData *privateData);
+ NAPAPI VOID WINAPI FreeSoH(SoH *soh);
+ NAPAPI VOID WINAPI FreeSoHAttributeValue(SoHAttributeType type,SoHAttributeValue *value);
+ NAPAPI VOID WINAPI FreeSystemHealthAgentState(SystemHealthAgentState *state);
+ NAPAPI HRESULT WINAPI InitializeNapAgentNotifier(NapNotifyType type,HANDLE hNotifyEvent);
+ NAPAPI VOID WINAPI UninitializeNapAgentNotifier(NapNotifyType type);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
+#endif /* _INC_NAPUTIL */
+
diff --git a/mingw-w64-headers/include/naputil.w b/mingw-w64-headers/include/naputil.w
new file mode 100644
index 0000000..7425a0a
--- /dev/null
+++ b/mingw-w64-headers/include/naputil.w
@@ -0,0 +1,43 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_NAPUTIL
+#define _INC_NAPUTIL
+
+#include <naptypes.h>
+/* Duplicated in naputil.h */
+
+#if (_WIN32_WINNT >= 0x0600)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define NAPAPI DECLSPEC_IMPORT
+
+ NAPAPI HRESULT WINAPI AllocConnections(Connections **connections,UINT16 connectionsCount);
+ NAPAPI VOID WINAPI FreeConnections(Connections *connections);
+ NAPAPI HRESULT WINAPI AllocFixupInfo(FixupInfo **fixupInfo,UINT16 countResultCodes);
+ NAPAPI VOID WINAPI FreeCountedString(CountedString *countedString);
+ NAPAPI VOID WINAPI FreeFixupInfo(FixupInfo *fixupInfo);
+ NAPAPI VOID WINAPI FreeIsolationInfo(IsolationInfo *isolationInfo);
+ NAPAPI VOID WINAPI FreeIsolationInfoEx(IsolationInfoEx *isolationInfo);
+ NAPAPI VOID WINAPI FreeNapComponentRegistrationInfoArray(UINT16 count,NapComponentRegistrationInfo **info);
+ NAPAPI VOID WINAPI FreeNetworkSoH(NetworkSoH *networkSoh);
+ NAPAPI VOID WINAPI FreePrivateData(PrivateData *privateData);
+ NAPAPI VOID WINAPI FreeSoH(SoH *soh);
+ NAPAPI VOID WINAPI FreeSoHAttributeValue(SoHAttributeType type,SoHAttributeValue *value);
+ NAPAPI VOID WINAPI FreeSystemHealthAgentState(SystemHealthAgentState *state);
+ NAPAPI HRESULT WINAPI InitializeNapAgentNotifier(NapNotifyType type,HANDLE hNotifyEvent);
+ NAPAPI VOID WINAPI UninitializeNapAgentNotifier(NapNotifyType type);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
+#endif /* _INC_NAPUTIL */
+
diff --git a/mingw-w64-headers/include/ncrypt.h b/mingw-w64-headers/include/ncrypt.h
new file mode 100644
index 0000000..491ccf7
--- /dev/null
+++ b/mingw-w64-headers/include/ncrypt.h
@@ -0,0 +1,313 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_NCRYPT
+#define _INC_NCRYPT
+#if (_WIN32_WINNT >= 0x0600)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define NCRYPTBUFFER_SSL_CLIENT_RANDOM 20
+#define NCRYPTBUFFER_SSL_SERVER_RANDOM 21
+#define NCRYPTBUFFER_SSL_HIGHEST_VERSION 22
+#define NCRYPTBUFFER_SSL_CLEAR_KEY 23
+#define NCRYPTBUFFER_SSL_KEY_ARG_DATA 24
+#define NCRYPTBUFFER_PKCS_OID 40
+#define NCRYPTBUFFER_PKCS_ALG_OID 41
+#define NCRYPTBUFFER_PKCS_ALG_PARAM 42
+#define NCRYPTBUFFER_PKCS_ALG_ID 43
+#define NCRYPTBUFFER_PKCS_ATTRS 44
+#define NCRYPTBUFFER_PKCS_KEY_NAME 45
+#define NCRYPTBUFFER_PKCS_SECRET 46
+#define NCRYPTBUFFER_CERT_BLOB 47
+
+#ifndef __SECSTATUS_DEFINED__
+ typedef LONG SECURITY_STATUS;
+#define __SECSTATUS_DEFINED__
+#endif
+
+#ifndef __NCRYPT_KEY_HANDLE__
+#define __NCRYPT_KEY_HANDLE__
+/*in wincrypt.h too*/
+typedef LPVOID NCRYPT_KEY_HANDLE;
+#endif
+
+typedef LPVOID NCRYPT_PROV_HANDLE;
+typedef LPVOID NCRYPT_SECRET_HANDLE;
+typedef LPVOID NCRYPT_HANDLE;
+
+#ifndef __HCRYPTKEY__
+#define __HCRYPTKEY__
+/* In wincrypt.h too */
+ typedef ULONG_PTR HCRYPTPROV;
+ typedef ULONG_PTR HCRYPTKEY;
+#endif
+
+typedef struct _NCryptBuffer {
+ ULONG cbBuffer;
+ ULONG BufferType;
+ PVOID pvBuffer;
+} NCryptBuffer, *PNCryptBuffer;
+
+typedef struct _NCryptBufferDesc {
+ ULONG ulVersion;
+ ULONG cBuffers;
+ PNCryptBuffer pBuffers;
+} NCryptBufferDesc, *PNCryptBufferDesc;
+
+typedef struct __NCRYPT_SUPPORTED_LENGTHS {
+ DWORD dwMinLength;
+ DWORD dwMaxLength;
+ DWORD dwIncrement;
+ DWORD dwDefaultLength;
+} NCRYPT_SUPPORTED_LENGTHS;
+
+#define NCRYPT_UI_PROTECT_KEY_FLAG 0x00000001
+#define NCRYPT_UI_FORCE_HIGH_PROTECTION_FLAG 0x00000002
+
+typedef struct __NCRYPT_UI_POLICY {
+ DWORD dwVersion;
+ DWORD dwFlags;
+ LPCWSTR pszCreationTitle;
+ LPCWSTR pszFriendlyName;
+ LPCWSTR pszDescription;
+} NCRYPT_UI_POLICY;
+
+typedef struct __NCRYPT_UI_POLICY_BLOB {
+ DWORD dwVersion;
+ DWORD dwFlags;
+ DWORD cbCreationTitle;
+ DWORD cbFriendlyName;
+ DWORD cbDescription;
+} NCRYPT_UI_POLICY_BLOB;
+
+typedef struct NCryptKeyName {
+ LPWSTR pszName;
+ LPWSTR pszAlgid;
+ DWORD dwLegacyKeySpec;
+ DWORD dwFlags;
+} NCryptKeyName;
+
+#define NCRYPT_ASYMMETRIC_ENCRYPTION_INTERFACE 0x00000003
+#define NCRYPT_SECRET_AGREEMENT_INTERFACE 0x00000004
+#define NCRYPT_SIGNATURE_INTERFACE 0x00000005
+
+#define NCRYPT_ASYMMETRIC_ENCRYPTION_OPERATION 0x00000004
+#define NCRYPT_SECRET_AGREEMENT_OPERATION 0x00000008
+#define NCRYPT_SIGNATURE_OPERATION 0x00000010
+
+typedef struct _NCryptAlgorithmName {
+ LPWSTR pszName;
+ DWORD dwClass;
+ DWORD dwAlgOperations;
+ DWORD dwFlags;
+} NCryptAlgorithmName;
+
+typedef struct NCryptProviderName {
+ LPWSTR pszName;
+ LPWSTR pszComment;
+} NCryptProviderName;
+
+SECURITY_STATUS WINAPI NCryptExportKey(
+ NCRYPT_KEY_HANDLE hKey,
+ NCRYPT_KEY_HANDLE hExportKey,
+ LPCWSTR pszBlobType,
+ NCryptBufferDesc *pParameterList,
+ PBYTE pbOutput,
+ DWORD cbOutput,
+ DWORD *pcbResult,
+ DWORD dwFlags
+);
+
+SECURITY_STATUS WINAPI NCryptCreatePersistedKey(
+ NCRYPT_PROV_HANDLE hProvider,
+ NCRYPT_KEY_HANDLE *phKey,
+ LPCWSTR pszAlgId,
+ LPCWSTR pszKeyName,
+ DWORD dwLegacyKeySpec,
+ DWORD dwFlags
+);
+
+SECURITY_STATUS WINAPI NCryptDecrypt(
+ NCRYPT_KEY_HANDLE hKey,
+ PBYTE pbInput,
+ DWORD cbInput,
+ VOID *pPaddingInfo,
+ PBYTE pbOutput,
+ DWORD cbOutput,
+ DWORD *pcbResult,
+ DWORD dwFlags
+);
+
+SECURITY_STATUS WINAPI NCryptDeleteKey(
+ NCRYPT_KEY_HANDLE hKey,
+ DWORD dwFlags
+);
+
+SECURITY_STATUS WINAPI NCryptDeriveKey(
+ NCRYPT_SECRET_HANDLE hSharedSecret,
+ LPCWSTR pwszKDF,
+ NCryptBufferDesc *pParameterList,
+ PBYTE pbDerivedKey,
+ DWORD cbDerivedKey,
+ DWORD *pcbResult,
+ ULONG dwFlags
+);
+
+SECURITY_STATUS WINAPI NCryptEncrypt(
+ NCRYPT_KEY_HANDLE hKey,
+ PBYTE pbInput,
+ DWORD cbInput,
+ VOID *pPaddingInfo,
+ PBYTE pbOutput,
+ DWORD cbOutput,
+ DWORD *pcbResult,
+ DWORD dwFlags
+);
+
+#define NCRYPT_CIPHER_OPERATION 0x00000001
+#define NCRYPT_HASH_OPERATION 0x00000002
+#define NCRYPT_ASYMMETRIC_ENCRYPTION_OPERATION 0x00000004
+#define NCRYPT_SECRET_AGREEMENT_OPERATION 0x00000008
+#define NCRYPT_SIGNATURE_OPERATION 0x00000010
+#define NCRYPT_RNG_OPERATION 0x00000020
+
+SECURITY_STATUS WINAPI NCryptEnumAlgorithms(
+ NCRYPT_PROV_HANDLE hProvider,
+ DWORD dwAlgOperations,
+ DWORD *pdwAlgCount,
+ NCryptAlgorithmName **ppAlgList,
+ DWORD dwFlags
+);
+
+SECURITY_STATUS WINAPI NCryptEnumKeys(
+ NCRYPT_PROV_HANDLE hProvider,
+ LPCWSTR pszScope,
+ NCryptKeyName **ppKeyName,
+ PVOID *ppEnumState,
+ DWORD dwFlags
+);
+
+SECURITY_STATUS WINAPI NCryptEnumStorageProviders(
+ DWORD *pdwProviderCount,
+ NCryptProviderName **ppProviderList,
+ DWORD dwFlags
+);
+
+SECURITY_STATUS NCryptFinalizeKey(
+ NCRYPT_KEY_HANDLE hKey,
+ DWORD dwFlags
+);
+
+SECURITY_STATUS WINAPI NCryptFreeBuffer(
+ PVOID pvInput
+);
+
+SECURITY_STATUS WINAPI NCryptFreeObject(
+ NCRYPT_HANDLE hObject
+);
+
+SECURITY_STATUS WINAPI NCryptGetProperty(
+ NCRYPT_HANDLE hObject,
+ LPCWSTR pszProperty,
+ PBYTE pbOutput,
+ DWORD cbOutput,
+ DWORD *pcbResult,
+ DWORD dwFlags
+);
+
+SECURITY_STATUS WINAPI NCryptImportKey(
+ NCRYPT_PROV_HANDLE hProvider,
+ NCRYPT_KEY_HANDLE hImportKey,
+ LPCWSTR pszBlobType,
+ NCryptBufferDesc *pParameterList,
+ NCRYPT_KEY_HANDLE *phKey,
+ PBYTE pbData,
+ DWORD cbData,
+ DWORD dwFlags
+);
+
+SECURITY_STATUS WINAPI NCryptIsAlgSupported(
+ NCRYPT_PROV_HANDLE hProvider,
+ LPCWSTR pszAlgId,
+ DWORD dwFlags
+);
+
+WINBOOL WINAPI NCryptIsKeyHandle(
+ NCRYPT_KEY_HANDLE hKey
+);
+
+SECURITY_STATUS WINAPI NCryptNotifyChangeKey(
+ NCRYPT_PROV_HANDLE hProvider,
+ HANDLE *phEvent,
+ DWORD dwFlags
+);
+
+SECURITY_STATUS WINAPI NCryptOpenKey(
+ NCRYPT_PROV_HANDLE hProvider,
+ NCRYPT_KEY_HANDLE *phKey,
+ LPCWSTR pszKeyName,
+ DWORD dwLegacyKeySpec,
+ DWORD dwFlags
+);
+
+SECURITY_STATUS WINAPI NCryptOpenStorageProvider(
+ NCRYPT_PROV_HANDLE *phProvider,
+ LPCWSTR pszProviderName,
+ DWORD dwFlags
+);
+
+SECURITY_STATUS WINAPI NCryptSecretAgreement(
+ NCRYPT_KEY_HANDLE hPrivKey,
+ NCRYPT_KEY_HANDLE hPubKey,
+ NCRYPT_SECRET_HANDLE *phSecret,
+ DWORD dwFlags
+);
+
+SECURITY_STATUS WINAPI NCryptSetProperty(
+ NCRYPT_HANDLE hObject,
+ LPCWSTR pszProperty,
+ PBYTE pbInput,
+ DWORD cbInput,
+ DWORD dwFlags
+);
+
+SECURITY_STATUS WINAPI NCryptSignHash(
+ NCRYPT_KEY_HANDLE hKey,
+ VOID *pPaddingInfo,
+ PBYTE pbHashValue,
+ DWORD cbHashValue,
+ PBYTE pbSignature,
+ DWORD cbSignature,
+ DWORD *pcbResult,
+ DWORD dwFlags
+);
+
+SECURITY_STATUS WINAPI NCryptTranslateHandle(
+ NCRYPT_PROV_HANDLE *phProvider,
+ NCRYPT_KEY_HANDLE *phKey,
+ HCRYPTPROV hLegacyProv,
+ HCRYPTKEY hLegacyKey,
+ DWORD dwLegacyKeySpec,
+ DWORD dwFlags
+);
+
+SECURITY_STATUS WINAPI NCryptVerifySignature(
+ NCRYPT_KEY_HANDLE hKey,
+ VOID *pPaddingInfo,
+ PBYTE pbHashValue,
+ DWORD cbHashValue,
+ PBYTE pbSignature,
+ DWORD cbSignature,
+ DWORD dwFlags
+);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_NCRYPT*/
diff --git a/mingw-w64-headers/include/ndattrib.h b/mingw-w64-headers/include/ndattrib.h
new file mode 100644
index 0000000..e252878
--- /dev/null
+++ b/mingw-w64-headers/include/ndattrib.h
@@ -0,0 +1,179 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_NDATTRIB
+#define _INC_NDATTRIB
+
+#if (_WIN32_WINNT >= 0x0600)
+
+/* In ndhelper.idl
+typedef struct tagDIAG_SOCKADDR {
+ USHORT family;
+ CHAR data[126];
+} DIAG_SOCKADDR, *PDIAG_SOCKADDR;
+*/
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct tagDIAG_SOCKADDR DIAG_SOCKADDR;
+
+typedef enum tagATTRIBUTE_TYPE {
+ AT_INVALID = 0,
+ AT_BOOLEAN,
+ AT_INT8,
+ AT_UINT8,
+ AT_INT16,
+ AT_UINT16,
+ AT_INT32,
+ AT_UINT32,
+ AT_INT64,
+ AT_UINT64,
+ AT_STRING,
+ AT_GUID,
+ AT_LIFE_TIME,
+ AT_SOCKADDR,
+ AT_OCTET_STRING
+} ATTRIBUTE_TYPE;
+
+typedef enum tagREPAIR_SCOPE {
+ RS_SYSTEM = 0,
+ RS_USER = 1,
+ RS_APPLICATION = 2,
+ RS_PROCESS = 3
+} REPAIR_SCOPE;
+
+typedef enum tagREPAIR_RISK {
+ RR_NOROLLBACK = 0,
+ RR_ROLLBACK = 1,
+ RR_NORISK = 2
+} REPAIR_RISK;
+
+typedef enum tagUI_INFO_TYPE {
+ UIT_NONE = 0,
+ UIT_SHELL_COMMAND,
+ UIT_HELP_PANE,
+ UIT_DUI
+} UI_INFO_TYPE;
+
+typedef enum tagPROBLEM_TYPE {
+ PT_LOW_HEALTH = 1,
+ PT_LOWER_HEALTH = 2,
+ PT_DOWN_STREAM_HEALTH = 4,
+ PT_HIGH_UTILIZATION = 8,
+ PT_HIGHER_UTILIZATION = 16,
+ PT_UP_STREAM_UTILIZATION = 32
+} PROBLEM_TYPE;
+
+typedef enum tagREPAIR_STATUS {
+ RS_NOT_IMPLEMENTED = 0,
+ RS_REPAIRED = 1,
+ RS_UNREPAIRED = 2,
+ RS_DEFERRED = 3,
+ RS_USER_ACTION = 4
+} REPAIR_STATUS;
+
+typedef struct tagLIFE_TIME {
+ FILETIME startTime;
+ FILETIME endTime;
+} LIFE_TIME, *PLIFE_TIME;
+
+typedef struct tagOCTET_STRING {
+ DWORD dwLength;
+ BYTE *lpValue;
+} OCTET_STRING, *POCTET_STRING;
+
+typedef struct tagUiInfo {
+ UI_INFO_TYPE type;
+ __MINGW_EXTENSION union {
+ LPWSTR pwzNull;
+ ShellCommandInfo ShellInfo;
+ LPWSTR pwzHelpURL;
+ LPWSTR pwzDui;
+ };
+} UiInfo, *PUiInfo;
+
+typedef struct tagRepairInfo {
+ GUID guid;
+ LPWSTR pwszClassName;
+ LPWSTR pwszDescription;
+ DWORD sidType;
+ long cost;
+ ULONG flags;
+ REPAIR_SCOPE scope;
+ REPAIR_RISK risk;
+ UiInfo UiInfo;
+} RepairInfo, *PRepairInfo;
+
+typedef struct tagShellCommandInfo {
+ LPWSTR pwszOperation;
+ LPWSTR pwszFile;
+ LPWSTR pwszParameters;
+ LPWSTR pwszDirectory;
+ ULONG nShowCmd;
+} ShellCommandInfo, *PShellCommandInfo;
+
+typedef struct tagHELPER_ATTRIBUTE {
+ LPWSTR pwszName;
+ ATTRIBUTE_TYPE type;
+ __MINGW_EXTENSION union {
+ WINBOOL Boolean;
+ char Char;
+ byte Byte;
+ short Short;
+ WORD Word;
+ int Int;
+ DWORD DWord;
+ LONGLONG Int64;
+ ULONGLONG UInt64;
+ LPWSTR PWStr;
+ GUID Guid;
+ LIFE_TYPE LifeTime;
+ DIAG_SOCKADDR Address;
+ OCTET_STRING OctetString;
+ };
+} HELPER_ATTRIBUTE;
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#if (_WIN32_WINNT >= 0x0601)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define RCF_ISLEAF 0x1
+#define RCF_ISCONFIRMED 0x2
+#define RCF_ISTHIRDPARTY 0x4
+
+typedef struct tagRepairInfoEx {
+ RepairInfo repair;
+ USHORT repairRank;
+} RepairInfoEx, *PRepairInfoEx;
+
+typedef struct tagRootCauseInfo {
+ LPWSTR pwszDescription;
+ GUID rootCauseID;
+ DWORD rootCauseFlags;
+ GUID networkInterfaceID;
+ RepairInfoEx *pRepairs;
+ USHORT repairCount;
+} RootCauseInfo;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*(_WIN32_WINNT >= 0x0601)*/
+
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
+#endif /*_INC_NDATTRIB*/
+
diff --git a/mingw-w64-headers/include/ndfapi.h b/mingw-w64-headers/include/ndfapi.h
new file mode 100644
index 0000000..8924457
--- /dev/null
+++ b/mingw-w64-headers/include/ndfapi.h
@@ -0,0 +1,75 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_NDFAPI
+#define _INC_NDFAPI
+
+#include <ndattrib.h>
+
+#if (_WIN32_WINNT >= 0x0600)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+HRESULT NdfCloseIncident(
+ NDFHANDLE handle
+);
+
+HRESULT WINAPI NdfCreateConnectivityIncident(
+ NDFHANDLE *handle
+);
+
+HRESULT WINAPI NdfCreateDNSIncident(
+ LPCWSTR hostname,
+ WORD querytype,
+ NDFHANDLE *handle
+);
+
+HRESULT NdfCreateIncident(
+ LPCWSTR helperClassName,
+ ULONG celt,
+ HELPER_ATTRIBUTE *attributes,
+ NDFHANDLE *handle
+);
+
+HRESULT WINAPI NdfCreateSharingIncident(
+ LPCWSTR sharename,
+ NDFHANDLE *handle
+);
+
+HRESULT WINAPI NdfCreateWebIncident(
+ LPCWSTR url,
+ NDFHANDLE *handle
+);
+
+HRESULT WINAPI NdfCreateWebIncidentEx(
+ LPCWSTR url,
+ WINBOOL useWinHTTP,
+ LPWSTR moduleName,
+ NDFHANDLE *handle
+);
+
+HRESULT NdfCreateWinSockIncident(
+ SOCKET sock,
+ LPCWSTR host,
+ USHORT port,
+ LPCWSTR appID,
+ SID *userId,
+ NDFHANDLE *handle
+);
+
+HRESULT NdfExecuteDiagnosis(
+ NDFHANDLE handle,
+ HWND hwnd
+);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
+#endif /*_INC_NDFAPI*/
diff --git a/mingw-w64-headers/include/ndhelper.h b/mingw-w64-headers/include/ndhelper.h
new file mode 100644
index 0000000..cf0d87d
--- /dev/null
+++ b/mingw-w64-headers/include/ndhelper.h
@@ -0,0 +1,178 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_NDHELPER
+#define _INC_NDHELPER
+
+#include <ndattrib.h>
+
+#if (_WIN32_WINNT >= 0x0600)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct tagDiagnosticsInfo {
+ long cost;
+ ULONG flags;
+} DiagnosticsInfo, *PDiagnosticsInfo;
+
+typedef struct tagHYPOTHESIS {
+ LPWSTR pwszClassName;
+ LPWSTR pwszDescription;
+ ULONG celt;
+ PHELPER_ATTRIBUTE rgAttributes[ ];
+} HYPOTHESIS, *PHYPOTHESIS;
+
+typedef struct tagHelperAttributeInfo {
+ LPWSTR pwszName;
+ ATTRIBUTE_TYPE type;
+} HelperAttributeInfo, *PHelperAttributeInfo;
+
+#ifdef __cplusplus
+}
+#endif
+
+#undef INTERFACE
+#define INTERFACE INetDiagHelperInfo
+DECLARE_INTERFACE_(INetDiagHelperInfo,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* INetDiagHelperInfo methods */
+ STDMETHOD_(HRESULT,GetAttributeInfo)(THIS_ ULONG *pcelt,HelperAttributeInfo **pprgAttributeInfos) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define INetDiagHelperInfo_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define INetDiagHelperInfo_AddRef(This) (This)->pVtbl->AddRef(This)
+#define INetDiagHelperInfo_Release(This) (This)->pVtbl->Release(This)
+#define INetDiagHelperInfo_GetAttributeInfo(This,pcelt,pprgAttributeInfos) (This)->lpVtbl->GetAttributeInfo(This,pcelt,pprgAttributeInfos)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE INetDiagHelper
+DECLARE_INTERFACE_(INetDiagHelper,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* INetDiagHelper methods */
+ STDMETHOD_(HRESULT,Cancel)(THIS) PURE;
+ STDMETHOD_(HRESULT,Cleanup)(THIS) PURE;
+ STDMETHOD_(HRESULT,GetAttributes)(THIS_ ULONG *pcelt,HELPER_ATTRIBUTE **pprgAttributes) PURE;
+ STDMETHOD_(HRESULT,GetCacheTime)(THIS_ FILETIME *pCacheTime) PURE;
+ STDMETHOD_(HRESULT,GetDiagnosticsInfo)(THIS_ RETVAL DiagnosticsInfo **ppInfo) PURE;
+ STDMETHOD_(HRESULT,GetDownStreamHypotheses)(THIS_ ULONG *pcelt,HYPOTHESIS **pprgHypotheses) PURE;
+ STDMETHOD_(HRESULT,GetHigherHypotheses)(THIS_ ULONG *pcelt,HYPOTHESIS **pprgHypotheses) PURE;
+ STDMETHOD_(HRESULT,GetKeyAttributes)(THIS_ ULONG *pcelt,HELPER_ATTRIBUTE **pprgAttributes) PURE;
+ STDMETHOD_(HRESULT,GetLifeTime)(THIS_ LIFE_TIME *pLifeTime) PURE;
+ STDMETHOD_(HRESULT,GetLowerHypotheses)(THIS_ ULONG *pcelt,HYPOTHESIS **pprgHypotheses) PURE;
+ STDMETHOD_(HRESULT,GetRepairInfo)(THIS_ PROBLEM_TYPE problem,ULONG pcelt,RepairInfo **ppInfo) PURE;
+ STDMETHOD_(HRESULT,GetUpStreamHypotheses)(THIS_ ULONG *pcelt,HYPOTHESIS **pprgHypotheses) PURE;
+ STDMETHOD_(HRESULT,HighUtilization)(THIS_ STRING LPWSTR pwszInstanceDescription,STRING LPWSTR *ppwszDescription,LONG *pDeferredTime,DIAGNOSTICS_STATUS *pStatus) PURE;
+ STDMETHOD_(HRESULT,Initialize)(THIS_ ULONG celt,HELPER_ATTRIBUTE rgAttributes) PURE;
+ STDMETHOD_(HRESULT,LowHealth)(THIS_ STRING LPWSTR pwszInstanceDescription,STRING LPWSTR *ppwszDescription,LONG *pDeferredTime,DIAGNOSTICS_STATUS *pStatus) PURE;
+ STDMETHOD_(HRESULT,Repair)(THIS_ REPAIRINFO *pInfo,LONG *pDeferredTime,REPAIR_STATUS *pStatus) PURE;
+ STDMETHOD_(HRESULT,SetLifeTime)(THIS_ LIFE_TIME lifeTime) PURE;
+ STDMETHOD_(HRESULT,Validate)(THIS_ PROBLEM_TYPE problem,ULONG *pDeferredTime,REPAIR_STATUS *pStatus) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define INetDiagHelper_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define INetDiagHelper_AddRef(This) (This)->pVtbl->AddRef(This)
+#define INetDiagHelper_Release(This) (This)->pVtbl->Release(This)
+#define INetDiagHelper_Cancel() (This)->lpVtbl->Cancel(This)
+#define INetDiagHelper_Cleanup() (This)->lpVtbl->Cleanup(This)
+#define INetDiagHelper_GetAttributes(This,pcelt,pprgAttributes) (This)->lpVtbl->GetAttributes(This,pcelt,pprgAttributes)
+#define INetDiagHelper_GetCacheTime(This,pCacheTime) (This)->lpVtbl->GetCacheTime(This,pCacheTime)
+#define INetDiagHelper_GetDiagnosticsInfo(This,ppInfo) (This)->lpVtbl->GetDiagnosticsInfo(This,ppInfo)
+#define INetDiagHelper_GetDownStreamHypotheses(This,pcelt,pprgHypotheses) (This)->lpVtbl->GetDownStreamHypotheses(This,pcelt,pprgHypotheses)
+#define INetDiagHelper_GetHigherHypotheses(This,pcelt,pprgHypotheses) (This)->lpVtbl->GetHigherHypotheses(This,pcelt,pprgHypotheses)
+#define INetDiagHelper_GetKeyAttributes(This,pcelt,pprgAttributes) (This)->lpVtbl->GetKeyAttributes(This,pcelt,pprgAttributes)
+#define INetDiagHelper_GetLifeTime(This,pLifeTime) (This)->lpVtbl->GetLifeTime(This,pLifeTime)
+#define INetDiagHelper_GetLowerHypotheses(This,pcelt,pprgHypotheses) (This)->lpVtbl->GetLowerHypotheses(This,pcelt,pprgHypotheses)
+#define INetDiagHelper_GetRepairInfo(This,problem,pcelt,ppInfo) (This)->lpVtbl->GetRepairInfo(This,problem,pcelt,ppInfo)
+#define INetDiagHelper_GetUpStreamHypotheses(This,pcelt,pprgHypotheses) (This)->lpVtbl->GetUpStreamHypotheses(This,pcelt,pprgHypotheses)
+#define INetDiagHelper_HighUtilization(This,pwszInstanceDescription,ppwszDescription,pDeferredTime,pStatus) (This)->lpVtbl->HighUtilization(This,pwszInstanceDescription,ppwszDescription,pDeferredTime,pStatus)
+#define INetDiagHelper_Initialize(This,celt,rgAttributes) (This)->lpVtbl->Initialize(This,celt,rgAttributes)
+#define INetDiagHelper_LowHealth(This,pwszInstanceDescription,ppwszDescription,pDeferredTime,pStatus) (This)->lpVtbl->LowHealth(This,pwszInstanceDescription,ppwszDescription,pDeferredTime,pStatus)
+#define INetDiagHelper_Repair(This,pInfo,pDeferredTime,pStatus) (This)->lpVtbl->Repair(This,pInfo,pDeferredTime,pStatus)
+#define INetDiagHelper_SetLifeTime(This,lifeTime) (This)->lpVtbl->SetLifeTime(This,lifeTime)
+#define INetDiagHelper_Validate(This,problem,pDeferredTime,pStatus) (This)->lpVtbl->Validate(This,problem,pDeferredTime,pStatus)
+#endif /*COBJMACROS*/
+
+#if (_WIN32_WINNT >= 0x0601)
+typedef struct tagHypothesisResult {
+ HYPOTHESIS hypothesis;
+ DIAGNOSIS_STATUS pathStatus;
+} HypothesisResult;
+
+#undef INTERFACE
+#define INTERFACE INetDiagHelperUtilFactory
+DECLARE_INTERFACE_(INetDiagHelperUtilFactory,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* INetDiagHelperUtilFactory methods */
+ STDMETHOD(CreateUtilityInstance)(THIS_ REFIID *riid,void **ppvObject) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define INetDiagHelperUtilFactory_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define INetDiagHelperUtilFactory_AddRef(This) (This)->pVtbl->AddRef(This)
+#define INetDiagHelperUtilFactory_Release(This) (This)->pVtbl->Release(This)
+#define INetDiagHelperUtilFactory_CreateUtilityInstance(This,riid,ppvObject) (This)->lpVtbl->CreateUtilityInstance(This,riid,ppvObject)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE INetDiagHelperEx
+DECLARE_INTERFACE_(INetDiagHelperEx,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* INetDiagHelperEx methods */
+ STDMETHOD_(HRESULT,ReconfirmLowHealth)(THIS_ ULONG celt,HypothesisResult *pResults,string LPWSTR *ppwszUpdatedDescription,DIAGNOSIS_STATUS *pUpdatedStatus) PURE;
+ STDMETHOD(ReproduceFailure)(THIS) PURE;
+ STDMETHOD(SetUtilities)(THIS_ INetDiagHelperUtilFactory *pUtilities) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define INetDiagHelperEx_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define INetDiagHelperEx_AddRef(This) (This)->pVtbl->AddRef(This)
+#define INetDiagHelperEx_Release(This) (This)->pVtbl->Release(This)
+#define INetDiagHelperEx_ReconfirmLowHealth(This,celt,pResults,ppwszUpdatedDescription,pUpdatedStatus) (This)->lpVtbl->ReconfirmLowHealth(This,celt,pResults,ppwszUpdatedDescription,pUpdatedStatus)
+#define INetDiagHelperEx_ReproduceFailure() (This)->lpVtbl->ReproduceFailure(This)
+#define INetDiagHelperEx_SetUtilities(This,pUtilities) (This)->lpVtbl->SetUtilities(This,pUtilities)
+#endif /*COBJMACROS*/
+
+#endif /*(_WIN32_WINNT >= 0x0601)*/
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
+#endif /*_INC_NDHELPER*/
diff --git a/mingw-w64-headers/include/netioapi.h b/mingw-w64-headers/include/netioapi.h
new file mode 100644
index 0000000..eebdeb7
--- /dev/null
+++ b/mingw-w64-headers/include/netioapi.h
@@ -0,0 +1,600 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_NETIOAPI
+#define _INC_NETIOAPI
+
+#include <iprtrmib.h>
+#include <ifdef.h>
+
+#if (_WIN32_WINNT >= 0x0600)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef __IPHLPAPI_H__
+#define NETIO_STATUS DWORD
+#define NETIOAPI_API_ WINAPI
+#else
+#define NETIO_STATUS NTSTATUS
+#define NETIOAPI_API_ NTAPI
+#endif
+
+#define NETIOAPI_API NETIO_STATUS NETIOAPI_API_
+#define ConvertInterfaceLuidToName __MINGW_NAME_AW(ConvertInterfaceLuidToName)
+#define ConvertInterfaceNameToLuid __MINGW_NAME_AW(ConvertInterfaceNameToLuid)
+
+typedef LPVOID NET_IFINDEX;
+
+typedef enum _MIB_NOTIFICATION_TYPE {
+ MibParameterNotification = 0,
+ MibAddInstance = 1,
+ MibDeleteInstance = 2,
+ MibInitialNotification = 3
+} MIB_NOTIFICATION_TYPE, *PMIB_NOTIFICATION_TYPE;
+
+typedef struct _MIB_ANYCASTIPADDRESS_ROW {
+ SOCKADDR_INET Address;
+ NET_LUID InterfaceLuid;
+ NET_IFINDEX InterfaceIndex;
+ SCOPE_ID ScopeId;
+} MIB_ANYCASTIPADDRESS_ROW, *PMIB_ANYCASTIPADDRESS_ROW;
+
+typedef struct _MIB_ANYCASTIPADDRESS_TABLE {
+ ULONG NumEntries;
+ MIB_ANYCASTIPADDRESS_ROW Table[ANY_SIZE];
+} MIB_ANYCASTIPADDRESS_TABLE, *PMIB_ANYCASTIPADDRESS_TABLE;
+
+typedef struct _MIB_IPFORWARD_ROW2 {
+ NET_LUID InterfaceLuid;
+ NET_IFINDEX InterfaceIndex;
+ IP_ADDRESS_PREFIX DestinationPrefix;
+ SOCKADDR_INET NextHop;
+ UCHAR SitePrefixLength;
+ ULONG ValidLifetime;
+ ULONG PreferredLifetime;
+ ULONG Metric;
+ NL_ROUTE_PROTOCOL Protocol;
+ BOOLEAN Loopback;
+ BOOLEAN AutoconfigureAddress;
+ BOOLEAN Publish;
+ BOOLEAN Immortal;
+ ULONG Age;
+ NL_ROUTE_ORIGIN Origin;
+} MIB_IPFORWARD_ROW2, *PMIB_IPFORWARD_ROW2;
+
+typedef struct _MIB_IPNET_ROW2 {
+ SOCKADDR_INET Address;
+ NET_IFINDEX InterfaceIndex;
+ NET_LUID InterfaceLuid;
+ UCHAR PhysicalAddress[IF_MAX_PHYS_ADDRESS_LENGTH];
+ ULONG PhysicalAddressLength;
+ NL_NEIGHBOR_STATE State;
+ __MINGW_EXTENSION union {
+ __MINGW_EXTENSION struct {
+ BOOLEAN IsRouter :1;
+ BOOLEAN IsUnreachable :1;
+ };
+ UCHAR Flags;
+ };
+ __MINGW_EXTENSION union {
+ ULONG LastReachable;
+ ULONG LastUnreachable;
+ } ReachabilityTime;
+} MIB_IPNET_ROW2, *PMIB_IPNET_ROW2;
+
+typedef struct _MIB_IPNET_TABLE2 {
+ ULONG NumEntries;
+ MIB_IPNET_ROW2 Table[ANY_SIZE];
+} MIB_IPNET_TABLE2, *PMIB_IPNET_TABLE2;
+
+typedef struct _MIB_IPFORWARD_TABLE2 {
+ ULONG NumEntries;
+ MIB_IPFORWARD_ROW2 Table[ANY_SIZE];
+} MIB_IPFORWARD_TABLE2, *PMIB_IPFORWARD_TABLE2;
+
+typedef struct _IP_ADDRESS_PREFIX {
+ SOCKADDR_INET Prefix;
+ UINT8 PrefixLength;
+} IP_ADDRESS_PREFIX, *PIP_ADDRESS_PREFIX;
+
+typedef struct _MIB_IPINTERFACE_ROW {
+ ADDRESS_FAMILY Family;
+ NET_LUID InterfaceLuid;
+ NET_IFINDEX InterfaceIndex;
+ ULONG MaxReassemblySize;
+ ULONG64 InterfaceIdentifier;
+ ULONG MinRouterAdvertisementInterval;
+ ULONG MaxRouterAdvertisementInterval;
+ BOOLEAN AdvertisingEnabled;
+ BOOLEAN ForwardingEnabled;
+ BOOLEAN WeakHostSend;
+ BOOLEAN WeakHostReceive;
+ BOOLEAN UseAutomaticMetric;
+ BOOLEAN UseNeighborUnreachabilityDetection;
+ BOOLEAN ManagedAddressConfigurationSupported;
+ BOOLEAN OtherStatefulConfigurationSupported;
+ BOOLEAN AdvertiseDefaultRoute;
+ NL_ROUTER_DISCOVERY_BEHAVIOR RouterDiscoveryBehavior;
+ ULONG DadTransmits;
+ ULONG BaseReachableTime;
+ ULONG RetransmitTime;
+ ULONG PathMtuDiscoveryTimeout;
+ NL_LINK_LOCAL_ADDRESS_BEHAVIOR LinkLocalAddressBehavior;
+ ULONG LinkLocalAddressTimeout;
+ ULONG ZoneIndices[ScopeLevelCount];
+ ULONG SitePrefixLength;
+ ULONG Metric;
+ ULONG NlMtu;
+ BOOLEAN Connected;
+ BOOLEAN SupportsWakeUpPatterns;
+ BOOLEAN SupportsNeighborDiscovery;
+ BOOLEAN SupportsRouterDiscovery;
+ ULONG ReachableTime;
+ NL_INTERFACE_OFFLOAD_ROD TransmitOffload;
+ NL_INTERFACE_OFFLOAD_ROD ReceiveOffload;
+ BOOLEAN DisableDefaultRoutes;
+} MIB_IPINTERFACE_ROW, *PMIB_IPINTERFACE_ROW;
+
+typedef struct _MIB_IPINTERFACE_TABLE {
+ ULONG NumEntries;
+ MIB_IPINTERFACE_ROW Table[ANY_SIZE];
+} MIB_IPINTERFACE_TABLE, *PMIB_IPINTERFACE_TABLE;
+
+typedef struct _MIB_UNICASTIPADDRESS_ROW {
+ SOCKADDR_INET Address;
+ NET_LUID InterfaceLuid;
+ NET_IFINDEX InterfaceIndex;
+ NL_PREFIX_ORIGIN PrefixOrigin;
+ NL_SUFFIX_ORIGIN SuffixOrigin;
+ ULONG ValidLifetime;
+ ULONG PreferredLifetime;
+ UINT8 OnLinkPrefixLength;
+ BOOLEAN SkipAsSource;
+ NL_DAD_STATE DadState;
+ SCOPE_ID ScopeId;
+ LARGE_INTEGER CreationTimeStamp;
+} MIB_UNICASTIPADDRESS_ROW, *PMIB_UNICASTIPADDRESS_ROW;
+
+typedef struct _MIB_UNICASTIPADDRESS_TABLE {
+ ULONG NumEntries;
+ MIB_UNICASTIPADDRESS_ROW Table[ANY_SIZE];
+} MIB_UNICASTIPADDRESS_TABLE, *PMIB_UNICASTIPADDRESS_TABLE;
+
+typedef struct _MIB_IF_ROW2 {
+ NET_LUID InterfaceLuid;
+ NET_IFINDEX InterfaceIndex;
+ GUID InterfaceGuid;
+ WCHAR Alias[IF_MAX_STRING_SIZE + 1];
+ WCHAR Description[IF_MAX_STRING_SIZE + 1];
+ ULONG PhysicalAddressLength;
+ UCHAR PhysicalAddress[IF_MAX_PHYS_ADDRESS_LENGTH];
+ UCHAR PermanentPhysicalAddress[IF_MAX_PHYS_ADDRESS_LENGTH];
+ ULONG Mtu;
+ IFTYPE Type;
+ TUNNEL_TYPE TunnelType;
+ NDIS_MEDIUM MediaType;
+ NDIS_PHYSICAL_MEDIUM PhysicalMediumType;
+ NET_IF_ACCESS_TYPE AccessType;
+ NET_IF_DIRECTION_TYPE DirectionType;
+ __MINGW_EXTENSION struct {
+ BOOLEAN HardwareInterface :1;
+ BOOLEAN FilterInterface :1;
+ BOOLEAN ConnectorPresent :1;
+ BOOLEAN NotAuthenticated :1;
+ BOOLEAN NotMediaConnected :1;
+ BOOLEAN Paused :1;
+ BOOLEAN LowPower :1;
+ BOOLEAN EndPointInterface :1;
+ } InterfaceAndOperStatusFlags;
+ IF_OPER_STATUS OperStatus;
+ NET_IF_ADMIN_STATUS AdminStatus;
+ NET_IF_MEDIA_CONNECT_STATE MediaConnectState;
+ NET_IF_NETWORK_GUID NetworkGuid;
+ NET_IF_CONNECTION_TYPE ConnectionType;
+ ULONG64 TransmitLinkSpeed;
+ ULONG64 ReceiveLinkSpeed;
+ ULONG64 InOctets;
+ ULONG64 InUcastPkts;
+ ULONG64 InNUcastPkts;
+ ULONG64 InDiscards;
+ ULONG64 InErrors;
+ ULONG64 InUnknownProtos;
+ ULONG64 InUcastOctets;
+ ULONG64 InMulticastOctets;
+ ULONG64 InBroadcastOctets;
+ ULONG64 OutOctets;
+ ULONG64 OutUcastPkts;
+ ULONG64 OutNUcastPkts;
+ ULONG64 OutDiscards;
+ ULONG64 OutErrors;
+ ULONG64 OutUcastOctets;
+ ULONG64 OutMulticastOctets;
+ ULONG64 OutBroadcastOctets;
+ ULONG64 OutQLen;
+} MIB_IF_ROW2, *PMIB_IF_ROW2;
+
+typedef struct _MIB_IF_TABLE2 {
+ ULONG NumEntries;
+ MIB_IF_ROW2 Table[ANY_SIZE];
+} MIB_IF_TABLE2, *PMIB_IF_TABLE2;
+
+typedef struct _MIB_IFSTACK_ROW {
+ NET_IFINDEX HigherLayerInterfaceIndex;
+ NET_IFINDEX LowerLayerInterfaceIndex;
+} MIB_IFSTACK_ROW, *PMIB_IFSTACK_ROW;
+
+typedef struct _MIB_IFSTACK_TABLE {
+ ULONG NumEntries;
+ MIB_IFSTACK_ROW Table[ANY_SIZE];
+} MIB_IFSTACK_TABLE, *PMIB_IFSTACK_TABLE;
+
+typedef struct _MIB_INVERTEDIFSTACK_ROW {
+ NET_IFINDEX LowerLayerInterfaceIndex;
+ NET_IFINDEX HigherLayerInterfaceIndex;
+} MIB_INVERTEDIFSTACK_ROW, *PMIB_INVERTEDIFSTACK_ROW;
+
+typedef struct _MIB_INVERTEDIFSTACK_TABLE {
+ ULONG NumEntries;
+ MIB_INVERTEDIFSTACK_ROW Table[ANY_SIZE];
+} MIB_INVERTEDIFSTACK_TABLE, *PMIB_INVERTEDIFSTACK_TABLE;
+
+typedef struct _MIB_IPPATH_ROW {
+ SOCKADDR_INET Source;
+ SOCKADDR_INET Destination;
+ NET_LUID InterfaceLuid;
+ NET_IFINDEX InterfaceIndex;
+ SOCKADDR_INET CurrentNextHop;
+ ULONG PathMtu;
+ ULONG RttMean;
+ ULONG RttDeviation;
+ __MINGW_EXTENSION union {
+ ULONG LastReachable;
+ ULONG LastUnreachable;
+ };
+ BOOLEAN IsReachable;
+ ULONG64 LinkTransmitSpeed;
+ ULONG64 LinkReceiveSpeed;
+} MIB_IPPATH_ROW, *PMIB_IPPATH_ROW;
+
+typedef struct _MIB_IPPATH_TABLE {
+ ULONG NumEntries;
+ MIB_IPPATH_ROW Table[ANY_SIZE];
+} MIB_IPPATH_TABLE, *PMIB_IPPATH_TABLE;
+
+typedef struct _MIB_MULTICASTIPADDRESS_ROW {
+ SOCKADDR_INET Address;
+ NET_IFINDEX InterfaceIndex;
+ NET_LUID InterfaceLuid;
+ SCOPE_ID ScopeId;
+} MIB_MULTICASTIPADDRESS_ROW, *PMIB_MULTICASTIPADDRESS_ROW;
+
+typedef struct _MIB_MULTICASTIPADDRESS_TABLE {
+ ULONG NumEntries;
+ MIB_MULTICASTIPADDRESS_ROW Table[ANY_SIZE];
+} MIB_MULTICASTIPADDRESS_TABLE, *PMIB_MULTICASTIPADDRESS_TABLE;
+
+NETIOAPI_API CancelMibChangeNotify2(
+ HANDLE NotificationHandle
+);
+
+NETIO_STATUS WINAPI ConvertInterfaceAliasToLuid(
+ const WCHAR *InterfaceAlias,
+ PNET_LUID InterfaceLuid
+);
+
+NETIO_STATUS WINAPI ConvertInterfaceLuidToNameA(
+ const NET_LUID *InterfaceLuid,
+ PSTR InterfaceName,
+ SIZE_T Length
+);
+
+NETIO_STATUS WINAPI ConvertInterfaceLuidToNameW(
+ const NET_LUID *InterfaceLuid,
+ PWSTR InterfaceName,
+ SIZE_T Length
+);
+
+NETIO_STATUS WINAPI ConvertInterfaceNameToLuidA(
+ const CHAR *InterfaceName,
+ PNET_LUID InterfaceLuid
+);
+
+NETIO_STATUS WINAPI ConvertInterfaceNameToLuidW(
+ const WCHAR *InterfaceName,
+ PNET_LUID InterfaceLuid
+);
+
+PCHAR WINAPI if_indextoname(
+ NET_IFINDEX InterfaceIndex,
+ PCHAR InterfaceName
+);
+
+NET_IFINDEX WINAPI if_nametoindex(
+ PCSTR InterfaceName
+);
+
+NETIO_STATUS WINAPI ConvertInterfaceGuidToLuid(
+ const GUID *InterfaceGuid,
+ PNET_LUID InterfaceLuid
+);
+
+NETIO_STATUS WINAPI ConvertInterfaceIndexToLuid(
+ NET_IFINDEX InterfaceIndex,
+ PNET_LUID InterfaceLuid
+);
+
+NETIO_STATUS WINAPI ConvertInterfaceLuidToAlias(
+ const NET_LUID *InterfaceLuid,
+ PWSTR InterfaceAlias,
+ SIZE_T Length
+);
+
+NETIO_STATUS WINAPI ConvertInterfaceLuidToGuid(
+ const NET_LUID *InterfaceLuid,
+ GUID *InterfaceGuid
+);
+
+NETIO_STATUS WINAPI ConvertInterfaceLuidToIndex(
+ const NET_LUID *InterfaceLuid,
+ PNET_IFINDEX InterfaceIndex
+);
+
+NETIO_STATUS WINAPI ConvertIpv4MaskToLength(
+ ULONG Mask,
+ PUINT8 MaskLength
+);
+
+NETIO_STATUS WINAPI ConvertLengthToIpv4Mask(
+ ULONG MaskLength,
+ PULONG Mask
+);
+
+NETIOAPI_API CreateAnycastIpAddressEntry(
+ const MIB_ANYCASTIPADDRESS_ROW *Row
+);
+
+NETIOAPI_API CreateIpForwardEntry2(
+ const MIB_IPFORWARD_ROW2 *Row
+);
+
+NETIOAPI_API GetIpNetTable2(
+ ADDRESS_FAMILY Family,
+ PMIB_IPNET_TABLE2 *Table
+);
+
+NETIOAPI_API GetIpNetEntry2(
+ PMIB_IPNET_ROW2 Row
+);
+
+NETIOAPI_API CreateIpNetEntry2(
+ const MIB_IPNET_ROW2 *Row
+);
+
+NETIOAPI_API CreateSortedAddressPairs(
+ const PSOCKADDR_IN6 SourceAddressList,
+ ULONG SourceAddressCount,
+ const PSOCKADDR_IN6 DestinationAddressList,
+ ULONG DestinationAddressCount,
+ ULONG AddressSortOptions,
+ PSOCKADDR_IN6_PAIR *SortedAddressPairList,
+ ULONG *SortedAddressPairCount
+);
+
+NETIOAPI_API CreateIpNetEntry2(
+ const MIB_IPNET_ROW2 *Row
+);
+
+NETIOAPI_API CreateUnicastIpAddressEntry(
+ const MIB_UNICASTIPADDRESS_ROW *Row
+);
+
+NETIOAPI_API DeleteIpForwardEntry2(
+ const MIB_IPFORWARD_ROW2 *Row
+);
+
+NETIOAPI_API GetIpForwardTable2(
+ ADDRESS_FAMILY Family,
+ PMIB_IPFORWARD_TABLE2 *Table
+);
+
+VOID NETIOAPI_API_ FreeMibTable(
+ PVOID Memory
+);
+
+NETIOAPI_API DeleteIpNetEntry2(
+ const MIB_IPNET_ROW2 *Row
+);
+
+NETIOAPI_API GetIpNetTable2(
+ ADDRESS_FAMILY Family,
+ PMIB_IPNET_TABLE2 *Table
+);
+
+NETIOAPI_API DeleteUnicastIpAddressEntry(
+ const MIB_UNICASTIPADDRESS_ROW *Row
+);
+
+NETIOAPI_API GetUnicastIpAddressEntry(
+ PMIB_UNICASTIPADDRESS_ROW Row
+);
+
+NETIOAPI_API DeleteAnycastIpAddressEntry(
+ const MIB_ANYCASTIPADDRESS_ROW *Row
+);
+
+NETIOAPI_API FlushIpNetTable2(
+ ADDRESS_FAMILY Family,
+ NET_IFINDEX InterfaceIndex
+);
+
+NETIOAPI_API FlushIpPathTable(
+ ADDRESS_FAMILY Family
+);
+
+NETIOAPI_API GetAnycastIpAddressEntry(
+ PMIB_ANYCASTIPADDRESS_ROW Row
+);
+
+NETIOAPI_API GetAnycastIpAddressTable(
+ ADDRESS_FAMILY Family,
+ PMIB_ANYCASTIPADDRESS_TABLE *Table
+);
+
+NETIOAPI_API GetBestRoute2(
+ NET_LUID *InterfaceLuid,
+ NET_IFINDEX InterfaceIndex,
+ const SOCKADDR_INET *SourceAddress,
+ const SOCKADDR_INET *DestinationAddress,
+ ULONG AddressSortOptions,
+ PMIB_IPFORWARD_ROW2 BestRoute,
+ SOCKADDR_INET *BestSourceAddress
+);
+
+NETIOAPI_API GetIfEntry2(
+ PMIB_IF_ROW2 Row
+);
+
+NETIOAPI_API GetIfTable2(
+ PMIB_IF_TABLE2 *Table
+);
+
+NETIOAPI_API GetIfStackTable(
+ PMIB_IFSTACK_TABLE *Table
+);
+
+NETIOAPI_API GetIfTable2Ex(
+ MIB_IF_TABLE_LEVEL Level,
+ PMIB_IF_TABLE2 *Table
+);
+
+NETIOAPI_API GetInvertedIfStackTable(
+ PMIB_INVERTEDIFSTACK_TABLE *Table
+);
+
+NETIOAPI_API GetIpForwardEntry2(
+ PMIB_IPFORWARD_ROW2 Row
+);
+
+NETIOAPI_API GetIpInterfaceEntry(
+ PMIB_IPINTERFACE_ROW Row
+);
+
+NETIOAPI_API GetIpInterfaceTable(
+ ADDRESS_FAMILY Family,
+ PMIB_IPINTERFACE_TABLE *Table
+);
+
+NETIOAPI_API GetIpNetEntry2(
+ PMIB_IPNET_ROW2 Row
+);
+
+NETIOAPI_API GetIpPathEntry(
+ PMIB_IPPATH_ROW Row
+);
+
+NETIOAPI_API GetIpPathTable(
+ ADDRESS_FAMILY Family,
+ PMIB_IPPATH_TABLE *Table
+);
+
+NETIOAPI_API GetMulticastIpAddressEntry(
+ PMIB_MULTICASTIPADDRESS_ROW Row
+);
+
+NETIOAPI_API GetMulticastIpAddressTable(
+ ADDRESS_FAMILY Family,
+ PMIB_MULTICASTIPADDRESS_TABLE *Table
+);
+
+NETIOAPI_API GetTeredoPort(
+ USHORT *Port
+);
+
+/*Unknown*/
+typedef LPVOID PTEREDO_PORT_CHANGE_CALLBACK;
+
+NETIOAPI_API NotifyTeredoPortChange(
+ PTEREDO_PORT_CHANGE_CALLBACK Callback,
+ PVOID CallerContext,
+ BOOLEAN InitialNotification,
+ HANDLE *NotificationHandle
+);
+
+/*Unknown*/
+typedef LPVOID PSTABLE_UNICAST_IPADDRESS_TABLE_CALLBACK;
+
+NETIOAPI_API NotifyStableUnicastIpAddressTable(
+ ADDRESS_FAMILY Family,
+ PMIB_UNICASTIPADDRESS_TABLE *Table,
+ PSTABLE_UNICAST_IPADDRESS_TABLE_CALLBACK CallerCallback,
+ PVOID CallerContext,
+ HANDLE *NotificationHandle
+);
+
+typedef void (WINAPI *PUNICAST_IPADDRESS_CHANGE_CALLBACK)(void* callerContext, PMIB_UNICASTIPADDRESS_ROW row, MIB_NOTIFICATION_TYPE type);
+
+NETIOAPI_API NotifyUnicastIpAddressChange(
+ ADDRESS_FAMILY Family,
+ PUNICAST_IPADDRESS_CHANGE_CALLBACK Callback,
+ PVOID CallerContext,
+ BOOLEAN InitialNotification,
+ HANDLE *NotificationHandle
+);
+
+NETIOAPI_API GetUnicastIpAddressTable(
+ ADDRESS_FAMILY Family,
+ PMIB_UNICASTIPADDRESS_TABLE *Table
+);
+
+typedef LPVOID PIPINTERFACE_CHANGE_CALLBACK;
+
+NETIOAPI_API NotifyIpInterfaceChange(
+ ADDRESS_FAMILY Family,
+ PIPINTERFACE_CHANGE_CALLBACK Callback,
+ PVOID CallerContext,
+ BOOLEAN InitialNotification,
+ HANDLE *NotificationHandle
+);
+
+typedef LPVOID PIPFORWARD_CHANGE_CALLBACK;
+
+NETIOAPI_API NotifyRouteChange2(
+ ADDRESS_FAMILY Family,
+ PIPFORWARD_CHANGE_CALLBACK Callback,
+ PVOID CallerContext,
+ BOOLEAN InitialNotification,
+ HANDLE *NotificationHandle
+);
+
+NETIOAPI_API ResolveIpNetEntry2(
+ PMIB_IPNET_ROW2 Row,
+ const SOCKADDR_INET *SourceAddress
+);
+
+NETIOAPI_API SetIpForwardEntry2(
+ const MIB_IPFORWARD_ROW2 *Route
+);
+
+NETIOAPI_API SetIpInterfaceEntry(
+ PMIB_IPINTERFACE_ROW Row
+);
+
+NETIOAPI_API SetIpNetEntry2(
+ PMIB_IPNET_ROW2 Row
+);
+
+NETIOAPI_API SetUnicastIpAddressEntry(
+ const MIB_UNICASTIPADDRESS_ROW *Row
+);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
+#endif /*_INC_NETIOAPI*/
diff --git a/mingw-w64-headers/include/netlistmgr.h b/mingw-w64-headers/include/netlistmgr.h
new file mode 100644
index 0000000..91a87d1
--- /dev/null
+++ b/mingw-w64-headers/include/netlistmgr.h
@@ -0,0 +1,68 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_NETLISTMGR
+#define _INC_NETLISTMGR
+
+#if (_WIN32_WINNT >= 0x0600)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum NLM_CONNECTION_PROPERTY_CHANGE {
+ NLM_CONNECTION_PROPERTY_CHANGE_AUTHENTICATION = 0x01
+} NLM_CONNECTION_PROPERTY_CHANGE;
+
+typedef enum NLM_CONNECTIVITY {
+ NLM_CONNECTIVITY_DISCONNECTED = 0x0000,
+ NLM_CONNECTIVITY_IPV4_NOTRAFFIC = 0x0001,
+ NLM_CONNECTIVITY_IPV6_NOTRAFFIC = 0x0002,
+ NLM_CONNECTIVITY_IPV4_SUBNET = 0x0010,
+ NLM_CONNECTIVITY_IPV4_LOCALNETWORK = 0x0020,
+ NLM_CONNECTIVITY_IPV4_INTERNET = 0x0040,
+ NLM_CONNECTIVITY_IPV6_SUBNET = 0x0100,
+ NLM_CONNECTIVITY_IPV6_LOCALNETWORK = 0x0200,
+ NLM_CONNECTIVITY_IPV6_INTERNET = 0x0400
+} NLM_CONNECTIVITY;
+
+typedef enum NLM_DOMAIN_TYPE {
+ NLM_DOMAIN_TYPE_NON_DOMAIN_NETWORK = 0x0,
+ NLM_DOMAIN_TYPE_DOMAIN_NETWORK = 0x01,
+ NLM_DOMAIN_TYPE_DOMAIN_AUTHENTICATED = 0x02
+} NLM_DOMAIN_TYPE;
+
+typedef enum NLM_ENUM_NETWORK {
+ NLM_ENUM_NETWORK_CONNECTED = 0x01,
+ NLM_ENUM_NETWORK_DISCONNECTED = 0x02,
+ NLM_ENUM_NETWORK_ALL = 0x03
+} NLM_ENUM_NETWORK;
+
+typedef enum NLM_NETWORK_CATEGORY {
+ NLM_NETWORK_CATEGORY_PUBLIC = 0x00,
+ NLM_NETWORK_CATEGORY_PRIVATE = 0x01,
+ NLM_NETWORK_CATEGORY_DOMAIN_AUTHENTICATED = 0x02
+} NLM_NETWORK_CATEGORY;
+
+typedef enum _NLM_NETWORK_CLASS {
+ NLM_NETWORK_IDENTIFYING = 0x01,
+ NLM_NETWORK_IDENTIFIED = 0x02,
+ NLM_NETWORK_UNIDENTIFIED = 0x03
+} NLM_NETWORK_CLASS;
+
+typedef enum NLM_NETWORK_PROPERTY_CHANGE {
+ NLM_NETWORK_PROPERTY_CHANGE_CONNECTION = 0x01,
+ NLM_NETWORK_PROPERTY_CHANGE_DESCRIPTION = 0x02,
+ NLM_NETWORK_PROPERTY_CHANGE_NAME = 0x04,
+ NLM_NETWORK_PROPERTY_CHANGE_CATEGORY_VALUE = 0x10
+} NLM_NETWORK_PROPERTY_CHANGE;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
+#endif /*_INC_NETLISTMGR*/
diff --git a/mingw-w64-headers/include/nldef.h b/mingw-w64-headers/include/nldef.h
new file mode 100644
index 0000000..3b1b3c5
--- /dev/null
+++ b/mingw-w64-headers/include/nldef.h
@@ -0,0 +1,147 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_NLDEF
+#define _INC_NLDEF
+
+#if (_WIN32_WINNT >= 0x0600)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum _NL_ADDRESS_TYPE {
+ NlatUnspecified,
+ NlatUnicast,
+ NlatAnycast,
+ NlatMulticast,
+ NlatBroadcast,
+ NlatInvalid
+} NL_ADDRESS_TYPE, *PNL_ADDRESS_TYPE;
+
+typedef enum _NL_DAD_STATE {
+ NldsInvalid,
+ NldsTentative,
+ NldsDuplicate,
+ NldsDeprecated,
+ NldsPreferred,
+ IpDadStateInvalid = 0,
+ IpDadStateTentative,
+ IpDadStateDuplicate,
+ IpDadStateDeprecated,
+ IpDadStatePreferred
+} NL_DAD_STATE;
+
+typedef enum _NL_LINK_LOCAL_ADDRESS_BEHAVIOR {
+ LinkLocalAlwaysOff = 0,
+ LinkLocalDelayed,
+ LinkLocalAlwaysOn,
+ LinkLocalUnchanged = -1
+} NL_LINK_LOCAL_ADDRESS_BEHAVIOR;
+
+typedef enum _NL_NEIGHBOR_STATE {
+ NlnsUnreachable,
+ NlnsIncomplete,
+ NlnsProbe,
+ NlnsDelay,
+ NlnsStale,
+ NlnsReachable,
+ NlnsPermanent,
+ NlnsMaximum
+} NL_NEIGHBOR_STATE, *PNL_NEIGHBOR_STATE;
+
+typedef enum {
+ IpPrefixOriginOther = 0,
+ IpPrefixOriginManual,
+ IpPrefixOriginWellKnown,
+ IpPrefixOriginDhcp,
+ IpPrefixOriginRouterAdvertisement,
+ IpPrefixOriginUnchanged = 1 << 4
+} NL_PREFIX_ORIGIN;
+
+typedef enum _NL_ROUTE_ORIGIN {
+ NlroManual,
+ NlroWellKnown,
+ NlroDHCP,
+ NlroRouterAdvertisement,
+ Nlro6to4
+} NL_ROUTE_ORIGIN, *PNL_ROUTE_ORIGIN;
+
+typedef enum _NL_ROUTE_PROTOCOL {
+ RouteProtocolOther = 1,
+ RouteProtocolLocal,
+ RouteProtocolNetMgmt,
+ RouteProtocolIcmp,
+ RouteProtocolEgp,
+ RouteProtocolGgp,
+ RouteProtocolHello,
+ RouteProtocolRip,
+ RouteProtocolIsIs,
+ RouteProtocolEsIs,
+ RouteProtocolCisco,
+ RouteProtocolBbn,
+ RouteProtocolOspf,
+ RouteProtocolBgp,
+ MIB_IPPROTO_OTHER = 1,
+ MIB_IPPROTO_LOCAL = 2,
+ MIB_IPPROTO_NETMGMT = 3,
+ MIB_IPPROTO_ICMP = 4,
+ MIB_IPPROTO_EGP = 5,
+ MIB_IPPROTO_GGP = 6,
+ MIB_IPPROTO_HELLO = 7,
+ MIB_IPPROTO_RIP = 8,
+ MIB_IPPROTO_IS_IS = 9,
+ MIB_IPPROTO_ES_IS = 10,
+ MIB_IPPROTO_CISCO = 11,
+ MIB_IPPROTO_BBN = 12,
+ MIB_IPPROTO_OSPF = 13,
+ MIB_IPPROTO_BGP = 14,
+ MIB_IPPROTO_NT_AUTOSTATIC = 10002,
+ MIB_IPPROTO_NT_STATIC = 10006,
+ MIB_IPPROTO_NT_STATIC_NON_DOD = 10007
+} NL_ROUTE_PROTOCOL, *PNL_ROUTE_PROTOCOL;
+
+typedef enum _NL_ROUTER_DISCOVERY_BEHAVIOR {
+ RouterDiscoveryDisabled = 0,
+ RouterDiscoveryEnabled,
+ RouterDiscoveryDhcp,
+ RouterDiscoveryUnchanged = -1
+} NL_ROUTER_DISCOVERY_BEHAVIOR;
+
+typedef enum {
+ NlsoOther,
+ NlsoManual,
+ NlsoWellKnown,
+ NlsoDhcp,
+ NlsoLinkLayerAddress,
+ NlsoRandom,
+ IpSuffixOriginOther = 0,
+ IpSuffixOriginManual,
+ IpSuffixOriginWellKnown,
+ IpSuffixOriginDhcp,
+ IpSuffixOriginLinkLayerAddress,
+ IpSuffixOriginRandom,
+ IpSuffixOriginUnchanged = 1 << 4
+} NL_SUFFIX_ORIGIN;
+
+typedef struct _NL_INTERFACE_OFFLOAD_ROD {
+ BOOLEAN NlChecksumSupported :1;
+ BOOLEAN NlOptionsSupported :1;
+ BOOLEAN TlDatagramChecksumSupported :1;
+ BOOLEAN TlStreamChecksumSupported :1;
+ BOOLEAN TlStreamOptionsSupported :1;
+ BOOLEAN TlStreamFastPathCompatible :1;
+ BOOLEAN TlDatagramFastPathCompatible :1;
+ BOOLEAN TlLargeSendOffloadSupported :1;
+ BOOLEAN TlGiantSendOffloadSupported :1;
+} NL_INTERFACE_OFFLOAD_ROD, *PNL_INTERFACE_OFFLOAD_ROD;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
+#endif /*_INC_NLDEF*/
diff --git a/mingw-w64-headers/include/ntdsapi.h b/mingw-w64-headers/include/ntdsapi.h
index 3543236..33a3f6c 100644
--- a/mingw-w64-headers/include/ntdsapi.h
+++ b/mingw-w64-headers/include/ntdsapi.h
@@ -7,7 +7,9 @@
#define _NTDSAPI_H_
#include <_mingw_unicode.h>
+
#include <schedule.h>
+#include <rpc.h>
#if !defined(_NTDSAPI_)
#define NTDSAPI DECLSPEC_IMPORT
@@ -892,6 +894,79 @@
NTDSAPI WINBOOL WINAPI DsIsMangledDnA(LPCSTR pszDn,DS_MANGLE_FOR eDsMangleFor);
NTDSAPI WINBOOL WINAPI DsIsMangledDnW(LPCWSTR pszDn,DS_MANGLE_FOR eDsMangleFor);
+#if (_WIN32_WINNT >= 0x0600)
+#define NTDSAPI_BIND_FIND_BINDING (0x00000002)
+#define NTDSAPI_BIND_FORCE_KERBEROS (0x00000004)
+
+#define DSSI_READ_ONLY 0x00000001
+#define DSSI_NO_ACCESS_CHECK 0x00000002
+#define DSSI_NO_EDIT_SACL 0x00000004
+#define DSSI_NO_EDIT_OWNER 0x00000008
+#define DSSI_IS_ROOT 0x00000010
+#define DSSI_NO_FILTER 0x00000020
+#define DSSI_NO_READONLY_MESSAGE 0x00000040
+
+NTDSAPI DWORD WINAPI DsBindingSetTimeout(
+ HANDLE hDS,
+ ULONG cTimeoutSecs
+);
+
+#define DsAddSidHistory __MINGW_NAME_AW(DsBindToISTG)
+
+NTDSAPI DWORD WINAPI DsBindToISTGW(
+ LPCWSTR SiteName,
+ HANDLE *phDS
+);
+
+NTDSAPI DWORD WINAPI DsBindToISTGA(
+ LPCWSTR SiteName,
+ HANDLE *phDS
+);
+
+#define DsBindWithSpnEx __MINGW_NAME_AW(DsBindWithSpnEx)
+
+NTDSAPI DWORD WINAPI DsBindWithSpnExA(
+ LPCSTR DomainControllerName,
+ LPCSTR DnsDomainName,
+ RPC_AUTH_IDENTITY_HANDLE AuthIdentity,
+ LPCSTR ServicePrincipalName,
+ DWORD BindFlags,
+ HANDLE *phDS
+);
+
+NTDSAPI DWORD WINAPI DsBindWithSpnExW(
+ LPCWSTR DomainControllerName,
+ LPCWSTR DnsDomainName,
+ RPC_AUTH_IDENTITY_HANDLE AuthIdentity,
+ LPCWSTR ServicePrincipalName,
+ DWORD BindFlags,
+ HANDLE *phDS
+);
+
+NTDSAPI DWORD WINAPI DsQuerySitesByCostA(
+ HANDLE hDS,
+ LPSTR pwszFromSite,
+ LPSTR *rgwszToSites,
+ DWORD cToSites,
+ DWORD dwFlags,
+ PDS_SITE_COST_INFO *prgSiteInfo
+);
+
+NTDSAPI DWORD WINAPI DsQuerySitesByCostW(
+ HANDLE hDS,
+ LPWSTR pwszFromSite,
+ LPWSTR *rgwszToSites,
+ DWORD cToSites,
+ DWORD dwFlags,
+ PDS_SITE_COST_INFO *prgSiteInfo
+);
+
+NTDSAPI void WINAPI DsQuerySitesFree(
+ PDS_SITE_COST_INFO rgSiteInfo
+);
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
#ifdef __cplusplus
}
#endif
diff --git a/mingw-w64-headers/include/ntmsapi.h b/mingw-w64-headers/include/ntmsapi.h
index 348d251..41426b1 100644
--- a/mingw-w64-headers/include/ntmsapi.h
+++ b/mingw-w64-headers/include/ntmsapi.h
@@ -977,6 +977,20 @@
DWORD WINAPI GetVolumesFromDriveW(LPWSTR pszDriveName,LPWSTR *VolumeNameBufferPtr,LPWSTR *DriveLetterBufferPtr);
DWORD WINAPI GetVolumesFromDriveA(LPSTR pszDriveName,LPSTR *VolumeNameBufferPtr,LPSTR *DriveLetterBufferPtr);
+#if (_WIN32_WINNT >= 0x0600)
+DWORD WINAPI GetVolumesFromDriveA(
+ LPSTR pszDriveName,
+ LPSTR * VolumeNameBufferPtr,
+ LPSTR * DriveLetterBufferPtr
+);
+
+DWORD WINAPI GetVolumesFromDriveW(
+ LPWSTR pszDriveName,
+ LPWSTR * VolumeNameBufferPtr,
+ LPWSTR * DriveLetterBufferPtr
+);
+#endif /* (_WIN32_WINNT >= 0x0600) */
+
#ifdef __cplusplus
}
#endif
diff --git a/mingw-w64-headers/include/ntsecapi.h b/mingw-w64-headers/include/ntsecapi.h
index 681c2a9..373fbea 100644
--- a/mingw-w64-headers/include/ntsecapi.h
+++ b/mingw-w64-headers/include/ntsecapi.h
@@ -957,6 +957,11 @@
typedef enum _KERB_LOGON_SUBMIT_TYPE {
KerbInteractiveLogon = 2,KerbSmartCardLogon = 6,KerbWorkstationUnlockLogon = 7,KerbSmartCardUnlockLogon = 8,KerbProxyLogon = 9,
KerbTicketLogon = 10,KerbTicketUnlockLogon = 11,KerbS4ULogon = 12
+#ifdef (_WIN32_WINNT >= 0x0600)
+ ,KerbCertificateLogon = 13,
+ KerbCertificateS4ULogon = 14,
+ KerbCertificateUnlockLogon = 15
+#endif
} KERB_LOGON_SUBMIT_TYPE,*PKERB_LOGON_SUBMIT_TYPE;
typedef struct _KERB_INTERACTIVE_LOGON {
@@ -1299,6 +1304,176 @@
ULONG Flags;
} KERB_TRANSFER_CRED_REQUEST,*PKERB_TRANSFER_CRED_REQUEST;
+#if (_WIN32_WINNT >= 0x0600)
+
+ typedef enum _POLICY_AUDIT_EVENT_TYPE {
+ AuditCategorySystem,
+ AuditCategoryLogon,
+ AuditCategoryObjectAccess,
+ AuditCategoryPrivilegeUse,
+ AuditCategoryDetailedTracking,
+ AuditCategoryPolicyChange,
+ AuditCategoryAccountManagement,
+ AuditCategoryDirectoryServiceAccess,
+ AuditCategoryAccountLogon
+ } POLICY_AUDIT_EVENT_TYPE, *PPOLICY_AUDIT_EVENT_TYPE;
+
+#define POLICY_AUDIT_EVENT_UNCHANGED 0x00000000
+#define POLICY_AUDIT_EVENT_SUCCESS 0x00000001
+#define POLICY_AUDIT_EVENT_FAILURE 0x00000002
+#define POLICY_AUDIT_EVENT_NONE 0x00000004
+#define PER_USER_POLICY_UNCHANGED 0x00
+#define PER_USER_AUDIT_SUCCESS_INCLUDE 0x01
+#define PER_USER_AUDIT_SUCCESS_EXCLUDE 0x02
+#define PER_USER_AUDIT_FAILURE_INCLUDE 0x04
+#define PER_USER_AUDIT_FAILURE_EXCLUDE 0x08
+#define PER_USER_AUDIT_NONE 0x10
+
+ typedef struct _AUDIT_POLICY_INFORMATION {
+ GUID AuditSubCategoryGuid;
+ ULONG AuditingInformation;
+ GUID AuditCategoryGuid;
+ } AUDIT_POLICY_INFORMATION, *PAUDIT_POLICY_INFORMATION, *PCAUDIT_POLICY_INFORMATION;
+
+ typedef struct _POLICY_AUDIT_SID_ARRAY {
+ ULONG UsersCount;
+ PSID *UserSidArray;
+ } POLICY_AUDIT_SID_ARRAY, *PPOLICY_AUDIT_SID_ARRAY;
+
+ typedef struct _KERB_CERTIFICATE_LOGON {
+ KERB_LOGON_SUBMIT_TYPE MessageType;
+ UNICODE_STRING DomainName;
+ UNICODE_STRING UserName;
+ UNICODE_STRING Pin;
+ ULONG Flags;
+ ULONG CspDataLength;
+ PUCHAR CspData;
+ } KERB_CERTIFICATE_LOGON, *PKERB_CERTIFICATE_LOGON;
+
+ typedef struct _KERB_CERTIFICATE_UNLOCK_LOGON {
+ KERB_CERTIFICATE_LOGON Logon;
+ LUID LogonId;
+ } KERB_CERTIFICATE_UNLOCK_LOGON, *PKERB_CERTIFICATE_UNLOCK_LOGON;
+
+ typedef struct _KERB_SMARTCARD_CSP_INFO {
+ DWORD dwCspInfoLen;
+ DWORD MessageType;
+ __MINGW_EXTENSION union {
+ PVOID ContextInformation;
+ ULONG64 SpaceHolderForWow64;
+ };
+ DWORD flags;
+ DWORD KeySpec;
+ ULONG nCardNameOffset;
+ ULONG nReaderNameOffset;
+ ULONG nContainerNameOffset;
+ ULONG nCSPNameOffset;
+ TCHAR bBuffer;
+ } KERB_SMARTCARD_CSP_INFO, *PKERB_SMARTCARD_CSP_INFO;
+
+ BOOLEAN WINAPI AuditComputeEffectivePolicyBySid(
+ const PSID pSid,
+ const GUID *pSubCategoryGuids,
+ ULONG PolicyCount,
+ PAUDIT_POLICY_INFORMATION *ppAuditPolicy
+ );
+
+ VOID WINAPI AuditFree(
+ PVOID Buffer
+ );
+
+ BOOLEAN WINAPI AuditSetSystemPolicy(
+ PCAUDIT_POLICY_INFORMATION pAuditPolicy,
+ ULONG PolicyCount
+ );
+
+ BOOLEAN WINAPI AuditQuerySystemPolicy(
+ const GUID *pSubCategoryGuids,
+ ULONG PolicyCount,
+ PAUDIT_POLICY_INFORMATION *ppAuditPolicy
+ );
+
+ BOOLEAN WINAPI AuditSetPerUserPolicy(
+ const PSID pSid,
+ PCAUDIT_POLICY_INFORMATION pAuditPolicy,
+ ULONG PolicyCount
+ );
+
+ BOOLEAN WINAPI AuditQueryPerUserPolicy(
+ const PSID pSid,
+ const GUID *pSubCategoryGuids,
+ ULONG PolicyCount,
+ PAUDIT_POLICY_INFORMATION *ppAuditPolicy
+ );
+
+ BOOLEAN WINAPI AuditComputeEffectivePolicyByToken(
+ HANDLE hTokenHandle,
+ const GUID *pSubCategoryGuids,
+ ULONG PolicyCount,
+ PAUDIT_POLICY_INFORMATION *ppAuditPolicy
+ );
+
+ BOOLEAN WINAPI AuditEnumerateCategories(
+ GUID **ppAuditCategoriesArray,
+ PULONG pCountReturned
+ );
+
+ BOOLEAN WINAPI AuditEnumeratePerUserPolicy(
+ PPOLICY_AUDIT_SID_ARRAY *ppAuditSidArray
+ );
+
+ BOOLEAN WINAPI AuditEnumerateSubCategories(
+ const GUID *pAuditCategoryGuid,
+ BOOLEAN bRetrieveAllSubCategories,
+ GUID **ppAuditSubCategoriesArray,
+ PULONG pCountReturned
+ );
+
+ BOOLEAN WINAPI AuditLookupCategoryGuidFromCategoryId(
+ POLICY_AUDIT_EVENT_TYPE AuditCategoryId,
+ GUID *pAuditCategoryGuid
+ );
+
+ BOOLEAN WINAPI AuditQuerySecurity(
+ SECURITY_INFORMATION SecurityInformation,
+ PSECURITY_DESCRIPTOR *ppSecurityDescriptor
+ );
+
+#define AuditLookupSubCategoryName __MINGW_NAME_AW(AuditLookupSubCategoryName)
+#define AuditLookupCategoryName __MINGW_NAME_AW(AuditLookupCategoryName)
+
+ BOOLEAN WINAPI AuditLookupSubCategoryNameA(
+ const GUID *pAuditSubCategoryGuid,
+ LPSTR *ppszSubCategoryName
+ );
+
+ BOOLEAN WINAPI AuditLookupSubCategoryNameW(
+ const GUID *pAuditSubCategoryGuid,
+ LPWSTR *ppszSubCategoryName
+ );
+
+ BOOLEAN WINAPI AuditLookupCategoryNameA(
+ const GUID *pAuditCategoryGuid,
+ LPSTR *ppszCategoryName
+ );
+
+ BOOLEAN WINAPI AuditLookupCategoryNameW(
+ const GUID *pAuditCategoryGuid,
+ LPWSTR *ppszCategoryName
+ );
+
+ BOOLEAN WINAPI AuditLookupCategoryIdFromCategoryGuid(
+ const GUID *pAuditCategoryGuid,
+ PPOLICY_AUDIT_EVENT_TYPE pAuditCategoryId
+ );
+
+ BOOLEAN WINAPI AuditSetSecurity(
+ __in SECURITY_INFORMATION SecurityInformation,
+ __in PSECURITY_DESCRIPTOR pSecurityDescriptor
+ );
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
#ifdef __cplusplus
}
#endif
diff --git a/mingw-w64-headers/include/objbase.h b/mingw-w64-headers/include/objbase.h
index 2e21014..0aaaf99 100644
--- a/mingw-w64-headers/include/objbase.h
+++ b/mingw-w64-headers/include/objbase.h
@@ -327,6 +327,10 @@
WINOLEAPI CreateStdProgressIndicator(HWND hwndParent,LPCOLESTR pszTitle,IBindStatusCallback *pIbscCaller,IBindStatusCallback **ppIbsc);
+#if (_WIN32_WINNT >= 0x0600)
+HRESULT WINAPI CoDisconnectContext(DWORD dwTimeout);
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
#ifndef RC_INVOKED
#include <poppack.h>
#endif
diff --git a/mingw-w64-headers/include/objidl.h b/mingw-w64-headers/include/objidl.h
index cf08875..f4421d3 100644
--- a/mingw-w64-headers/include/objidl.h
+++ b/mingw-w64-headers/include/objidl.h
@@ -5081,6 +5081,31 @@
void WINAPI AsyncIAdviseSink2_Finish_OnLinkSrcChange_Proxy(AsyncIAdviseSink2 *This);
HRESULT WINAPI AsyncIAdviseSink2_Finish_OnLinkSrcChange_Stub(AsyncIAdviseSink2 *This);
+#if (_WIN32_WINNT >= 0x0600)
+typedef struct tagBIND_OPTS3 {
+ DWORD cbStruct;
+ DWORD grfFlags;
+ DWORD grfMode;
+ DWORD dwTickCountDeadline;
+ DWORD dwTrackFlags;
+ DWORD dwClassContext;
+ LCID locale;
+ COSERVERINFO *pServerInfo;
+ HWND hwnd;
+} BIND_OPTS3, *LPBIND_OPTS3;
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
+#if (_WIN32_WINNT >= 0x0601)
+typedef enum {
+ APTTYPEQUALIFIER_NONE = 0,
+ APTTYPEQUALIFIER_IMPLICIT_MTA = 1,
+ APTTYPEQUALIFIER_NA_ON_MTA = 2,
+ APTTYPEQUALIFIER_NA_ON_STA = 3,
+ APTTYPEQUALIFIER_NA_ON_IMPLICIT_MTA = 4,
+ APTTYPEQUALIFIER_NA_ON_MAINSTA = 5
+} APTTYPEQUALIFIER;
+#endif /*(_WIN32_WINNT >= 0x0601)*/
+
#ifdef __cplusplus
}
#endif
diff --git a/mingw-w64-headers/include/opmapi.h b/mingw-w64-headers/include/opmapi.h
new file mode 100644
index 0000000..568540a
--- /dev/null
+++ b/mingw-w64-headers/include/opmapi.h
@@ -0,0 +1,246 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_OPMAPI
+#define _INC_OPMAPI
+
+#include <dxva2api.h>
+
+#if (_WIN32_WINNT >= 0x0600)
+
+#define OPM_OMAC_SIZE 16
+#define OPM_CONFIGURE_SETTING_DATA_SIZE 4056
+#define OPM_REQUESTED_INFORMATION_SIZE 4076
+#define OPM_ENCRYPTED_INITIALIZATION_PARAMETERS_SIZE 256
+#define OPM_GET_INFORMATION_PARAMETERS_SIZE 4056
+#define OPM_HDCP_KEY_SELECTION_VECTOR_SIZE 5
+#define OPM_128_BIT_RANDOM_NUMBER_SIZE 16
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum _OPM_VIDEO_OUTPUT_SEMANTICS {
+ OPM_VOS_COPP_SEMANTICS = 0,
+ OPM_VOS_OPM_SEMANTICS = 1
+} OPM_VIDEO_OUTPUT_SEMANTICS;
+
+typedef enum _OPM_ACP_PROTECTION_LEVEL {
+ OPM_ACP_OFF = 0,
+ OPM_ACP_LEVEL_ONE = 1,
+ OPM_ACP_LEVEL_TWO = 2,
+ OPM_ACP_LEVEL_THREE = 3,
+ OPM_ACP_FORCE_ULONG = 0x7fffffff
+} OPM_ACP_PROTECTION_LEVEL;
+
+typedef enum _OPM_DPCP_PROTECTION_LEVEL {
+ OPM_DPCP_OFF = 0,
+ OPM_DPCP_ON = 1,
+ OPM_DPCP_FORCE_ULONG = 0x7fffffff
+} OPM_DPCP_PROTECTION_LEVEL;
+
+typedef enum _OPM_HDCP_PROTECTION_LEVEL {
+ OPM_HDCP_OFF = 0,
+ OPM_HDCP_ON = 1,
+ OPM_HDCP_FORCE_ULONG = 0x7fffffff
+} OPM_HDCP_PROTECTION_LEVEL;
+
+typedef enum _OPM_IMAGE_ASPECT_RATIO_EN300294 {
+ OPM_ASPECT_RATIO_EN300294_FULL_FORMAT_4_BY_3 = 0,
+ OPM_ASPECT_RATIO_EN300294_BOX_14_BY_9_CENTER = 1,
+ OPM_ASPECT_RATIO_EN300294_BOX_14_BY_9_TOP = 2,
+ OPM_ASPECT_RATIO_EN300294_BOX_16_BY_9_CENTER = 3,
+ OPM_ASPECT_RATIO_EN300294_BOX_16_BY_9_TOP = 4,
+ OPM_ASPECT_RATIO_EN300294_BOX_GT_16_BY_9_CENTER = 5,
+ OPM_ASPECT_RATIO_EN300294_FULL_FORMAT_4_BY_3_PROTECTED_CENTER = 6,
+ OPM_ASPECT_RATIO_EN300294_FULL_FORMAT_16_BY_9_ANAMORPHIC = 7,
+ OPM_ASPECT_RATIO_FORCE_ULONG = 0x7FFFFFFF
+} OPM_IMAGE_ASPECT_RATIO_EN300294;
+
+typedef struct _OPM_OMAC {
+ BYTE abOMAC[OPM_OMAC_SIZE];
+} OPM_OMAC;
+
+typedef struct _OPM_REQUESTED_INFORMATION {
+ OPM_OMAC omac;
+ ULONG cbRequestedInformationSize;
+ BYTE abRequestedInformation[OPM_REQUESTED_INFORMATION_SIZE];
+} OPM_REQUESTED_INFORMATION;
+
+typedef struct _OPM_ENCRYPTED_INITIALIZATION_PARAMETERS {
+ BYTE abEncryptedInitializationParameters[OPM_ENCRYPTED_INITIALIZATION_PARAMETERS_SIZE];
+} OPM_ENCRYPTED_INITIALIZATION_PARAMETERS;
+
+typedef struct _OPM_RANDOM_NUMBER {
+ BYTE abRandomNumber[OPM_128_BIT_RANDOM_NUMBER_SIZE];
+} OPM_RANDOM_NUMBER;
+
+typedef struct _OPM_GET_INFO_PARAMETERS {
+ OPM_OMAC omac;
+ OPM_RANDOM_NUMBER rnRandomNumber;
+ GUID guidInformation;
+ ULONG ulSequenceNumber;
+ ULONG cbParametersSize;
+ BYTE abParameters[OPM_GET_INFORMATION_PARAMETERS_SIZE];
+} OPM_GET_INFO_PARAMETERS;
+
+typedef struct _OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS {
+ OPM_RANDOM_NUMBER rnRandomNumber;
+ GUID guidInformation;
+ ULONG ulSequenceNumber;
+ ULONG cbParametersSize;
+ BYTE abParameters[OPM_GET_INFORMATION_PARAMETERS_SIZE];
+} OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS;
+
+typedef struct _OPM_ACP_AND_CGMSA_SIGNALING {
+ OPM_RANDOM_NUMBER rnRandomNumber;
+ ULONG ulStatusFlags;
+ ULONG ulAvailableTVProtectionStandards;
+ ULONG ulActiveTVProtectionStandard;
+ ULONG ulReserved;
+ ULONG ulAspectRatioValidMask1;
+ ULONG ulAspectRatioData1;
+ ULONG ulAspectRatioValidMask2;
+ ULONG ulAspectRatioData2;
+ ULONG ulAspectRatioValidMask3;
+ ULONG ulAspectRatioData3;
+ ULONG ulReserved2[4];
+ ULONG ulReserved3[4];
+} OPM_ACP_AND_CGMSA_SIGNALING;
+
+typedef struct _OPM_ACTUAL_OUTPUT_FORMAT {
+ OPM_RANDOM_NUMBER rnRandomNumber;
+ ULONG ulStatusFlags;
+ ULONG ulDisplayWidth;
+ ULONG ulDisplayHeight;
+ DXVA2_SampleFormat dsfSampleInterleaveFormat;
+ D3DFORMAT d3dFormat;
+ ULONG ulFrequencyNumerator;
+ ULONG ulFrequencyDenominator;
+} OPM_ACTUAL_OUTPUT_FORMAT;
+
+typedef struct _OPM_CONFIGURE_PARAMETERS {
+ OPM_OMAC omac;
+ GUID guidSetting;
+ ULONG ulSequenceNumber;
+ ULONG cbParametersSize;
+ BYTE abParameters[OPM_CONFIGURE_SETTING_DATA_SIZE];
+} OPM_CONFIGURE_PARAMETERS;
+
+typedef struct _OPM_HDCP_KEY_SELECTION_VECTOR {
+ BYTE abKeySelectionVector[OPM_HDCP_KEY_SELECTION_VECTOR_SIZE];
+} OPM_HDCP_KEY_SELECTION_VECTOR;
+
+#define OPM_HDCP_FLAG_NONE 0x00
+#define OPM_HDCP_FLAG_REPEATER 0x01
+
+typedef struct _OPM_CONNECTED_HDCP_DEVICE_INFORMATION {
+ OPM_RANDOM_NUMBER rnRandomNumber;
+ ULONG ulStatusFlags;
+ ULONG ulHDCPFlags;
+ OPM_HDCP_KEY_SELECTION_VECTOR ksvB;
+ BYTE Reserved[11];
+ BYTE Reserved2[16];
+ BYTE Reserved3[16];
+} OPM_CONNECTED_HDCP_DEVICE_INFORMATION;
+
+typedef struct _OPM_OUTPUT_ID_DATA {
+ OPM_RANDOM_NUMBER rnRandomNumber;
+ ULONG ulStatusFlags;
+ UINT64 OutputId;
+} OPM_OUTPUT_ID_DATA;
+
+typedef struct _OPM_SET_ACP_AND_CGMSA_SIGNALING_PARAMETERS {
+ ULONG ulNewTVProtectionStandard;
+ ULONG ulAspectRatioChangeMask1;
+ ULONG ulAspectRatioData1;
+ ULONG ulAspectRatioChangeMask2;
+ ULONG ulAspectRatioData2;
+ ULONG ulAspectRatioChangeMask3;
+ ULONG ulAspectRatioData3;
+ ULONG ulReserved[4];
+ ULONG ulReserved2[4];
+ ULONG ulReserved3;
+} OPM_SET_ACP_AND_CGMSA_SIGNALING_PARAMETERS;
+
+typedef struct _OPM_SET_HDCP_SRM_PARAMETERS {
+ ULONG ulSRMVersion;
+} OPM_SET_HDCP_SRM_PARAMETERS;
+
+typedef struct _OPM_SET_PROTECTION_LEVEL_PARAMETERS {
+ ULONG ulProtectionType;
+ ULONG ulProtectionLevel;
+ ULONG Reserved;
+ ULONG Reserved2;
+} OPM_SET_PROTECTION_LEVEL_PARAMETERS;
+
+typedef struct _OPM_STANDARD_INFORMATION {
+ OPM_RANDOM_NUMBER rnRandomNumber;
+ ULONG ulStatusFlags;
+ ULONG ulInformation;
+ ULONG ulReserved;
+ ULONG ulReserved2;
+} OPM_STANDARD_INFORMATION;
+
+#ifdef __cplusplus
+}
+#endif
+
+#undef INTERFACE
+#define INTERFACE IOPMVideoOutput
+DECLARE_INTERFACE_(IOPMVideoOutput,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IOPMVideoOutput methods */
+ STDMETHOD_(HRESULT,Configure)(THIS_ const OPM_CONFIGURE_PARAMETERS *pParameters,ULONG ulAdditionalParametersSize,const BYTE *pbAdditionalParameters) PURE;
+ STDMETHOD_(HRESULT,COPPCompatibleGetInformation)(THIS_ const OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS *pParameters,OPM_REQUESTED_INFORMATION *pRequestedInformation) PURE;
+ STDMETHOD_(HRESULT,FinishInitialization)(THIS_ const OPM_ENCRYPTED_INITIALIZATION_PARAMETERS *pParameters) PURE;
+ STDMETHOD_(HRESULT,GetInformation)(THIS_ const OPM_GET_INFO_PARAMETERS *pParameters,OPM_REQUESTED_INFORMATION *pRequestedInformation) PURE;
+ STDMETHOD_(HRESULT,StartInitialization)(THIS_ OPM_RANDOM_NUMBER *prnRandomNumber,BYTE **ppbCertificate,ULONG *pulCertificateLength) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IOPMVideoOutput_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IOPMVideoOutput_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IOPMVideoOutput_Release(This) (This)->pVtbl->Release(This)
+#define IOPMVideoOutput_Configure(This,pParameters,ulAdditionalParametersSize,pbAdditionalParameters) (This)->lpVtbl->Configure(This,pParameters,ulAdditionalParametersSize,pbAdditionalParameters)
+#define IOPMVideoOutput_COPPCompatibleGetInformation(This,pParameters,pRequestedInformation) (This)->lpVtbl->COPPCompatibleGetInformation(This,pParameters,pRequestedInformation)
+#define IOPMVideoOutput_FinishInitialization(This,pParameters) (This)->lpVtbl->FinishInitialization(This,pParameters)
+#define IOPMVideoOutput_GetInformation(This,pParameters,pRequestedInformation) (This)->lpVtbl->GetInformation(This,pParameters,pRequestedInformation)
+#define IOPMVideoOutput_StartInitialization(This,prnRandomNumber,ppbCertificate,pulCertificateLength) (This)->lpVtbl->StartInitialization(This,prnRandomNumber,ppbCertificate,pulCertificateLength)
+#endif /*COBJMACROS*/
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+HRESULT WINAPI OPMGetVideoOutputsFromHMONITOR(
+ HMONITOR hMonitor,
+ OPM_VIDEO_OUTPUT_SEMANTICS vos,
+ ULONG *pulNumVideoOutputs,
+ IOPMVideoOutput ***pppOPMVideoOutputArray
+);
+
+HRESULT WINAPI OPMGetVideoOutputsFromIDirect3DDevice9Object(
+ IDirect3DDevice9 *pDirect3DDevice9,
+ OPM_VIDEO_OUTPUT_SEMANTICS vos,
+ ULONG *pulNumVideoOutputs,
+ IOPMVideoOutput ***pppOPMVideoOutputArray
+);
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
+#endif /*_INC_OPMAPI*/
+
diff --git a/mingw-w64-headers/include/p2p.h b/mingw-w64-headers/include/p2p.h
new file mode 100644
index 0000000..366f332
--- /dev/null
+++ b/mingw-w64-headers/include/p2p.h
@@ -0,0 +1,440 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_P2P
+#define _INC_P2P
+#if (_WIN32_WINNT >= 0x0600)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum _PEER_APPLICATION_REGISTRATION_TYPE {
+ PEER_APPLICATION_CURRENT_USER,
+ PEER_APPLICATION_ALL_USERS
+} PEER_APPLICATION_REGISTRATION_TYPE, PEER_APPLICATION_REGISTRATION_FLAGS;
+
+typedef enum _PEER_CHANGE_TYPE {
+ PEER_CHANGE_ADDED,
+ PEER_CHANGE_DELETED,
+ PEER_CHANGE_UPDATED
+} PEER_CHANGE_TYPE;
+
+typedef enum _PEER_COLLAB_EVENT_TYPE {
+ PEER_EVENT_WATCHLIST_CHANGED,
+ PEER_EVENT_ENDPOINT_CHANGED,
+ PEER_EVENT_ENDPOINT_PRESENCE_CHANGED,
+ PEER_EVENT_ENDPOINT_APPLICATION_CHANGED,
+ PEER_EVENT_ENDPOINT_OBJECT_CHANGED,
+ PEER_EVENT_MY_ENDPOINT_CHANGED,
+ PEER_EVENT_MY_PRESENCE_CHANGED,
+ PEER_EVENT_MY_APPLICATION_CHANGED,
+ PEER_EVENT_MY_OBJECT_CHANGED,
+ PEER_EVENT_PEOPLE_NEAR_ME_CHANGED,
+ PEER_EVENT_REQUEST_STATUS_CHANGED
+} PEER_COLLAB_EVENT_TYPE;
+
+typedef enum _PEER_GROUP_AUTHENTICATION_SCHEME {
+ PEER_GROUP_GMC_AUTHENTICATION = 0x00000001,
+ PEER_GROUP_PASSWORD_AUTHENTICATION = 0x00000002
+} PEER_GROUP_AUTHENTICATION_SCHEME;
+
+typedef enum _PEER_GROUP_ISSUE_CREDENTIAL_FLAGS {
+ PEER_GROUP_STORE_CREDENTIALS = 0x0001
+} PEER_GROUP_ISSUE_CREDENTIAL_FLAGS;
+
+typedef enum _PEER_INVITATION_RESPONSE_TYPE {
+ PEER_INVITATION_RESPONSE_DECLINED,
+ PEER_INVITATION_RESPONSE_ACCEPTED,
+ PEER_INVITATION_RESPONSE_EXPIRED,
+ PEER_INVITATION_RESPONSE_ERROR
+} PEER_INVITATION_RESPONSE_TYPE;
+
+typedef enum _PEER_PRESENCE_STATUS {
+ PEER_PRESENCE_OFFLINE,
+ PEER_PRESENCE_OUT_TO_LUNCH,
+ PEER_PRESENCE_AWAY,
+ PEER_PRESENCE_BE_RIGHT_BACK,
+ PEER_PRESENCE_IDLE,
+ PEER_PRESENCE_BUSY,
+ PEER_PRESENCE_ON_THE_PHONE,
+ PEER_PRESENCE_ONLINE
+} PEER_PRESENCE_STATUS;
+
+typedef enum _PEER_PUBLICATION_SCOPE {
+ PEER_PUBLICATION_SCOPE_NONE,
+ PEER_PUBLICATION_SCOPE_NEAR_ME,
+ PEER_PUBLICATION_SCOPE_INTERNET,
+ PEER_PUBLICATION_SCOPE_ALL
+} PEER_PUBLICATION_SCOPE;
+
+typedef enum _PEER_SIGNIN_FLAGS {
+ PEER_SIGNIN_NONE,
+ PEER_SIGNIN_NEAR_ME,
+ PEER_SIGNIN_INTERNET,
+ PEER_SIGNIN_ALL
+} PEER_SIGNIN_FLAGS;
+
+typedef enum _PEER_WATCH_PERMISSION {
+ PEER_WATCH_BLOCKED,
+ PEER_WATCH_ALLOWED
+} PEER_WATCH_PERMISSION;
+
+typedef struct _PEER_CONTACT *PPEER_CONTACT;
+typedef struct _PEER_ENDPOINT *PPEER_ENDPOINT;
+typedef struct _PEER_INVITATION *PPEER_INVITATION;
+typedef struct _PEER_OBJECT *PPEER_OBJECT;
+typedef struct _PEER_PEOPLE_NEAR_ME *PPEER_PEOPLE_NEAR_ME;
+typedef struct _PEER_PRESENCE_INFO *PPEER_PRESENCE_INFO;
+typedef LPVOID HPEERENUM;
+typedef LPVOID HPEEREVENT;
+
+typedef struct peer_address_tag {
+ DWORD dwSize;
+ SOCKADDR_IN6 sin6;
+} PEER_ADDRESS, *PPEER_ADDRESS;
+
+typedef struct _PEER_APP_LAUNCH_INFO {
+ PPEER_CONTACT pContact;
+ PPEER_ENDPOINT pEndpoint;
+ PPEER_INVITATION pInvitation;
+} PEER_APP_LAUNCH_INFO, *PPEER_APP_LAUNCH_INFO;
+typedef const PEER_APP_LAUNCH_INFO *PCPEER_APP_LAUNCH_INFO;
+
+typedef struct peer_data_tag {
+ ULONG cbData;
+ PBYTE pbData;
+} PEER_DATA, *PPEER_DATA;
+
+typedef struct _PEER_APPLICATION {
+ GUID id;
+ PEER_DATA data;
+ PWSTR pwzDescription;
+} PEER_APPLICATION, *PPEER_APPLICATION;
+typedef const PEER_APPLICATION *PCPEER_APPLICATION;
+
+typedef struct _PEER_APPLICATION_REGISTRATION_INFO {
+ PEER_APPLICATION application;
+ PWSTR pwzApplicationToLaunch;
+ PWSTR pwzApplicationArguments;
+ DWORD dwPublicationScope;
+} PEER_APPLICATION_REGISTRATION_INFO, *PPEER_APPLICATION_REGISTRATION_INFO;
+typedef const PEER_APPLICATION_REGISTRATION_INFO *PCPEER_APPLICATION_REGISTRATION_INFO;
+
+typedef struct _PEER_EVENT_APPLICATION_CHANGED_DATA {
+ PPEER_CONTACT pContact;
+ PPEER_ENDPOINT pEndpoint;
+ PEER_CHANGE_TYPE changeType;
+ PPEER_APPLICATION pApplication;
+} PEER_EVENT_APPLICATION_CHANGED_DATA, *PPEER_EVENT_APPLICATION_CHANGED_DATA;
+
+typedef struct _PEER_EVENT_ENDPOINT_CHANGED_DATA {
+ PPEER_CONTACT pContact;
+ PPEER_ENDPOINT pEndpoint;
+} PEER_EVENT_ENDPOINT_CHANGED_DATA, *PPEER_EVENT_ENDPOINT_CHANGED_DATA;
+
+typedef struct _PEER_EVENT_OBJECT_CHANGED_DATA {
+ PPEER_CONTACT pContact;
+ PPEER_ENDPOINT pEndpoint;
+ PEER_CHANGE_TYPE changeType;
+ PPEER_OBJECT pObject;
+} PEER_EVENT_OBJECT_CHANGED_DATA, *PPEER_EVENT_OBJECT_CHANGED_DATA;
+
+typedef struct _PEER_EVENT_PEOPLE_NEAR_ME_CHANGED_DATA {
+ PEER_CHANGE_TYPE changeType;
+ PPEER_PEOPLE_NEAR_ME pPeopleNearMe;
+} PEER_EVENT_PEOPLE_NEAR_ME_CHANGED_DATA, *PPEER_EVENT_PEOPLE_NEAR_ME_CHANGED_DATA;
+
+typedef struct _PEER_EVENT_PRESENCE_CHANGED_DATA {
+ PPEER_CONTACT pContact;
+ PPEER_ENDPOINT pEndpoint;
+ PEER_CHANGE_TYPE changeType;
+ PPEER_PRESENCE_INFO pPresenceInfo;
+} PEER_EVENT_PRESENCE_CHANGED_DATA, *PPEER_EVENT_PRESENCE_CHANGED_DATA;
+
+typedef struct _PEER_EVENT_REQUEST_STATUS_CHANGED_DATA {
+ PPEER_ENDPOINT pEndpoint;
+ HRESULT hrChange;
+} PEER_EVENT_REQUEST_STATUS_CHANGED_DATA, *PPEER_EVENT_REQUEST_STATUS_CHANGED_DATA;
+
+typedef struct _PEER_EVENT_WATCHLIST_CHANGED_DATA {
+ PPEER_CONTACT pContact;
+ PEER_CHANGE_TYPE changeType;
+} PEER_EVENT_WATCHLIST_CHANGED_DATA, *PPEER_EVENT_WATCHLIST_CHANGED_DATA;
+
+typedef struct _PEER_INVITATION {
+ GUID applicationId;
+ PEER_DATA applicationData;
+ PWSTR pwzMessage;
+} PEER_INVITATION, *PPEER_INVITATION;
+typedef const PEER_INVITATION *PCPEER_INVITATION;
+
+typedef union _PEER_COLLAB_EVENT_DATA {
+ PEER_COLLAB_EVENT_TYPE eventType;
+ __MINGW_EXTENSION union {
+ PEER_EVENT_WATCHLIST_CHANGED_DATA watchlistChangedData;
+ PEER_EVENT_PRESENCE_CHANGED_DATA presenceChangedData;
+ PEER_EVENT_APPLICATION_CHANGED_DATA applicationChangedData;
+ PEER_EVENT_OBJECT_CHANGED_DATA objectChangedData;
+ PEER_EVENT_ENDPOINT_CHANGED_DATA endpointChangedData;
+ PEER_EVENT_PEOPLE_NEAR_ME_CHANGED_DATA peopleNearMeChangedData;
+ PEER_EVENT_REQUEST_STATUS_CHANGED_DATA requestStatusChangedData;
+ } DUMMYUNIONNAME;
+} PEER_COLLAB_EVENT_DATA, *PPEER_COLLAB_EVENT_DATA;
+
+typedef struct _PEER_COLLAB_EVENT_REGISTRATION{
+ PEER_COLLAB_EVENT_TYPE eventType;
+ GUID * pInstance;
+} PEER_COLLAB_EVENT_REGISTRATION, *PPEER_COLLAB_EVENT_REGISTRATION;
+typedef const PEER_COLLAB_EVENT_REGISTRATION *PCPEER_COLLAB_EVENT_REGISTRATION;
+
+typedef struct {
+ PEER_INVITATION_RESPONSE_TYPE action;
+ PWSTR pwzMessage;
+ HRESULT hrExtendedInfo;
+} PEER_INVITATION_RESPONSE, *PPEER_INVITATION_RESPONSE;
+typedef const PEER_INVITATION_RESPONSE *PCPEER_INVITATION_RESPONSE;
+
+typedef struct _PEER_CONTACT {
+ PWSTR pwzPeerName;
+ PWSTR pwzNickName;
+ PWSTR pwzDisplayName;
+ PWSTR pwzEmailAddress;
+ WINBOOL fWatch;
+ PEER_WATCH_PERMISSION WatcherPermissions;
+ PEER_DATA credentials;
+} PEER_CONTACT, *PPEER_CONTACT;
+typedef const PEER_CONTACT *PCPEER_CONTACT;
+
+typedef struct _PEER_ENDPOINT {
+ PEER_ADDRESS address;
+ PWSTR pwzEndpointName;
+} PEER_ENDPOINT, *PPEER_ENDPOINT;
+typedef const PEER_ENDPOINT *PCPEER_ENDPOINT;
+
+typedef struct _PEER_OBJECT {
+ GUID id;
+ PEER_DATA data;
+ DWORD dwPublicationScope;
+} PEER_OBJECT, *PPEER_OBJECT;
+typedef const PEER_OBJECT *PCPEER_OBJECT;
+
+typedef struct _PEER_PEOPLE_NEAR_ME {
+ PWSTR pwzNickName;
+ PEER_ENDPOINT endpoint;
+ GUID id;
+} PEER_PEOPLE_NEAR_ME, *PPEER_PEOPLE_NEAR_ME, *PCPEER_PEOPLE_NEAR_ME, **PPPEER_PEOPLE_NEAR_ME;
+
+typedef struct _PEER_PRESENCE_INFO {
+ PEER_PRESENCE_STATUS status;
+ PWSTR pwzDescriptiveText;
+} PEER_PRESENCE_INFO, *PPEER_PRESENCE_INFO;
+typedef const PEER_PRESENCE_INFO *PCPEER_PRESENCE_INFO;
+
+HRESULT WINAPI PeerCollabAddContact(
+ PCWSTR pwzContactData,
+ PPEER_CONTACT *ppContact
+);
+
+HRESULT WINAPI PeerCollabAsyncInviteContact(
+ PCPEER_CONTACT pcContact,
+ PPEER_ENDPOINT pcEndpoint,
+ PCPEER_INVITATION pcInvitation,
+ HANDLE hEvent,
+ HANDLE *phInvitation
+);
+
+HRESULT WINAPI PeerCollabAsyncInviteEndpoint(
+ PPEER_ENDPOINT pcEndpoint,
+ PCPEER_INVITATION pcInvitation,
+ HANDLE hEvent,
+ HANDLE *phInvitation
+);
+
+HRESULT WINAPI PeerCollabCancelInvitation(
+ HANDLE hInvitation
+);
+
+HRESULT WINAPI PeerCollabCloseHandle(
+ HANDLE handle
+);
+
+HRESULT WINAPI PeerCollabDeleteContact(
+ PCWSTR pwzPeerName
+);
+
+HRESULT WINAPI PeerCollabDeleteEndpointData(
+ PCPEER_ENDPOINT pcEndpoint
+);
+
+HRESULT WINAPI PeerCollabDeleteObject(
+ const GUID *pObjectId
+);
+
+HRESULT WINAPI PeerCollabEnumApplicationRegistrationInfo(
+ PEER_APPLICATION_REGISTRATION_TYPE registrationType,
+ HPEERENUM *phPeerEnum
+);
+
+HRESULT WINAPI PeerCollabEnumApplications(
+ PCPEER_ENDPOINT pcEndpoint,
+ const GUID *pApplicationId,
+ HPEERENUM *phPeerEnum
+);
+
+HRESULT WINAPI PeerCollabEnumContacts(
+ HPEERENUM *phPeerEnum
+);
+
+HRESULT WINAPI PeerCollabEnumEndpoints(
+ PCPEER_CONTACT pcContact,
+ HPEERENUM *phPeerEnum
+);
+
+HRESULT WINAPI PeerCollabEnumObjects(
+ PCPEER_ENDPOINT pcEndpoint,
+ const GUID *pObjectId,
+ HPEERENUM *phPeerEnum
+);
+
+HRESULT WINAPI PeerCollabEnumPeopleNearMe(
+ HPEERENUM *phPeerEnum
+);
+
+HRESULT WINAPI PeerCollabExportContact(
+ PWSTR pwzPeerName,
+ PWSTR *ppwzContactData
+);
+
+HRESULT WINAPI PeerCollabGetAppLaunchInfo(
+ PPEER_APP_LAUNCH_INFO *ppLaunchInfo
+);
+
+HRESULT WINAPI PeerCollabGetApplicationRegistrationInfo(
+ const GUID *pApplicationId,
+ PEER_APPLICATION_REGISTRATION_TYPE registrationType,
+ PPEER_APPLICATION_REGISTRATION_INFO *ppRegInfo
+);
+
+HRESULT WINAPI PeerCollabGetContact(
+ PWSTR pwzPeerName,
+ PCPEER_CONTACT *ppContact
+);
+
+HRESULT WINAPI PeerCollabGetEndpointName(
+ PWSTR *ppwzEndpointName
+);
+
+HRESULT WINAPI PeerCollabGetEventData(
+ HPEEREVENT hPeerEvent,
+ PPEER_COLLAB_EVENT_DATA *ppEventData
+);
+
+HRESULT WINAPI PeerCollabGetInvitationResponse(
+ HANDLE hInvitation,
+ PPEER_INVITATION_RESPONSE *ppInvitationResponse
+);
+
+HRESULT WINAPI PeerCollabGetPresenceInfo(
+ PCPEER_ENDPOINT pEndpoint,
+ PPEER_PRESENCE_INFO *ppPresenceInfo
+);
+
+HRESULT WINAPI PeerCollabGetSigninOptions(
+ DWORD *dwSigninOptions
+);
+
+HRESULT WINAPI PeerCollabInviteContact(
+ PCPEER_CONTACT pcContact,
+ PCPEER_ENDPOINT pcEndpoint,
+ const PCPEER_INVITATION pcInvitation,
+ PPEER_INVITATION_RESPONSE *ppResponse
+);
+
+HRESULT WINAPI PeerCollabInviteEndpoint(
+ PCPEER_ENDPOINT pcEndpoint,
+ PCPEER_INVITATION pcInvitation,
+ PPEER_INVITATION_RESPONSE *ppResponse
+);
+
+HRESULT WINAPI PeerCollabParseContact(
+ PWSTR pwzContactData,
+ PCPEER_CONTACT *ppContact
+);
+
+HRESULT WINAPI PeerCollabQueryContactData(
+ PCPEER_ENDPOINT pcEndpoint,
+ PWSTR *ppwzContactData
+);
+
+HRESULT WINAPI PeerCollabRefreshEndpointData(
+ PCPEER_ENDPOINT pcEndpoint
+);
+
+HRESULT WINAPI PeerCollabRegisterApplication(
+ PCPEER_APPLICATION_REGISTRATION_INFO pcApplication,
+ PEER_APPLICATION_REGISTRATION_FLAGS registrationType
+);
+
+HRESULT WINAPI PeerCollabRegisterEvent(
+ HANDLE hEvent,
+ DWORD cEventRegistration,
+ PPEER_COLLAB_EVENT_REGISTRATION pEventRegistrations,
+ HPEEREVENT *phPeerEvent
+);
+
+HRESULT WINAPI PeerCollabSetEndpointName(
+ PCWSTR pwzEndpointName
+);
+
+HRESULT WINAPI PeerCollabSetObject(
+ PCPEER_OBJECT pcObject
+);
+
+HRESULT WINAPI PeerCollabSetPresenceInfo(
+ PCPEER_PRESENCE_INFO pcPresenceInfo
+);
+
+HRESULT WINAPI PeerCollabShutdown(void);
+
+HRESULT WINAPI PeerCollabSignin(
+ HWND hwndParent,
+ DWORD dwSigninOptions
+);
+
+HRESULT WINAPI PeerCollabSignout(
+ DWORD dwSignoutOptions
+);
+
+HRESULT WINAPI PeerCollabStartup(
+ WORD wVersionRequested
+);
+
+HRESULT WINAPI PeerCollabSubscribeEndpointData(
+ PCPEER_ENDPOINT pcEndpoint
+);
+
+HRESULT WINAPI PeerCollabUnregisterApplication(
+ const GUID *pApplicationID,
+ PEER_APPLICATION_REGISTRATION_FLAGS registrationType
+);
+
+HRESULT WINAPI PeerCollabUnregisterEvent(
+ HPEEREVENT hPeerEvent
+);
+
+HRESULT WINAPI PeerCollabUnsubscribeEndpointData(
+ PCPEER_ENDPOINT pcEndpoint
+);
+
+HRESULT WINAPI PeerCollabUpdateContact(
+ PCPEER_CONTACT pContact
+);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* (_WIN32_WINNT >= 0x0600) */
+#endif /*_INC_P2P*/
diff --git a/mingw-w64-headers/include/pdh.h b/mingw-w64-headers/include/pdh.h
index fe3e95b..fa941c2 100644
--- a/mingw-w64-headers/include/pdh.h
+++ b/mingw-w64-headers/include/pdh.h
@@ -554,6 +554,42 @@
#define PdhCreateSQLTables __MINGW_NAME_AW(PdhCreateSQLTables)
#define PdhVerifySQLDB __MINGW_NAME_AW(PdhVerifySQLDB)
+#if (_WIN32_WINNT >= 0x0600)
+PDH_STATUS PdhAddEnglishCounterA(
+ PDH_HQUERY hQuery,
+ LPCSTR szFullCounterPath,
+ DWORD_PTR dwUserData,
+ PDH_HCOUNTER *phCounter
+);
+
+PDH_STATUS PdhAddEnglishCounterW(
+ PDH_HQUERY hQuery,
+ LPCWSTR szFullCounterPath,
+ DWORD_PTR dwUserData,
+ PDH_HCOUNTER *phCounter
+);
+
+#define PdhAddEnglishCounter __MINGW_NAME_AW(PdhAddEnglishCounter)
+
+PDH_STATUS PdhCollectQueryDataWithTime(
+ PDH_HQUERY hQuery,
+ LONGLONG *pllTimeStamp
+);
+
+PDH_STATUS PdhValidatePathExA(
+ PDH_HLOG hDataSource,
+ LPCSTR szFullPathBuffer
+);
+
+PDH_STATUS PdhValidatePathExA(
+ PDH_HLOG hDataSource,
+ LPCWSTR szFullPathBuffer
+);
+
+#define PdhValidatePathEx __MINGW_NAME_AW(PdhValidatePathEx)
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
#ifdef __cplusplus
}
#endif
diff --git a/mingw-w64-headers/include/perflib.h b/mingw-w64-headers/include/perflib.h
new file mode 100644
index 0000000..92e4ce8
--- /dev/null
+++ b/mingw-w64-headers/include/perflib.h
@@ -0,0 +1,161 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_PERFLIB
+#define _INC_PERFLIB
+#if (_WIN32_WINNT >= 0x0600)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef WINADVAPI
+#define WINADVAPI DECLSPEC_IMPORT
+#endif
+
+typedef LPVOID (CALLBACK *PERF_MEM_ALLOC)(SIZE_T AllocSize,LPVOID pContext);
+typedef ULONG (WINAPI *PERFLIBREQUEST)(ULONG RequestCode,PVOID Buffer,ULONG BufferSize);
+typedef void (CALLBACK *PERF_MEM_FREE)(LPVOID pBuffer,LPVOID pContext);
+
+typedef struct _PERF_PROVIDER_CONTEXT {
+ DWORD ContextSize;
+ DWORD Reserved;
+ PERFLIBREQUEST ControlCallback;
+ PERF_MEM_ALLOC MemAllocRoutine;
+ PERF_MEM_FREE MemFreeRoutine;
+ LPVOID pMemContext;
+} PERF_PROVIDER_CONTEXT, *PPERF_PROVIDER_CONTEXT;
+
+typedef struct _PERF_COUNTER_IDENTITY {
+ GUID CounterSetGuid;
+ ULONG BufferSize;
+ ULONG CounterId;
+ ULONG InstanceId;
+ ULONG MachineOffset;
+ ULONG NameOffset;
+ ULONG Reserved;
+} PERF_COUNTER_IDENTITY, *PPERF_COUNTER_IDENTITY;
+
+typedef struct _PERF_COUNTER_INFO {
+ ULONG CounterId;
+ ULONG Type;
+ ULONGLONG Attrib;
+ ULONG Size;
+ ULONG DetailLevel;
+ LONG Scale;
+ ULONG Offset;
+} PERF_COUNTER_INFO, *PPERF_COUNTER_INFO;
+
+typedef struct _PERF_COUNTERSET_INFO {
+ GUID CounterSetGuid;
+ GUID ProviderGuid;
+ ULONG NumCounters;
+ ULONG InstanceType;
+} PERF_COUNTERSET_INFO, *PPERF_COUNTERSET_INFO;
+
+typedef struct _PERF_COUNTERSET_INSTANCE {
+ GUID CounterSetGuid;
+ ULONG dwSize;
+ ULONG InstanceId;
+ ULONG InstanceNameOffset;
+ ULONG InstanceNameSize;
+} PERF_COUNTERSET_INSTANCE, *PPERF_COUNTERSET_INSTANCE;
+
+WINADVAPI PPERF_COUNTERSET_INSTANCE WINAPI PerfCreateInstance(
+ HANDLE hProvider,
+ LPCGUID CounterSetGuid,
+ LPCWSTR szInstanceName,
+ ULONG dwInstance
+);
+
+WINADVAPI ULONG WINAPI PerfDecrementULongCounterValue(
+ HANDLE hProvider,
+ PPERF_COUNTERSET_INSTANCE pInstance,
+ ULONG CounterId,
+ ULONG lValue
+);
+
+WINADVAPI ULONG WINAPI PerfDecrementULongLongCounterValue(
+ HANDLE hProvider,
+ PPERF_COUNTERSET_INSTANCE pInstance,
+ ULONG CounterId,
+ ULONGLONG llValue
+);
+
+WINADVAPI ULONG WINAPI PerfDeleteInstance(
+ HANDLE hProvider,
+ PPERF_COUNTERSET_INSTANCE InstanceBlock
+);
+
+WINADVAPI ULONG WINAPI PerfIncrementULongCounterValue(
+ HANDLE hProvider,
+ PPERF_COUNTERSET_INSTANCE pInstance,
+ ULONG CounterId,
+ ULONG lValue
+);
+
+WINADVAPI ULONG WINAPI PerfIncrementULongLongCounterValue(
+ HANDLE hProvider,
+ PPERF_COUNTERSET_INSTANCE pInstance,
+ ULONG CounterId,
+ ULONGLONG llValue
+);
+
+WINADVAPI PPERF_COUNTERSET_INSTANCE WINAPI PerfQueryInstance(
+ HANDLE hProvider,
+ LPCGUID CounterSetGuid,
+ LPCWSTR szInstance,
+ ULONG dwInstance
+);
+
+WINADVAPI ULONG WINAPI PerfSetCounterRefValue(
+ HANDLE hProvider,
+ PPERF_COUNTERSET_INSTANCE pInstance,
+ ULONG CounterId,
+ PVOID lpAddr
+);
+
+WINADVAPI ULONG WINAPI PerfSetCounterSetInfo(
+ HANDLE hProvider,
+ PPERF_COUNTERSET_INFO pTemplate,
+ ULONG dwTemplateSize
+);
+
+WINADVAPI ULONG WINAPI PerfSetULongCounterValue(
+ HANDLE hProvider,
+ PPERF_COUNTERSET_INSTANCE pInstance,
+ ULONG CounterId,
+ ULONG lValue
+);
+
+WINADVAPI ULONG WINAPI PerfSetULongLongCounterValue(
+ HANDLE hProvider,
+ PPERF_COUNTERSET_INSTANCE pInstance,
+ ULONG CounterId,
+ ULONGLONG llValue
+);
+
+WINADVAPI ULONG WINAPI PerfStartProvider(
+ LPGUID ProviderGuid,
+ PERFLIBREQUEST ControlCallback,
+ HANDLE *phProvider
+);
+
+WINADVAPI ULONG WINAPI PerfStartProviderEx(
+ LPGUID ProviderGuid,
+ PPERF_PROVIDER_CONTEXT ProviderContext,
+ HANDLE *phProvider
+);
+
+WINADVAPI ULONG WINAPI PerfStopProvider(
+ HANDLE hProvider
+);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_PERFLIB*/
diff --git a/mingw-w64-headers/include/pla.h b/mingw-w64-headers/include/pla.h
new file mode 100644
index 0000000..15de64d
--- /dev/null
+++ b/mingw-w64-headers/include/pla.h
@@ -0,0 +1,86 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_PLA
+#define _INC_PLA
+#if (_WIN32_WINNT >= 0x0600)
+
+typedef enum _AutoPathFormat {
+ plaNone = 0x0000,
+ plaPattern = 0x0001,
+ plaComputer = 0x0002,
+ plaMonthDayHour = 0x0100,
+ plaSerialNumber = 0x0200,
+ plaYearDayOfYear = 0x0400,
+ plaYearMonth = 0x0800,
+ plaYearMonthDay = 0x1000,
+ plaYearMonthDayHour = 0x2000,
+ plaMonthDayHourMinute = 0x4000
+} AutoPathFormat;
+
+typedef enum _ClockType {
+ plaTimeStamp = 0,
+ plaPerformance = 1,
+ plaSystem = 2,
+ plaCycle = 3
+} ClockType;
+
+typedef enum _CommitMode {
+ plaCreateNew = 0x0001,
+ plaModify = 0x0002,
+ plaCreateOrModify = 0x0003,
+ plaUpdateRunningInstance = 0x0010,
+ plaFlushTrace = 0x0020,
+ plaValidateOnly = 0x1000
+} CommitMode;
+
+typedef enum _FileFormat {
+ plaCommaSeparated = 0,
+ plaTabSeparated = 1,
+ plaSql = 2,
+ plaBinary = 3
+} FileFormat;
+
+typedef enum _FolderActionSteps {
+ plaCreateCab = 0x01,
+ plaDeleteData = 0x02,
+ plaSendCab = 0x04,
+ plaDeleteCab = 0x08,
+ plaDeleteReport = 0x10
+} FolderActionSteps;
+
+typedef enum _ResourcePolicy {
+ plaDeleteLargest = 0,
+ plaDeleteOldest = 1
+} ResourcePolicy;
+
+typedef enum _StreamMode {
+ plaFile = 0x0001,
+ plaRealTime = 0x0002,
+ plaBoth = 0x0003,
+ plaBuffering = 0x0004
+} StreamMode;
+
+typedef enum _ValueMapType {
+ plaIndex = 1,
+ plaFlag = 2,
+ plaFlagArray = 3,
+ plaValidation = 4
+} ValueMapType;
+
+typedef enum {
+ plaRunOnce = 0x00,
+ plaSunday = 0x01,
+ plaMonday = 0x02,
+ plaTuesday = 0x04,
+ plaWednesday = 0x08,
+ plaThursday = 0x10,
+ plaFriday = 0x20,
+ plaSaturday = 0x40,
+ plaEveryday = 0x7F
+} WeekDays;
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_PLA*/
diff --git a/mingw-w64-headers/include/pla.idl b/mingw-w64-headers/include/pla.idl
new file mode 100644
index 0000000..df2dcf8
--- /dev/null
+++ b/mingw-w64-headers/include/pla.idl
@@ -0,0 +1,1730 @@
+/* Automated generated idl file <plalibrary>.
+ * Generated by genidl tool (c) 2009, 2010 Mingw-w64 project.
+ */
+
+/* Union record forward declarations. */
+dispinterface IDataCollectorSet;
+dispinterface IDataCollectorCollection;
+dispinterface IDataCollector;
+dispinterface IValueMap;
+dispinterface IValueMapItem;
+dispinterface IScheduleCollection;
+dispinterface ISchedule;
+dispinterface IDataManager;
+dispinterface IFolderActionCollection;
+dispinterface IFolderAction;
+dispinterface IPerformanceCounterDataCollector;
+dispinterface ITraceDataCollector;
+dispinterface ITraceDataProviderCollection;
+dispinterface ITraceDataProvider;
+dispinterface IConfigurationDataCollector;
+dispinterface IAlertDataCollector;
+dispinterface IApiTracingDataCollector;
+dispinterface IDataCollectorSetCollection;
+
+/* Union record forward declarations. */
+coclass DataCollectorSet;
+coclass TraceSession;
+coclass TraceSessionCollection;
+coclass TraceDataProvider;
+coclass TraceDataProviderCollection;
+coclass DataCollectorSetCollection;
+coclass LegacyDataCollectorSet;
+coclass LegacyDataCollectorSetCollection;
+coclass LegacyTraceSession;
+coclass LegacyTraceSessionCollection;
+coclass ServerDataCollectorSet;
+coclass ServerDataCollectorSetCollection;
+coclass SystemDataCollectorSet;
+coclass SystemDataCollectorSetCollection;
+coclass BootTraceSession;
+coclass BootTraceSessionCollection;
+
+/* Enumeration declarations. */
+enum __MIDL___MIDL_itf_pla_0000_0000_0001
+{
+ plaPerformanceCounter = (int) 201326592,
+ plaTrace = (int) 201326593,
+ plaConfiguration = (int) 201326594,
+ plaAlert = (int) 201326595,
+ plaApiTrace = (int) 201326596
+};
+enum __MIDL___MIDL_itf_pla_0000_0000_0003
+{
+ plaNone = (int) 201326592,
+ plaPattern = (int) 201326593,
+ plaComputer = (int) 201326594,
+ plaMonthDayHour = (int) 201326848,
+ plaSerialNumber = (int) 201327104,
+ plaYearDayOfYear = (int) 201327616,
+ plaYearMonth = (int) 201328640,
+ plaYearMonthDay = (int) 201330688,
+ plaYearMonthDayHour = (int) 201334784,
+ plaMonthDayHourMinute = (int) 201342976
+};
+enum __MIDL___MIDL_itf_pla_0000_0000_0008
+{
+ plaIndex = (int) 201326593,
+ plaFlag = (int) 201326594,
+ plaFlagArray = (int) 201326595,
+ plaValidation = (int) 201326596
+};
+enum __MIDL___MIDL_itf_pla_0000_0000_0004
+{
+ plaStopped = (int) 201326592,
+ plaRunning = (int) 201326593,
+ plaCompiling = (int) 201326594,
+ plaPending = (int) 201326595,
+ plaUndefined = (int) 201326596
+};
+enum __MIDL___MIDL_itf_pla_0000_0000_0009
+{
+ plaRunOnce = (int) 201326592,
+ plaSunday = (int) 201326593,
+ plaMonday = (int) 201326594,
+ plaTuesday = (int) 201326596,
+ plaWednesday = (int) 201326600,
+ plaThursday = (int) 201326608,
+ plaFriday = (int) 201326624,
+ plaSaturday = (int) 201326656,
+ plaEveryday = (int) 201326719
+};
+enum __MIDL___MIDL_itf_pla_0000_0000_0010
+{
+ plaDeleteLargest = (int) 201326592,
+ plaDeleteOldest = (int) 201326593
+};
+enum __MIDL___MIDL_itf_pla_0000_0000_0012
+{
+ plaCreateCab = (int) 201326593,
+ plaDeleteData = (int) 201326594,
+ plaSendCab = (int) 201326596,
+ plaDeleteCab = (int) 201326600,
+ plaDeleteReport = (int) 201326608
+};
+enum __MIDL___MIDL_itf_pla_0000_0000_0011
+{
+ plaCreateReport = (int) 201326593,
+ plaRunRules = (int) 201326594,
+ plaCreateHtml = (int) 201326596,
+ plaFolderActions = (int) 201326600,
+ plaResourceFreeing = (int) 201326608
+};
+enum __MIDL___MIDL_itf_pla_0000_0000_0007
+{
+ plaCreateNew = (int) 201326593,
+ plaModify = (int) 201326594,
+ plaCreateOrModify = (int) 201326595,
+ plaUpdateRunningInstance = (int) 201326608,
+ plaFlushTrace = (int) 201326624,
+ plaValidateOnly = (int) 201330688
+};
+enum __MIDL___MIDL_itf_pla_0000_0000_0002
+{
+ plaCommaSeparated = (int) 201326592,
+ plaTabSeparated = (int) 201326593,
+ plaSql = (int) 201326594,
+ plaBinary = (int) 201326595
+};
+enum __MIDL___MIDL_itf_pla_0000_0000_0005
+{
+ plaTimeStamp = (int) 201326592,
+ plaPerformance = (int) 201326593,
+ plaSystem = (int) 201326594,
+ plaCycle = (int) 201326595
+};
+enum __MIDL___MIDL_itf_pla_0000_0000_0006
+{
+ plaFile = (int) 201326593,
+ plaRealTime = (int) 201326594,
+ plaBoth = (int) 201326595,
+ plaBuffering = (int) 201326596
+};
+
+/* Type definitions. */
+[
+ uuid(03837504-098B-11D8-9414-505054503030)
+]
+typedef enum __MIDL___MIDL_itf_pla_0000_0000_0001 DataCollectorType;
+[
+ uuid(03837508-098B-11D8-9414-505054503030)
+]
+typedef enum __MIDL___MIDL_itf_pla_0000_0000_0003 AutoPathFormat;
+[
+ uuid(03837535-098B-11D8-9414-505054503030)
+]
+typedef enum __MIDL___MIDL_itf_pla_0000_0000_0008 ValueMapType;
+[
+ uuid(0383750A-098B-11D8-9414-505054503030)
+]
+typedef enum __MIDL___MIDL_itf_pla_0000_0000_0004 DataCollectorSetStatus;
+[
+ uuid(0383753B-098B-11D8-9414-505054503030)
+]
+typedef enum __MIDL___MIDL_itf_pla_0000_0000_0009 WeekDays;
+[
+ uuid(0383753F-098B-11D8-9414-505054503030)
+]
+typedef enum __MIDL___MIDL_itf_pla_0000_0000_0010 ResourcePolicy;
+[
+ uuid(03837542-098B-11D8-9414-505054503030)
+]
+typedef enum __MIDL___MIDL_itf_pla_0000_0000_0012 FolderActionSteps;
+[
+ uuid(03837540-098B-11D8-9414-505054503030)
+]
+typedef enum __MIDL___MIDL_itf_pla_0000_0000_0011 DataManagerSteps;
+[
+ uuid(0383751F-098B-11D8-9414-505054503030)
+]
+typedef enum __MIDL___MIDL_itf_pla_0000_0000_0007 CommitMode;
+[
+ uuid(03837507-098B-11D8-9414-505054503030)
+]
+typedef enum __MIDL___MIDL_itf_pla_0000_0000_0002 FileFormat;
+[
+ uuid(0383750D-098B-11D8-9414-505054503030)
+]
+typedef enum __MIDL___MIDL_itf_pla_0000_0000_0005 ClockType;
+[
+ uuid(0383750E-098B-11D8-9414-505054503030)
+]
+typedef enum __MIDL___MIDL_itf_pla_0000_0000_0006 StreamMode;
+
+[
+ uuid(03837500-098B-11D8-9414-505054503030),
+ version(1.0),
+ helpstring("Performance Data Service")
+]
+library plalibrary
+{
+ importlib("stdole2.tlb");
+
+ /* CoClass declarations. */
+ [
+ uuid(03837521-098B-11D8-9414-505054503030),
+ cancreate,
+ control
+ ]
+ coclass DataCollectorSet
+ {
+ dispinterface IDataCollectorSet;
+ };
+ [
+ uuid(0383751C-098B-11D8-9414-505054503030),
+ cancreate,
+ control
+ ]
+ coclass TraceSession
+ {
+ dispinterface IDataCollectorSet;
+ };
+ [
+ uuid(03837530-098B-11D8-9414-505054503030),
+ cancreate,
+ control
+ ]
+ coclass TraceSessionCollection
+ {
+ dispinterface IDataCollectorSetCollection;
+ };
+ [
+ uuid(03837513-098B-11D8-9414-505054503030),
+ cancreate,
+ control
+ ]
+ coclass TraceDataProvider
+ {
+ dispinterface ITraceDataProvider;
+ };
+ [
+ uuid(03837511-098B-11D8-9414-505054503030),
+ cancreate,
+ control
+ ]
+ coclass TraceDataProviderCollection
+ {
+ dispinterface ITraceDataProviderCollection;
+ };
+ [
+ uuid(03837525-098B-11D8-9414-505054503030),
+ cancreate,
+ control
+ ]
+ coclass DataCollectorSetCollection
+ {
+ dispinterface IDataCollectorSetCollection;
+ };
+ [
+ uuid(03837526-098B-11D8-9414-505054503030),
+ cancreate,
+ control
+ ]
+ coclass LegacyDataCollectorSet
+ {
+ dispinterface IDataCollectorSet;
+ };
+ [
+ uuid(03837527-098B-11D8-9414-505054503030),
+ cancreate,
+ control
+ ]
+ coclass LegacyDataCollectorSetCollection
+ {
+ dispinterface IDataCollectorSetCollection;
+ };
+ [
+ uuid(03837528-098B-11D8-9414-505054503030),
+ cancreate,
+ control
+ ]
+ coclass LegacyTraceSession
+ {
+ dispinterface IDataCollectorSet;
+ };
+ [
+ uuid(03837529-098B-11D8-9414-505054503030),
+ cancreate,
+ control
+ ]
+ coclass LegacyTraceSessionCollection
+ {
+ dispinterface IDataCollectorSetCollection;
+ };
+ [
+ uuid(03837531-098B-11D8-9414-505054503030),
+ cancreate,
+ control
+ ]
+ coclass ServerDataCollectorSet
+ {
+ dispinterface IDataCollectorSet;
+ };
+ [
+ uuid(03837532-098B-11D8-9414-505054503030),
+ cancreate,
+ control
+ ]
+ coclass ServerDataCollectorSetCollection
+ {
+ dispinterface IDataCollectorSetCollection;
+ };
+ [
+ uuid(03837546-098B-11D8-9414-505054503030),
+ cancreate,
+ control
+ ]
+ coclass SystemDataCollectorSet
+ {
+ dispinterface IDataCollectorSet;
+ };
+ [
+ uuid(03837547-098B-11D8-9414-505054503030),
+ cancreate,
+ control
+ ]
+ coclass SystemDataCollectorSetCollection
+ {
+ dispinterface IDataCollectorSetCollection;
+ };
+ [
+ uuid(03837538-098B-11D8-9414-505054503030),
+ cancreate,
+ control
+ ]
+ coclass BootTraceSession
+ {
+ dispinterface IDataCollectorSet;
+ };
+ [
+ uuid(03837539-098B-11D8-9414-505054503030),
+ cancreate,
+ control
+ ]
+ coclass BootTraceSessionCollection
+ {
+ dispinterface IDataCollectorSetCollection;
+ };
+
+ /* Dispatch interface declarations. */
+ [
+ uuid(03837520-098B-11D8-9414-505054503030),
+ dual,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IDataCollectorSet : IDispatch
+ {
+ [id(1610743808), propget]
+ HRESULT __stdcall DataCollectors (
+ [out retval] dispinterface IDataCollectorCollection **collectors
+ );
+ [propget]
+ HRESULT __stdcall Duration (
+ [out retval] UINT *seconds
+ );
+ [id(1610743809), propput]
+ HRESULT __stdcall Duration (
+ [in] UINT argNo1
+ );
+ [id(1610743811), propget]
+ HRESULT __stdcall Description (
+ [out retval] BSTR *Description
+ );
+ [id(1610743811), propput]
+ HRESULT __stdcall Description (
+ [in] BSTR argNo1
+ );
+ [id(1610743813), propget]
+ HRESULT __stdcall DescriptionUnresolved (
+ [out retval] BSTR *Descr
+ );
+ [propget]
+ HRESULT __stdcall DisplayName (
+ [out retval] BSTR *DisplayName
+ );
+ [id(1610743814), propput]
+ HRESULT __stdcall DisplayName (
+ [in] BSTR argNo1
+ );
+ [id(1610743816), propget]
+ HRESULT __stdcall DisplayNameUnresolved (
+ [out retval] BSTR *name
+ );
+ [propget]
+ HRESULT __stdcall Keywords (
+ [out retval] BSTR Keywords[]*
+ );
+ [id(1610743817), propput]
+ HRESULT __stdcall Keywords (
+ [in] BSTR argNo1[]
+ );
+ [id(1610743819), propget]
+ HRESULT __stdcall LatestOutputLocation (
+ [out retval] BSTR *path
+ );
+ [id(1610743819), propput]
+ HRESULT __stdcall LatestOutputLocation (
+ [in] BSTR argNo1
+ );
+ [id(0), propget]
+ HRESULT __stdcall name (
+ [out retval] BSTR *name
+ );
+ [id(1610743822), propget]
+ HRESULT __stdcall OutputLocation (
+ [out retval] BSTR *path
+ );
+ [propget]
+ HRESULT __stdcall RootPath (
+ [out retval] BSTR *folder
+ );
+ [id(1610743823), propput]
+ HRESULT __stdcall RootPath (
+ [in] BSTR argNo1
+ );
+ [id(1610743825), propget]
+ HRESULT __stdcall Segment (
+ [out retval] WINBOOL *Segment
+ );
+ [id(1610743825), propput]
+ HRESULT __stdcall Segment (
+ [in] WINBOOL argNo1
+ );
+ [id(1610743827), propget]
+ HRESULT __stdcall SegmentMaxDuration (
+ [out retval] UINT *seconds
+ );
+ [id(1610743827), propput]
+ HRESULT __stdcall SegmentMaxDuration (
+ [in] UINT argNo1
+ );
+ [id(1610743829), propget]
+ HRESULT __stdcall SegmentMaxSize (
+ [out retval] UINT *size
+ );
+ [id(1610743829), propput]
+ HRESULT __stdcall SegmentMaxSize (
+ [in] UINT argNo1
+ );
+ [id(1610743831), propget]
+ HRESULT __stdcall SerialNumber (
+ [out retval] UINT *Index
+ );
+ [id(1610743831), propput]
+ HRESULT __stdcall SerialNumber (
+ [in] UINT argNo1
+ );
+ [id(1610743833), propget]
+ HRESULT __stdcall Server (
+ [out retval] BSTR *Server
+ );
+ [propget]
+ HRESULT __stdcall Status (
+ [out retval] DataCollectorSetStatus *Status
+ );
+ [propget]
+ HRESULT __stdcall Subdirectory (
+ [out retval] BSTR *folder
+ );
+ [id(1610743835), propput]
+ HRESULT __stdcall Subdirectory (
+ [in] BSTR argNo1
+ );
+ [id(1610743837), propget]
+ HRESULT __stdcall SubdirectoryFormat (
+ [out retval] AutoPathFormat *format
+ );
+ [id(1610743837), propput]
+ HRESULT __stdcall SubdirectoryFormat (
+ [in] AutoPathFormat argNo1
+ );
+ [id(1610743839), propget]
+ HRESULT __stdcall SubdirectoryFormatPattern (
+ [out retval] BSTR *pattern
+ );
+ [id(1610743839), propput]
+ HRESULT __stdcall SubdirectoryFormatPattern (
+ [in] BSTR argNo1
+ );
+ [id(1610743841), propget]
+ HRESULT __stdcall Task (
+ [out retval] BSTR *Task
+ );
+ [id(1610743841), propput]
+ HRESULT __stdcall Task (
+ [in] BSTR argNo1
+ );
+ [id(1610743843), propget]
+ HRESULT __stdcall TaskRunAsSelf (
+ [out retval] WINBOOL *RunAsSelf
+ );
+ [id(1610743843), propput]
+ HRESULT __stdcall TaskRunAsSelf (
+ [in] WINBOOL argNo1
+ );
+ [id(1610743845), propget]
+ HRESULT __stdcall TaskArguments (
+ [out retval] BSTR *Task
+ );
+ [id(1610743845), propput]
+ HRESULT __stdcall TaskArguments (
+ [in] BSTR argNo1
+ );
+ [id(1610743847), propget]
+ HRESULT __stdcall TaskUserTextArguments (
+ [out retval] BSTR *UserText
+ );
+ [id(1610743847), propput]
+ HRESULT __stdcall TaskUserTextArguments (
+ [in] BSTR argNo1
+ );
+ [id(1610743849), propget]
+ HRESULT __stdcall Schedules (
+ [out retval] dispinterface IScheduleCollection **ppSchedules
+ );
+ [propget]
+ HRESULT __stdcall SchedulesEnabled (
+ [out retval] WINBOOL *Enabled
+ );
+ [id(1610743850), propput]
+ HRESULT __stdcall SchedulesEnabled (
+ [in] WINBOOL argNo1
+ );
+ [id(1610743852), propget]
+ HRESULT __stdcall UserAccount (
+ [out retval] BSTR *user
+ );
+ [propget]
+ HRESULT __stdcall Xml (
+ [out retval] BSTR *Xml
+ );
+ [propget]
+ HRESULT __stdcall Security (
+ [out retval] BSTR *pbstrSecurity
+ );
+ [id(1610743854), propput]
+ HRESULT __stdcall Security (
+ [in] BSTR argNo1
+ );
+ [id(1610743856), propget]
+ HRESULT __stdcall StopOnCompletion (
+ [out retval] WINBOOL *Stop
+ );
+ [id(1610743856), propput]
+ HRESULT __stdcall StopOnCompletion (
+ [in] WINBOOL argNo1
+ );
+ [id(1610743858), propget]
+ HRESULT __stdcall DataManager (
+ [out retval] dispinterface IDataManager **DataManager
+ );
+ HRESULT __stdcall SetCredentials (
+ BSTR user,
+ BSTR password
+ );
+ HRESULT __stdcall Query (
+ [in] BSTR name,
+ [in] BSTR Server
+ );
+ HRESULT __stdcall Commit (
+ [in] BSTR name,
+ [in] BSTR Server,
+ CommitMode mode,
+ [out retval] dispinterface IValueMap **Validation
+ );
+ HRESULT __stdcall Delete (void);
+ HRESULT __stdcall start (
+ [in] WINBOOL Synchronous
+ );
+ HRESULT __stdcall Stop (
+ [in] WINBOOL Synchronous
+ );
+ HRESULT __stdcall SetXml (
+ [in] BSTR Xml,
+ [out retval] dispinterface IValueMap **Validation
+ );
+ HRESULT __stdcall SetValue (
+ BSTR Key,
+ BSTR Value
+ );
+ HRESULT __stdcall GetValue (
+ BSTR Key,
+ [out retval] BSTR *Value
+ );
+ };
+ [
+ uuid(03837502-098B-11D8-9414-505054503030),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IDataCollectorCollection : IDispatch
+ {
+ [id(1), propget]
+ HRESULT __stdcall Count (
+ [out retval] long *retVal
+ );
+ [id(0), propget]
+ HRESULT __stdcall Item (
+ [in] VARIANT Index,
+ [out retval] dispinterface IDataCollector **collector
+ );
+ [id(-4), propget]
+ HRESULT __stdcall _NewEnum (
+ [out retval] IUnknown **retVal
+ );
+ [id(1610743811)]
+ HRESULT __stdcall Add (
+ dispinterface IDataCollector *collector
+ );
+ HRESULT __stdcall Remove (
+ VARIANT collector
+ );
+ HRESULT __stdcall Clear (void);
+ HRESULT __stdcall AddRange (
+ dispinterface IDataCollectorCollection *collectors
+ );
+ HRESULT __stdcall CreateDataCollectorFromXml (
+ [in] BSTR bstrXml,
+ [out] dispinterface IValueMap **pValidation,
+ [out retval] dispinterface IDataCollector **pCollector
+ );
+ HRESULT __stdcall CreateDataCollector (
+ [in] DataCollectorType type,
+ [out retval] dispinterface IDataCollector **collector
+ );
+ };
+ [
+ uuid(038374FF-098B-11D8-9414-505054503030),
+ dual,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IDataCollector : IDispatch
+ {
+ [id(1610743808), propget]
+ HRESULT __stdcall DataCollectorSet (
+ [out retval] dispinterface IDataCollectorSet **group
+ );
+ [id(1610743808), propput, restricted, hidden]
+ HRESULT __stdcall DataCollectorSet (
+ [in] dispinterface IDataCollectorSet *argNo1
+ );
+ [id(1610743810), propget]
+ HRESULT __stdcall DataCollectorType (
+ [out retval] DataCollectorType *type
+ );
+ [propget]
+ HRESULT __stdcall FileName (
+ [out retval] BSTR *name
+ );
+ [id(1610743811), propput]
+ HRESULT __stdcall FileName (
+ [in] BSTR argNo1
+ );
+ [id(1610743813), propget]
+ HRESULT __stdcall FileNameFormat (
+ [out retval] AutoPathFormat *format
+ );
+ [id(1610743813), propput]
+ HRESULT __stdcall FileNameFormat (
+ [in] AutoPathFormat argNo1
+ );
+ [id(1610743815), propget]
+ HRESULT __stdcall FileNameFormatPattern (
+ [out retval] BSTR *pattern
+ );
+ [id(1610743815), propput]
+ HRESULT __stdcall FileNameFormatPattern (
+ [in] BSTR argNo1
+ );
+ [id(1610743817), propget]
+ HRESULT __stdcall LatestOutputLocation (
+ [out retval] BSTR *path
+ );
+ [id(1610743817), propput]
+ HRESULT __stdcall LatestOutputLocation (
+ [in] BSTR argNo1
+ );
+ [id(1610743819), propget]
+ HRESULT __stdcall LogAppend (
+ [out retval] WINBOOL *append
+ );
+ [id(1610743819), propput]
+ HRESULT __stdcall LogAppend (
+ [in] WINBOOL argNo1
+ );
+ [id(1610743821), propget]
+ HRESULT __stdcall LogCircular (
+ [out retval] WINBOOL *circular
+ );
+ [id(1610743821), propput]
+ HRESULT __stdcall LogCircular (
+ [in] WINBOOL argNo1
+ );
+ [id(1610743823), propget]
+ HRESULT __stdcall LogOverwrite (
+ [out retval] WINBOOL *overwrite
+ );
+ [id(1610743823), propput]
+ HRESULT __stdcall LogOverwrite (
+ [in] WINBOOL argNo1
+ );
+ [id(1610743825), propget]
+ HRESULT __stdcall name (
+ [out retval] BSTR *name
+ );
+ [id(1610743825), propput]
+ HRESULT __stdcall name (
+ [in] BSTR argNo1
+ );
+ [id(1610743827), propget]
+ HRESULT __stdcall OutputLocation (
+ [out retval] BSTR *path
+ );
+ [propget]
+ HRESULT __stdcall Index (
+ [out retval] long *Index
+ );
+ [id(1610743828), propput, restricted, hidden]
+ HRESULT __stdcall Index (
+ [in] long argNo1
+ );
+ [id(1610743830), propget]
+ HRESULT __stdcall Xml (
+ [out retval] BSTR *Xml
+ );
+ HRESULT __stdcall SetXml (
+ [in] BSTR Xml,
+ [out retval] dispinterface IValueMap **Validation
+ );
+ HRESULT __stdcall CreateOutputLocation (
+ [in] WINBOOL Latest,
+ [out retval] BSTR *Location
+ );
+ };
+ [
+ uuid(03837534-098B-11D8-9414-505054503030),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IValueMap : IDispatch
+ {
+ [id(1), propget]
+ HRESULT __stdcall Count (
+ [out retval] long *retVal
+ );
+ [id(0), propget]
+ HRESULT __stdcall Item (
+ [in] VARIANT Index,
+ [out retval] dispinterface IValueMapItem **Value
+ );
+ [id(-4), propget]
+ HRESULT __stdcall _NewEnum (
+ [out retval] IUnknown **retVal
+ );
+ [id(1610743811), propget]
+ HRESULT __stdcall Description (
+ [out retval] BSTR *Description
+ );
+ [id(1610743811), propput]
+ HRESULT __stdcall Description (
+ [in] BSTR argNo1
+ );
+ [id(1610743813), propget]
+ HRESULT __stdcall Value (
+ [out retval] VARIANT *Value
+ );
+ [id(1610743813), propput]
+ HRESULT __stdcall Value (
+ [in] VARIANT argNo1
+ );
+ [id(1610743815), propget]
+ HRESULT __stdcall ValueMapType (
+ [out retval] ValueMapType *type
+ );
+ [id(1610743815), propput]
+ HRESULT __stdcall ValueMapType (
+ [in] ValueMapType argNo1
+ );
+ [id(1610743817)]
+ HRESULT __stdcall Add (
+ VARIANT Value
+ );
+ HRESULT __stdcall Remove (
+ VARIANT Value
+ );
+ HRESULT __stdcall Clear (void);
+ HRESULT __stdcall AddRange (
+ dispinterface IValueMap *map
+ );
+ HRESULT __stdcall CreateValueMapItem (
+ [out retval] dispinterface IValueMapItem **Item
+ );
+ };
+ [
+ uuid(03837533-098B-11D8-9414-505054503030),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IValueMapItem : IDispatch
+ {
+ [id(1610743808), propget]
+ HRESULT __stdcall Description (
+ [out retval] BSTR *Description
+ );
+ [id(1610743808), propput]
+ HRESULT __stdcall Description (
+ [in] BSTR argNo1
+ );
+ [id(1610743810), propget]
+ HRESULT __stdcall Enabled (
+ [out retval] WINBOOL *Enabled
+ );
+ [id(1610743810), propput]
+ HRESULT __stdcall Enabled (
+ [in] WINBOOL argNo1
+ );
+ [id(1610743812), propget]
+ HRESULT __stdcall Key (
+ [out retval] BSTR *Key
+ );
+ [id(1610743812), propput]
+ HRESULT __stdcall Key (
+ [in] BSTR argNo1
+ );
+ [id(1610743814), propget]
+ HRESULT __stdcall Value (
+ [out retval] VARIANT *Value
+ );
+ [id(1610743814), propput]
+ HRESULT __stdcall Value (
+ [in] VARIANT argNo1
+ );
+ [id(1610743816), propget]
+ HRESULT __stdcall ValueMapType (
+ [out retval] ValueMapType *type
+ );
+ [id(1610743816), propput]
+ HRESULT __stdcall ValueMapType (
+ [in] ValueMapType argNo1
+ );
+ };
+ [
+ uuid(0383753D-098B-11D8-9414-505054503030),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IScheduleCollection : IDispatch
+ {
+ [id(1), propget]
+ HRESULT __stdcall Count (
+ [out retval] long *retVal
+ );
+ [id(0), propget]
+ HRESULT __stdcall Item (
+ [in] VARIANT Index,
+ [out retval] dispinterface ISchedule **ppSchedule
+ );
+ [id(-4), propget]
+ HRESULT __stdcall _NewEnum (
+ [out retval] IUnknown **ienum
+ );
+ [id(1610743811)]
+ HRESULT __stdcall Add (
+ dispinterface ISchedule *pSchedule
+ );
+ HRESULT __stdcall Remove (
+ VARIANT vSchedule
+ );
+ HRESULT __stdcall Clear (void);
+ HRESULT __stdcall AddRange (
+ dispinterface IScheduleCollection *pSchedules
+ );
+ HRESULT __stdcall CreateSchedule (
+ [out retval] dispinterface ISchedule **Schedule
+ );
+ };
+ [
+ uuid(0383753A-098B-11D8-9414-505054503030),
+ dual,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface ISchedule : IDispatch
+ {
+ [id(1610743808), propget]
+ HRESULT __stdcall StartDate (
+ [out retval] VARIANT *start
+ );
+ [id(1610743808), propput]
+ HRESULT __stdcall StartDate (
+ [in] VARIANT argNo1
+ );
+ [id(1610743810), propget]
+ HRESULT __stdcall EndDate (
+ [out retval] VARIANT *end
+ );
+ [id(1610743810), propput]
+ HRESULT __stdcall EndDate (
+ [in] VARIANT argNo1
+ );
+ [id(1610743812), propget]
+ HRESULT __stdcall StartTime (
+ [out retval] VARIANT *start
+ );
+ [id(1610743812), propput]
+ HRESULT __stdcall StartTime (
+ [in] VARIANT argNo1
+ );
+ [id(1610743814), propget]
+ HRESULT __stdcall Days (
+ [out retval] WeekDays *Days
+ );
+ [id(1610743814), propput]
+ HRESULT __stdcall Days (
+ [in] WeekDays argNo1
+ );
+ };
+ [
+ uuid(03837541-098B-11D8-9414-505054503030),
+ dual,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IDataManager : IDispatch
+ {
+ [id(1610743808), propget]
+ HRESULT __stdcall Enabled (
+ [out retval] WINBOOL *pfEnabled
+ );
+ [id(1610743808), propput]
+ HRESULT __stdcall Enabled (
+ [in] WINBOOL argNo1
+ );
+ [id(1610743810), propget]
+ HRESULT __stdcall CheckBeforeRunning (
+ [out retval] WINBOOL *pfCheck
+ );
+ [id(1610743810), propput]
+ HRESULT __stdcall CheckBeforeRunning (
+ [in] WINBOOL argNo1
+ );
+ [id(1610743812), propget]
+ HRESULT __stdcall MinFreeDisk (
+ [out retval] UINT *MinFreeDisk
+ );
+ [id(1610743812), propput]
+ HRESULT __stdcall MinFreeDisk (
+ [in] UINT argNo1
+ );
+ [id(1610743814), propget]
+ HRESULT __stdcall MaxSize (
+ [out retval] UINT *pulMaxSize
+ );
+ [id(1610743814), propput]
+ HRESULT __stdcall MaxSize (
+ [in] UINT argNo1
+ );
+ [id(1610743816), propget]
+ HRESULT __stdcall MaxFolderCount (
+ [out retval] UINT *pulMaxFolderCount
+ );
+ [id(1610743816), propput]
+ HRESULT __stdcall MaxFolderCount (
+ [in] UINT argNo1
+ );
+ [id(1610743818), propget]
+ HRESULT __stdcall ResourcePolicy (
+ [out retval] ResourcePolicy *pPolicy
+ );
+ [id(1610743818), propput]
+ HRESULT __stdcall ResourcePolicy (
+ [in] ResourcePolicy argNo1
+ );
+ [id(1610743820), propget]
+ HRESULT __stdcall FolderActions (
+ [out retval] dispinterface IFolderActionCollection **Actions
+ );
+ [propget]
+ HRESULT __stdcall ReportSchema (
+ [out retval] BSTR *ReportSchema
+ );
+ [id(1610743821), propput]
+ HRESULT __stdcall ReportSchema (
+ [in] BSTR argNo1
+ );
+ [id(1610743823), propget]
+ HRESULT __stdcall ReportFileName (
+ [out retval] BSTR *pbstrFilename
+ );
+ [id(1610743823), propput]
+ HRESULT __stdcall ReportFileName (
+ [in] BSTR argNo1
+ );
+ [id(1610743825), propget]
+ HRESULT __stdcall RuleTargetFileName (
+ [out retval] BSTR *FileName
+ );
+ [id(1610743825), propput]
+ HRESULT __stdcall RuleTargetFileName (
+ [in] BSTR argNo1
+ );
+ [id(1610743827), propget]
+ HRESULT __stdcall EventsFileName (
+ [out retval] BSTR *pbstrFilename
+ );
+ [id(1610743827), propput]
+ HRESULT __stdcall EventsFileName (
+ [in] BSTR argNo1
+ );
+ [id(1610743829), propget]
+ HRESULT __stdcall Rules (
+ [out retval] BSTR *pbstrXml
+ );
+ [id(1610743829), propput]
+ HRESULT __stdcall Rules (
+ [in] BSTR argNo1
+ );
+ [id(1610743831)]
+ HRESULT __stdcall Run (
+ [in] DataManagerSteps Steps,
+ [in] BSTR bstrFolder,
+ [out retval] dispinterface IValueMap **Errors
+ );
+ HRESULT __stdcall Extract (
+ [in] BSTR CabFilename,
+ [in] BSTR DestinationPath
+ );
+ };
+ [
+ uuid(03837544-098B-11D8-9414-505054503030),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IFolderActionCollection : IDispatch
+ {
+ [id(1), propget]
+ HRESULT __stdcall Count (
+ [out retval] UINT *Count
+ );
+ [id(0), propget]
+ HRESULT __stdcall Item (
+ [in] VARIANT Index,
+ [out retval] dispinterface IFolderAction **Action
+ );
+ [id(-4), propget]
+ HRESULT __stdcall _NewEnum (
+ [out retval] IUnknown **Enum
+ );
+ [id(1610743811)]
+ HRESULT __stdcall Add (
+ dispinterface IFolderAction *Action
+ );
+ HRESULT __stdcall Remove (
+ VARIANT Index
+ );
+ HRESULT __stdcall Clear (void);
+ HRESULT __stdcall AddRange (
+ dispinterface IFolderActionCollection *Actions
+ );
+ HRESULT __stdcall CreateFolderAction (
+ [out retval] dispinterface IFolderAction **FolderAction
+ );
+ };
+ [
+ uuid(03837543-098B-11D8-9414-505054503030),
+ dual,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IFolderAction : IDispatch
+ {
+ [id(1610743808), propget]
+ HRESULT __stdcall Age (
+ [out retval] UINT *pulAge
+ );
+ [id(1610743808), propput]
+ HRESULT __stdcall Age (
+ [in] UINT argNo1
+ );
+ [id(1610743810), propget]
+ HRESULT __stdcall size (
+ [out retval] UINT *pulAge
+ );
+ [id(1610743810), propput]
+ HRESULT __stdcall size (
+ [in] UINT argNo1
+ );
+ [id(1610743812), propget]
+ HRESULT __stdcall Actions (
+ [out retval] FolderActionSteps *Steps
+ );
+ [id(1610743812), propput]
+ HRESULT __stdcall Actions (
+ [in] FolderActionSteps argNo1
+ );
+ [id(1610743814), propget]
+ HRESULT __stdcall SendCabTo (
+ [out retval] BSTR *pbstrDestination
+ );
+ [id(1610743814), propput]
+ HRESULT __stdcall SendCabTo (
+ [in] BSTR argNo1
+ );
+ };
+ [
+ uuid(03837506-098B-11D8-9414-505054503030),
+ dual,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IPerformanceCounterDataCollector : IDataCollector
+ {
+ [id(1610809344), propget]
+ HRESULT __stdcall DataSourceName (
+ [out retval] BSTR *dsn
+ );
+ [id(1610809344), propput]
+ HRESULT __stdcall DataSourceName (
+ [in] BSTR argNo1
+ );
+ [id(1610809346), propget]
+ HRESULT __stdcall PerformanceCounters (
+ [out retval] BSTR counters[]*
+ );
+ [id(1610809346), propput]
+ HRESULT __stdcall PerformanceCounters (
+ [in] BSTR argNo1[]
+ );
+ [id(1610809348), propget]
+ HRESULT __stdcall LogFileFormat (
+ [out retval] FileFormat *format
+ );
+ [id(1610809348), propput]
+ HRESULT __stdcall LogFileFormat (
+ [in] FileFormat argNo1
+ );
+ [id(1610809350), propget]
+ HRESULT __stdcall SampleInterval (
+ [out retval] UINT *interval
+ );
+ [id(1610809350), propput]
+ HRESULT __stdcall SampleInterval (
+ [in] UINT argNo1
+ );
+ [id(1610809352), propget]
+ HRESULT __stdcall SegmentMaxRecords (
+ [out retval] UINT *records
+ );
+ [id(1610809352), propput]
+ HRESULT __stdcall SegmentMaxRecords (
+ [in] UINT argNo1
+ );
+ };
+ [
+ uuid(0383750B-098B-11D8-9414-505054503030),
+ dual,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface ITraceDataCollector : IDataCollector
+ {
+ [id(1610809344), propget]
+ HRESULT __stdcall BufferSize (
+ [out retval] UINT *size
+ );
+ [id(1610809344), propput]
+ HRESULT __stdcall BufferSize (
+ [in] UINT argNo1
+ );
+ [id(1610809346), propget]
+ HRESULT __stdcall BuffersLost (
+ [out retval] UINT *buffers
+ );
+ [id(1610809346), propput, restricted, hidden]
+ HRESULT __stdcall BuffersLost (
+ [in] UINT argNo1
+ );
+ [id(1610809348), propget]
+ HRESULT __stdcall BuffersWritten (
+ [out retval] UINT *buffers
+ );
+ [id(1610809348), propput, restricted, hidden]
+ HRESULT __stdcall BuffersWritten (
+ [in] UINT argNo1
+ );
+ [id(1610809350), propget]
+ HRESULT __stdcall ClockType (
+ [out retval] ClockType *clock
+ );
+ [id(1610809350), propput]
+ HRESULT __stdcall ClockType (
+ [in] ClockType argNo1
+ );
+ [id(1610809352), propget]
+ HRESULT __stdcall EventsLost (
+ [out retval] UINT *events
+ );
+ [id(1610809352), propput, restricted, hidden]
+ HRESULT __stdcall EventsLost (
+ [in] UINT argNo1
+ );
+ [id(1610809354), propget]
+ HRESULT __stdcall ExtendedModes (
+ [out retval] UINT *mode
+ );
+ [id(1610809354), propput]
+ HRESULT __stdcall ExtendedModes (
+ [in] UINT argNo1
+ );
+ [id(1610809356), propget]
+ HRESULT __stdcall FlushTimer (
+ [out retval] UINT *seconds
+ );
+ [id(1610809356), propput]
+ HRESULT __stdcall FlushTimer (
+ [in] UINT argNo1
+ );
+ [id(1610809358), propget]
+ HRESULT __stdcall FreeBuffers (
+ [out retval] UINT *buffers
+ );
+ [id(1610809358), propput, restricted, hidden]
+ HRESULT __stdcall FreeBuffers (
+ [in] UINT argNo1
+ );
+ [id(1610809360), propget]
+ HRESULT __stdcall Guid (
+ [out retval] struct GUID *Guid
+ );
+ [id(1610809360), propput]
+ HRESULT __stdcall Guid (
+ [in] struct GUID argNo1
+ );
+ [id(1610809362), propget]
+ HRESULT __stdcall IsKernelTrace (
+ [out retval] WINBOOL *kernel
+ );
+ [propget]
+ HRESULT __stdcall MaximumBuffers (
+ [out retval] UINT *buffers
+ );
+ [id(1610809363), propput]
+ HRESULT __stdcall MaximumBuffers (
+ [in] UINT argNo1
+ );
+ [id(1610809365), propget]
+ HRESULT __stdcall MinimumBuffers (
+ [out retval] UINT *buffers
+ );
+ [id(1610809365), propput]
+ HRESULT __stdcall MinimumBuffers (
+ [in] UINT argNo1
+ );
+ [id(1610809367), propget]
+ HRESULT __stdcall NumberOfBuffers (
+ [out retval] UINT *buffers
+ );
+ [id(1610809367), propput]
+ HRESULT __stdcall NumberOfBuffers (
+ [in] UINT argNo1
+ );
+ [id(1610809369), propget]
+ HRESULT __stdcall PreallocateFile (
+ [out retval] WINBOOL *allocate
+ );
+ [id(1610809369), propput]
+ HRESULT __stdcall PreallocateFile (
+ [in] WINBOOL argNo1
+ );
+ [id(1610809371), propget]
+ HRESULT __stdcall ProcessMode (
+ [out retval] WINBOOL *process
+ );
+ [id(1610809371), propput]
+ HRESULT __stdcall ProcessMode (
+ [in] WINBOOL argNo1
+ );
+ [id(1610809373), propget]
+ HRESULT __stdcall RealTimeBuffersLost (
+ [out retval] UINT *buffers
+ );
+ [id(1610809373), propput, restricted, hidden]
+ HRESULT __stdcall RealTimeBuffersLost (
+ [in] UINT argNo1
+ );
+ [id(1610809375), propget]
+ HRESULT __stdcall SessionId (
+ [out retval] ULONGLONG *id
+ );
+ [id(1610809375), propput, restricted, hidden]
+ HRESULT __stdcall SessionId (
+ [in] ULONGLONG argNo1
+ );
+ [id(1610809377), propget]
+ HRESULT __stdcall SessionName (
+ [out retval] BSTR *name
+ );
+ [id(1610809377), propput]
+ HRESULT __stdcall SessionName (
+ [in] BSTR argNo1
+ );
+ [id(1610809379), propget]
+ HRESULT __stdcall SessionThreadId (
+ [out retval] UINT *tid
+ );
+ [id(1610809379), propput, restricted, hidden]
+ HRESULT __stdcall SessionThreadId (
+ [in] UINT argNo1
+ );
+ [id(1610809381), propget]
+ HRESULT __stdcall StreamMode (
+ [out retval] StreamMode *mode
+ );
+ [id(1610809381), propput]
+ HRESULT __stdcall StreamMode (
+ [in] StreamMode argNo1
+ );
+ [id(1610809383), propget]
+ HRESULT __stdcall TraceDataProviders (
+ [out retval] dispinterface ITraceDataProviderCollection **providers
+ );
+ };
+ [
+ uuid(03837510-098B-11D8-9414-505054503030),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface ITraceDataProviderCollection : IDispatch
+ {
+ [id(1), propget]
+ HRESULT __stdcall Count (
+ [out retval] long *retVal
+ );
+ [id(0), propget]
+ HRESULT __stdcall Item (
+ [in] VARIANT Index,
+ [out retval] dispinterface ITraceDataProvider **ppProvider
+ );
+ [id(-4), propget]
+ HRESULT __stdcall _NewEnum (
+ [out retval] IUnknown **retVal
+ );
+ [id(1610743811)]
+ HRESULT __stdcall Add (
+ dispinterface ITraceDataProvider *pProvider
+ );
+ HRESULT __stdcall Remove (
+ VARIANT vProvider
+ );
+ HRESULT __stdcall Clear (void);
+ HRESULT __stdcall AddRange (
+ dispinterface ITraceDataProviderCollection *providers
+ );
+ HRESULT __stdcall CreateTraceDataProvider (
+ [out retval] dispinterface ITraceDataProvider **Provider
+ );
+ HRESULT __stdcall GetTraceDataProviders (
+ [in] BSTR Server
+ );
+ HRESULT __stdcall GetTraceDataProvidersByProcess (
+ [in] BSTR Server,
+ [in] UINT Pid
+ );
+ };
+ [
+ uuid(03837512-098B-11D8-9414-505054503030),
+ dual,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface ITraceDataProvider : IDispatch
+ {
+ [id(1610743808), propget]
+ HRESULT __stdcall DisplayName (
+ [out retval] BSTR *name
+ );
+ [id(1610743808), propput]
+ HRESULT __stdcall DisplayName (
+ [in] BSTR argNo1
+ );
+ [id(1610743810), propget]
+ HRESULT __stdcall Guid (
+ [out retval] struct GUID *Guid
+ );
+ [id(1610743810), propput]
+ HRESULT __stdcall Guid (
+ [in] struct GUID argNo1
+ );
+ [id(1610743812), propget]
+ HRESULT __stdcall Level (
+ [out retval] dispinterface IValueMap **ppLevel
+ );
+ [propget]
+ HRESULT __stdcall KeywordsAny (
+ [out retval] dispinterface IValueMap **ppKeywords
+ );
+ [propget]
+ HRESULT __stdcall KeywordsAll (
+ [out retval] dispinterface IValueMap **ppKeywords
+ );
+ [propget]
+ HRESULT __stdcall Properties (
+ [out retval] dispinterface IValueMap **ppProperties
+ );
+ [propget]
+ HRESULT __stdcall FilterEnabled (
+ [out retval] WINBOOL *FilterEnabled
+ );
+ [id(1610743816), propput]
+ HRESULT __stdcall FilterEnabled (
+ [in] WINBOOL argNo1
+ );
+ [id(1610743818), propget]
+ HRESULT __stdcall FilterType (
+ [out retval] UINT *pulType
+ );
+ [id(1610743818), propput]
+ HRESULT __stdcall FilterType (
+ [in] UINT argNo1
+ );
+ [id(1610743820), propget]
+ HRESULT __stdcall FilterData (
+ [out retval] UCHAR ppData[]*
+ );
+ [id(1610743820), propput]
+ HRESULT __stdcall FilterData (
+ [in] UCHAR argNo1[]
+ );
+ [id(1610743822)]
+ HRESULT __stdcall Query (
+ [in] BSTR bstrName,
+ [in] BSTR bstrServer
+ );
+ HRESULT __stdcall Resolve (
+ [in] IDispatch * pFrom
+ );
+ HRESULT __stdcall SetSecurity (
+ [in] BSTR Sddl
+ );
+ HRESULT __stdcall GetSecurity (
+ [in] UINT SecurityInfo,
+ [out retval] BSTR *Sddl
+ );
+ HRESULT __stdcall GetRegisteredProcesses (
+ [out] dispinterface IValueMap **Processes
+ );
+ };
+ [
+ uuid(03837514-098B-11D8-9414-505054503030),
+ dual,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IConfigurationDataCollector : IDataCollector
+ {
+ [id(1610809344), propget]
+ HRESULT __stdcall FileMaxCount (
+ [out retval] UINT *Count
+ );
+ [id(1610809344), propput]
+ HRESULT __stdcall FileMaxCount (
+ [in] UINT argNo1
+ );
+ [id(1610809346), propget]
+ HRESULT __stdcall FileMaxRecursiveDepth (
+ [out retval] UINT *depth
+ );
+ [id(1610809346), propput]
+ HRESULT __stdcall FileMaxRecursiveDepth (
+ [in] UINT argNo1
+ );
+ [id(1610809348), propget]
+ HRESULT __stdcall FileMaxTotalSize (
+ [out retval] UINT *size
+ );
+ [id(1610809348), propput]
+ HRESULT __stdcall FileMaxTotalSize (
+ [in] UINT argNo1
+ );
+ [id(1610809350), propget]
+ HRESULT __stdcall Files (
+ [out retval] BSTR Files[]*
+ );
+ [id(1610809350), propput]
+ HRESULT __stdcall Files (
+ [in] BSTR argNo1[]
+ );
+ [id(1610809352), propget]
+ HRESULT __stdcall ManagementQueries (
+ [out retval] BSTR Queries[]*
+ );
+ [id(1610809352), propput]
+ HRESULT __stdcall ManagementQueries (
+ [in] BSTR argNo1[]
+ );
+ [id(1610809354), propget]
+ HRESULT __stdcall QueryNetworkAdapters (
+ [out retval] WINBOOL *network
+ );
+ [id(1610809354), propput]
+ HRESULT __stdcall QueryNetworkAdapters (
+ [in] WINBOOL argNo1
+ );
+ [id(1610809356), propget]
+ HRESULT __stdcall RegistryKeys (
+ [out retval] BSTR Query[]*
+ );
+ [id(1610809356), propput]
+ HRESULT __stdcall RegistryKeys (
+ [in] BSTR argNo1[]
+ );
+ [id(1610809358), propget]
+ HRESULT __stdcall RegistryMaxRecursiveDepth (
+ [out retval] UINT *depth
+ );
+ [id(1610809358), propput]
+ HRESULT __stdcall RegistryMaxRecursiveDepth (
+ [in] UINT argNo1
+ );
+ [id(1610809360), propget]
+ HRESULT __stdcall SystemStateFile (
+ [out retval] BSTR *FileName
+ );
+ [id(1610809360), propput]
+ HRESULT __stdcall SystemStateFile (
+ [in] BSTR argNo1
+ );
+ };
+ [
+ uuid(03837516-098B-11D8-9414-505054503030),
+ dual,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IAlertDataCollector : IDataCollector
+ {
+ [id(1610809344), propget]
+ HRESULT __stdcall AlertThresholds (
+ [out retval] BSTR alerts[]*
+ );
+ [id(1610809344), propput]
+ HRESULT __stdcall AlertThresholds (
+ [in] BSTR argNo1[]
+ );
+ [id(1610809346), propget]
+ HRESULT __stdcall EventLog (
+ [out retval] WINBOOL *log
+ );
+ [id(1610809346), propput]
+ HRESULT __stdcall EventLog (
+ [in] WINBOOL argNo1
+ );
+ [id(1610809348), propget]
+ HRESULT __stdcall SampleInterval (
+ [out retval] UINT *interval
+ );
+ [id(1610809348), propput]
+ HRESULT __stdcall SampleInterval (
+ [in] UINT argNo1
+ );
+ [id(1610809350), propget]
+ HRESULT __stdcall Task (
+ [out retval] BSTR *Task
+ );
+ [id(1610809350), propput]
+ HRESULT __stdcall Task (
+ [in] BSTR argNo1
+ );
+ [id(1610809352), propget]
+ HRESULT __stdcall TaskRunAsSelf (
+ [out retval] WINBOOL *RunAsSelf
+ );
+ [id(1610809352), propput]
+ HRESULT __stdcall TaskRunAsSelf (
+ [in] WINBOOL argNo1
+ );
+ [id(1610809354), propget]
+ HRESULT __stdcall TaskArguments (
+ [out retval] BSTR *Task
+ );
+ [id(1610809354), propput]
+ HRESULT __stdcall TaskArguments (
+ [in] BSTR argNo1
+ );
+ [id(1610809356), propget]
+ HRESULT __stdcall TaskUserTextArguments (
+ [out retval] BSTR *Task
+ );
+ [id(1610809356), propput]
+ HRESULT __stdcall TaskUserTextArguments (
+ [in] BSTR argNo1
+ );
+ [id(1610809358), propget]
+ HRESULT __stdcall TriggerDataCollectorSet (
+ [out retval] BSTR *name
+ );
+ [id(1610809358), propput]
+ HRESULT __stdcall TriggerDataCollectorSet (
+ [in] BSTR argNo1
+ );
+ };
+ [
+ uuid(0383751A-098B-11D8-9414-505054503030),
+ dual,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IApiTracingDataCollector : IDataCollector
+ {
+ [id(1610809344), propget]
+ HRESULT __stdcall LogApiNamesOnly (
+ [out retval] WINBOOL *logapinames
+ );
+ [id(1610809344), propput]
+ HRESULT __stdcall LogApiNamesOnly (
+ [in] WINBOOL argNo1
+ );
+ [id(1610809346), propget]
+ HRESULT __stdcall LogApisRecursively (
+ [out retval] WINBOOL *logrecursively
+ );
+ [id(1610809346), propput]
+ HRESULT __stdcall LogApisRecursively (
+ [in] WINBOOL argNo1
+ );
+ [id(1610809348), propget]
+ HRESULT __stdcall ExePath (
+ [out retval] BSTR *ExePath
+ );
+ [id(1610809348), propput]
+ HRESULT __stdcall ExePath (
+ [in] BSTR argNo1
+ );
+ [id(1610809350), propget]
+ HRESULT __stdcall LogFilePath (
+ [out retval] BSTR *LogFilePath
+ );
+ [id(1610809350), propput]
+ HRESULT __stdcall LogFilePath (
+ [in] BSTR argNo1
+ );
+ [id(1610809352), propget]
+ HRESULT __stdcall IncludeModules (
+ [out retval] BSTR IncludeModules[]*
+ );
+ [id(1610809352), propput]
+ HRESULT __stdcall IncludeModules (
+ [in] BSTR argNo1[]
+ );
+ [id(1610809354), propget]
+ HRESULT __stdcall IncludeApis (
+ [out retval] BSTR IncludeApis[]*
+ );
+ [id(1610809354), propput]
+ HRESULT __stdcall IncludeApis (
+ [in] BSTR argNo1[]
+ );
+ [id(1610809356), propget]
+ HRESULT __stdcall ExcludeApis (
+ [out retval] BSTR ExcludeApis[]*
+ );
+ [id(1610809356), propput]
+ HRESULT __stdcall ExcludeApis (
+ [in] BSTR argNo1[]
+ );
+ };
+ [
+ uuid(03837524-098B-11D8-9414-505054503030),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IDataCollectorSetCollection : IDispatch
+ {
+ [id(1), propget]
+ HRESULT __stdcall Count (
+ [out retval] long *retVal
+ );
+ [id(0), propget]
+ HRESULT __stdcall Item (
+ [in] VARIANT Index,
+ [out retval] dispinterface IDataCollectorSet **set
+ );
+ [id(-4), propget]
+ HRESULT __stdcall _NewEnum (
+ [out retval] IUnknown **retVal
+ );
+ [id(1610743811)]
+ HRESULT __stdcall Add (
+ dispinterface IDataCollectorSet *set
+ );
+ HRESULT __stdcall Remove (
+ VARIANT set
+ );
+ HRESULT __stdcall Clear (void);
+ HRESULT __stdcall AddRange (
+ dispinterface IDataCollectorSetCollection *sets
+ );
+ HRESULT __stdcall GetDataCollectorSets (
+ [in] BSTR Server,
+ [in] BSTR filter
+ );
+ };
+
+};
+
diff --git a/mingw-w64-headers/include/powrprof.h b/mingw-w64-headers/include/powrprof.h
index 60b1154..e1c4c2f 100644
--- a/mingw-w64-headers/include/powrprof.h
+++ b/mingw-w64-headers/include/powrprof.h
@@ -115,6 +115,407 @@
BOOLEAN WINAPI ReadProcessorPwrScheme(UINT,PMACHINE_PROCESSOR_POWER_POLICY);
BOOLEAN WINAPI WriteProcessorPwrScheme(UINT,PMACHINE_PROCESSOR_POWER_POLICY);
BOOLEAN WINAPI ValidatePowerPolicies(PGLOBAL_POWER_POLICY,PPOWER_POLICY);
+
+#if (_WIN32_WINNT >= 0x0600)
+#define DEVICEPOWER_HARDWAREID 0x80000000
+#define DEVICEPOWER_FILTER_DEVICES_PRESENT 0x20000000
+#define DEVICEPOWER_AND_OPERATION 0x40000000
+#define DEVICEPOWER_FILTER_WAKEENABLED 0x08000000
+#define DEVICEPOWER_FILTER_ON_NAME 0x02000000
+
+#define PDCAP_D0_SUPPORTED 0x00000001
+#define PDCAP_D1_SUPPORTED 0x00000002
+#define PDCAP_D2_SUPPORTED 0x00000004
+#define PDCAP_D3_SUPPORTED 0x00000008
+#define PDCAP_S0_SUPPORTED 0x00010000
+#define PDCAP_S1_SUPPORTED 0x00020000
+#define PDCAP_S2_SUPPORTED 0x00040000
+#define PDCAP_S3_SUPPORTED 0x00080000
+#define PDCAP_S4_SUPPORTED 0x01000000
+#define PDCAP_S5_SUPPORTED 0x02000000
+#define PDCAP_WAKE_FROM_D0_SUPPORTED 0x00000010
+#define PDCAP_WAKE_FROM_D1_SUPPORTED 0x00000020
+#define PDCAP_WAKE_FROM_D2_SUPPORTED 0x00000040
+#define PDCAP_WAKE_FROM_D3_SUPPORTED 0x00000080
+#define PDCAP_WAKE_FROM_S0_SUPPORTED 0x00100000
+#define PDCAP_WAKE_FROM_S1_SUPPORTED 0x00200000
+#define PDCAP_WAKE_FROM_S2_SUPPORTED 0x00400000
+#define PDCAP_WAKE_FROM_S3_SUPPORTED 0x00800000
+#define PDCAP_WARM_EJECT_SUPPORTED 0x00000100
+
+#define DEVICEPOWER_SET_WAKEENABLED 0x00000001
+#define DEVICEPOWER_CLEAR_WAKEENABLED 0x00000002
+
+typedef enum _POWER_DATA_ACCESSOR {
+ ACCESS_AC_POWER_SETTING_INDEX = 0, // 0x0
+ ACCESS_DC_POWER_SETTING_INDEX = 1, // 0x1
+ ACCESS_SCHEME = 16, // 0x10
+ ACCESS_SUBGROUP = 17, // 0x11
+ ACCESS_INDIVIDUAL_SETTING = 18, // 0x12
+ ACCESS_ACTIVE_SCHEME = 19, // 0x13
+ ACCESS_CREATE_SCHEME = 20 // 0x14
+} POWER_DATA_ACCESSOR, *PPOWER_DATA_ACCESSOR;
+
+BOOLEAN WINAPI DevicePowerClose(void);
+BOOLEAN WINAPI DevicePowerEnumDevices(
+ ULONG QueryIndex,
+ ULONG QueryInterpretationFlags,
+ ULONG QueryFlags,
+ PBYTE pReturnBuffer,
+ PULONG pBufferSize
+);
+
+BOOLEAN WINAPI DevicePowerOpen(
+ ULONG Flags
+);
+
+DWORD WINAPI DevicePowerSetDeviceState(
+ LPCWSTR DeviceDescription,
+ ULONG SetFlags,
+ PCVOID SetData
+);
+
+DWORD WINAPI PowerCanRestoreIndividualDefaultPowerScheme(
+ const GUID *SchemeGuid
+);
+
+DWORD WINAPI PowerCreatePossibleSetting(
+ HKEY RootSystemPowerKey,
+ const GUID *SubGroupOfPowerSettingsGuid,
+ const GUID *PowerSettingGuid,
+ ULONG PossibleSettingIndex
+);
+
+DWORD WINAPI PowerCreateSetting(
+ HKEY RootSystemPowerKey,
+ const GUID *SubGroupOfPowerSettingsGuid,
+ const GUID *PowerSettingGuid
+);
+
+DWORD WINAPI PowerDeleteScheme(
+ HKEY RootPowerKey,
+ const GUID *SchemeGuid
+);
+
+POWER_PLATFORM_ROLE WINAPI PowerDeterminePlatformRole(void);
+
+DWORD WINAPI PowerDuplicateScheme(
+ HKEY RootPowerKey,
+ const GUID *SourceSchemeGuid,
+ GUID **DestinationSchemeGuid
+);
+
+DWORD WINAPI PowerEnumerate(
+ HKEY RootPowerKey,
+ const GUID *SchemeGuid,
+ const GUID *SubGroupOfPowerSettingsGuid,
+ POWER_DATA_ACCESSOR AccessFlags,
+ ULONG Index,
+ UCHAR *Buffer,
+ DWORD *BufferSize
+);
+
+DWORD WINAPI PowerGetActiveScheme(
+ HKEY UserRootPowerKey,
+ GUID **ActivePolicyGuid
+);
+
+DWORD WINAPI PowerImportPowerScheme(
+ HKEY RootPowerKey,
+ LPCWSTR ImportFileNamePath,
+ GUID **DestinationSchemeGuid
+);
+
+DWORD WINAPI PowerReadACDefaultIndex(
+ HKEY RootPowerKey,
+ const GUID *SchemePersonalityGuid,
+ const GUID *SubGroupOfPowerSettingsGuid,
+ const GUID *PowerSettingGuid,
+ LPDWORD AcDefaultIndex
+);
+
+DWORD WINAPI PowerReadACValue(
+ HKEY RootPowerKey,
+ const GUID *SchemeGuid,
+ const GUID *SubGroupOfPowerSettingsGuid,
+ const GUID *PowerSettingGuid,
+ PULONG Type,
+ LPBYTE Buffer,
+ LPDWORD BufferSize
+);
+
+DWORD WINAPI PowerReadACValueIndex(
+ HKEY RootPowerKey,
+ const GUID *SchemeGuid,
+ const GUID *SubGroupOfPowerSettingsGuid,
+ const GUID *PowerSettingGuid,
+ LPDWORD AcValueIndex
+);
+
+DWORD WINAPI PowerReadDCDefaultIndex(
+ HKEY RootPowerKey,
+ const GUID *SchemePersonalityGuid,
+ const GUID *SubGroupOfPowerSettingsGuid,
+ const GUID *PowerSettingGuid,
+ LPDWORD DcDefaultIndex
+);
+
+DWORD WINAPI PowerReadDCValue(
+ HKEY RootPowerKey,
+ const GUID *SchemeGuid,
+ const GUID *SubGroupOfPowerSettingsGuid,
+ const GUID *PowerSettingGuid,
+ PULONG Type,
+ PUCHAR Buffer,
+ LPDWORD BufferSize
+);
+
+DWORD WINAPI PowerReadDCValueIndex(
+ HKEY RootPowerKey,
+ const GUID *SchemeGuid,
+ const GUID *SubGroupOfPowerSettingsGuid,
+ const GUID *PowerSettingGuid,
+ LPDWORD DcValueIndex
+);
+
+DWORD WINAPI PowerReadDescription(
+ HKEY RootPowerKey,
+ const GUID *SchemeGuid,
+ const GUID *SubGroupOfPowerSettingsGuid,
+ const GUID *PowerSettingGuid,
+ PUCHAR Buffer,
+ LPDWORD BufferSize
+);
+
+DWORD WINAPI PowerReadFriendlyName(
+ HKEY RootPowerKey,
+ const GUID *SchemeGuid,
+ const GUID *SubGroupOfPowerSettingsGuid,
+ const GUID *PowerSettingGuid,
+ PUCHAR Buffer,
+ LPDWORD BufferSize
+);
+
+DWORD WINAPI PowerReadIconResourceSpecifier(
+ HKEY RootPowerKey,
+ const GUID *SchemeGuid,
+ const GUID *SubGroupOfPowerSettingsGuid,
+ const GUID *PowerSettingGuid,
+ PUCHAR Buffer,
+ LPDWORD BufferSize
+);
+
+DWORD WINAPI PowerReadPossibleDescription(
+ HKEY RootPowerKey,
+ const GUID *SubGroupOfPowerSettingsGuid,
+ const GUID *PowerSettingGuid,
+ ULONG PossibleSettingIndex,
+ PUCHAR Buffer,
+ LPDWORD BufferSize
+);
+
+DWORD WINAPI PowerReadPossibleFriendlyName(
+ HKEY RootPowerKey,
+ const GUID *SubGroupOfPowerSettingsGuid,
+ const GUID *PowerSettingGuid,
+ ULONG PossibleSettingIndex,
+ PUCHAR Buffer,
+ LPDWORD BufferSize
+);
+
+DWORD WINAPI PowerReadPossibleValue(
+ HKEY RootPowerKey,
+ const GUID *SubGroupOfPowerSettingsGuid,
+ const GUID *PowerSettingGuid,
+ PULONG Type,
+ ULONG PossibleSettingIndex,
+ PUCHAR Buffer,
+ LPDWORD BufferSize
+);
+
+DWORD WINAPI PowerReadSettingAttributes(
+ const GUID *SubGroupGuid,
+ const GUID *PowerSettingGuid
+);
+
+DWORD WINAPI PowerReadValueIncrement(
+ HKEY RootPowerKey,
+ const GUID *SubGroupOfPowerSettingsGuid,
+ const GUID *PowerSettingGuid,
+ LPDWORD ValueIncrement
+);
+
+DWORD WINAPI PowerReadValueMax(
+ HKEY RootPowerKey,
+ const GUID *SubGroupOfPowerSettingsGuid,
+ const GUID *PowerSettingGuid,
+ LPDWORD ValueMaximum
+);
+
+DWORD WINAPI PowerReadValueMin(
+ HKEY RootPowerKey,
+ const GUID *SubGroupOfPowerSettingsGuid,
+ const GUID *PowerSettingGuid,
+ LPDWORD ValueMinimum
+);
+
+DWORD WINAPI PowerReadValueUnitsSpecifier(
+ HKEY RootPowerKey,
+ const GUID *SubGroupOfPowerSettingsGuid,
+ const GUID *PowerSettingGuid,
+ UCHAR *Buffer,
+ LPDWORD BufferSize
+);
+
+DWORD WINAPI PowerRemovePowerSetting(
+ const GUID *PowerSettingSubKeyGuid,
+ const GUID *PowerSettingGuid
+);
+
+DWORD WINAPI PowerReplaceDefaultPowerSchemes(void);
+
+DWORD WINAPI PowerRestoreDefaultPowerSchemes(void);
+
+DWORD WINAPI PowerRestoreIndividualDefaultPowerScheme(
+ const GUID *SchemeGuid
+);
+
+DWORD WINAPI PowerSetActiveScheme(
+ HKEY UserRootPowerKey,
+ const GUID *SchemeGuid
+);
+
+DWORD WINAPI PowerSettingAccessCheck(
+ POWER_DATA_ACCESSOR AccessFlags,
+ const GUID *PowerGuid
+);
+
+DWORD WINAPI PowerWriteACDefaultIndex(
+ HKEY RootSystemPowerKey,
+ const GUID *SchemePersonalityGuid,
+ const GUID *SubGroupOfPowerSettingsGuid,
+ const GUID *PowerSettingGuid,
+ DWORD DefaultAcIndex
+);
+
+DWORD WINAPI PowerWriteACValueIndex(
+ HKEY RootPowerKey,
+ const GUID *SchemeGuid,
+ const GUID *SubGroupOfPowerSettingsGuid,
+ const GUID *PowerSettingGuid,
+ DWORD AcValueIndex
+);
+
+DWORD WINAPI PowerWriteDCDefaultIndex(
+ HKEY RootSystemPowerKey,
+ const GUID *SchemePersonalityGuid,
+ const GUID *SubGroupOfPowerSettingsGuid,
+ const GUID *PowerSettingGuid,
+ DWORD DefaultDcIndex
+);
+
+DWORD WINAPI PowerWriteDCValueIndex(
+ HKEY RootPowerKey,
+ const GUID *SchemeGuid,
+ const GUID *SubGroupOfPowerSettingsGuid,
+ const GUID *PowerSettingGuid,
+ DWORD DcValueIndex
+);
+
+DWORD WINAPI PowerWriteDescription(
+ HKEY RootPowerKey,
+ const GUID *SchemeGuid,
+ const GUID *SubGroupOfPowerSettingsGuid,
+ const GUID *PowerSettingGuid,
+ UCHAR *Buffer,
+ DWORD BufferSize
+);
+
+DWORD WINAPI PowerWriteFriendlyName(
+ HKEY RootPowerKey,
+ const GUID *SchemeGuid,
+ const GUID *SubGroupOfPowerSettingsGuid,
+ const GUID *PowerSettingGuid,
+ UCHAR *Buffer,
+ DWORD BufferSize
+);
+
+DWORD WINAPI PowerWriteIconResourceSpecifier(
+ HKEY RootPowerKey,
+ const GUID *SchemeGuid,
+ const GUID *SubGroupOfPowerSettingsGuid,
+ const GUID *PowerSettingGuid,
+ UCHAR *Buffer,
+ DWORD BufferSize
+);
+
+DWORD WINAPI PowerWritePossibleDescription(
+ HKEY RootPowerKey,
+ const GUID *SubGroupOfPowerSettingsGuid,
+ const GUID *PowerSettingGuid,
+ ULONG PossibleSettingIndex,
+ UCHAR *Buffer,
+ DWORD BufferSize
+);
+
+DWORD WINAPI PowerWritePossibleFriendlyName(
+ HKEY RootPowerKey,
+ const GUID *SubGroupOfPowerSettingsGuid,
+ const GUID *PowerSettingGuid,
+ ULONG PossibleSettingIndex,
+ UCHAR *Buffer,
+ DWORD BufferSize
+);
+
+DWORD WINAPI PowerWritePossibleValue(
+ HKEY RootPowerKey,
+ const GUID *SubGroupOfPowerSettingsGuid,
+ const GUID *PowerSettingGuid,
+ ULONG Type,
+ ULONG PossibleSettingIndex,
+ UCHAR *Buffer,
+ DWORD BufferSize
+);
+
+#define POWER_ATTRIBUTE_HIDE 1
+
+DWORD WINAPI PowerWriteSettingAttributes(
+ const GUID *SubGroupGuid,
+ const GUID *PowerSettingGuid,
+ DWORD Attributes
+);
+
+DWORD WINAPI PowerWriteValueIncrement(
+ HKEY RootPowerKey,
+ const GUID *SubGroupOfPowerSettingsGuid,
+ const GUID *PowerSettingGuid,
+ DWORD ValueIncrement
+);
+
+DWORD WINAPI PowerWriteValueMax(
+ HKEY RootPowerKey,
+ const GUID *SubGroupOfPowerSettingsGuid,
+ const GUID *PowerSettingGuid,
+ DWORD ValueMaximum
+);
+
+DWORD WINAPI PowerWriteValueMin(
+ HKEY RootPowerKey,
+ const GUID *SubGroupOfPowerSettingsGuid,
+ const GUID *PowerSettingGuid,
+ DWORD ValueMinimum
+);
+
+DWORD WINAPI PowerWriteValueUnitsSpecifier(
+ HKEY RootPowerKey,
+ const GUID *SubGroupOfPowerSettingsGuid,
+ const GUID *PowerSettingGuid,
+ UCHAR *Buffer,
+ DWORD BufferSize
+);
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
#ifndef NT_SUCCESS
#define NTSTATUS LONG
#define _OVERRIDE_NTSTATUS_
diff --git a/mingw-w64-headers/include/prnasnot.h b/mingw-w64-headers/include/prnasnot.h
new file mode 100644
index 0000000..4f895fb
--- /dev/null
+++ b/mingw-w64-headers/include/prnasnot.h
@@ -0,0 +1,78 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_PRNASNOT
+#define _INC_PRNASNOT
+#if (_WIN32_WINNT >= 0x0600)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum tagPrintAsyncNotifyConversationStyle {
+ kBiDirectional,
+ kUniDirectional
+} PrintAsyncNotifyConversationStyle;
+
+typedef enum tagPrintAsyncNotifyError {
+ CHANNEL_CLOSED_BY_SERVER = 0x01,
+ CHANNEL_CLOSED_BY_ANOTHER_LISTENER = 0x02,
+ CHANNEL_CLOSED_BY_SAME_LISTENER = 0x03,
+ CHANNEL_RELEASED_BY_LISTENER = 0x04,
+ UNIRECTIONAL_NOTIFICATION_LOST = 0x05,
+ ASYNC_NOTIFICATION_FAILURE = 0x06,
+ NO_LISTENERS = 0x07,
+ CHANNEL_ALREADY_CLOSED = 0x08,
+ CHANNEL_ALREADY_OPENED = 0x09,
+ CHANNEL_WAITING_FOR_CLIENT_NOTIFICATION = 0x0a,
+ CHANNEL_NOT_OPENED = 0x0b,
+ ASYNC_CALL_ALREADY_PARKED = 0x0c,
+ NOT_REGISTERED = 0x0d,
+ ALREADY_UNREGISTERED = 0x0e,
+ ALREADY_REGISTERED = 0x0f,
+ CHANNEL_ACQUIRED = 0x10,
+ ASYNC_CALL_IN_PROGRESS = 0x11,
+ MAX_NOTIFICATION_SIZE_EXCEEDED = 0x12,
+ INTERNAL_NOTIFICATION_QUEUE_IS_FULL = 0x13,
+ INVALID_NOTIFICATION_TYPE = 0x14,
+ MAX_REGISTRATION_COUNT_EXCEEDED = 0x15,
+ MAX_CHANNEL_COUNT_EXCEEDED = 0x16,
+ LOCAL_ONLY_REGISTRATION = 0x17,
+ REMOTE_ONLY_REGISTRATION = 0x18
+} PrintAsyncNotifyError;
+
+typedef enum tagPrintAsyncNotifyUserFilter {
+ kPerUser,
+ kAllUsers
+} PrintAsyncNotifyUserFilter;
+
+HRESULT CreatePrintAsyncNotifyChannel(
+ LPCWSTR pName,
+ PrintAsyncNotificationType *pSchema,
+ PrintAsyncNotifyUserFilter filter,
+ PrintAsyncNotifyConversationStyle directionality,
+ IPrintAsyncNotifyCallback *pCallback,
+ IPrintAsyncNotifyChannel **ppChannel
+);
+
+HRESULT RegisterForPrintAsyncNotifications(
+ LPCWSTR pName,
+ PrintAsyncNotificationType *pSchema,
+ PrintAsyncNotifyUserFilter filter,
+ PrintAsyncNotifyConversationStyle directionality,
+ IPrintAsyncNotifyCallback *pCallback,
+ HANDLE *pRegistrationHandler
+);
+
+HRESULT UnRegisterForPrintAsyncNotifications(
+ HANDLE hRegistrationHandler
+);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* (_WIN32_WINNT >= 0x0600) */
+#endif /*_INC_PRNASNOT*/
diff --git a/mingw-w64-headers/include/propsys.h b/mingw-w64-headers/include/propsys.h
new file mode 100644
index 0000000..ff1ca98
--- /dev/null
+++ b/mingw-w64-headers/include/propsys.h
@@ -0,0 +1,72 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_PROPSYS
+#define _INC_PROPSYS
+#if (_WIN32_WINNT >= 0x0600)
+typedef struct PROPERTYKEY *REFPROPERTYKEY;
+
+#undef INTERFACE
+#define INTERFACE IPropertyStore
+DECLARE_INTERFACE_(IPropertyStore,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IPropertyStore methods */
+ STDMETHOD_(HRESULT,Commit)(THIS) PURE;
+ STDMETHOD_(HRESULT,GetAt)(THIS_ DWORD iProp,PROPERTYKEY *pkey) PURE;
+ STDMETHOD_(HRESULT,GetCount)(THIS_ DWORD *cProps) PURE;
+ STDMETHOD_(HRESULT,GetValue)(THIS_ REFPROPERTYKEY key,PROPVARIANT *pv) PURE;
+ STDMETHOD_(HRESULT,SetValue)(THIS_ REFPROPERTYKEY key,REFPROPVARIANT propvar) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IPropertyStore_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IPropertyStore_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IPropertyStore_Release(This) (This)->pVtbl->Release(This)
+#define IPropertyStore_Commit() (This)->lpVtbl->Commit(This)
+#define IPropertyStore_GetAt(This,iProp,pkey) (This)->lpVtbl->GetAt(This,iProp,pkey)
+#define IPropertyStore_GetCount(This,cProps) (This)->lpVtbl->GetCount(This,cProps)
+#define IPropertyStore_GetValue(This,key,pv) (This)->lpVtbl->GetValue(This,key,pv)
+#define IPropertyStore_SetValue(This,key,propvar) (This)->lpVtbl->SetValue(This,key,propvar)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE INamedPropertyStore
+DECLARE_INTERFACE_(INamedPropertyStore,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* INamedPropertyStore methods */
+ STDMETHOD_(HRESULT,GetNameAt)(THIS_ DWORD iProp,BSTR *pbstrName) PURE;
+ STDMETHOD_(HRESULT,GetNameCount)(THIS_ DWORD *pdwCount) PURE;
+ STDMETHOD_(HRESULT,GetNamedValue)(THIS_ LPCWSTR pszName,PROPVARIANT *pv) PURE;
+ STDMETHOD_(HRESULT,SetNamedValue)(THIS_ LPCWSTR pszName,const PROPVARIANT *pv) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define INamedPropertyStore_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define INamedPropertyStore_AddRef(This) (This)->pVtbl->AddRef(This)
+#define INamedPropertyStore_Release(This) (This)->pVtbl->Release(This)
+#define INamedPropertyStore_GetNameAt(This,iProp,pbstrName) (This)->lpVtbl->GetNameAt(This,iProp,pbstrName)
+#define INamedPropertyStore_GetNameCount(This,pdwCount) (This)->lpVtbl->GetNameCount(This,pdwCount)
+#define INamedPropertyStore_GetNamedValue(This,pszName,pv) (This)->lpVtbl->GetNamedValue(This,pszName,pv)
+#define INamedPropertyStore_SetNamedValue(This,pszName,pv) (This)->lpVtbl->SetNamedValue(This,pszName,pv)
+#endif /*COBJMACROS*/
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_PROPSYS*/
diff --git a/mingw-w64-headers/include/psapi.h b/mingw-w64-headers/include/psapi.h
index 4329b12..e16534c 100644
--- a/mingw-w64-headers/include/psapi.h
+++ b/mingw-w64-headers/include/psapi.h
@@ -119,6 +119,47 @@
WINBOOL WINAPI EnumPageFilesA (PENUM_PAGE_FILE_CALLBACKA pCallBackRoutine,LPVOID pContext);
DWORD WINAPI GetProcessImageFileNameA(HANDLE hProcess,LPSTR lpImageFileName,DWORD nSize);
DWORD WINAPI GetProcessImageFileNameW(HANDLE hProcess,LPWSTR lpImageFileName,DWORD nSize);
+
+typedef struct _PSAPI_WS_WATCH_INFORMATION_EX {
+ PSAPI_WS_WATCH_INFORMATION BasicInfo;
+ ULONG_PTR FaultingThreadId;
+ ULONG_PTR Flags;
+} PSAPI_WS_WATCH_INFORMATION_EX, *PPSAPI_WS_WATCH_INFORMATION_EX;
+
+WINBOOL WINAPI GetWsChangesEx(
+ HANDLE hProcess,
+ PPSAPI_WS_WATCH_INFORMATION_EX lpWatchInfoEx,
+ DWORD cb
+);
+
+WINBOOL WINAPI EnumProcessModulesEx(
+ HANDLE hProcess,
+ HMODULE *lphModule,
+ DWORD cb,
+ LPDWORD lpcbNeeded,
+ DWORD dwFilterFlag
+);
+
+#if (_WIN32_WINNT >= 0x0600)
+typedef union _PSAPI_WORKING_SET_EX_BLOCK {
+ ULONG_PTR Flags;
+ __MINGW_EXTENSION struct {
+ ULONG_PTR Valid :1;
+ ULONG_PTR ShareCount :3;
+ ULONG_PTR Win32Protection :11;
+ ULONG_PTR Shared :1;
+ ULONG_PTR Node :6;
+ ULONG_PTR Locked :1;
+ ULONG_PTR LargePage :1;
+ } DUMMYSTRUCTNAME;
+} PSAPI_WORKING_SET_EX_BLOCK, *PPSAPI_WORKING_SET_EX_BLOCK;
+
+typedef struct _PSAPI_WORKING_SET_EX_INFORMATION {
+ PVOID VirtualAddress;
+ PSAPI_WORKING_SET_EX_BLOCK VirtualAttributes;
+} PSAPI_WORKING_SET_EX_INFORMATION, *PPSAPI_WORKING_SET_EX_INFORMATION;
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
#ifdef __cplusplus
}
diff --git a/mingw-w64-headers/include/qos2.h b/mingw-w64-headers/include/qos2.h
new file mode 100644
index 0000000..2ca6c6c
--- /dev/null
+++ b/mingw-w64-headers/include/qos2.h
@@ -0,0 +1,169 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_QOS2
+#define _INC_QOS2
+#if (_WIN32_WINNT >= 0x0600)
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum _QOS_SHAPING {
+ QOSShapeOnly = 0,
+ QOSShapeAndMark = 1,
+ QOSUseNonConformantMarkings = 2
+} QOS_SHAPING, *PQOS_SHAPING;
+
+typedef enum _QOS_FLOWRATE_REASON {
+ QOSFlowRateNotApplicable = 0,
+ QOSFlowRateContentChange = 1,
+ QOSFlowRateCongestion = 2,
+ QOSFlowRateHigherContentEncoding = 3,
+ QOSFlowRateUserCaused = 4
+} QOS_FLOWRATE_REASON, PQOS_FLOWRATE_REASON;
+
+typedef enum _QOS_NOTIFY_FLOW {
+ QOSNotifyCongested = 0,
+ QOSNotifyUncongested = 1,
+ QOSNotifyAvailable = 2
+} QOS_NOTIFY_FLOW, *PQOS_NOTIFY_FLOW;
+
+typedef enum _QOS_QUERY_FLOW {
+ QOSQueryFlowFundamentals = 0,
+ QOSQueryPacketPriority = 1,
+ QOSQueryOutgoingRate = 2
+} QOS_QUERY_FLOW;
+
+typedef enum _QOS_SET_FLOW {
+ QOSSetTrafficType = 0,
+ QOSSetOutgoingRate = 1,
+ QOSSetOutgoingDSCPValue = 2
+} QOS_SET_FLOW, *PQOS_SET_FLOW;
+
+typedef enum _QOS_TRAFFIC_TYPE {
+ QOSTrafficTypeBestEffort,
+ QOSTrafficTypeBackground,
+ QOSTrafficTypeExcellentEffort,
+ QOSTrafficTypeAudioVideo,
+ QOSTrafficTypeVoice,
+ QOSTrafficTypeControl
+} QOS_TRAFFIC_TYPE, *PQOS_TRAFFIC_TYPE;
+
+typedef struct _QOS_FLOW_FUNDAMENTALS {
+ BOOL BottleneckBandwidthSet;
+ UINT64 BottleneckBandwidth;
+ BOOL AvailableBandwidthSet;
+ UINT64 AvailableBandwidth;
+ BOOL RTTSet;
+ UINT32 RTT;
+} QOS_FLOW_FUNDAMENTALS, *PQOS_FLOW_FUNDAMENTALS;
+
+typedef struct _QOS_FLOWRATE_OUTGOING {
+ UINT64 Bandwidth;
+ QOS_SHAPING ShapingBehavior;
+ QOS_FLOWRATE_REASON Reason;
+} QOS_FLOWRATE_OUTGOING, *PQOS_FLOWRATE_OUTGOING;
+
+typedef struct _QOS_PACKET_PRIORITY {
+ ULONG ConformantDSCPValue;
+ ULONG NonConformantDSCPValue;
+ ULONG ConformantL2Value;
+ ULONG NonConformantL2Value;
+} QOS_PACKET_PRIORITY, *PQOS_PACKET_PRIORITY;
+
+typedef struct _QOS_VERSION {
+ USHORT MajorVersion;
+ USHORT MinorVersion;
+} QOS_VERSION, *PQOS_VERSION;
+
+WINBOOL WINAPI QOSAddSocketToFlow(
+ HANDLE QOSHandle,
+ SOCKET Socket,
+ PSOCKADDR DestAddr,
+ QOS_TRAFFIC_TYPE TrafficType,
+ DWORD Flags,
+ PQOS_FLOWID FlowId
+);
+
+WINBOOL WINAPI QOSCancel(
+ HANDLE QOSHandle,
+ LPOVERLAPPED Overlapped
+);
+
+WINBOOL WINAPI QOSCloseHandle(
+ HANDLE QOSHandle
+);
+
+WINBOOL WINAPI QOSCreateHandle(
+ PQOS_VERSION Version,
+ PHANDLE QOSHandle
+);
+
+WINBOOL WINAPI QOSEnumerateFlows(
+ HANDLE QOSHandle,
+ PULONG Size,
+ PVOID Buffer
+);
+
+WINBOOL WINAPI QOSNotifyFlow(
+ HANDLE QOSHandle,
+ QOS_FLOWID FlowId,
+ QOS_NOTIFY_FLOW Operation,
+ PULONG Size,
+ PVOID Buffer,
+ DWORD Flags,
+ LPOVERLAPPED Overlapped
+);
+
+WINBOOL WINAPI QOSQueryFlow(
+ HANDLE QOSHandle,
+ QOS_FLOWID FlowId,
+ QOS_QUERY_FLOW Operation,
+ PULONG Size,
+ PVOID Buffer,
+ DWORD Flags,
+ LPOVERLAPPED Overlapped
+);
+
+WINBOOL WINAPI QOSRemoveSocketFromFlow(
+ HANDLE QOSHandle,
+ SOCKET Socket,
+ QOS_FLOWID FlowId,
+ DWORD Flags
+);
+
+#define QOSSetTrafficType 0
+#define QOSSetOutgoingRate 1
+#define QOSSetOutgoingDSCPValue 2
+
+typedef UINT32 QOS_FLOWID;
+
+WINBOOL WINAPI QOSSetFlow(
+ HANDLE QOSHandle,
+ QOS_FLOWID FlowId,
+ QOS_SET_FLOW Operation,
+ ULONG Size,
+ PVOID Buffer,
+ DWORD Flags,
+ LPOVERLAPPED Overlapped
+);
+
+WINBOOL WINAPI QOSStartTrackingClient(
+ HANDLE QOSHandle,
+ PSOCKADDR DestAddr,
+ DWORD Flags
+);
+
+WINBOOL WINAPI QOSStopTrackingClient(
+ HANDLE QOSHandle,
+ PSOCKADDR DestAddr,
+ DWORD Flags
+);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_QOS2*/
diff --git a/mingw-w64-headers/include/ras.h b/mingw-w64-headers/include/ras.h
index b012e23..c53f8b5 100644
--- a/mingw-w64-headers/include/ras.h
+++ b/mingw-w64-headers/include/ras.h
@@ -12,6 +12,10 @@
extern "C" {
#endif
+typedef struct in_addr RASIPV4ADDR;
+typedef struct in6_addr RASIPV6ADDR;
+
+
#ifndef UNLEN
#include <lmcons.h>
#endif
@@ -973,6 +977,57 @@
#define RasFreeEapUserIdentity __MINGW_NAME_AW(RasFreeEapUserIdentity)
#define RasDeleteSubEntry __MINGW_NAME_AW(RasDeleteSubEntry)
+#if (_WIN32_WINNT >= 0x0600)
+
+typedef struct _tagRasNapState {
+ DWORD dwSize;
+ DWORD dwFlags;
+ IsolationState isolationState;
+ ProbationTime probationTime;
+} RASNAPSTATE, *LPRASNAPSTATE;
+
+typedef struct _RASPPPIPV6 {
+ DWORD dwSize;
+ DWORD dwError;
+ BYTE bLocalInterfaceIdentifier[8];
+ BYTE bPeerInterfaceIdentifier[8];
+ BYTE bLocalCompressionProtocol[2];
+ BYTE bPeerCompressionProtocol[2];
+} RASPPPIPV6, *LPRASPPPIPV6;
+
+DWORD rasgetnapstatus(
+ HRASCONN hRasConn,
+ LPRASNAPSTATE pNapState
+);
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
+#if (_WIN32_WINNT >= 0x0601)
+typedef enum {
+ RASAPIVERSION_500 = 1,
+ RASAPIVERSION_501 = 2,
+ RASAPIVERSION_600 = 3,
+ RASAPIVERSION_601 = 4
+} RASAPIVERSION;
+
+typedef struct _RASTUNNELENDPOINT {
+ DWORD dwType;
+ __MINGW_EXTENSION union {
+ RASIPV4ADDR ipv4;
+ RASIPV6ADDR ipv6;
+ } DUMMYUNIONNAME;
+} RASTUNNELENDPOINT, *PRASTUNNELENDPOINT;
+
+typedef struct _RASUPDATECONN {
+ RASAPIVERSION version;
+ DWORD dwSize;
+ DWORD dwFlags;
+ DWORD dwIfIndex;
+ RASTUNNELENDPOINT localEndPoint;
+ RASTUNNELENDPOINT remoteEndPoint;
+} RASUPDATECONN, *LPRASUPDATECONN;
+#endif /*(_WIN32_WINNT >= 0x0601)*/
+
#ifdef __cplusplus
}
#endif
diff --git a/mingw-w64-headers/include/rdpencomapi.h b/mingw-w64-headers/include/rdpencomapi.h
new file mode 100644
index 0000000..c8491c9
--- /dev/null
+++ b/mingw-w64-headers/include/rdpencomapi.h
@@ -0,0 +1,164 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_RDPENCOMAPI
+#define _INC_RDPENCOMAPI
+
+#if (_WIN32_WINNT >= 0x0600)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum _ATTENDEE_DISCONNECT_REASON {
+ ATTENDEE_DISCONNECT_REASON_MIN = 0,
+ ATTENDEE_DISCONNECT_REASON_APP = 0,
+ ATTENDEE_DISCONNECT_REASON_ERR = 1,
+ ATTENDEE_DISCONNECT_REASON_CLI = 2,
+ ATTENDEE_DISCONNECT_REASON_MAX = 2
+} ATTENDEE_DISCONNECT_REASON;
+
+typedef enum _CHANNEL_ACCESS_ENUM {
+ CHANNEL_ACCESS_ENUM_NONE = 0,
+ CHANNEL_ACCESS_ENUM_SENDRECEIVE = 1
+} CHANNEL_ACCESS_ENUM;
+
+typedef enum _CHANNEL_FLAGS {
+ CHANNEL_FLAGS_LEGACY = 0x01,
+ CHANNEL_FLAGS_UNCOMPRESSED = 0x02
+} CHANNEL_FLAGS;
+
+typedef enum _CHANNEL_PRIORITY {
+ CHANNEL_PRIORITY_LO = 0,
+ CHANNEL_PRIORITY_MED = 1,
+ CHANNEL_PRIORITY_HI = 2
+} CHANNEL_PRIORITY;
+
+typedef enum _CTRL_LEVEL {
+ CTRL_LEVEL_MIN = 0,
+ CTRL_LEVEL_INVALID = 0,
+ CTRL_LEVEL_NONE = 1,
+ CTRL_LEVEL_VIEW = 2,
+ CTRL_LEVEL_INTERACTIVE = 3,
+ CTRL_LEVEL_MAX = 3
+} CTRL_LEVEL;
+
+typedef enum _RDPENCOMAPI_ATTENDEE_FLAGS {
+ ATTENDEE_FLAGS_LOCAL = 1
+} RDPENCOMAPI_ATTENDEE_FLAGS;
+
+typedef enum _RDPENCOMAPI_CONSTANTS {
+ CONST_MAX_CHANNEL_MESSAGE_SIZE = 1024,
+ CONST_MAX_CHANNEL_NAME_LEN = 8,
+ CONST_MAX_LEGACY_CHANNEL_MESSAGE_SIZE = 409600,
+ CONST_ATTENDEE_ID_EVERYONE = -1,
+ CONST_ATTENDEE_ID_HOST = 0,
+ CONST_CONN_INTERVAL = 50
+} RDPENCOMAPI_CONSTANTS;
+
+typedef enum _RDPSRAPI_APP_FLAGS {
+ APP_FLAG_PRIVILEGED = 1
+} RDPSRAPI_APP_FLAGS;
+
+typedef enum _RDPSRAPI_WND_FLAGS {
+ WND_FLAG_PRIVILEGED = 1
+} RDPSRAPI_WND_FLAGS;
+
+#ifdef __cplusplus
+}
+#endif
+
+#undef INTERFACE
+#define INTERFACE IRDPSRAPITcpConnectionInfo
+DECLARE_INTERFACE_(IRDPSRAPITcpConnectionInfo,IDispatch)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IDispatch methods */
+ STDMETHOD_(HRESULT,GetTypeInfoCount)(THIS_ unsigned int FAR* pctinfo) PURE;
+ STDMETHOD_(HRESULT,GetTypeInfo)(THIS_ unsigned int iTInfo,LCID lcid,ITypeInfo FAR* FAR* ppTInfo) PURE;
+ STDMETHOD_(HRESULT,GetIDsOfNames)(THIS_ REFIID riid,OLECHAR FAR* FAR* rgszNames,unsigned int cNames,LCID lcid,DISPID FAR* rgDispId) PURE;
+ STDMETHOD_(HRESULT,Invoke)(THIS_ DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS FAR* pDispParams,VARIANT FAR* pVarResult,EXCEPINFO FAR* pExcepInfo,unsigned int FAR* puArgErr) PURE;
+
+ /* IRDPSRAPITcpConnectionInfo methods */
+ STDMETHOD_(HRESULT,get_Protocol)(THIS_ long *plProtocol) PURE;
+ STDMETHOD_(HRESULT,get_LocalPort)(THIS_ long *plPort) PURE;
+ STDMETHOD_(HRESULT,get_LocalIP)(THIS_ BSTR *pbstrLocalIP) PURE;
+ STDMETHOD_(HRESULT,get_PeerPort)(THIS_ long *plPort) PURE;
+ STDMETHOD_(HRESULT,get_PeerIP)(THIS_ BSTR *pbstrIP) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IRDPSRAPITcpConnectionInfo_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IRDPSRAPITcpConnectionInfo_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IRDPSRAPITcpConnectionInfo_Release(This) (This)->pVtbl->Release(This)
+#define IRDPSRAPITcpConnectionInfo_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IRDPSRAPITcpConnectionInfo_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IRDPSRAPITcpConnectionInfo_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IRDPSRAPITcpConnectionInfo_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+#define IRDPSRAPITcpConnectionInfo_get_Protocol(This,plProtocol) (This)->lpVtbl->get_Protocol(This,plProtocol)
+#define IRDPSRAPITcpConnectionInfo_get_LocalPort(This,plPort) (This)->lpVtbl->get_LocalPort(This,plPort)
+#define IRDPSRAPITcpConnectionInfo_get_LocalIP(This,pbstrLocalIP) (This)->lpVtbl->get_LocalIP(This,pbstrLocalIP)
+#define IRDPSRAPITcpConnectionInfo_get_PeerPort(This,plPort) (This)->lpVtbl->get_PeerPort(This,plPort)
+#define IRDPSRAPITcpConnectionInfo_get_PeerIP(This,pbstrIP) (This)->lpVtbl->get_PeerIP(This,pbstrIP)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IRDPSRAPIAttendee
+DECLARE_INTERFACE_(IRDPSRAPIAttendee,IDispatch)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IDispatch methods */
+ STDMETHOD_(HRESULT,GetTypeInfoCount)(THIS_ unsigned int FAR* pctinfo) PURE;
+ STDMETHOD_(HRESULT,GetTypeInfo)(THIS_ unsigned int iTInfo,LCID lcid,ITypeInfo FAR* FAR* ppTInfo) PURE;
+ STDMETHOD_(HRESULT,GetIDsOfNames)(THIS_ REFIID riid,OLECHAR FAR* FAR* rgszNames,unsigned int cNames,LCID lcid,DISPID FAR* rgDispId) PURE;
+ STDMETHOD_(HRESULT,Invoke)(THIS_ DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS FAR* pDispParams,VARIANT FAR* pVarResult,EXCEPINFO FAR* pExcepInfo,unsigned int FAR* puArgErr) PURE;
+
+ /* IRDPSRAPIAttendee methods */
+ STDMETHOD_(HRESULT,get_Id)(THIS_ long *pId) PURE;
+ STDMETHOD_(HRESULT,get_RemoteName)(THIS_ BSTR *pVal) PURE;
+ STDMETHOD_(HRESULT,get_ControlLevel)(THIS_ CTRL_LEVEL *pVal) PURE;
+ STDMETHOD_(HRESULT,put_ControlLevel)(THIS_ CTRL_LEVEL pNewVal) PURE;
+ STDMETHOD_(HRESULT,get_Invitation)(THIS_ IRDPSRAPIInvitation **ppVal) PURE;
+ STDMETHOD_(HRESULT,TerminateConnection)(THIS) PURE;
+ STDMETHOD_(HRESULT,get_Flags)(THIS_ long *plFlags) PURE;
+ STDMETHOD_(HRESULT,get_ConnectivityInfo)(THIS_ IUnknown **ppVal) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IRDPSRAPIAttendee_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IRDPSRAPIAttendee_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IRDPSRAPIAttendee_Release(This) (This)->pVtbl->Release(This)
+#define IRDPSRAPIAttendee_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IRDPSRAPIAttendee_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IRDPSRAPIAttendee_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IRDPSRAPIAttendee_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+#define IRDPSRAPIAttendee_get_Id(This,pId) (This)->lpVtbl->get_Id(This,pId)
+#define IRDPSRAPIAttendee_get_RemoteName(This,pVal) (This)->lpVtbl->get_RemoteName(This,pVal)
+#define IRDPSRAPIAttendee_get_ControlLevel(This,pVal) (This)->lpVtbl->get_ControlLevel(This,pVal)
+#define IRDPSRAPIAttendee_put_ControlLevel(This,pNewVal) (This)->lpVtbl->put_ControlLevel(This,pNewVal)
+#define IRDPSRAPIAttendee_get_Invitation(This,ppVal) (This)->lpVtbl->get_Invitation(This,ppVal)
+#define IRDPSRAPIAttendee_TerminateConnection() (This)->lpVtbl->TerminateConnection(This)
+#define IRDPSRAPIAttendee_get_Flags(This,plFlags) (This)->lpVtbl->get_Flags(This,plFlags)
+#define IRDPSRAPIAttendee_get_ConnectivityInfo(This,ppVal) (This)->lpVtbl->get_ConnectivityInfo(This,ppVal)
+#endif /*COBJMACROS*/
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
+#endif /*_INC_RDPENCOMAPI */
+
diff --git a/mingw-w64-headers/include/resapi.h b/mingw-w64-headers/include/resapi.h
index 0dfa052..6c45b77 100644
--- a/mingw-w64-headers/include/resapi.h
+++ b/mingw-w64-headers/include/resapi.h
@@ -237,6 +237,120 @@
DWORD WINAPI ResUtilGetCoreClusterResources(HCLUSTER hCluster,HRESOURCE *phClusterNameResource,HRESOURCE *phClusterIPAddressResource,HRESOURCE *phClusterQuorumResource);
DWORD WINAPI ResUtilGetResourceName(HRESOURCE hResource,PWSTR pszResourceName,DWORD *pcchResourceNameInOut);
+#if (_WIN32_WINNT >= 0x0600)
+typedef enum _CLUSTER_ROLE {
+ ClusterRoleDHCP = 0,
+ ClusterRoleDTC = 1,
+ ClusterRoleFileServer = 2,
+ ClusterRoleGenericApplication = 3,
+ ClusterRoleGenericScript = 4,
+ ClusterRoleGenericService = 5,
+ ClusterRoleISCSINameServer = 6,
+ ClusterRoleMSMQ = 7,
+ ClusterRoleNFS = 8,
+ ClusterRolePrintServer = 9,
+ ClusterRoleStandAloneNamespaceServer = 10,
+ ClusterRoleVolumeShadowCopyServiceTask = 11,
+ ClusterRoleWINS = 12
+} CLUSTER_ROLE;
+
+typedef enum _CLUSTER_ROLE_STATE {
+ ClusterRoleUnknown = -1,
+ ClusterRoleClustered = 0,
+ ClusterRoleUnclustered = 1
+} CLUSTER_ROLE_STATE;
+
+typedef enum RESOURCE_MONITOR_STATE {
+ RmonInitializing,
+ RmonIdle,
+ RmonStartingResource,
+ RmonInitializingResource,
+ RmonOnlineResource,
+ RmonOfflineResource,
+ RmonShutdownResource,
+ RmonDeletingResource,
+ RmonIsAlivePoll,
+ RmonLooksAlivePoll,
+ RmonArbitrateResource,
+ RmonReleaseResource,
+ RmonResourceControl,
+ RmonResourceTypeControl,
+ RmonTerminateResource,
+ RmonDeadlocked
+} RESOURCE_MONITOR_STATE;
+
+typedef DWORD (CALLBACK *LPRESOURCE_CALLBACK)(
+ HRESOURCE hSelf,
+ HRESOURCE hResource,
+ PVOID pParameter
+);
+
+typedef DWORD (CALLBACK *LPRESOURCE_CALLBACK_EX)(
+ HCLUSTER hCluster,
+ HRESOURCE hSelf,
+ HRESOURCE hResource,
+ PVOID pParameter
+);
+
+typedef struct RESUTIL_FILETIME_DATA {
+ FILETIME Default;
+ FILETIME Minimum;
+ FILETIME Maximum;
+} RESUTIL_FILETIME_DATA, *PRESUTIL_FILETIME_DATA;
+
+DWORD ResUtilFindFileTimeProperty(
+ const PVOID pPropertyList,
+ DWORD cbPropertyListSize,
+ LPCWSTR pszPropertyName,
+ LPFILETIME pftPropertyValue
+);
+
+CLUSTER_ROLE_STATE WINAPI ResUtilGetClusterRoleState(
+ HCLUSTER hCluster,
+ CLUSTER_ROLE eClusterRole
+);
+
+DWORD WINAPI ResUtilGetFileTimeProperty(
+ LPFILETIME pftOutValue,
+ const PCLUSPROP_FILETIME pValueStruct,
+ FILETIME ftOldValue,
+ FILETIME ftMinimum,
+ FILETIME ftMaximum,
+ LPBYTE *ppPropertyList,
+ LPDWORD pcbPropertyListSize
+);
+
+DWORD WINAPI ResUtilGetLongProperty(
+ LPLONG plOutValue,
+ const PCLUSPROP_LONG pValueStruct,
+ LONG lOldValue,
+ LONG lMinimum,
+ LONG lMaximum,
+ LPBYTE *ppPropertyList,
+ LPDWORD pcbPropertyListSize
+);
+
+DWORD WINAPI ResUtilGetQwordValue(
+ HKEY hkeyClusterKey,
+ LPCWSTR pszValueName,
+ PULONGLONG pqwOutValue,
+ ULONGLONG qwDefaultValue
+);
+
+DWORD WINAPI ResUtilSetQwordValue(
+ HKEY hkeyClusterKey,
+ LPCWSTR pszValueName,
+ ULONGLONG qwNewValue,
+ PULONGLONG pqwOutValue
+);
+
+typedef DWORD (WINAPI *PWORKER_START_ROUTINE)(
+ PCLUS_WORKER pWorker,
+ LPVOID lpThreadParameter
+);
+
+#endif /* (_WIN32_WINNT >= 0x0600) */
+
#ifdef __cplusplus
}
#endif
diff --git a/mingw-w64-headers/include/restartmanager.h b/mingw-w64-headers/include/restartmanager.h
new file mode 100644
index 0000000..67be89c
--- /dev/null
+++ b/mingw-w64-headers/include/restartmanager.h
@@ -0,0 +1,173 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_RESTARTMANAGER
+#define _INC_RESTARTMANAGER
+
+#if (_WIN32_WINNT >= 0x0600)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum _RM_APP_STATUS {
+ RmStatusUnknown = 0x0,
+ RmStatusRunning = 0x1,
+ RmStatusStopped = 0x2,
+ RmStatusStoppedOther = 0x4,
+ RmStatusRestarted = 0x8,
+ RmStatusErrorOnStop = 0x10,
+ RmStatusErrorOnRestart = 0x20,
+ RmStatusShutdownMasked = 0x40,
+ RmStatusRestartMasked = 0x80
+} RM_APP_STATUS;
+
+typedef enum _RM_APP_TYPE {
+ RmUnknownApp = 0,
+ RmMainWindow = 1,
+ RmOtherWindow = 2,
+ RmService = 3,
+ RmExplorer = 4,
+ RmConsole = 5,
+ RmCritical = 1000
+} RM_APP_TYPE;
+
+typedef enum _RM_FILTER_ACTION {
+ RmInvalidFilterAction = 0,
+ RmNoRestart = 1,
+ RmNoShutdown = 2
+} RM_FILTER_ACTION;
+
+typedef enum _RM_FILTER_TRIGGER {
+ RmFilterTriggerInvalid = 0,
+ RmFilterTriggerFile = 1,
+ RmFilterTriggerProcess = 2,
+ RmFilterTriggerService = 3
+} RM_FILTER_TRIGGER;
+
+typedef enum _RM_REBOOT_REASON {
+ RmRebootReasonNone = 0x0,
+ RmRebootReasonPermissionDenied = 0x1,
+ RmRebootReasonSessionMismatch = 0x2,
+ RmRebootReasonCriticalProcess = 0x4,
+ RmRebootReasonCriticalService = 0x8,
+ RmRebootReasonDetectedSelf = 0x10
+} RM_REBOOT_REASON;
+
+typedef enum _RM_SHUTDOWN_TYPE {
+ RmForceShutdown = 0x1,
+ RmShutdownOnlyRegistered = 0x10
+} RM_SHUTDOWN_TYPE;
+
+typedef struct _RM_UNIQUE_PROCESS {
+ DWORD dwProcessId;
+ FILETIME ProcessStartTime;
+} RM_UNIQUE_PROCESS, *PRM_UNIQUE_PROCESS;
+
+typedef struct _RM_FILTER_INFO {
+ RM_FILTER_ACTION FilterAction;
+ RM_FILTER_TRIGGER FilterTrigger;
+ DWORD cbNextOffset;
+ LPWSTR strFilename;
+ RM_UNIQUE_PROCESS Process;
+ LPWSTR strServiceShortName;
+} RM_FILTER_INFO, *PRM_FILTER_INFO;
+
+typedef struct _RM_PROCESS_INFO {
+ RM_UNIQUE_PROCESS Process;
+ WCHAR strAppName[CCH_RM_MAX_APP_NAME+1];
+ WCHAR strServiceShortName[CCH_RM_MAX_SVC_NAME+1];
+ RM_APP_TYPE ApplicationType;
+ ULONG AppStatus;
+ DWORD TSSessionId;
+ WINBOOL bRestartable;
+} RM_PROCESS_INFO;
+
+typedef void ( *RM_WRITE_STATUS_CALLBACK )(
+ UINT nPercentComplete
+);
+
+DWORD WINAPI RmAddFilter(
+ DWORD dwSessionHandle,
+ LPCWSTR strFilename,
+ RM_UNIQUE_PROCESS *Application,
+ LPCWSTR strShortServiceName,
+ RM_FILTER_ACTION ActionType
+);
+
+DWORD WINAPI RmCancelCurrentTask(
+ DWORD dwSessionHandle
+);
+
+DWORD WINAPI RmEndSession(
+ DWORD dwSessionHandle
+);
+
+DWORD WINAPI RmGetFilterList(
+ DWORD dwSessionHandle,
+ PBYTE pbFilterBuf,
+ DWORD cbFilterBuf,
+ LPDWORD cbFilterBufNeeded
+);
+
+DWORD WINAPI RmGetList(
+ DWORD dwSessionHandle,
+ UINT *pnProcInfoNeeded,
+ UINT *pnProcInfo,
+ RM_PROCESS_INFO rgAffectedApps[ ],
+ LPDWORD lpdwRebootReasons
+);
+
+DWORD WINAPI RmJoinSession(
+ DWORD *pSessionHandle,
+ const WCHAR strSessionKey[ ]
+);
+
+DWORD WINAPI RmRegisterResources(
+ DWORD dwSessionHandle,
+ UINT nFiles,
+ LPCWSTR rgsFilenames[ ],
+ UINT nApplications,
+ RM_UNIQUE_PROCESS rgApplications[ ],
+ UINT nServices,
+ LPCWSTR rgsServiceNames[ ]
+);
+
+DWORD WINAPI RmRemoveFilter(
+ DWORD dwSessionHandle,
+ LPCWSTR strFilename,
+ RM_UNIQUE_PROCESS *Application,
+ LPCWSTR strShortServiceName
+);
+
+DWORD WINAPI RmRestart(
+ DWORD dwSessionHandle,
+ DWORD dwRestartFlags,
+ RM_WRITE_STATUS_CALLBACK fnStatus
+);
+
+#define RmForceShutdown 0x1
+#define RmShutdownOnlyRegistered 0x10
+
+DWORD WINAPI RmShutdown(
+ DWORD dwSessionHandle,
+ ULONG lActionFlags,
+ RM_WRITE_STATUS_CALLBACK fnStatus
+);
+
+DWORD WINAPI RmStartSession(
+ DWORD *pSessionHandle,
+ DWORD dwSessionFlags,
+ WCHAR strSessionKey[]
+);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* (_WIN32_WINNT >= 0x0600) */
+
+#endif /*_INC_RESTARTMANAGER*/
+
diff --git a/mingw-w64-headers/include/rpcasync.h b/mingw-w64-headers/include/rpcasync.h
index 6f7b3cf..3aa968e 100644
--- a/mingw-w64-headers/include/rpcasync.h
+++ b/mingw-w64-headers/include/rpcasync.h
@@ -182,6 +182,147 @@
RPC_STATUS RPC_ENTRY I_RpcAsyncAbortCall(PRPC_ASYNC_STATE pAsync,unsigned long ExceptionCode);
int RPC_ENTRY I_RpcExceptionFilter(unsigned long ExceptionCode);
+typedef union _RPC_ASYNC_NOTIFICATION_INFO {
+ __MINGW_EXTENSION struct {
+ PFN_RPCNOTIFICATION_ROUTINE NotificationRoutine;
+ HANDLE hThread;
+ } APC;
+ __MINGW_EXTENSION struct {
+ HANDLE hIOPort;
+ DWORD dwNumberOfBytesTransferred;
+ DWORD_PTR dwCompletionKey;
+ LPOVERLAPPED lpOverlapped;
+ } IOC;
+ __MINGW_EXTENSION struct {
+ HWND hWnd;
+ UINT Msg;
+ } HWND;
+ HANDLE hEvent;
+ PFN_RPCNOTIFICATION_ROUTINE NotificationRoutine;
+} RPC_ASYNC_NOTIFICATION_INFO, *PRPC_ASYNC_NOTIFICATION_INFO;
+
+RPC_STATUS RPC_ENTRY RpcBindingBind(
+ PRPC_ASYNC_STATE pAsync,
+ RPC_BINDING_HANDLE Binding,
+ RPC_IF_HANDLE IfSpec
+);
+
+RPC_STATUS RPC_ENTRY RpcBindingUnbind(
+ RPC_BINDING_HANDLE Binding
+);
+
+typedef enum _RpcCallType {
+ rctInvalid,
+ rctNormal,
+ rctTraining,
+ rctGuaranteed
+} RpcCallType;
+
+typedef enum _RpcLocalAddressFormat {
+ rlafInvalid,
+ rlafIPv4,
+ rlafIPv6
+} RpcLocalAddressFormat;
+
+typedef enum _RPC_NOTIFICATIONS {
+ RpcNotificationCallNone = 0,
+ RpcNotificationClientDisconnect = 1,
+ RpcNotificationCallCancel = 2
+} RPC_NOTIFICATIONS;
+
+typedef enum _RpcCallClientLocality {
+ rcclInvalid,
+ rcclLocal,
+ rcclRemote,
+ rcclClientUnknownLocality
+} RpcCallClientLocality;
+
+RPC_STATUS RPC_ENTRY RpcServerSubscribeForNotification(
+ RPC_BINDING_HANDLE Binding,
+ DWORD Notification,
+ RPC_NOTIFICATION_TYPES NotificationType,
+ RPC_ASYNC_NOTIFICATION_INFO *NotificationInfo
+);
+
+RPC_STATUS RPC_ENTRY RpcServerUnsubscribeForNotification(
+ RPC_BINDING_HANDLE Binding,
+ RPC_NOTIFICATIONS Notification,
+ unsigned long *NotificationsQueued
+);
+
+#if (_WIN32_WINNT >= 0x0600)
+
+typedef struct tagRPC_CALL_LOCAL_ADDRESS_V1_A {
+ unsigned int Version;
+ void *Buffer;
+ unsigned long BufferSize;
+ RpcLocalAddressFormat AddressFormat;
+} RPC_CALL_LOCAL_ADDRESS_V1_A, RPC_CALL_LOCAL_ADDRESS_A;
+
+typedef struct tagRPC_CALL_LOCAL_ADDRESS_V1_W {
+ unsigned int Version;
+ void *Buffer;
+ unsigned long BufferSize;
+ RpcLocalAddressFormat AddressFormat;
+} RPC_CALL_LOCAL_ADDRESS_V1_W, RPC_CALL_LOCAL_ADDRESS_W;
+
+#define RPC_CALL_LOCAL_ADDRESS_V1 __MINGW_NAME_AW(RPC_CALL_LOCAL_ADDRESS_V1_)
+#define RPC_CALL_LOCAL_ADDRESS __MINGW_NAME_AW(RPC_CALL_LOCAL_ADDRESS_)
+
+typedef struct tagRPC_CALL_ATTRIBUTES_V2A {
+ unsigned int Version;
+ unsigned long Flags;
+ unsigned long ServerPrincipalNameBufferLength;
+ unsigned short *ServerPrincipalName;
+ unsigned long ClientPrincipalNameBufferLength;
+ unsigned short *ClientPrincipalName;
+ unsigned long AuthenticationLevel;
+ unsigned long AuthenticationService;
+ WINBOOL NullSession;
+ WINBOOL KernelMode;
+ unsigned long ProtocolSequence;
+ RpcCallClientLocality IsClientLocal;
+ HANDLE ClientPID;
+ unsigned long CallStatus;
+ RpcCallType CallType;
+ RPC_CALL_LOCAL_ADDRESS_A *CallLocalAddress;
+ unsigned short OpNum;
+ UUID InterfaceUuid;
+} RPC_CALL_ATTRIBUTES_V2_A, RPC_CALL_ATTRIBUTES_A;
+
+typedef struct tagRPC_CALL_ATTRIBUTES_V2W {
+ unsigned int Version;
+ unsigned long Flags;
+ unsigned long ServerPrincipalNameBufferLength;
+ unsigned short *ServerPrincipalName;
+ unsigned long ClientPrincipalNameBufferLength;
+ unsigned short *ClientPrincipalName;
+ unsigned long AuthenticationLevel;
+ unsigned long AuthenticationService;
+ WINBOOL NullSession;
+ WINBOOL KernelMode;
+ unsigned long ProtocolSequence;
+ RpcCallClientLocality IsClientLocal;
+ HANDLE ClientPID;
+ unsigned long CallStatus;
+ RpcCallType CallType;
+ RPC_CALL_LOCAL_ADDRESS_W *CallLocalAddress;
+ unsigned short OpNum;
+ UUID InterfaceUuid;
+} RPC_CALL_ATTRIBUTES_V2_W, RPC_CALL_ATTRIBUTES_W;
+
+#define RPC_CALL_ATTRIBUTES_V2 __MINGW_NAME_AW(RPC_CALL_ATTRIBUTES_V2_)
+
+RPC_STATUS RPC_ENTRY RpcDiagnoseError(
+ RPC_BINDING_HANDLE BindingHandle,
+ RPC_IF_HANDLE IfSpec,
+ RPC_STATUS RpcStatus,
+ RPC_ERROR_ENUM_HANDLE *EnumHandle,
+ ULONG Options,
+ HWND ParentWindow
+);
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
#ifdef __cplusplus
}
#endif
diff --git a/mingw-w64-headers/include/rpcdce.h b/mingw-w64-headers/include/rpcdce.h
index debc3c5..5e498a5 100644
--- a/mingw-w64-headers/include/rpcdce.h
+++ b/mingw-w64-headers/include/rpcdce.h
@@ -565,6 +565,61 @@
#define RPC_IF_ALLOW_LOCAL_ONLY 0x0020
#define RPC_IF_SEC_NO_CACHE 0x0040
+#if (_WIN32_WINNT >= 0x0600)
+
+typedef struct _RPC_BINDING_HANDLE_OPTIONS_V1 {
+ unsigned long Version;
+ unsigned long Flags;
+ unsigned long ComTimeout;
+ unsigned long CallTimeout;
+} RPC_BINDING_HANDLE_OPTIONS_V1, RPC_BINDING_HANDLE_OPTIONS;
+
+typedef struct {
+ unsigned long Version;
+ unsigned short *ServerPrincName;
+ unsigned long AuthnLevel;
+ unsigned long AuthnSvc;
+ SEC_WINNT_AUTH_IDENTITY *AuthIdentity;
+ RPC_SECURITY_QOS *SecurityQos;
+} RPC_BINDING_HANDLE_SECURITY_V1, RPC_BINDING_HANDLE_SECURITY;
+
+typedef struct _RPC_BINDING_HANDLE_TEMPLATE {
+ unsigned long Version;
+ unsigned long Flags;
+ unsigned long ProtocolSequence;
+ unsigned short *NetworkAddress;
+ unsigned short *StringEndpoint;
+ __MINGW_EXTENSION union {
+ unsigned short *Reserved;
+ } u1;
+ UUID ObjectUuid;
+} RPC_BINDING_HANDLE_TEMPLATE_V1, RPC_BINDING_HANDLE_TEMPLATE;
+
+#define RPC_CALL_STATUS_IN_PROGRESS 0x01
+#define RPC_CALL_STATUS_CANCELLED 0x02
+#define RPC_CALL_STATUS_DISCONNECTED 0x03
+
+RPC_STATUS RPC_ENTRY RpcBindingCreateA(
+ RPC_BINDING_HANDLE_TEMPLATE *Template,
+ RPC_BINDING_HANDLE_SECURITY *Security,
+ RPC_BINDING_HANDLE_OPTIONS *Options,
+ RPC_BINDING_HANDLE *Binding
+);
+
+RPC_STATUS RPC_ENTRY RpcBindingCreateW(
+ RPC_BINDING_HANDLE_TEMPLATE *Template,
+ RPC_BINDING_HANDLE_SECURITY *Security,
+ RPC_BINDING_HANDLE_OPTIONS *Options,
+ RPC_BINDING_HANDLE *Binding
+);
+#define RpcBindingCreate __MINGW_NAME_AW(RpcBindingCreate)
+
+RPC_STATUS RpcServerInqBindingHandle(
+ RPC_BINDING_HANDLE *Binding
+);
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
#include <rpcdcep.h>
#ifdef __cplusplus
diff --git a/mingw-w64-headers/include/scarderr.h b/mingw-w64-headers/include/scarderr.h
index 96c0227..7c799c7 100644
--- a/mingw-w64-headers/include/scarderr.h
+++ b/mingw-w64-headers/include/scarderr.h
@@ -74,4 +74,8 @@
#define SCARD_W_CANCELLED_BY_USER ((DWORD)0x8010006EL)
#define SCARD_W_CARD_NOT_AUTHENTICATED ((DWORD)0x8010006FL)
+#define SCARD_W_CACHE_ITEM_NOT_FOUND ((DWORD)0x80100070L)
+#define SCARD_W_CACHE_ITEM_STALE ((DWORD)0x80100071L)
+
#endif
+
diff --git a/mingw-w64-headers/include/schannel.h b/mingw-w64-headers/include/schannel.h
index 905cc30..3e2ee33 100644
--- a/mingw-w64-headers/include/schannel.h
+++ b/mingw-w64-headers/include/schannel.h
@@ -361,4 +361,10 @@
typedef WINBOOL (WINAPI *SSL_CRACK_CERTIFICATE_FN)(PUCHAR pbCertificate,DWORD cbCertificate,WINBOOL VerifySignature,PX509Certificate *ppCertificate);
typedef VOID (WINAPI *SSL_FREE_CERTIFICATE_FN)(PX509Certificate pCertificate);
+#if (_WIN32_WINNT >= 0x0600)
+typedef struct _SecPkgContext_EapPrfInfo {
+ DWORD dwVersion;
+ DWORD cbPrfData;
+} SecPkgContext_EapPrfInfo, *PSecPkgContext_EapPrfInfo;
+#endif /*(_WIN32_WINNT >= 0x0600)*/
#endif
diff --git a/mingw-w64-headers/include/sdohlp.idl b/mingw-w64-headers/include/sdohlp.idl
new file mode 100644
index 0000000..de8fd2e
--- /dev/null
+++ b/mingw-w64-headers/include/sdohlp.idl
@@ -0,0 +1,1126 @@
+/* Automated generated idl file <sdohlplib>.
+ * Generated by genidl tool (c) 2009, 2010 Mingw-w64 project.
+ */
+
+/* Interface forward declarations. */
+interface IIASItemInternal;
+
+/* Union record forward declarations. */
+dispinterface IIASItem;
+dispinterface ISdo;
+dispinterface IIASEnum;
+dispinterface IIASCollection;
+dispinterface ISdoCollection;
+dispinterface IIASItemsCollection;
+dispinterface IIASAttributesCollection;
+dispinterface IIASConditionsCollection;
+dispinterface IIASAccounting;
+dispinterface IIASFileAccounting;
+dispinterface IIASSQLAccounting;
+dispinterface IIASService;
+dispinterface IIASClient;
+dispinterface IIASRemoteServer;
+dispinterface IIASRemediationServer;
+dispinterface IIASPolicy;
+dispinterface IIASServerGroup;
+dispinterface IIASSHVTemplate;
+dispinterface IIASSDOHelper;
+dispinterface ISdoDictionaryOld;
+dispinterface ISdoServiceControl;
+
+/* Union record forward declarations. */
+coclass IASSDOHelper;
+
+/* Enumeration declarations. */
+enum _ATTRIBUTEID
+{
+ ATTRIBUTE_UNDEFINED = (int) 201326592,
+ ATTRIBUTE_MIN_VALUE = (int) 201326593,
+ RADIUS_ATTRIBUTE_USER_NAME = (int) 201326593,
+ RADIUS_ATTRIBUTE_USER_PASSWORD = (int) 201326594,
+ RADIUS_ATTRIBUTE_CHAP_PASSWORD = (int) 201326595,
+ RADIUS_ATTRIBUTE_NAS_IP_ADDRESS = (int) 201326596,
+ RADIUS_ATTRIBUTE_NAS_PORT = (int) 201326597,
+ RADIUS_ATTRIBUTE_SERVICE_TYPE = (int) 201326598,
+ RADIUS_ATTRIBUTE_FRAMED_PROTOCOL = (int) 201326599,
+ RADIUS_ATTRIBUTE_FRAMED_IP_ADDRESS = (int) 201326600,
+ RADIUS_ATTRIBUTE_FRAMED_IP_NETMASK = (int) 201326601,
+ RADIUS_ATTRIBUTE_FRAMED_ROUTING = (int) 201326602,
+ RADIUS_ATTRIBUTE_FILTER_ID = (int) 201326603,
+ RADIUS_ATTRIBUTE_FRAMED_MTU = (int) 201326604,
+ RADIUS_ATTRIBUTE_FRAMED_COMPRESSION = (int) 201326605,
+ RADIUS_ATTRIBUTE_LOGIN_IP_HOST = (int) 201326606,
+ RADIUS_ATTRIBUTE_LOGIN_SERVICE = (int) 201326607,
+ RADIUS_ATTRIBUTE_LOGIN_TCP_PORT = (int) 201326608,
+ RADIUS_ATTRIBUTE_UNASSIGNED1 = (int) 201326609,
+ RADIUS_ATTRIBUTE_REPLY_MESSAGE = (int) 201326610,
+ RADIUS_ATTRIBUTE_CALLBACK_NUMBER = (int) 201326611,
+ RADIUS_ATTRIBUTE_CALLBACK_ID = (int) 201326612,
+ RADIUS_ATTRIBUTE_UNASSIGNED2 = (int) 201326613,
+ RADIUS_ATTRIBUTE_FRAMED_ROUTE = (int) 201326614,
+ RADIUS_ATTRIBUTE_FRAMED_IPX_NETWORK = (int) 201326615,
+ RADIUS_ATTRIBUTE_STATE = (int) 201326616,
+ RADIUS_ATTRIBUTE_CLASS = (int) 201326617,
+ RADIUS_ATTRIBUTE_VENDOR_SPECIFIC = (int) 201326618,
+ RADIUS_ATTRIBUTE_SESSION_TIMEOUT = (int) 201326619,
+ RADIUS_ATTRIBUTE_IDLE_TIMEOUT = (int) 201326620,
+ RADIUS_ATTRIBUTE_TERMINATION_ACTION = (int) 201326621,
+ RADIUS_ATTRIBUTE_CALLED_STATION_ID = (int) 201326622,
+ RADIUS_ATTRIBUTE_CALLING_STATION_ID = (int) 201326623,
+ RADIUS_ATTRIBUTE_NAS_IDENTIFIER = (int) 201326624,
+ RADIUS_ATTRIBUTE_PROXY_STATE = (int) 201326625,
+ RADIUS_ATTRIBUTE_LOGIN_LAT_SERVICE = (int) 201326626,
+ RADIUS_ATTRIBUTE_LOGIN_LAT_NODE = (int) 201326627,
+ RADIUS_ATTRIBUTE_LOGIN_LAT_GROUP = (int) 201326628,
+ RADIUS_ATTRIBUTE_FRAMED_APPLETALK_LINK = (int) 201326629,
+ RADIUS_ATTRIBUTE_FRAMED_APPLETALK_NET = (int) 201326630,
+ RADIUS_ATTRIBUTE_FRAMED_APPLETALK_ZONE = (int) 201326631,
+ RADIUS_ATTRIBUTE_ACCT_STATUS_TYPE = (int) 201326632,
+ RADIUS_ATTRIBUTE_ACCT_DELAY_TIME = (int) 201326633,
+ RADIUS_ATTRIBUTE_ACCT_INPUT_OCTETS = (int) 201326634,
+ RADIUS_ATTRIBUTE_ACCT_OUTPUT_OCTETS = (int) 201326635,
+ RADIUS_ATTRIBUTE_ACCT_SESSION_ID = (int) 201326636,
+ RADIUS_ATTRIBUTE_ACCT_AUTHENTIC = (int) 201326637,
+ RADIUS_ATTRIBUTE_ACCT_SESSION_TIME = (int) 201326638,
+ RADIUS_ATTRIBUTE_ACCT_INPUT_PACKETS = (int) 201326639,
+ RADIUS_ATTRIBUTE_ACCT_OUTPUT_PACKETS = (int) 201326640,
+ RADIUS_ATTRIBUTE_ACCT_TERMINATE_CAUSE = (int) 201326641,
+ RADIUS_ATTRIBUTE_ACCT_MULTI_SSN_ID = (int) 201326642,
+ RADIUS_ATTRIBUTE_ACCT_LINK_COUNT = (int) 201326643,
+ RADIUS_ATTRIBUTE_CHAP_CHALLENGE = (int) 201326652,
+ RADIUS_ATTRIBUTE_NAS_PORT_TYPE = (int) 201326653,
+ RADIUS_ATTRIBUTE_PORT_LIMIT = (int) 201326654,
+ RADIUS_ATTRIBUTE_LOGIN_LAT_PORT = (int) 201326655,
+ RADIUS_ATTRIBUTE_TUNNEL_TYPE = (int) 201326656,
+ RADIUS_ATTRIBUTE_TUNNEL_MEDIUM_TYPE = (int) 201326657,
+ RADIUS_ATTRIBUTE_TUNNEL_CLIENT_ENDPT = (int) 201326658,
+ RADIUS_ATTRIBUTE_TUNNEL_SERVER_ENDPT = (int) 201326659,
+ RADIUS_ATTRIBUTE_ACCT_TUNNEL_CONN = (int) 201326660,
+ RADIUS_ATTRIBUTE_TUNNEL_PASSWORD = (int) 201326661,
+ RADIUS_ATTRIBUTE_ARAP_PASSWORD = (int) 201326662,
+ RADIUS_ATTRIBUTE_ARAP_FEATURES = (int) 201326663,
+ RADIUS_ATTRIBUTE_ARAP_ZONE_ACCESS = (int) 201326664,
+ RADIUS_ATTRIBUTE_ARAP_SECURITY = (int) 201326665,
+ RADIUS_ATTRIBUTE_ARAP_SECURITY_DATA = (int) 201326666,
+ RADIUS_ATTRIBUTE_PASSWORD_RETRY = (int) 201326667,
+ RADIUS_ATTRIBUTE_PROMPT = (int) 201326668,
+ RADIUS_ATTRIBUTE_CONNECT_INFO = (int) 201326669,
+ RADIUS_ATTRIBUTE_CONFIGURATION_TOKEN = (int) 201326670,
+ RADIUS_ATTRIBUTE_EAP_MESSAGE = (int) 201326671,
+ RADIUS_ATTRIBUTE_SIGNATURE = (int) 201326672,
+ RADIUS_ATTRIBUTE_TUNNEL_PVT_GROUP_ID = (int) 201326673,
+ RADIUS_ATTRIBUTE_TUNNEL_ASSIGNMENT_ID = (int) 201326674,
+ RADIUS_ATTRIBUTE_TUNNEL_PREFERENCE = (int) 201326675,
+ RADIUS_ATTRIBUTE_ARAP_CHALLENGE_RESPONSE = (int) 201326676,
+ RADIUS_ATTRIBUTE_ACCT_INTERIM_INTERVAL = (int) 201326677,
+ RADIUS_ATTRIBUTE_NAS_IPv6_ADDRESS = (int) 201326687,
+ RADIUS_ATTRIBUTE_FRAMED_INTERFACE_ID = (int) 201326688,
+ RADIUS_ATTRIBUTE_FRAMED_IPv6_PREFIX = (int) 201326689,
+ RADIUS_ATTRIBUTE_LOGIN_IPv6_HOST = (int) 201326690,
+ RADIUS_ATTRIBUTE_FRAMED_IPv6_ROUTE = (int) 201326691,
+ RADIUS_ATTRIBUTE_FRAMED_IPv6_POOL = (int) 201326692,
+ IAS_ATTRIBUTE_SAVED_RADIUS_FRAMED_IP_ADDRESS = (int) 201330688,
+ IAS_ATTRIBUTE_SAVED_RADIUS_CALLBACK_NUMBER = (int) 201330689,
+ IAS_ATTRIBUTE_NP_CALLING_STATION_ID = (int) 201330690,
+ IAS_ATTRIBUTE_SAVED_NP_CALLING_STATION_ID = (int) 201330691,
+ IAS_ATTRIBUTE_SAVED_RADIUS_FRAMED_ROUTE = (int) 201330692,
+ IAS_ATTRIBUTE_IGNORE_USER_DIALIN_PROPERTIES = (int) 201330693,
+ IAS_ATTRIBUTE_NP_TIME_OF_DAY = (int) 201330694,
+ IAS_ATTRIBUTE_NP_CALLED_STATION_ID = (int) 201330695,
+ IAS_ATTRIBUTE_NP_ALLOWED_PORT_TYPES = (int) 201330696,
+ IAS_ATTRIBUTE_NP_AUTHENTICATION_TYPE = (int) 201330697,
+ IAS_ATTRIBUTE_NP_ALLOWED_EAP_TYPE = (int) 201330698,
+ IAS_ATTRIBUTE_SHARED_SECRET = (int) 201330699,
+ IAS_ATTRIBUTE_CLIENT_IP_ADDRESS = (int) 201330700,
+ IAS_ATTRIBUTE_CLIENT_PACKET_HEADER = (int) 201330701,
+ IAS_ATTRIBUTE_TOKEN_GROUPS = (int) 201330702,
+ IAS_ATTRIBUTE_ALLOW_DIALIN = (int) 201330703,
+ IAS_ATTRIBUTE_REQUEST_ID = (int) 201330704,
+ IAS_ATTRIBUTE_MANIPULATION_TARGET = (int) 201330705,
+ IAS_ATTRIBUTE_MANIPULATION_RULE = (int) 201330706,
+ IAS_ATTRIBUTE_ORIGINAL_USER_NAME = (int) 201330707,
+ IAS_ATTRIBUTE_CLIENT_VENDOR_TYPE = (int) 201330708,
+ IAS_ATTRIBUTE_CLIENT_UDP_PORT = (int) 201330709,
+ MS_ATTRIBUTE_CHAP_CHALLENGE = (int) 201330710,
+ MS_ATTRIBUTE_CHAP_RESPONSE = (int) 201330711,
+ MS_ATTRIBUTE_CHAP_DOMAIN = (int) 201330712,
+ MS_ATTRIBUTE_CHAP_ERROR = (int) 201330713,
+ MS_ATTRIBUTE_CHAP_CPW1 = (int) 201330714,
+ MS_ATTRIBUTE_CHAP_CPW2 = (int) 201330715,
+ MS_ATTRIBUTE_CHAP_LM_ENC_PW = (int) 201330716,
+ MS_ATTRIBUTE_CHAP_NT_ENC_PW = (int) 201330717,
+ MS_ATTRIBUTE_CHAP_MPPE_KEYS = (int) 201330718,
+ IAS_ATTRIBUTE_AUTHENTICATION_TYPE = (int) 201330719,
+ IAS_ATTRIBUTE_CLIENT_NAME = (int) 201330720,
+ IAS_ATTRIBUTE_NT4_ACCOUNT_NAME = (int) 201330721,
+ IAS_ATTRIBUTE_FULLY_QUALIFIED_USER_NAME = (int) 201330722,
+ IAS_ATTRIBUTE_NTGROUPS = (int) 201330723,
+ IAS_ATTRIBUTE_EAP_FRIENDLY_NAME = (int) 201330724,
+ IAS_ATTRIBUTE_AUTH_PROVIDER_TYPE = (int) 201330725,
+ MS_ATTRIBUTE_ACCT_AUTH_TYPE = (int) 201330726,
+ MS_ATTRIBUTE_ACCT_EAP_TYPE = (int) 201330727,
+ IAS_ATTRIBUTE_PACKET_TYPE = (int) 201330728,
+ IAS_ATTRIBUTE_AUTH_PROVIDER_NAME = (int) 201330729,
+ IAS_ATTRIBUTE_ACCT_PROVIDER_TYPE = (int) 201330730,
+ IAS_ATTRIBUTE_ACCT_PROVIDER_NAME = (int) 201330731,
+ MS_ATTRIBUTE_MPPE_SEND_KEY = (int) 201330732,
+ MS_ATTRIBUTE_MPPE_RECV_KEY = (int) 201330733,
+ IAS_ATTRIBUTE_REASON_CODE = (int) 201330734,
+ MS_ATTRIBUTE_FILTER = (int) 201330735,
+ MS_ATTRIBUTE_CHAP2_RESPONSE = (int) 201330736,
+ MS_ATTRIBUTE_CHAP2_SUCCESS = (int) 201330737,
+ MS_ATTRIBUTE_CHAP2_CPW = (int) 201330738,
+ MS_ATTRIBUTE_RAS_VENDOR = (int) 201330739,
+ MS_ATTRIBUTE_RAS_VERSION = (int) 201330740,
+ IAS_ATTRIBUTE_NP_NAME = (int) 201330741,
+ MS_ATTRIBUTE_PRIMARY_DNS_SERVER = (int) 201330742,
+ MS_ATTRIBUTE_SECONDARY_DNS_SERVER = (int) 201330743,
+ MS_ATTRIBUTE_PRIMARY_NBNS_SERVER = (int) 201330744,
+ MS_ATTRIBUTE_SECONDARY_NBNS_SERVER = (int) 201330745,
+ IAS_ATTRIBUTE_PROXY_POLICY_NAME = (int) 201330746,
+ IAS_ATTRIBUTE_PROVIDER_TYPE = (int) 201330747,
+ IAS_ATTRIBUTE_PROVIDER_NAME = (int) 201330748,
+ IAS_ATTRIBUTE_REMOTE_SERVER_ADDRESS = (int) 201330749,
+ IAS_ATTRIBUTE_GENERATE_CLASS_ATTRIBUTE = (int) 201330750,
+ MS_ATTRIBUTE_RAS_CLIENT_NAME = (int) 201330751,
+ MS_ATTRIBUTE_RAS_CLIENT_VERSION = (int) 201330752,
+ IAS_ATTRIBUTE_ALLOWED_CERTIFICATE_EKU = (int) 201330753,
+ IAS_ATTRIBUTE_EXTENSION_STATE = (int) 201330754,
+ IAS_ATTRIBUTE_GENERATE_SESSION_TIMEOUT = (int) 201330755,
+ MS_ATTRIBUTE_SESSION_TIMEOUT = (int) 201330756,
+ MS_ATTRIBUTE_QUARANTINE_IPFILTER = (int) 201330757,
+ MS_ATTRIBUTE_QUARANTINE_SESSION_TIMEOUT = (int) 201330758,
+ MS_ATTRIBUTE_USER_SECURITY_IDENTITY = (int) 201330759,
+ IAS_ATTRIBUTE_REMOTE_RADIUS_TO_WINDOWS_USER_MAPPING = (int) 201330760,
+ IAS_ATTRIBUTE_PASSPORT_USER_MAPPING_UPN_SUFFIX = (int) 201330761,
+ IAS_ATTRIBUTE_TUNNEL_TAG = (int) 201330762,
+ IAS_ATTRIBUTE_NP_PEAPUPFRONT_ENABLED = (int) 201330763,
+ IAS_ATTRIBUTE_CERTIFICATE_EKU = (int) 201334689,
+ IAS_ATTRIBUTE_EAP_CONFIG = (int) 201334690,
+ MS_ATTRIBUTE_PEAP_EMBEDDED_EAP_TYPEID = (int) 201334691,
+ MS_ATTRIBUTE_PEAP_FAST_ROAMED_SESSION = (int) 201334692,
+ IAS_ATTRIBUTE_EAP_TYPEID = (int) 201334693,
+ MS_ATTRIBUTE_EAP_TLV = (int) 201334694,
+ IAS_ATTRIBUTE_REJECT_REASON_CODE = (int) 201334695,
+ IAS_ATTRIBUTE_PROXY_EAP_CONFIG = (int) 201334696,
+ IAS_ATTRIBUTE_EAP_SESSION = (int) 201334697,
+ IAS_ATTRIBUTE_IS_REPLAY = (int) 201334698,
+ IAS_ATTRIBUTE_CLEAR_TEXT_PASSWORD = (int) 201334699,
+ MS_ATTRIBUTE_IDENTITY_TYPE = (int) 201334700,
+ MS_ATTRIBUTE_SERVICE_CLASS = (int) 201334701,
+ MS_ATTRIBUTE_QUARANTINE_USER_CLASS = (int) 201334702,
+ MS_ATTRIBUTE_QUARANTINE_STATE = (int) 201334703,
+ IAS_ATTRIBUTE_OVERRIDE_RAP_AUTH = (int) 201334704,
+ IAS_ATTRIBUTE_PEAP_CHANNEL_UP = (int) 201334705,
+ IAS_ATTRIBUTE_NAME_MAPPED = (int) 201334706,
+ IAS_ATTRIBUTE_POLICY_ENFORCED = (int) 201334707,
+ IAS_ATTRIBUTE_MACHINE_NTGROUPS = (int) 201334708,
+ IAS_ATTRIBUTE_USER_NTGROUPS = (int) 201334709,
+ IAS_ATTRIBUTE_MACHINE_TOKEN_GROUPS = (int) 201334710,
+ IAS_ATTRIBUTE_USER_TOKEN_GROUPS = (int) 201334711,
+ MS_ATTRIBUTE_QUARANTINE_GRACE_TIME = (int) 201334712,
+ IAS_ATTRIBUTE_QUARANTINE_URL = (int) 201334713,
+ IAS_ATTRIBUTE_QUARANTINE_FIXUP_SERVERS = (int) 201334714,
+ MS_ATTRIBUTE_NOT_QUARANTINE_CAPABLE = (int) 201334715,
+ IAS_ATTRIBUTE_QUARANTINE_SYSTEM_HEALTH_RESULT = (int) 201334716,
+ IAS_ATTRIBUTE_QUARANTINE_SYSTEM_HEALTH_VALIDATORS = (int) 201334717,
+ IAS_ATTRIBUTE_MACHINE_NAME = (int) 201334718,
+ IAS_ATTRIBUTE_NT4_MACHINE_NAME = (int) 201334719,
+ IAS_ATTRIBUTE_QUARANTINE_SESSION_HANDLE = (int) 201334720,
+ IAS_ATTRIBUTE_FULLY_QUALIFIED_MACHINE_NAME = (int) 201334721,
+ IAS_ATTRIBUTE_QUARANTINE_FIXUP_SERVERS_CONFIGURATION = (int) 201334722,
+ IAS_ATTRIBUTE_CLIENT_QUARANTINE_COMPATIBLE = (int) 201334723,
+ MS_ATTRIBUTE_NETWORK_ACCESS_SERVER_TYPE = (int) 201334724,
+ IAS_ATTRIBUTE_QUARANTINE_SESSION_ID = (int) 201334725,
+ MS_ATTRIBUTE_AFW_QUARANTINE_ZONE = (int) 201334726,
+ MS_ATTRIBUTE_AFW_PROTECTION_LEVEL = (int) 201334727,
+ IAS_ATTRIBUTE_QUARANTINE_UPDATE_NON_COMPLIANT = (int) 201334728,
+ IAS_ATTRIBUTE_REQUEST_START_TIME = (int) 201334729,
+ MS_ATTRIBUTE_MACHINE_NAME = (int) 201334730,
+ IAS_ATTRIBUTE_CLIENT_IPv6_ADDRESS = (int) 201334731,
+ IAS_ATTRIBUTE_SAVED_RADIUS_FRAMED_INTERFACE_ID = (int) 201334732,
+ IAS_ATTRIBUTE_SAVED_RADIUS_FRAMED_IPv6_PREFIX = (int) 201334733,
+ IAS_ATTRIBUTE_SAVED_RADIUS_FRAMED_IPv6_ROUTE = (int) 201334734,
+ MS_ATTRIBUTE_QUARANTINE_GRACE_TIME_CONFIGURATION = (int) 201334735,
+ MS_ATTRIBUTE_IPv6_FILTER = (int) 201334736,
+ MS_ATTRIBUTE_IPV4_REMEDIATION_SERVERS = (int) 201334737,
+ MS_ATTRIBUTE_IPV6_REMEDIATION_SERVERS = (int) 201334738,
+ IAS_ATTRIBUTE_PROXY_RETRY_COUNT = (int) 201334739,
+ IAS_ATTRIBUTE_MACHINE_INVENTORY = (int) 201334740,
+ IAS_ATTRIBUTE_ABSOLUTE_TIME = (int) 201334741,
+ MS_ATTRIBUTE_QUARANTINE_SOH = (int) 201334742,
+ IAS_ATTRIBUTE_EAP_TYPES_CONFIGURED_IN_PROXYPOLICY = (int) 201334743,
+ MS_ATTRIBUTE_HCAP_LOCATION_GROUP_NAME = (int) 201334744,
+ MS_ATTRIBUTE_EXTENDED_QUARANTINE_STATE = (int) 201334745,
+ IAS_ATTRIBUTE_SOH_CARRIER_EAPTLV = (int) 201334746,
+ MS_ATTRIBUTE_HCAP_USER_GROUPS = (int) 201334747,
+ IAS_ATTRIBUTE_SAVED_MACHINE_HEALTHCHECK_ONLY = (int) 201334748,
+ IAS_ATTRIBUTE_POLICY_EVALUATED_SHV = (int) 201334749,
+ MS_ATTRIBUTE_RAS_CORRELATION_ID = (int) 201334750,
+ MS_ATTRIBUTE_HCAP_USER_NAME = (int) 201334751,
+ IAS_ATTRIBUTE_NT4_HCAP_ACCOUNT_NAME = (int) 201334752,
+ IAS_ATTRIBUTE_USER_TOKEN_SID = (int) 201334753,
+ IAS_ATTRIBUTE_MACHINE_TOKEN_SID = (int) 201334754,
+ IAS_ATTRIBUTE_MACHINE_VALIDATED = (int) 201334755,
+ MS_ATTRIBUTE_USER_IPv4_ADDRESS = (int) 201334756,
+ MS_ATTRIBUTE_USER_IPv6_ADDRESS = (int) 201334757,
+ MS_ATTRIBUTE_TSG_DEVICE_REDIRECTION = (int) 201334758,
+ IAS_ATTRIBUTE_ACCEPT_REASON_CODE = (int) 201334759,
+ RAS_ATTRIBUTE_ENCRYPTION_TYPE = (int) -90,
+ RAS_ATTRIBUTE_ENCRYPTION_POLICY = (int) -89,
+ RAS_ATTRIBUTE_BAP_REQUIRED = (int) -88,
+ RAS_ATTRIBUTE_BAP_LINE_DOWN_TIME = (int) -87,
+ RAS_ATTRIBUTE_BAP_LINE_DOWN_LIMIT = (int) -86
+};
+enum _IASOSTYPE
+{
+ SYSTEM_TYPE_NT4_WORKSTATION = (int) 201326592,
+ SYSTEM_TYPE_NT5_WORKSTATION = (int) 201326593,
+ SYSTEM_TYPE_NT6_WORKSTATION = (int) 201326594,
+ SYSTEM_TYPE_NT4_SERVER = (int) 201326595,
+ SYSTEM_TYPE_NT5_SERVER = (int) 201326596,
+ SYSTEM_TYPE_NT6_SERVER = (int) 201326597
+};
+enum _ATTRIBUTERESTRICTIONS
+{
+ MULTIVALUED = (int) 201326593,
+ ALLOWEDINPROFILE = (int) 201326594,
+ ALLOWEDINCONDITION = (int) 201326596,
+ ALLOWEDINPROXYPROFILE = (int) 201326600,
+ ALLOWEDINPROXYCONDITION = (int) 201326608,
+ ALLOWEDINVPNDIALUP = (int) 201326624,
+ ALLOWEDIN8021X = (int) 201326656
+};
+enum _AUTHENTICATION_TYPE
+{
+ IAS_AUTH_INVALID = (int) 201326592,
+ IAS_AUTH_PAP = (int) 201326593,
+ IAS_AUTH_MD5CHAP = (int) 201326594,
+ IAS_AUTH_MSCHAP = (int) 201326595,
+ IAS_AUTH_MSCHAP2 = (int) 201326596,
+ IAS_AUTH_EAP = (int) 201326597,
+ IAS_AUTH_ARAP = (int) 201326598,
+ IAS_AUTH_NONE = (int) 201326599,
+ IAS_AUTH_CUSTOM = (int) 201326600,
+ IAS_AUTH_MSCHAP_CPW = (int) 201326601,
+ IAS_AUTH_MSCHAP2_CPW = (int) 201326602,
+ IAS_AUTH_PEAP = (int) 201326603
+};
+
+/* Type definitions. */
+typedef enum _ATTRIBUTEID ATTRIBUTEID;
+typedef enum _IASOSTYPE IASOSTYPE;
+typedef enum _ATTRIBUTERESTRICTIONS ATTRIBUTERESTRICTIONS;
+typedef enum _AUTHENTICATION_TYPE AUTHENTICATION_TYPE;
+
+[
+ uuid(E9970F91-B6AA-11D9-B032-000D56C25C27),
+ version(1.0),
+ helpstring("IAS SDO Helper 1.0 Type Library")
+]
+library sdohlplib
+{
+ importlib("stdole2.tlb");
+
+ /* CoClass declarations. */
+ [
+ uuid(E9970FA4-B6AA-11D9-B032-000D56C25C27),
+ cancreate
+ ]
+ coclass IASSDOHelper
+ {
+ dispinterface IIASSDOHelper;
+ };
+
+ /* Dispatch interface declarations. */
+ [
+ uuid(E9970F92-B6AA-11D9-B032-000D56C25C27),
+ dual,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IIASItem : IDispatch
+ {
+ [id(1610743808)]
+ HRESULT __stdcall GetProperty (
+ [in] UINT Id,
+ [out retval] VARIANT *pvarValue
+ );
+ HRESULT __stdcall PutProperty (
+ [in] UINT Id,
+ [in] VARIANT varValue
+ );
+ HRESULT __stdcall Apply (void);
+ HRESULT __stdcall Restore (void);
+ [propget]
+ HRESULT __stdcall SdoObject (
+ [out retval] dispinterface ISdo **ppSdo
+ );
+ [propget]
+ HRESULT __stdcall Name (
+ [out retval] BSTR *pbstrId
+ );
+ [id(1610743813), propput]
+ HRESULT __stdcall Name (
+ [in] BSTR argNo1
+ );
+ [id(1610743815), propget]
+ HRESULT __stdcall Description (
+ [out retval] BSTR *pbstrDesc
+ );
+ [id(1610743815), propput]
+ HRESULT __stdcall Description (
+ [in] BSTR argNo1
+ );
+ };
+ [
+ uuid(56BC53DE-96DB-11D1-BF3F-000000000000),
+ dual,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface ISdo : IDispatch
+ {
+ [id(1), hidden]
+ HRESULT __stdcall GetPropertyInfo (
+ [in] long Id,
+ [out retval] IUnknown **ppPropertyInfo
+ );
+ HRESULT __stdcall GetProperty (
+ [in] long Id,
+ [out retval] VARIANT *pValue
+ );
+ HRESULT __stdcall PutProperty (
+ [in] long Id,
+ [in] VARIANT *pValue
+ );
+ HRESULT __stdcall ResetProperty (
+ [in] long Id
+ );
+ HRESULT __stdcall Apply (void);
+ HRESULT __stdcall Restore (void);
+ [id(-4), propget]
+ HRESULT __stdcall _NewEnum (
+ [out retval] IUnknown **ppEnumVARIANT
+ );
+ };
+ [
+ uuid(E9970F94-B6AA-11D9-B032-000D56C25C27),
+ dual,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IIASEnum : IDispatch
+ {
+ [id(1610743808)]
+ HRESULT __stdcall ResetEnumerator (void);
+ HRESULT __stdcall GetNextItem (
+ [out retval] dispinterface IIASItem **ppItem
+ );
+ };
+ [
+ uuid(E9970F95-B6AA-11D9-B032-000D56C25C27),
+ dual,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IIASCollection : IDispatch
+ {
+ [id(1610743808)]
+ HRESULT __stdcall RemoveItem (
+ [in] dispinterface IIASItem *pItem
+ );
+ HRESULT __stdcall Clear (void);
+ [propget]
+ HRESULT __stdcall SdoCollectionObject (
+ [out retval] dispinterface ISdoCollection **ppSdoCollection
+ );
+ [propget]
+ HRESULT __stdcall Enumerator (
+ [out retval] dispinterface IIASEnum **ppEnum
+ );
+ [propget]
+ HRESULT __stdcall Count (
+ [out retval] UINT *pdwCount
+ );
+ };
+ [
+ uuid(56BC53E2-96DB-11D1-BF3F-000000000000),
+ dual,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface ISdoCollection : IDispatch
+ {
+ [id(1), propget]
+ HRESULT __stdcall Count (
+ [out retval] long *pCount
+ );
+ HRESULT __stdcall Add (
+ [in] BSTR bstrName,
+ [in out] IDispatch **ppItem
+ );
+ HRESULT __stdcall Remove (
+ [in] IDispatch * pItem
+ );
+ HRESULT __stdcall RemoveAll (void);
+ HRESULT __stdcall Reload (void);
+ HRESULT __stdcall IsNameUnique (
+ [in] BSTR bstrName,
+ [out retval] WINBOOL *pBool
+ );
+ [id(0)]
+ HRESULT __stdcall Item (
+ [in] VARIANT *Name,
+ [out retval] IDispatch **pItem
+ );
+ [id(-4), propget]
+ HRESULT __stdcall _NewEnum (
+ [out retval] IUnknown **ppEnumVARIANT
+ );
+ };
+ [
+ uuid(E9970F96-B6AA-11D9-B032-000D56C25C27),
+ dual,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IIASItemsCollection : IIASCollection
+ {
+ [id(1610809344)]
+ HRESULT __stdcall Add (
+ [in] BSTR bstrName,
+ [out] dispinterface IIASItem **ppItem
+ );
+ HRESULT __stdcall GetItem (
+ [in] BSTR bstrId,
+ [out retval] dispinterface IIASItem **ppItem
+ );
+ HRESULT __stdcall Remove (
+ [in] BSTR bstrId
+ );
+ };
+ [
+ uuid(E9970F97-B6AA-11D9-B032-000D56C25C27),
+ dual,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IIASAttributesCollection : IIASCollection
+ {
+ [id(1610809344)]
+ HRESULT __stdcall Add (
+ [in] ATTRIBUTEID Id,
+ [in] VARIANT value,
+ [out] dispinterface IIASItem **ppItem
+ );
+ HRESULT __stdcall GetAttributeValue (
+ [in] dispinterface IIASItem *pItem,
+ [out] ATTRIBUTEID *pId,
+ [out retval] VARIANT *pValue
+ );
+ };
+ [
+ uuid(E9970F98-B6AA-11D9-B032-000D56C25C27),
+ dual,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IIASConditionsCollection : IIASCollection
+ {
+ [id(1610809344)]
+ HRESULT __stdcall Add (
+ [in] ATTRIBUTEID Id,
+ [in] BSTR bstrCondition,
+ [out] dispinterface IIASItem **ppItem
+ );
+ HRESULT __stdcall GetConditionText (
+ [in] dispinterface IIASItem *pItem,
+ [out] ATTRIBUTEID *pId,
+ [out retval] BSTR *pbstrCondition
+ );
+ HRESULT __stdcall PutConditionText (
+ [in] dispinterface IIASItem *pItem,
+ [in] ATTRIBUTEID Id,
+ [in] BSTR bstrCondition
+ );
+ };
+ [
+ uuid(E9970F9D-B6AA-11D9-B032-000D56C25C27),
+ dual,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IIASAccounting : IIASItem
+ {
+ [id(1610809344), propget]
+ HRESULT __stdcall LogAcctPkts (
+ [out retval] long *pbLogAcctPkts
+ );
+ [id(1610809344), propput]
+ HRESULT __stdcall LogAcctPkts (
+ [in] long argNo1
+ );
+ [id(1610809346), propget]
+ HRESULT __stdcall LogAuthPkts (
+ [out retval] long *pbLogAuthPkts
+ );
+ [id(1610809346), propput]
+ HRESULT __stdcall LogAuthPkts (
+ [in] long argNo1
+ );
+ [id(1610809348), propget]
+ HRESULT __stdcall LogInterimPkts (
+ [out retval] long *pbLogInterimPkts
+ );
+ [id(1610809348), propput]
+ HRESULT __stdcall LogInterimPkts (
+ [in] long argNo1
+ );
+ [id(1610809350), propget]
+ HRESULT __stdcall LogAuthInterimPkts (
+ [out retval] long *pbLogAuthInterimPkts
+ );
+ [id(1610809350), propput]
+ HRESULT __stdcall LogAuthInterimPkts (
+ [in] long argNo1
+ );
+ };
+ [
+ uuid(E9970F9E-B6AA-11D9-B032-000D56C25C27),
+ dual,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IIASFileAccounting : IIASAccounting
+ {
+ [id(1610874880), propget]
+ HRESULT __stdcall NewLogFrequency (
+ [out retval] UINT *pNewLogFrequency
+ );
+ [id(1610874880), propput]
+ HRESULT __stdcall NewLogFrequency (
+ [in] UINT argNo1
+ );
+ [id(1610874882), propget]
+ HRESULT __stdcall NewLogSize (
+ [out retval] UINT *pNewLogSize
+ );
+ [id(1610874882), propput]
+ HRESULT __stdcall NewLogSize (
+ [in] UINT argNo1
+ );
+ [id(1610874884), propget]
+ HRESULT __stdcall LogFileDirectory (
+ [out retval] BSTR *pbstrLogFileDirectory
+ );
+ [id(1610874884), propput]
+ HRESULT __stdcall LogFileDirectory (
+ [in] BSTR argNo1
+ );
+ [id(1610874886), propget]
+ HRESULT __stdcall LogFormat (
+ [out retval] UINT *pLogFormat
+ );
+ [id(1610874886), propput]
+ HRESULT __stdcall LogFormat (
+ [in] UINT argNo1
+ );
+ [id(1610874888), propget]
+ HRESULT __stdcall DeleteIfFull (
+ [out retval] long *pbDeleteIfFull
+ );
+ [id(1610874888), propput]
+ HRESULT __stdcall DeleteIfFull (
+ [in] long argNo1
+ );
+ };
+ [
+ uuid(E9970F9F-B6AA-11D9-B032-000D56C25C27),
+ dual,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IIASSQLAccounting : IIASAccounting
+ {
+ [id(1610874880), propget]
+ HRESULT __stdcall SQLMaxSessions (
+ [out retval] UINT *pSQLMaxSessions
+ );
+ [id(1610874880), propput]
+ HRESULT __stdcall SQLMaxSessions (
+ [in] UINT argNo1
+ );
+ };
+ [
+ uuid(E9970F99-B6AA-11D9-B032-000D56C25C27),
+ dual,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IIASService : IIASItem
+ {
+ [id(1610809344), propget]
+ HRESULT __stdcall AuthPorts (
+ [out retval] BSTR *pbstrPorts
+ );
+ [id(1610809344), propput]
+ HRESULT __stdcall AuthPorts (
+ [in] BSTR argNo1
+ );
+ [id(1610809346), propget]
+ HRESULT __stdcall AcctPorts (
+ [out retval] BSTR *pbstrPorts
+ );
+ [id(1610809346), propput]
+ HRESULT __stdcall AcctPorts (
+ [in] BSTR argNo1
+ );
+ [id(1610809348), propget]
+ HRESULT __stdcall LogSuccessfulRequests (
+ [out retval] long *pbLog
+ );
+ [id(1610809348), propput]
+ HRESULT __stdcall LogSuccessfulRequests (
+ [in] long argNo1
+ );
+ [id(1610809350), propget]
+ HRESULT __stdcall LogRejectedRequests (
+ [out retval] long *pbLog
+ );
+ [id(1610809350), propput]
+ HRESULT __stdcall LogRejectedRequests (
+ [in] long argNo1
+ );
+ [id(1610809352), propget]
+ HRESULT __stdcall FileAccountingLogs (
+ [out retval] dispinterface IIASFileAccounting **ppFileLogs
+ );
+ [propget]
+ HRESULT __stdcall SQLAccountingLogs (
+ [out retval] dispinterface IIASSQLAccounting **ppSQLLogs
+ );
+ [propget]
+ HRESULT __stdcall Clients (
+ [out retval] dispinterface IIASItemsCollection **ppColl
+ );
+ [propget]
+ HRESULT __stdcall RemoteServers (
+ [out retval] dispinterface IIASItemsCollection **ppColl
+ );
+ [propget]
+ HRESULT __stdcall RAPolicies (
+ [out retval] dispinterface IIASItemsCollection **ppColl
+ );
+ [propget]
+ HRESULT __stdcall CRPolicies (
+ [out retval] dispinterface IIASItemsCollection **ppColl
+ );
+ [propget]
+ HRESULT __stdcall SHVTemplates (
+ [out retval] dispinterface IIASItemsCollection **ppColl
+ );
+ [propget]
+ HRESULT __stdcall RemediationServers (
+ [out retval] dispinterface IIASItemsCollection **ppColl
+ );
+ [propget]
+ HRESULT __stdcall ClientVendorCollection (
+ [out retval] dispinterface IIASItemsCollection **ppVendorColl
+ );
+ };
+ [
+ uuid(E9970F9A-B6AA-11D9-B032-000D56C25C27),
+ dual,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IIASClient : IIASItem
+ {
+ [id(1610809344), propget]
+ HRESULT __stdcall RequireSignature (
+ [out retval] long *pbRequireSignature
+ );
+ [id(1610809344), propput]
+ HRESULT __stdcall RequireSignature (
+ [in] long argNo1
+ );
+ [id(1610809346), propget]
+ HRESULT __stdcall SharedSecret (
+ [out retval] BSTR *pbstrSharedSecret
+ );
+ [id(1610809346), propput]
+ HRESULT __stdcall SharedSecret (
+ [in] BSTR argNo1
+ );
+ [id(1610809348), propget]
+ HRESULT __stdcall Vendor (
+ [out retval] BSTR *pbstrVendor
+ );
+ [id(1610809348), propput]
+ HRESULT __stdcall Vendor (
+ [in] BSTR argNo1
+ );
+ [id(1610809350), propget]
+ HRESULT __stdcall Address (
+ [out retval] BSTR *pbstrAddress
+ );
+ [id(1610809350), propput]
+ HRESULT __stdcall Address (
+ [in] BSTR argNo1
+ );
+ [id(1610809352), propget]
+ HRESULT __stdcall QuarCompatible (
+ [out retval] long *pbQuarCompatible
+ );
+ [id(1610809352), propput]
+ HRESULT __stdcall QuarCompatible (
+ [in] long argNo1
+ );
+ [id(1610809354), propget]
+ HRESULT __stdcall Enabled (
+ [out retval] long *pbEnabled
+ );
+ [id(1610809354), propput]
+ HRESULT __stdcall Enabled (
+ [in] long argNo1
+ );
+ };
+ [
+ uuid(E9970F9B-B6AA-11D9-B032-000D56C25C27),
+ dual,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IIASRemoteServer : IIASItem
+ {
+ [id(1610809344), propget]
+ HRESULT __stdcall AuthPort (
+ [out retval] UINT *pAuthPort
+ );
+ [id(1610809344), propput]
+ HRESULT __stdcall AuthPort (
+ [in] UINT argNo1
+ );
+ [id(1610809346), propget]
+ HRESULT __stdcall AcctPort (
+ [out retval] UINT *pAcctPort
+ );
+ [id(1610809346), propput]
+ HRESULT __stdcall AcctPort (
+ [in] UINT argNo1
+ );
+ [id(1610809348), propget]
+ HRESULT __stdcall AuthSecret (
+ [out retval] BSTR *pbstrSecret
+ );
+ [id(1610809348), propput]
+ HRESULT __stdcall AuthSecret (
+ [in] BSTR argNo1
+ );
+ [id(1610809350), propget]
+ HRESULT __stdcall AcctSecret (
+ [out retval] BSTR *pbstrSecret
+ );
+ [id(1610809350), propput]
+ HRESULT __stdcall AcctSecret (
+ [in] BSTR argNo1
+ );
+ [id(1610809352), propget]
+ HRESULT __stdcall Address (
+ [out retval] BSTR *pbstrAddress
+ );
+ [id(1610809352), propput]
+ HRESULT __stdcall Address (
+ [in] BSTR argNo1
+ );
+ [id(1610809354), propget]
+ HRESULT __stdcall ForwardAccounting (
+ [out retval] long *pbForward
+ );
+ [id(1610809354), propput]
+ HRESULT __stdcall ForwardAccounting (
+ [in] long argNo1
+ );
+ [id(1610809356), propget]
+ HRESULT __stdcall Priority (
+ [out retval] UINT *pPriority
+ );
+ [id(1610809356), propput]
+ HRESULT __stdcall Priority (
+ [in] UINT argNo1
+ );
+ [id(1610809358), propget]
+ HRESULT __stdcall Weight (
+ [out retval] UINT *pWeight
+ );
+ [id(1610809358), propput]
+ HRESULT __stdcall Weight (
+ [in] UINT argNo1
+ );
+ [id(1610809360), propget]
+ HRESULT __stdcall Timeout (
+ [out retval] UINT *pTimeout
+ );
+ [id(1610809360), propput]
+ HRESULT __stdcall Timeout (
+ [in] UINT argNo1
+ );
+ [id(1610809362), propget]
+ HRESULT __stdcall MaxLostPkts (
+ [out retval] UINT *pMaxLostPkts
+ );
+ [id(1610809362), propput]
+ HRESULT __stdcall MaxLostPkts (
+ [in] UINT argNo1
+ );
+ [id(1610809364), propget]
+ HRESULT __stdcall BlackoutInterval (
+ [out retval] UINT *pBlackoutIntervalpriority
+ );
+ [id(1610809364), propput]
+ HRESULT __stdcall BlackoutInterval (
+ [in] UINT argNo1
+ );
+ [id(1610809366), propget]
+ HRESULT __stdcall SendSignature (
+ [out retval] long *pbSendSignature
+ );
+ [id(1610809366), propput]
+ HRESULT __stdcall SendSignature (
+ [in] long argNo1
+ );
+ };
+ [
+ uuid(E9970F9C-B6AA-11D9-B032-000D56C25C27),
+ dual,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IIASRemediationServer : IIASItem
+ {
+ [id(1610809344), propget]
+ HRESULT __stdcall Address (
+ [out retval] BSTR *pbstrAddress
+ );
+ [id(1610809344), propput]
+ HRESULT __stdcall Address (
+ [in] BSTR argNo1
+ );
+ [id(1610809346), propget]
+ HRESULT __stdcall FriendlyName (
+ [out retval] BSTR *pbstrFriendlyName
+ );
+ [id(1610809346), propput]
+ HRESULT __stdcall FriendlyName (
+ [in] BSTR argNo1
+ );
+ };
+ [
+ uuid(E9970FA0-B6AA-11D9-B032-000D56C25C27),
+ dual,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IIASPolicy : IIASItem
+ {
+ [id(1610809344), propget]
+ HRESULT __stdcall Sequence (
+ [out retval] UINT *pSequence
+ );
+ [id(1610809344), propput]
+ HRESULT __stdcall Sequence (
+ [in] UINT argNo1
+ );
+ [id(1610809346), propget]
+ HRESULT __stdcall Enabled (
+ [out retval] long *pbEnabled
+ );
+ [id(1610809346), propput]
+ HRESULT __stdcall Enabled (
+ [in] long argNo1
+ );
+ [id(1610809348), propget]
+ HRESULT __stdcall SourceTag (
+ [out retval] UINT *pdwSourceTag
+ );
+ [id(1610809348), propput]
+ HRESULT __stdcall SourceTag (
+ [in] UINT argNo1
+ );
+ [id(1610809350), propget]
+ HRESULT __stdcall ConditionsCollection (
+ [out retval] dispinterface IIASConditionsCollection **ppColl
+ );
+ [propget]
+ HRESULT __stdcall ProfileAttributesCollection (
+ [out retval] dispinterface IIASAttributesCollection **ppColl
+ );
+ };
+ [
+ uuid(E9970FA1-B6AA-11D9-B032-000D56C25C27),
+ dual,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IIASServerGroup : IIASItem
+ {
+ [id(1610809344), propget]
+ HRESULT __stdcall ServerCollection (
+ [out retval] dispinterface IIASItemsCollection **ppColl
+ );
+ };
+ [
+ uuid(E9970FA2-B6AA-11D9-B032-000D56C25C27),
+ dual,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IIASSHVTemplate : IIASItem
+ {
+ [id(1610809344), propget]
+ HRESULT __stdcall SHVCombinationType (
+ [out retval] UINT *pCombinationType
+ );
+ [id(1610809344), propput]
+ HRESULT __stdcall SHVCombinationType (
+ [in] UINT argNo1
+ );
+ [id(1610809346), propget]
+ HRESULT __stdcall SHVList (
+ [out retval] VARIANT *pvSHVList
+ );
+ [id(1610809346), propput]
+ HRESULT __stdcall SHVList (
+ [in] VARIANT argNo1
+ );
+ };
+ [
+ uuid(E9970FA3-B6AA-11D9-B032-000D56C25C27),
+ dual,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IIASSDOHelper : IDispatch
+ {
+ [id(1610743808)]
+ HRESULT __stdcall Initialize (
+ [in] UINT accessMode,
+ [in] BSTR bstrSourceName,
+ [out retval] dispinterface IIASService **ppIASService
+ );
+ HRESULT __stdcall GetOSType (
+ [out retval] IASOSTYPE *eOSType
+ );
+ HRESULT __stdcall GetStandardRADIUSAttributesInfo (
+ [in] ATTRIBUTERESTRICTIONS restrictions,
+ [out] UINT *pNumAttribs,
+ [out] VARIANT *pvIds,
+ [out] VARIANT *pvTypes,
+ [out] VARIANT *pvNames,
+ [out] VARIANT *pvDescriptions
+ );
+ HRESULT __stdcall GetVendorSpecificAttributesInfo (
+ [in] ATTRIBUTERESTRICTIONS restrictions,
+ [out] UINT *pNumAttribs,
+ [out] VARIANT *pvIds,
+ [out] VARIANT *pvTypes,
+ [out] VARIANT *pvNames,
+ [out] VARIANT *pvVendorIds,
+ [out] VARIANT *pvDescriptions
+ );
+ HRESULT __stdcall GetProfileSpecificAttributesInfo (
+ [in] ATTRIBUTERESTRICTIONS restrictions,
+ [out] UINT *pNumAttribs,
+ [out] VARIANT *pvIds,
+ [out] VARIANT *pvTypes,
+ [out] VARIANT *pvNames,
+ [out] VARIANT *pvDescriptions
+ );
+ HRESULT __stdcall GetAttributeValueEnumerations (
+ [in] ATTRIBUTEID Id,
+ [out] VARIANT *pEnumNames,
+ [out] VARIANT *pEnumValues,
+ [out] VARIANT *pEnumFilters
+ );
+ HRESULT __stdcall ImportConfiguration (
+ [in] BSTR target,
+ [in] BSTR sourceFilePath,
+ [in] long bIgnoreRegImportFailure
+ );
+ HRESULT __stdcall ExportConfiguration (
+ [in] BSTR source,
+ [in] BSTR targetFilePath
+ );
+ [propget]
+ HRESULT __stdcall Dictionary (
+ [out retval] dispinterface ISdoDictionaryOld **ppDict
+ );
+ [propget]
+ HRESULT __stdcall SDOServiceControl (
+ [out retval] dispinterface ISdoServiceControl **ppService
+ );
+ };
+ [
+ uuid(D432E5F4-53D8-11D2-9A3A-00C04FB998AC),
+ dual,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface ISdoDictionaryOld : IDispatch
+ {
+ [id(1)]
+ HRESULT __stdcall EnumAttributes (
+ [in out] VARIANT *Id,
+ [out retval] VARIANT *pValues
+ );
+ [hidden]
+ HRESULT __stdcall GetAttributeInfo (
+ [in] ATTRIBUTEID Id,
+ [in] VARIANT *pInfoIDs,
+ [out retval] VARIANT *pInfoValues
+ );
+ HRESULT __stdcall EnumAttributeValues (
+ [in] ATTRIBUTEID Id,
+ [out] VARIANT *pValueIds,
+ [out retval] VARIANT *pValuesDesc
+ );
+ HRESULT __stdcall CreateAttribute (
+ [in] ATTRIBUTEID Id,
+ [out retval] IDispatch **ppAttributeObject
+ );
+ HRESULT __stdcall GetAttributeID (
+ [in] BSTR bstrAttributeName,
+ [out retval] ATTRIBUTEID *pId
+ );
+ };
+ [
+ uuid(479F6E74-49A2-11D2-8ECA-00C04FC2F519),
+ dual,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface ISdoServiceControl : IDispatch
+ {
+ [id(1)]
+ HRESULT __stdcall StartService (void);
+ HRESULT __stdcall StopService (void);
+ HRESULT __stdcall GetServiceStatus (
+ [out retval] long *status
+ );
+ HRESULT __stdcall ResetService (void);
+ };
+
+};
+
+/* Interface declarations. */
+[
+ uuid(E9970F93-B6AA-11D9-B032-000D56C25C27),
+ oleautomation
+]
+interface IIASItemInternal : IUnknown
+{
+ [id(1610678272)]
+ HRESULT __stdcall InternalRemove (void);
+};
+
diff --git a/mingw-w64-headers/include/sdoias.h b/mingw-w64-headers/include/sdoias.h
index 661f44a..7fab774 100644
--- a/mingw-w64-headers/include/sdoias.h
+++ b/mingw-w64-headers/include/sdoias.h
@@ -691,6 +691,48 @@
#endif
#endif
+#if (_WIN32_WINNT >= 0x0600)
+typedef enum _IDENTITY_TYPE {
+ IAS_IDENTITY_NO_DEFAULT = 1
+} IDENTITY_TYPE;
+
+typedef enum _ATTRIBUTE_FILTER {
+ ATTRIBUTE_FILTER_NONE,
+ ATTRIBUTE_FILTER_VPN_DIALUP,
+ ATTRIBUTE_FILTER_IEEE_802_1x
+} ATTRIBUTEFILTER;
+
+typedef enum REMEDIATIONSERVERGROUPPROPERTIES {
+ PROPERTY_REMEDIATIONSERVERGROUP_SERVERS_COLLECTION = PROPERTY_SDO_START
+} REMEDIATIONSERVERGROUPPROPERTIES;
+
+typedef enum _REMEDIATIONSERVERPROPERTIES {
+ PROPERTY_REMEDIATIONSERVER_ADDRESS = PROPERTY_SDO_START,
+ PROPERTY_REMEDIATIONSERVER_FRIENDLY_NAME
+} REMEDIATIONSERVERPROPERTIES;
+
+typedef enum _REMEDIATIONSERVERPROPERTIES {
+ PROPERTY_REMEDIATIONSERVERS_SERVERGROUPS = PROPERTY_COMPONENT_START
+} REMEDIATIONSERVERPROPERTIES;
+
+typedef enum _SHV_COMBINATION_TYPE {
+ SHV_COMBINATION_TYPE_ALL_PASS = 0,
+ SHV_COMBINATION_TYPE_ALL_FAIL,
+ SHV_COMBINATION_TYPE_ONE_OR_MORE_PASS,
+ SHV_COMBINATION_TYPE_ONE_OR_MORE_FAIL,
+ SHV_COMBINATION_TYPE_ONE_OR_MORE_INFECTED,
+ SHV_COMBINATION_TYPE_ONE_OR_MORE_TRANSITIONAL,
+ SHV_COMBINATION_TYPE_ONE_OR_MORE_UNKNOWN,
+ SHV_COMBINATION_TYPE_MAX
+} SHV_COMBINATION_TYPE;
+
+typedef enum _SHVTEMPLATEPROPERTIES {
+ PROPERTY_SHV_COMBINATION_TYPE = PROPERTY_SDO_START,
+ PROPERTY_SHV_LIST
+} SHVTEMPLATEPROPERTIES;
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
#ifdef __cplusplus
}
#endif
diff --git a/mingw-w64-headers/include/sfc.h b/mingw-w64-headers/include/sfc.h
index 9fcc629..477e87b 100644
--- a/mingw-w64-headers/include/sfc.h
+++ b/mingw-w64-headers/include/sfc.h
@@ -35,6 +35,14 @@
WINBOOL WINAPI SfcIsFileProtected(HANDLE RpcHandle,LPCWSTR ProtFileName);
WINBOOL WINAPI SfpVerifyFile(LPCSTR pszFileName,LPSTR pszError,DWORD dwErrSize);
+#if (_WIN32_WINNT >= 0x0600)
+WINBOOL WINAPI SfcIsKeyProtected(
+ HKEY hKey,
+ LPCWSTR lpSubKey,
+ REGSAM samDesired
+);
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
#ifdef __cplusplus
}
#endif
diff --git a/mingw-w64-headers/include/slerror.h b/mingw-w64-headers/include/slerror.h
new file mode 100644
index 0000000..54607ba
--- /dev/null
+++ b/mingw-w64-headers/include/slerror.h
@@ -0,0 +1,18 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_SLERROR
+#define _INC_SLERROR
+#if (_WIN32_WINNT >= 0x0600)
+
+#define SL_E_LICENSE_FILE_NOT_INSTALLED 0xC004F011
+#define SL_E_RIGHT_NOT_GRANTED 0xC004F013
+#define SL_E_NOT_SUPPORTED 0xC004F016
+#define SL_E_DATATYPE_MISMATCHED 0xC004F01E
+#define SL_E_LUA_ACCESSDENIED 0xC004F025
+#define SL_E_DEPENDENT_PROPERTY_NOT_SET 0xC004F066
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_SLERROR*/
diff --git a/mingw-w64-headers/include/slpublic.h b/mingw-w64-headers/include/slpublic.h
new file mode 100644
index 0000000..d0c50ef
--- /dev/null
+++ b/mingw-w64-headers/include/slpublic.h
@@ -0,0 +1,113 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_SLPUBLIC
+#define _INC_SLPUBLIC
+#if (_WIN32_WINNT >= 0x0600)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef LPVOID SLID;
+
+typedef enum _SL_GENUINE_STATE {
+ SL_GEN_STATE_IS_GENUINE = 0,
+ SL_GEN_STATE_INVALID_LICENSE = 1,
+ SL_GEN_STATE_TAMPERED = 2,
+ SL_GEN_STATE_LAST = 3
+} SL_GENUINE_STATE;
+
+typedef enum _tagSLDATATYPE {
+ SL_DATA_NONE = REG_NONE,
+ SL_DATA_SZ = REG_SZ,
+ SL_DATA_DWORD = REG_DWORD,
+ SL_DATA_BINARY = REG_BINARY,
+ SL_DATA_MULTI_SZ = REG_MULTI_SZ,
+ SL_DATA_SUM = 100
+} SLDATATYPE;
+
+typedef struct _tagSL_NONGENUINE_UI_OPTIONS {
+ DWORD cbSize;
+ const SLID *pComponentId;
+ HRESULT hResultUI;
+} SL_NONGENUINE_UI_OPTIONS;
+
+HRESULT WINAPI SLAcquireGenuineTicket(
+ void **ppTicketBlob,
+ UINT *pcbTicketBlob,
+ PCWSTR pwszTemplateId,
+ PCWSTR pwszServerUrl,
+ PCWSTR pwszClientToken
+);
+
+HRESULT WINAPI SLGetGenuineInformation(
+ const SLID *pAppId,
+ PCWSTR pwszValueName,
+ SLDATATYPE *peDataType,
+ UINT *pcbValue,
+ BYTE **ppbValue
+);
+
+HRESULT WINAPI SLGetInstalledSAMLicenseApplications(
+ UINT *pnReturnedAppIds,
+ SLID **ppReturnedAppIds
+);
+
+HRESULT WINAPI SLGetSAMLicense(
+ const SLID *pApplicationId,
+ UINT *pcbXmlLicenseData,
+ PBYTE *ppbXmlLicenseData
+);
+
+HRESULT WINAPI SLGetWindowsInformation(
+ PCWSTR pwszValueName,
+ SLDATATYPE *peDataType,
+ UINT *pcbValue,
+ PBYTE *ppbValue
+);
+
+HRESULT WINAPI SLGetWindowsInformationDWORD(
+ PCWSTR pwszValueName,
+ DWORD *pdwValue
+);
+
+HRESULT WINAPI SLInstallSAMLicense(
+ const SLID *pApplicationId,
+ UINT cbXmlLicenseData,
+ const BYTE *pbXmlLicenseData
+);
+
+HRESULT WINAPI SLIsGenuineLocal(
+ const SLID *pAppId,
+ SL_GENUINE_STATE *pGenuineState,
+ SL_NONGENUINE_UI_OPTIONS *pUIOptions
+);
+
+HRESULT WINAPI SLSetGenuineInformation(
+ const SLID *pAppId,
+ PCWSTR pwszValueName,
+ SLDATATYPE eDataType,
+ UINT cbValue,
+ const BYTE *pbValue
+);
+
+HRESULT WINAPI SLUninstallSAMLicense(
+ const SLID *pApplicationId
+);
+
+#if (_WIN32_WINNT >= 0x0601)
+HRESULT WINAPI SLIsGenuineLocalEx(
+ const SLID *pAppId,
+ const SLID pSkuId,
+ SL_GENUINE_STATE *pGenuineState
+);
+#endif /*(_WIN32_WINNT >= 0x0601)*/
+
+#ifdef __cplusplus
+}
+#endif
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_SLPUBLIC*/
diff --git a/mingw-w64-headers/include/sspi.h b/mingw-w64-headers/include/sspi.h
index 676077d..027ac52 100644
--- a/mingw-w64-headers/include/sspi.h
+++ b/mingw-w64-headers/include/sspi.h
@@ -1009,14 +1009,6 @@
#define SEC_WINNT_AUTH_IDENTITY_MARSHALLED 0x4
#define SEC_WINNT_AUTH_IDENTITY_ONLY 0x8
- typedef struct _SECURITY_PACKAGE_OPTIONS {
- unsigned long Size;
- unsigned long Type;
- unsigned long Flags;
- unsigned long SignatureSize;
- void *Signature;
- } SECURITY_PACKAGE_OPTIONS,*PSECURITY_PACKAGE_OPTIONS;
-
#define SECPKG_OPTIONS_TYPE_UNKNOWN 0
#define SECPKG_OPTIONS_TYPE_LSA 1
#define SECPKG_OPTIONS_TYPE_SSPI 2
@@ -1026,11 +1018,44 @@
#define AddSecurityPackage __MINGW_NAME_AW(AddSecurityPackage)
#define DeleteSecurityPackage __MINGW_NAME_AW(DeleteSecurityPackage)
- SECURITY_STATUS WINAPI AddSecurityPackageA(SEC_CHAR *pszPackageName,SECURITY_PACKAGE_OPTIONS *Options);
- SECURITY_STATUS WINAPI AddSecurityPackageW(SEC_WCHAR *pszPackageName,SECURITY_PACKAGE_OPTIONS *Options);
SECURITY_STATUS WINAPI DeleteSecurityPackageA(SEC_CHAR *pszPackageName);
SECURITY_STATUS WINAPI DeleteSecurityPackageW(SEC_WCHAR *pszPackageName);
+#if (_WIN32_WINNT >= 0x0600)
+ SECURITY_STATUS WINAPI ChangeAccountPassword(
+ SEC_WCHAR *pszPackageName,
+ SEC_WCHAR *pszDomainName,
+ SEC_WCHAR *pszAccountName,
+ SEC_WCHAR *pszOldPassword,
+ SEC_WCHAR *pszNewPassword,
+ BOOLEAN bImpersonating,
+ unsigned long dwReserved,
+ PSecBufferDesc pOutput
+ );
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
+#if (_WIN32_WINNT >= 0x0601)
+
+typedef struct _SECURITY_PACKAGE_OPTIONS {
+ unsigned long Size;
+ unsigned long Type;
+ unsigned long Flags;
+ unsigned long SignatureSize;
+ void *Signature;
+} SECURITY_PACKAGE_OPTIONS,*PSECURITY_PACKAGE_OPTIONS;
+
+SECURITY_STATUS WINAPI AddSecurityPackageA(
+ LPSTR pszPackageName,
+ PSECURITY_PACKAGE_OPTIONS pOptions
+);
+
+SECURITY_STATUS WINAPI AddSecurityPackageW(
+ LPWSTR pszPackageName,
+ PSECURITY_PACKAGE_OPTIONS pOptions
+);
+
+#define AddSecurityPackage __MINGW_NAME_AW(AddSecurityPackage)
+#endif /*(_WIN32_WINNT >= 0x0601)*/
#ifdef __cplusplus
}
diff --git a/mingw-w64-headers/include/stdole2.idl b/mingw-w64-headers/include/stdole2.idl
new file mode 100644
index 0000000..6b1d5bb
--- /dev/null
+++ b/mingw-w64-headers/include/stdole2.idl
@@ -0,0 +1,554 @@
+/* Automated generated idl file <stdole>.
+ * Generated by genidl tool (c) 2009, 2010 Mingw-w64 project.
+ */
+
+/* Interface forward declarations. */
+interface IUnknown;
+interface IDispatch;
+interface IEnumVARIANT;
+interface IFont;
+interface IPicture;
+
+/* Structure forward declarations. */
+struct GUID;
+struct DISPPARAMS;
+struct EXCEPINFO;
+
+/* Union record forward declarations. */
+dispinterface Font;
+dispinterface Picture;
+dispinterface FontEvents;
+
+/* Union record forward declarations. */
+coclass StdFont;
+coclass StdPicture;
+
+/* Enumeration declarations. */
+[
+ uuid(6650430A-BE0F-101A-8BBB-00AA00300CAB)
+]
+enum OLE_TRISTATE
+{
+ Unchecked = (int) 201326592,
+ Checked = (int) 201326593,
+ Gray = (int) 201326594
+};
+[
+ uuid(E6C8FA08-BD9F-11D0-985E-00C04FC29993)
+]
+enum LoadPictureConstants
+{
+ Default = (int) 201326592,
+ Monochrome = (int) 201326593,
+ VgaColor = (int) 201326594,
+ Color = (int) 201326596
+};
+
+/* Structure/union declarations. */
+[
+ hidden
+]
+struct GUID
+{
+ UINT Data1;
+ USHORT Data2;
+ USHORT Data3;
+ UCHAR Data4[8];
+};
+[
+ restricted
+]
+struct DISPPARAMS
+{
+ VARIANT *rgvarg;
+ long *rgdispidNamedArgs;
+ unsigned int cArgs;
+ unsigned int cNamedArgs;
+};
+[
+ restricted
+]
+struct EXCEPINFO
+{
+ USHORT wCode;
+ USHORT wReserved;
+ BSTR bstrSource;
+ BSTR bstrDescription;
+ BSTR bstrHelpFile;
+ UINT dwHelpContext;
+ void *pvReserved;
+ void *pfnDeferredFillIn;
+ SCODE scode;
+};
+
+/* Type definitions. */
+[
+ uuid(66504301-BE0F-101A-8BBB-00AA00300CAB)
+]
+typedef UINT OLE_COLOR;
+[
+ uuid(66504302-BE0F-101A-8BBB-00AA00300CAB),
+ hidden
+]
+typedef long OLE_XPOS_PIXELS;
+[
+ uuid(66504303-BE0F-101A-8BBB-00AA00300CAB),
+ hidden
+]
+typedef long OLE_YPOS_PIXELS;
+[
+ uuid(66504304-BE0F-101A-8BBB-00AA00300CAB),
+ hidden
+]
+typedef long OLE_XSIZE_PIXELS;
+[
+ uuid(66504305-BE0F-101A-8BBB-00AA00300CAB),
+ hidden
+]
+typedef long OLE_YSIZE_PIXELS;
+[
+ uuid(66504306-BE0F-101A-8BBB-00AA00300CAB),
+ hidden
+]
+typedef long OLE_XPOS_HIMETRIC;
+[
+ uuid(66504307-BE0F-101A-8BBB-00AA00300CAB),
+ hidden
+]
+typedef long OLE_YPOS_HIMETRIC;
+[
+ uuid(66504308-BE0F-101A-8BBB-00AA00300CAB),
+ hidden
+]
+typedef long OLE_XSIZE_HIMETRIC;
+[
+ uuid(66504309-BE0F-101A-8BBB-00AA00300CAB),
+ hidden
+]
+typedef long OLE_YSIZE_HIMETRIC;
+[
+ uuid(BF030640-9069-101B-AE2D-08002B2EC713),
+ hidden
+]
+typedef float OLE_XPOS_CONTAINER;
+[
+ uuid(BF030641-9069-101B-AE2D-08002B2EC713),
+ hidden
+]
+typedef float OLE_YPOS_CONTAINER;
+[
+ uuid(BF030642-9069-101B-AE2D-08002B2EC713),
+ hidden
+]
+typedef float OLE_XSIZE_CONTAINER;
+[
+ uuid(BF030643-9069-101B-AE2D-08002B2EC713),
+ hidden
+]
+typedef float OLE_YSIZE_CONTAINER;
+[
+ uuid(66504313-BE0F-101A-8BBB-00AA00300CAB)
+]
+typedef int OLE_HANDLE;
+[
+ uuid(6650430B-BE0F-101A-8BBB-00AA00300CAB)
+]
+typedef WINBOOL OLE_OPTEXCLUSIVE;
+[
+ uuid(BF030644-9069-101B-AE2D-08002B2EC713)
+]
+typedef WINBOOL OLE_CANCELBOOL;
+[
+ uuid(BF030645-9069-101B-AE2D-08002B2EC713),
+ hidden
+]
+typedef WINBOOL OLE_ENABLEDEFAULTBOOL;
+[
+ uuid(6650430D-BE0F-101A-8BBB-00AA00300CAB),
+ hidden
+]
+typedef BSTR FONTNAME;
+[
+ uuid(6650430E-BE0F-101A-8BBB-00AA00300CAB),
+ hidden
+]
+typedef CY FONTSIZE;
+[
+ uuid(6650430F-BE0F-101A-8BBB-00AA00300CAB),
+ hidden
+]
+typedef WINBOOL FONTBOLD;
+[
+ uuid(66504310-BE0F-101A-8BBB-00AA00300CAB),
+ hidden
+]
+typedef WINBOOL FONTITALIC;
+[
+ uuid(66504311-BE0F-101A-8BBB-00AA00300CAB),
+ hidden
+]
+typedef WINBOOL FONTUNDERSCORE;
+[
+ uuid(66504312-BE0F-101A-8BBB-00AA00300CAB),
+ hidden
+]
+typedef WINBOOL FONTSTRIKETHROUGH;
+typedef dispinterface Font IFontDisp;
+typedef dispinterface Picture IPictureDisp;
+typedef dispinterface FontEvents IFontEventsDisp;
+
+[
+ uuid(00020430-0000-0000-C000-000000000046),
+ version(2.0),
+ helpstring("OLE Automation")
+]
+library stdole
+{
+ /* CoClass declarations. */
+ [
+ uuid(0BE35203-8F91-11CE-9DE3-00AA004BB851),
+ cancreate
+ ]
+ coclass StdFont
+ {
+ dispinterface Font;
+ dispinterface FontEvents;
+ interface IFont;
+ };
+ [
+ uuid(0BE35204-8F91-11CE-9DE3-00AA004BB851),
+ cancreate
+ ]
+ coclass StdPicture
+ {
+ dispinterface Picture;
+ interface IPicture;
+ };
+
+ /* Dispatch interface declarations. */
+ [
+ uuid(BEF6E003-A874-101A-8BBA-00AA00300CAB),
+ dispatchable
+ ]
+ dispinterface Font
+ {
+ [id(0)]
+ BSTR Name;
+ [id(2)]
+ CY Size;
+ WINBOOL Bold;
+ WINBOOL Italic;
+ WINBOOL Underline;
+ WINBOOL Strikethrough;
+ short Weight;
+ short Charset;
+ };
+ [
+ uuid(7BF80981-BF32-101A-8BBB-00AA00300CAB),
+ dispatchable
+ ]
+ dispinterface Picture
+ {
+ [id(6)]
+ void __stdcall Render (
+ int hdc,
+ long x,
+ long y,
+ long cx,
+ long cy,
+ OLE_XPOS_HIMETRIC xSrc,
+ OLE_YPOS_HIMETRIC ySrc,
+ OLE_XSIZE_HIMETRIC cxSrc,
+ OLE_YSIZE_HIMETRIC cySrc,
+ void *prcWBounds
+ );
+ [id(0), readonly]
+ OLE_HANDLE Handle;
+ [id(2)]
+ OLE_HANDLE hPal;
+ [readonly]
+ short Type;
+ [readonly]
+ OLE_XSIZE_HIMETRIC Width;
+ [readonly]
+ OLE_YSIZE_HIMETRIC Height;
+ };
+ [
+ uuid(4EF6100A-AF88-11D0-9846-00C04FC29993),
+ helpstring("Event interface for the Font object"),
+ hidden,
+ dispatchable
+ ]
+ dispinterface FontEvents
+ {
+ [id(9)]
+ void __stdcall FontChanged (
+ [in] BSTR PropertyName
+ );
+ };
+
+};
+
+/* Interface declarations. */
+[
+ uuid(00000000-0000-0000-C000-000000000046),
+ hidden
+]
+interface IUnknown
+{
+ [id(1610612736), restricted]
+ HRESULT __stdcall QueryInterface (
+ [in] struct GUID *riid,
+ [out] void *ppvObj
+ );
+ [restricted]
+ UINT __stdcall AddRef (void);
+ [restricted]
+ UINT __stdcall Release (void);
+};
+[
+ uuid(00020400-0000-0000-C000-000000000046),
+ restricted
+]
+interface IDispatch : IUnknown
+{
+ [id(1610678272), restricted]
+ HRESULT __stdcall GetTypeInfoCount (
+ [out] unsigned int *pctinfo
+ );
+ [restricted]
+ HRESULT __stdcall GetTypeInfo (
+ [in] unsigned int itinfo,
+ [in] UINT lcid,
+ [out] void *pptinfo
+ );
+ [restricted]
+ HRESULT __stdcall GetIDsOfNames (
+ [in] struct GUID *riid,
+ [in] CHAR *rgszNames,
+ [in] unsigned int cNames,
+ [in] UINT lcid,
+ [out] long *rgdispid
+ );
+ [restricted]
+ HRESULT __stdcall Invoke (
+ [in] long dispidMember,
+ [in] struct GUID *riid,
+ [in] UINT lcid,
+ [in] USHORT wFlags,
+ [in] struct DISPPARAMS *pdispparams,
+ [out] VARIANT *pvarResult,
+ [out] struct EXCEPINFO *pexcepinfo,
+ [out] unsigned int *puArgErr
+ );
+};
+[
+ uuid(00020404-0000-0000-C000-000000000046),
+ hidden
+]
+interface IEnumVARIANT : IUnknown
+{
+ [id(1610678272)]
+ HRESULT __stdcall Next (
+ [in] UINT celt,
+ [in] VARIANT *rgvar,
+ [out] UINT *pceltFetched
+ );
+ HRESULT __stdcall Skip (
+ [in] UINT celt
+ );
+ HRESULT __stdcall Reset (void);
+ HRESULT __stdcall Clone (
+ [out] interface IEnumVARIANT **ppenum
+ );
+};
+[
+ uuid(BEF6E002-A874-101A-8BBA-00AA00300CAB),
+ helpstring("Font Object"),
+ hidden
+]
+interface IFont : IUnknown
+{
+ [id(1610678272), propget]
+ HRESULT __stdcall Name (
+ [out retval] BSTR *pname
+ );
+ [id(1610678272), propput]
+ HRESULT __stdcall Name (
+ [in] BSTR argNo1
+ );
+ [id(1610678274), propget]
+ HRESULT __stdcall Size (
+ [out retval] CY *psize
+ );
+ [id(1610678274), propput]
+ HRESULT __stdcall Size (
+ [in] CY argNo1
+ );
+ [id(1610678276), propget]
+ HRESULT __stdcall Bold (
+ [out retval] WINBOOL *pbold
+ );
+ [id(1610678276), propput]
+ HRESULT __stdcall Bold (
+ [in] WINBOOL argNo1
+ );
+ [id(1610678278), propget]
+ HRESULT __stdcall Italic (
+ [out retval] WINBOOL *pitalic
+ );
+ [id(1610678278), propput]
+ HRESULT __stdcall Italic (
+ [in] WINBOOL argNo1
+ );
+ [id(1610678280), propget]
+ HRESULT __stdcall Underline (
+ [out retval] WINBOOL *punderline
+ );
+ [id(1610678280), propput]
+ HRESULT __stdcall Underline (
+ [in] WINBOOL argNo1
+ );
+ [id(1610678282), propget]
+ HRESULT __stdcall Strikethrough (
+ [out retval] WINBOOL *pstrikethrough
+ );
+ [id(1610678282), propput]
+ HRESULT __stdcall Strikethrough (
+ [in] WINBOOL argNo1
+ );
+ [id(1610678284), propget]
+ HRESULT __stdcall Weight (
+ [out retval] short *pweight
+ );
+ [id(1610678284), propput]
+ HRESULT __stdcall Weight (
+ [in] short argNo1
+ );
+ [id(1610678286), propget]
+ HRESULT __stdcall Charset (
+ [out retval] short *pcharset
+ );
+ [id(1610678286), propput]
+ HRESULT __stdcall Charset (
+ [in] short argNo1
+ );
+ [id(1610678288), propget]
+ HRESULT __stdcall hFont (
+ [out retval] OLE_HANDLE *phfont
+ );
+ HRESULT __stdcall Clone (
+ [out] interface IFont **ppfont
+ );
+ HRESULT __stdcall IsEqual (
+ [in] interface IFont *pfontOther
+ );
+ HRESULT __stdcall SetRatio (
+ [in] long cyLogical,
+ [in] long cyHimetric
+ );
+ HRESULT __stdcall AddRefHfont (
+ [in] OLE_HANDLE hFont
+ );
+ HRESULT __stdcall ReleaseHfont (
+ [in] OLE_HANDLE hFont
+ );
+};
+[
+ uuid(7BF80980-BF32-101A-8BBB-00AA00300CAB),
+ helpstring("Picture Object"),
+ hidden
+]
+interface IPicture : IUnknown
+{
+ [id(1610678272), propget]
+ HRESULT __stdcall Handle (
+ [out retval] OLE_HANDLE *phandle
+ );
+ [propget]
+ HRESULT __stdcall hPal (
+ [out retval] OLE_HANDLE *phpal
+ );
+ [propget]
+ HRESULT __stdcall Type (
+ [out retval] short *ptype
+ );
+ [propget]
+ HRESULT __stdcall Width (
+ [out retval] OLE_XSIZE_HIMETRIC *pwidth
+ );
+ [propget]
+ HRESULT __stdcall Height (
+ [out retval] OLE_YSIZE_HIMETRIC *pheight
+ );
+ HRESULT __stdcall Render (
+ [in] int hdc,
+ [in] long x,
+ [in] long y,
+ [in] long cx,
+ [in] long cy,
+ [in] OLE_XPOS_HIMETRIC xSrc,
+ [in] OLE_YPOS_HIMETRIC ySrc,
+ [in] OLE_XSIZE_HIMETRIC cxSrc,
+ [in] OLE_YSIZE_HIMETRIC cySrc,
+ [in] void *prcWBounds
+ );
+ [id(1610678273), propput]
+ HRESULT __stdcall hPal (
+ [in] OLE_HANDLE argNo1
+ );
+ [id(1610678279), propget]
+ HRESULT __stdcall CurDC (
+ [out retval] int *phdcOut
+ );
+ HRESULT __stdcall SelectPicture (
+ [in] int hdcIn,
+ [out] int *phdcOut,
+ [out] OLE_HANDLE *phbmpOut
+ );
+ [propget]
+ HRESULT __stdcall KeepOriginalFormat (
+ [out retval] WINBOOL *pfkeep
+ );
+ [id(1610678281), propput]
+ HRESULT __stdcall KeepOriginalFormat (
+ [in] WINBOOL argNo1
+ );
+ [id(1610678283)]
+ HRESULT __stdcall PictureChanged (void);
+ HRESULT __stdcall SaveAsFile (
+ [in] void *pstm,
+ [in] WINBOOL fSaveMemCopy,
+ [out] long *pcbSize
+ );
+ [propget]
+ HRESULT __stdcall Attributes (
+ [out retval] long *pdwAttr
+ );
+ HRESULT __stdcall SetHdc (
+ [in] OLE_HANDLE hdc
+ );
+};
+
+/* Module declarations. */
+[
+ uuid(91209AC0-60F6-11CF-9C5D-00AA00C1489E),
+ helpstring("Functions for Standard OLE Objects"),
+ dllname("oleaut32.dll")
+]
+module StdFunctions
+{
+ [id(1610612736)]
+ static HRESULT __stdcall LoadPicture (
+ [in opt] VARIANT filename,
+ [in opt] int widthDesired = (int) 201326592,
+ [in opt] int heightDesired = (int) 201326592,
+ [in opt] enum LoadPictureConstants flags = (int) 201326592,
+ [out retval] IPictureDisp **retval
+ );
+ static HRESULT __stdcall SavePicture (
+ [in] IPictureDisp *Picture,
+ [in] BSTR filename
+ );
+};
+
diff --git a/mingw-w64-headers/include/tabflicks.h b/mingw-w64-headers/include/tabflicks.h
new file mode 100644
index 0000000..3e11c3e
--- /dev/null
+++ b/mingw-w64-headers/include/tabflicks.h
@@ -0,0 +1,73 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_TABFLICKS
+#define _INC_TABFLICKS
+#if (_WIN32_WINNT >= 0x0600)
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum FLICKACTION_COMMANDCODE {
+ FLICKACTION_COMMANDCODE_NULL = 0,
+ FLICKACTION_COMMANDCODE_SCROLL = 1,
+ FLICKACTION_COMMANDCODE_APPCOMMAND = 2,
+ FLICKACTION_COMMANDCODE_CUSTOMKEY = 3,
+ FLICKACTION_COMMANDCODE_KEYMODIFIER = 4
+} FLICKACTION_COMMANDCODE;
+
+typedef enum FLICKDIRECTION {
+ FLICKDIRECTION_RIGHT = 0,
+ FLICKDIRECTION_UPRIGHT = 1,
+ FLICKDIRECTION_UP = 2,
+ FLICKDIRECTION_UPLEFT = 3,
+ FLICKDIRECTION_LEFT = 4,
+ FLICKDIRECTION_DOWN = 6,
+ FLICKDIRECTION_DOWNRIGHT = 7,
+ FLICKDIRECTION_INVALID = 8
+} FLICKDIRECTION;
+
+typedef enum FLICKMODE {
+ FLICKMODE_OFF = 0,
+ FLICKMODE_ON = 1
+} FLICKMODE;
+
+typedef enum KEYMODIFIER {
+ KEYMODIFIER_CONTROL = 1,
+ KEYMODIFIER_MENU = 2,
+ KEYMODIFIER_SHIFT = 4,
+ KEYMODIFIER_WIN = 8,
+ KEYMODIFIER_ALTGR = 16,
+ KEYMODIFIER_EXT = 32
+} KEYMODIFIER;
+
+typedef enum SCROLLDIRECTION {
+ SCROLLDIRECTION_UP = 0,
+ SCROLLDIRECTION_DOWN = 1
+} SCROLLDIRECTION;
+
+typedef struct FLICK_DATA {
+ FLICKACTION_COMMANDCODE iFlickActionCommandCode :5;
+ FLICKDIRECTION iFlickDirection :3;
+ WINBOOL fControlModifier :1;
+ WINBOOL fMenuModifier :1;
+ WINBOOL fAltGRModifier :1;
+ WINBOOL fWinModifier :1;
+ WINBOOL fShiftModifier :1;
+ INT iReserved :2;
+ WINBOOL fOnInkingSurface :1;
+ INT iActionArgument :16;
+} FLICK_DATA;
+
+typedef struct FLICK_POINT {
+ INT x :16;
+ INT y :16;
+} FLICK_POINT;
+
+#ifdef __cplusplus
+}
+#endif
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif _INC_TABFLICKS
diff --git a/mingw-w64-headers/include/taskschd.h b/mingw-w64-headers/include/taskschd.h
new file mode 100644
index 0000000..22cecd1
--- /dev/null
+++ b/mingw-w64-headers/include/taskschd.h
@@ -0,0 +1,98 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_TASKSCHD
+#define _INC_TASKSCHD
+#if (_WIN32_WINNT >= 0x0600)
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum _TASK_COMPATIBILITY {
+ TASK_COMPATIBILITY_AT = 0,
+ TASK_COMPATIBILITY_V1 = 1,
+ TASK_COMPATIBILITY_V2 = 2
+} TASK_COMPATIBILITY;
+
+typedef enum _TASK_CREATION {
+ TASK_VALIDATE_ONLY = 0x1,
+ TASK_CREATE = 0x2,
+ TASK_UPDATE = 0x4,
+ TASK_CREATE_OR_UPDATE = 0x6,
+ TASK_DISABLE = 0x8,
+ TASK_DONT_ADD_PRINCIPAL_ACE = 0x10,
+ TASK_IGNORE_REGISTRATION_TRIGGERS = 0x20
+} TASK_CREATION;
+
+typedef enum _TASK_ENUM_HIDDEN {
+ TASK_ENUM_HIDDEN = 0x1
+} TASK_ENUM_FLAGS;
+
+typedef enum _TASK_INSTANCES_POLICY {
+ TASK_INSTANCES_PARALLEL = 0,
+ TASK_INSTANCES_QUEUE = 1,
+ TASK_INSTANCES_IGNORE_NEW = 2,
+ TASK_INSTANCES_STOP_EXISTING = 3
+} TASK_INSTANCES_POLICY;
+
+typedef enum _TASK_LOGON_TYPE {
+ TASK_LOGON_NONE = 0,
+ TASK_LOGON_PASSWORD = 1,
+ TASK_LOGON_S4U = 2,
+ TASK_LOGON_INTERACTIVE_TOKEN = 3,
+ TASK_LOGON_GROUP = 4,
+ TASK_LOGON_SERVICE_ACCOUNT = 5,
+ TASK_LOGON_INTERACTIVE_TOKEN_OR_PASSWORD = 6
+} TASK_LOGON_TYPE;
+
+typedef enum _TASK_RUN_FLAGS {
+ TASK_RUN_NO_FLAGS = 0x0,
+ TASK_RUN_AS_SELF = 0x1,
+ TASK_RUN_IGNORE_CONSTRAINTS = 0x2,
+ TASK_RUN_USE_SESSION_ID = 0x4,
+ TASK_RUN_USER_SID = 0x8
+} TASK_RUN_FLAGS;
+
+typedef enum _TASK_RUNLEVEL_TYPE {
+ TASK_RUNLEVEL_LUA = 0,
+ TASK_RUNLEVEL_HIGHEST = 1
+} TASK_RUNLEVEL_TYPE;
+
+typedef enum _TASK_SESSION_STATE_CHANGE_TYPE {
+ TASK_CONSOLE_CONNECT = 1,
+ TASK_CONSOLE_DISCONNECT = 2,
+ TASK_REMOTE_CONNECT = 3,
+ TASK_REMOTE_DISCONNECT = 4,
+ TASK_SESSION_LOCK = 7,
+ TASK_SESSION_UNLOCK = 8
+} TASK_SESSION_STATE_CHANGE_TYPE;
+
+typedef enum _TASK_STATE {
+ TASK_STATE_UNKNOWN = 0,
+ TASK_STATE_DISABLED = 1,
+ TASK_STATE_QUEUED = 2,
+ TASK_STATE_READY = 3,
+ TASK_STATE_RUNNING = 4
+} TASK_STATE;
+
+typedef enum _TASK_TRIGGER_TYPE2 {
+ TASK_TRIGGER_EVENT = 0,
+ TASK_TRIGGER_TIME = 1,
+ TASK_TRIGGER_DAILY = 2,
+ TASK_TRIGGER_WEEKLY = 3,
+ TASK_TRIGGER_MONTHLY = 4,
+ TASK_TRIGGER_MONTHLYDOW = 5,
+ TASK_TRIGGER_IDLE = 6,
+ TASK_TRIGGER_REGISTRATION = 7,
+ TASK_TRIGGER_BOOT = 8,
+ TASK_TRIGGER_LOGON = 9,
+ TASK_TRIGGER_SESSION_STATE_CHANGE = 11
+} TASK_TRIGGER_TYPE2;
+
+#ifdef __cplusplus
+}
+#endif
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_TASKSCHD*/
diff --git a/mingw-w64-headers/include/taskschd.idl b/mingw-w64-headers/include/taskschd.idl
new file mode 100644
index 0000000..b7da5b2
--- /dev/null
+++ b/mingw-w64-headers/include/taskschd.idl
@@ -0,0 +1,1787 @@
+/* Automated generated idl file <taskscheduler>.
+ * Generated by genidl tool (c) 2009, 2010 Mingw-w64 project.
+ */
+
+/* Interface forward declarations. */
+interface ITaskHandler;
+interface ITaskHandlerStatus;
+interface ITaskVariables;
+
+/* Structure forward declarations. */
+struct _SYSTEMTIME;
+
+/* Union record forward declarations. */
+dispinterface ITaskFolderCollection;
+dispinterface ITaskFolder;
+dispinterface IRegisteredTask;
+dispinterface IRunningTask;
+dispinterface IRunningTaskCollection;
+dispinterface ITaskDefinition;
+dispinterface IRegistrationInfo;
+dispinterface ITriggerCollection;
+dispinterface ITrigger;
+dispinterface IRepetitionPattern;
+dispinterface ITaskSettings;
+dispinterface IIdleSettings;
+dispinterface INetworkSettings;
+dispinterface IPrincipal;
+dispinterface IActionCollection;
+dispinterface IAction;
+dispinterface IRegisteredTaskCollection;
+dispinterface ITaskService;
+dispinterface ITaskNamedValuePair;
+dispinterface ITaskNamedValueCollection;
+dispinterface IIdleTrigger;
+dispinterface ILogonTrigger;
+dispinterface ISessionStateChangeTrigger;
+dispinterface IEventTrigger;
+dispinterface ITimeTrigger;
+dispinterface IDailyTrigger;
+dispinterface IWeeklyTrigger;
+dispinterface IMonthlyTrigger;
+dispinterface IMonthlyDOWTrigger;
+dispinterface IBootTrigger;
+dispinterface IRegistrationTrigger;
+dispinterface IExecAction;
+dispinterface IShowMessageAction;
+dispinterface IComHandlerAction;
+dispinterface IEmailAction;
+
+/* Union record forward declarations. */
+coclass TaskScheduler;
+coclass TaskHandlerPS;
+coclass TaskHandlerStatusPS;
+
+/* Enumeration declarations. */
+enum _TASK_STATE
+{
+ TASK_STATE_UNKNOWN = (int) 201326592,
+ TASK_STATE_DISABLED = (int) 201326593,
+ TASK_STATE_QUEUED = (int) 201326594,
+ TASK_STATE_READY = (int) 201326595,
+ TASK_STATE_RUNNING = (int) 201326596
+};
+enum _TASK_TRIGGER_TYPE2
+{
+ TASK_TRIGGER_EVENT = (int) 201326592,
+ TASK_TRIGGER_TIME = (int) 201326593,
+ TASK_TRIGGER_DAILY = (int) 201326594,
+ TASK_TRIGGER_WEEKLY = (int) 201326595,
+ TASK_TRIGGER_MONTHLY = (int) 201326596,
+ TASK_TRIGGER_MONTHLYDOW = (int) 201326597,
+ TASK_TRIGGER_IDLE = (int) 201326598,
+ TASK_TRIGGER_REGISTRATION = (int) 201326599,
+ TASK_TRIGGER_BOOT = (int) 201326600,
+ TASK_TRIGGER_LOGON = (int) 201326601,
+ TASK_TRIGGER_SESSION_STATE_CHANGE = (int) 201326603
+};
+enum _TASK_INSTANCES_POLICY
+{
+ TASK_INSTANCES_PARALLEL = (int) 201326592,
+ TASK_INSTANCES_QUEUE = (int) 201326593,
+ TASK_INSTANCES_IGNORE_NEW = (int) 201326594,
+ TASK_INSTANCES_STOP_EXISTING = (int) 201326595
+};
+enum _TASK_COMPATIBILITY
+{
+ TASK_COMPATIBILITY_AT = (int) 201326592,
+ TASK_COMPATIBILITY_V1 = (int) 201326593,
+ TASK_COMPATIBILITY_V2 = (int) 201326594
+};
+enum _TASK_LOGON_TYPE
+{
+ TASK_LOGON_NONE = (int) 201326592,
+ TASK_LOGON_PASSWORD = (int) 201326593,
+ TASK_LOGON_S4U = (int) 201326594,
+ TASK_LOGON_INTERACTIVE_TOKEN = (int) 201326595,
+ TASK_LOGON_GROUP = (int) 201326596,
+ TASK_LOGON_SERVICE_ACCOUNT = (int) 201326597,
+ TASK_LOGON_INTERACTIVE_TOKEN_OR_PASSWORD = (int) 201326598
+};
+enum _TASK_RUNLEVEL
+{
+ TASK_RUNLEVEL_LUA = (int) 201326592,
+ TASK_RUNLEVEL_HIGHEST = (int) 201326593
+};
+enum _TASK_ACTION_TYPE
+{
+ TASK_ACTION_EXEC = (int) 201326592,
+ TASK_ACTION_COM_HANDLER = (int) 201326597,
+ TASK_ACTION_SEND_EMAIL = (int) 201326598,
+ TASK_ACTION_SHOW_MESSAGE = (int) 201326599
+};
+enum _TASK_SESSION_STATE_CHANGE_TYPE
+{
+ TASK_CONSOLE_CONNECT = (int) 201326593,
+ TASK_CONSOLE_DISCONNECT = (int) 201326594,
+ TASK_REMOTE_CONNECT = (int) 201326595,
+ TASK_REMOTE_DISCONNECT = (int) 201326596,
+ TASK_SESSION_LOCK = (int) 201326599,
+ TASK_SESSION_UNLOCK = (int) 201326600
+};
+enum _TASK_RUN_FLAGS
+{
+ TASK_RUN_NO_FLAGS = (int) 201326592,
+ TASK_RUN_AS_SELF = (int) 201326593,
+ TASK_RUN_IGNORE_CONSTRAINTS = (int) 201326594,
+ TASK_RUN_USE_SESSION_ID = (int) 201326596,
+ TASK_RUN_USER_SID = (int) 201326600
+};
+enum _TASK_ENUM_FLAGS
+{
+ TASK_ENUM_HIDDEN = (int) 201326593
+};
+enum _TASK_CREATION
+{
+ TASK_VALIDATE_ONLY = (int) 201326593,
+ TASK_CREATE = (int) 201326594,
+ TASK_UPDATE = (int) 201326596,
+ TASK_CREATE_OR_UPDATE = (int) 201326598,
+ TASK_DISABLE = (int) 201326600,
+ TASK_DONT_ADD_PRINCIPAL_ACE = (int) 201326608,
+ TASK_IGNORE_REGISTRATION_TRIGGERS = (int) 201326624
+};
+
+/* Structure/union declarations. */
+struct _SYSTEMTIME
+{
+ USHORT wYear;
+ USHORT wMonth;
+ USHORT wDayOfWeek;
+ USHORT wDay;
+ USHORT wHour;
+ USHORT wMinute;
+ USHORT wSecond;
+ USHORT wMilliseconds;
+};
+
+[
+ uuid(E34CB9F1-C7F7-424C-BE29-027DCC09363A),
+ version(1.0)
+]
+library taskscheduler
+{
+ importlib("stdole2.tlb");
+
+ /* CoClass declarations. */
+ [
+ uuid(0F87369F-A4E5-4CFC-BD3E-73E6154572DD),
+ cancreate
+ ]
+ coclass TaskScheduler
+ {
+ dispinterface ITaskService;
+ };
+ [
+ uuid(F2A69DB7-DA2C-4352-9066-86FEE6DACAC9),
+ cancreate
+ ]
+ coclass TaskHandlerPS
+ {
+ interface ITaskHandler;
+ };
+ [
+ uuid(9F15266D-D7BA-48F0-93C1-E6895F6FE5AC),
+ cancreate
+ ]
+ coclass TaskHandlerStatusPS
+ {
+ interface ITaskHandlerStatus;
+ interface ITaskVariables;
+ };
+
+ /* Dispatch interface declarations. */
+ [
+ uuid(79184A66-8664-423F-97F1-637356A5D812),
+ helpstring("Container for ITaskFolders"),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface ITaskFolderCollection : IDispatch
+ {
+ [id(1610743808), propget]
+ HRESULT __stdcall Count (
+ [out retval] long *pCount
+ );
+ [id(0), propget]
+ HRESULT __stdcall Item (
+ [in] VARIANT index,
+ [out retval] dispinterface ITaskFolder **ppFolder
+ );
+ [id(-4), propget]
+ HRESULT __stdcall _NewEnum (
+ [out retval] IUnknown **ppEnum
+ );
+ };
+ [
+ uuid(8CFAC062-A080-4C15-9A88-AA7C2AF80DFC),
+ helpstring("Container (directory) for tasks"),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface ITaskFolder : IDispatch
+ {
+ [id(1), propget]
+ HRESULT __stdcall Name (
+ [out retval] BSTR *pName
+ );
+ [id(0), propget]
+ HRESULT __stdcall Path (
+ [out retval] BSTR *pPath
+ );
+ [id(3)]
+ HRESULT __stdcall GetFolder (
+ BSTR Path,
+ [out retval] dispinterface ITaskFolder **ppFolder
+ );
+ HRESULT __stdcall GetFolders (
+ long flags,
+ [out retval] dispinterface ITaskFolderCollection **ppFolders
+ );
+ HRESULT __stdcall CreateFolder (
+ [in] BSTR subFolderName,
+ [in opt] VARIANT sddl,
+ [out retval] dispinterface ITaskFolder **ppFolder
+ );
+ HRESULT __stdcall DeleteFolder (
+ BSTR subFolderName,
+ [in] long flags
+ );
+ HRESULT __stdcall GetTask (
+ BSTR Path,
+ [out retval] dispinterface IRegisteredTask **ppTask
+ );
+ HRESULT __stdcall GetTasks (
+ long flags,
+ [out retval] dispinterface IRegisteredTaskCollection **ppTasks
+ );
+ HRESULT __stdcall DeleteTask (
+ [in] BSTR Name,
+ [in] long flags
+ );
+ HRESULT __stdcall RegisterTask (
+ [in] BSTR Path,
+ [in] BSTR XmlText,
+ [in] long flags,
+ [in] VARIANT UserId,
+ [in] VARIANT password,
+ [in] enum _TASK_LOGON_TYPE LogonType,
+ [in opt] VARIANT sddl,
+ [out retval] dispinterface IRegisteredTask **ppTask
+ );
+ HRESULT __stdcall RegisterTaskDefinition (
+ [in] BSTR Path,
+ [in] dispinterface ITaskDefinition *pDefinition,
+ [in] long flags,
+ [in] VARIANT UserId,
+ [in] VARIANT password,
+ [in] enum _TASK_LOGON_TYPE LogonType,
+ [in opt] VARIANT sddl,
+ [out retval] dispinterface IRegisteredTask **ppTask
+ );
+ HRESULT __stdcall GetSecurityDescriptor (
+ long securityInformation,
+ [out retval] BSTR *pSddl
+ );
+ HRESULT __stdcall SetSecurityDescriptor (
+ [in] BSTR sddl,
+ [in] long flags
+ );
+ };
+ [
+ uuid(9C86F320-DEE3-4DD1-B972-A303F26B061E),
+ helpstring("A task that has been given to the Task Scheduler service"),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IRegisteredTask : IDispatch
+ {
+ [id(1), propget]
+ HRESULT __stdcall Name (
+ [out retval] BSTR *pName
+ );
+ [id(0), propget]
+ HRESULT __stdcall Path (
+ [out retval] BSTR *pPath
+ );
+ [id(2), propget]
+ HRESULT __stdcall State (
+ [out retval] enum _TASK_STATE *pState
+ );
+ [propget]
+ HRESULT __stdcall Enabled (
+ [out retval] WINBOOL *pEnabled
+ );
+ [id(3), propput]
+ HRESULT __stdcall Enabled (
+ WINBOOL argNo1
+ );
+ [id(5)]
+ HRESULT __stdcall Run (
+ [in] VARIANT params,
+ [out retval] dispinterface IRunningTask **ppRunningTask
+ );
+ HRESULT __stdcall RunEx (
+ [in] VARIANT params,
+ [in] long flags,
+ [in] long sessionID,
+ [in] BSTR user,
+ [out retval] dispinterface IRunningTask **ppRunningTask
+ );
+ HRESULT __stdcall GetInstances (
+ long flags,
+ [out retval] dispinterface IRunningTaskCollection **ppRunningTasks
+ );
+ [propget]
+ HRESULT __stdcall LastRunTime (
+ [out retval] DATE *pLastRunTime
+ );
+ [propget]
+ HRESULT __stdcall LastTaskResult (
+ [out retval] long *pLastTaskResult
+ );
+ [id(11), propget]
+ HRESULT __stdcall NumberOfMissedRuns (
+ [out retval] long *pNumberOfMissedRuns
+ );
+ [propget]
+ HRESULT __stdcall NextRunTime (
+ [out retval] DATE *pNextRunTime
+ );
+ [propget]
+ HRESULT __stdcall Definition (
+ [out retval] dispinterface ITaskDefinition **ppDefinition
+ );
+ [propget]
+ HRESULT __stdcall Xml (
+ [out retval] BSTR *pXml
+ );
+ HRESULT __stdcall GetSecurityDescriptor (
+ long securityInformation,
+ [out retval] BSTR *pSddl
+ );
+ HRESULT __stdcall SetSecurityDescriptor (
+ [in] BSTR sddl,
+ [in] long flags
+ );
+ HRESULT __stdcall Stop (
+ long flags
+ );
+ [id(1610743825), restricted, hidden]
+ HRESULT __stdcall GetRunTimes (
+ [in] struct _SYSTEMTIME *pstStart,
+ [in] struct _SYSTEMTIME *pstEnd,
+ [in out] UINT *pCount,
+ [out] struct _SYSTEMTIME **pRunTimes
+ );
+ };
+ [
+ uuid(653758FB-7B9A-4F1E-A471-BEEB8E9B834E),
+ helpstring("A Task that is currently executing"),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IRunningTask : IDispatch
+ {
+ [id(1), propget]
+ HRESULT __stdcall Name (
+ [out retval] BSTR *pName
+ );
+ [id(0), propget]
+ HRESULT __stdcall InstanceGuid (
+ [out retval] BSTR *pGuid
+ );
+ [id(2), propget]
+ HRESULT __stdcall Path (
+ [out retval] BSTR *pPath
+ );
+ [propget]
+ HRESULT __stdcall State (
+ [out retval] enum _TASK_STATE *pState
+ );
+ [propget]
+ HRESULT __stdcall CurrentAction (
+ [out retval] BSTR *pName
+ );
+ HRESULT __stdcall Stop (void);
+ HRESULT __stdcall Refresh (void);
+ [propget]
+ HRESULT __stdcall EnginePID (
+ [out retval] UINT *pPID
+ );
+ };
+ [
+ uuid(6A67614B-6828-4FEC-AA54-6D52E8F1F2DB),
+ helpstring("Group of tasks which are currently executing"),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IRunningTaskCollection : IDispatch
+ {
+ [id(1), propget]
+ HRESULT __stdcall Count (
+ [out retval] long *pCount
+ );
+ [id(0), propget]
+ HRESULT __stdcall Item (
+ [in] VARIANT index,
+ [out retval] dispinterface IRunningTask **ppRunningTask
+ );
+ [id(-4), propget]
+ HRESULT __stdcall _NewEnum (
+ [out retval] IUnknown **ppEnum
+ );
+ };
+ [
+ uuid(F5BC8FC5-536D-4F77-B852-FBC1356FDEB6),
+ helpstring("Describe task to be run by the Task Scheduler service"),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface ITaskDefinition : IDispatch
+ {
+ [id(1), propget]
+ HRESULT __stdcall RegistrationInfo (
+ [out retval] dispinterface IRegistrationInfo **ppRegistrationInfo
+ );
+ [id(1), propput]
+ HRESULT __stdcall RegistrationInfo (
+ [in] dispinterface IRegistrationInfo *argNo1
+ );
+ [propget]
+ HRESULT __stdcall Triggers (
+ [out retval] dispinterface ITriggerCollection **ppTriggers
+ );
+ [id(2), propput]
+ HRESULT __stdcall Triggers (
+ [in] dispinterface ITriggerCollection *argNo1
+ );
+ [id(7), propget]
+ HRESULT __stdcall Settings (
+ [out retval] dispinterface ITaskSettings **ppSettings
+ );
+ [id(7), propput]
+ HRESULT __stdcall Settings (
+ [in] dispinterface ITaskSettings *argNo1
+ );
+ [id(11), propget]
+ HRESULT __stdcall Data (
+ [out retval] BSTR *pData
+ );
+ [id(11), propput]
+ HRESULT __stdcall Data (
+ [in] BSTR argNo1
+ );
+ [propget]
+ HRESULT __stdcall Principal (
+ [out retval] dispinterface IPrincipal **ppPrincipal
+ );
+ [id(12), propput]
+ HRESULT __stdcall Principal (
+ [in] dispinterface IPrincipal *argNo1
+ );
+ [propget]
+ HRESULT __stdcall Actions (
+ [out retval] dispinterface IActionCollection **ppActions
+ );
+ [id(13), propput]
+ HRESULT __stdcall Actions (
+ [in] dispinterface IActionCollection *argNo1
+ );
+ [propget]
+ HRESULT __stdcall XmlText (
+ [out retval] BSTR *pXml
+ );
+ [id(14), propput]
+ HRESULT __stdcall XmlText (
+ [in] BSTR argNo1
+ );
+ };
+ [
+ uuid(416D8B73-CB41-4EA1-805C-9BE9A5AC4A74),
+ helpstring("Information about the task"),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IRegistrationInfo : IDispatch
+ {
+ [id(1), propget]
+ HRESULT __stdcall Description (
+ [out retval] BSTR *pDescription
+ );
+ [id(1), propput]
+ HRESULT __stdcall Description (
+ [in] BSTR argNo1
+ );
+ [propget]
+ HRESULT __stdcall Author (
+ [out retval] BSTR *pAuthor
+ );
+ [id(2), propput]
+ HRESULT __stdcall Author (
+ [in] BSTR argNo1
+ );
+ [id(4), propget]
+ HRESULT __stdcall Version (
+ [out retval] BSTR *pVersion
+ );
+ [id(4), propput]
+ HRESULT __stdcall Version (
+ [in] BSTR argNo1
+ );
+ [propget]
+ HRESULT __stdcall Date (
+ [out retval] BSTR *pDate
+ );
+ [id(5), propput]
+ HRESULT __stdcall Date (
+ [in] BSTR argNo1
+ );
+ [propget]
+ HRESULT __stdcall Documentation (
+ [out retval] BSTR *pDocumentation
+ );
+ [id(6), propput]
+ HRESULT __stdcall Documentation (
+ [in] BSTR argNo1
+ );
+ [id(9), propget]
+ HRESULT __stdcall XmlText (
+ [out retval] BSTR *pText
+ );
+ [id(9), propput]
+ HRESULT __stdcall XmlText (
+ [in] BSTR argNo1
+ );
+ [propget]
+ HRESULT __stdcall URI (
+ [out retval] BSTR *pUri
+ );
+ [id(10), propput]
+ HRESULT __stdcall URI (
+ [in] BSTR argNo1
+ );
+ [propget]
+ HRESULT __stdcall SecurityDescriptor (
+ [out retval] VARIANT *pSddl
+ );
+ [id(11), propput]
+ HRESULT __stdcall SecurityDescriptor (
+ [in] VARIANT argNo1
+ );
+ [propget]
+ HRESULT __stdcall Source (
+ [out retval] BSTR *pSource
+ );
+ [id(12), propput]
+ HRESULT __stdcall Source (
+ [in] BSTR argNo1
+ );
+ };
+ [
+ uuid(85DF5081-1B24-4F32-878A-D9D14DF4CB77),
+ helpstring("Container for ITriggers"),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface ITriggerCollection : IDispatch
+ {
+ [id(1), propget]
+ HRESULT __stdcall Count (
+ [out retval] long *pCount
+ );
+ [id(0), propget]
+ HRESULT __stdcall Item (
+ [in] long index,
+ [out retval] dispinterface ITrigger **ppTrigger
+ );
+ [id(-4), propget]
+ HRESULT __stdcall _NewEnum (
+ [out retval] IUnknown **ppEnum
+ );
+ [id(2)]
+ HRESULT __stdcall Create (
+ [in] enum _TASK_TRIGGER_TYPE2 Type,
+ [out retval] dispinterface ITrigger **ppTrigger
+ );
+ [id(4)]
+ HRESULT __stdcall Remove (
+ [in] VARIANT index
+ );
+ HRESULT __stdcall Clear (void);
+ };
+ [
+ uuid(09941815-EA89-4B5B-89E0-2A773801FAC3),
+ helpstring("Specify when the task is started"),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface ITrigger : IDispatch
+ {
+ [id(1), propget]
+ HRESULT __stdcall Type (
+ [out retval] enum _TASK_TRIGGER_TYPE2 *pType
+ );
+ [propget]
+ HRESULT __stdcall Id (
+ [out retval] BSTR *pId
+ );
+ [id(2), propput]
+ HRESULT __stdcall Id (
+ [in] BSTR argNo1
+ );
+ [propget]
+ HRESULT __stdcall Repetition (
+ [out retval] dispinterface IRepetitionPattern **ppRepeat
+ );
+ [id(3), propput]
+ HRESULT __stdcall Repetition (
+ [in] dispinterface IRepetitionPattern *argNo1
+ );
+ [propget]
+ HRESULT __stdcall ExecutionTimeLimit (
+ [out retval] BSTR *pTimeLimit
+ );
+ [id(4), propput]
+ HRESULT __stdcall ExecutionTimeLimit (
+ [in] BSTR argNo1
+ );
+ [propget]
+ HRESULT __stdcall StartBoundary (
+ [out retval] BSTR *pStart
+ );
+ [id(5), propput]
+ HRESULT __stdcall StartBoundary (
+ [in] BSTR argNo1
+ );
+ [propget]
+ HRESULT __stdcall EndBoundary (
+ [out retval] BSTR *pEnd
+ );
+ [id(6), propput]
+ HRESULT __stdcall EndBoundary (
+ [in] BSTR argNo1
+ );
+ [propget]
+ HRESULT __stdcall Enabled (
+ [out retval] WINBOOL *pEnabled
+ );
+ [id(7), propput]
+ HRESULT __stdcall Enabled (
+ [in] WINBOOL argNo1
+ );
+ };
+ [
+ uuid(7FB9ACF1-26BE-400E-85B5-294B9C75DFD6),
+ helpstring("Specify how often a task is to repeat"),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IRepetitionPattern : IDispatch
+ {
+ [id(1), propget]
+ HRESULT __stdcall Interval (
+ [out retval] BSTR *pInterval
+ );
+ [id(1), propput]
+ HRESULT __stdcall Interval (
+ [in] BSTR argNo1
+ );
+ [propget]
+ HRESULT __stdcall Duration (
+ [out retval] BSTR *pDuration
+ );
+ [id(2), propput]
+ HRESULT __stdcall Duration (
+ [in] BSTR argNo1
+ );
+ [propget]
+ HRESULT __stdcall StopAtDurationEnd (
+ [out retval] WINBOOL *pStop
+ );
+ [id(3), propput]
+ HRESULT __stdcall StopAtDurationEnd (
+ [in] WINBOOL argNo1
+ );
+ };
+ [
+ uuid(8FD4711D-2D02-4C8C-87E3-EFF699DE127E),
+ helpstring("Control execution of the task"),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface ITaskSettings : IDispatch
+ {
+ [id(3), propget]
+ HRESULT __stdcall AllowDemandStart (
+ [out retval] WINBOOL *pAllowDemandStart
+ );
+ [id(3), propput]
+ HRESULT __stdcall AllowDemandStart (
+ [in] WINBOOL argNo1
+ );
+ [propget]
+ HRESULT __stdcall RestartInterval (
+ [out retval] BSTR *pRestartInterval
+ );
+ [id(4), propput]
+ HRESULT __stdcall RestartInterval (
+ [in] BSTR argNo1
+ );
+ [propget]
+ HRESULT __stdcall RestartCount (
+ [out retval] int *pRestartCount
+ );
+ [id(5), propput]
+ HRESULT __stdcall RestartCount (
+ [in] int argNo1
+ );
+ [propget]
+ HRESULT __stdcall MultipleInstances (
+ [out retval] enum _TASK_INSTANCES_POLICY *pPolicy
+ );
+ [id(6), propput]
+ HRESULT __stdcall MultipleInstances (
+ [in] enum _TASK_INSTANCES_POLICY argNo1
+ );
+ [propget]
+ HRESULT __stdcall StopIfGoingOnBatteries (
+ [out retval] WINBOOL *pStopIfOnBatteries
+ );
+ [id(7), propput]
+ HRESULT __stdcall StopIfGoingOnBatteries (
+ [in] WINBOOL argNo1
+ );
+ [propget]
+ HRESULT __stdcall DisallowStartIfOnBatteries (
+ [out retval] WINBOOL *pDisallowStart
+ );
+ [id(8), propput]
+ HRESULT __stdcall DisallowStartIfOnBatteries (
+ [in] WINBOOL argNo1
+ );
+ [propget]
+ HRESULT __stdcall AllowHardTerminate (
+ [out retval] WINBOOL *pAllowHardTerminate
+ );
+ [id(9), propput]
+ HRESULT __stdcall AllowHardTerminate (
+ [in] WINBOOL argNo1
+ );
+ [propget]
+ HRESULT __stdcall StartWhenAvailable (
+ [out retval] WINBOOL *pStartWhenAvailable
+ );
+ [id(10), propput]
+ HRESULT __stdcall StartWhenAvailable (
+ [in] WINBOOL argNo1
+ );
+ [propget]
+ HRESULT __stdcall XmlText (
+ [out retval] BSTR *pText
+ );
+ [id(11), propput]
+ HRESULT __stdcall XmlText (
+ [in] BSTR argNo1
+ );
+ [propget]
+ HRESULT __stdcall RunOnlyIfNetworkAvailable (
+ [out retval] WINBOOL *pRunOnlyIfNetworkAvailable
+ );
+ [id(12), propput]
+ HRESULT __stdcall RunOnlyIfNetworkAvailable (
+ [in] WINBOOL argNo1
+ );
+ [propget]
+ HRESULT __stdcall ExecutionTimeLimit (
+ [out retval] BSTR *pExecutionTimeLimit
+ );
+ [id(13), propput]
+ HRESULT __stdcall ExecutionTimeLimit (
+ [in] BSTR argNo1
+ );
+ [propget]
+ HRESULT __stdcall Enabled (
+ [out retval] WINBOOL *pEnabled
+ );
+ [id(14), propput]
+ HRESULT __stdcall Enabled (
+ [in] WINBOOL argNo1
+ );
+ [propget]
+ HRESULT __stdcall DeleteExpiredTaskAfter (
+ [out retval] BSTR *pExpirationDelay
+ );
+ [id(15), propput]
+ HRESULT __stdcall DeleteExpiredTaskAfter (
+ [in] BSTR argNo1
+ );
+ [propget]
+ HRESULT __stdcall Priority (
+ [out retval] int *pPriority
+ );
+ [id(16), propput]
+ HRESULT __stdcall Priority (
+ [in] int argNo1
+ );
+ [propget]
+ HRESULT __stdcall Compatibility (
+ [out retval] enum _TASK_COMPATIBILITY *pCompatLevel
+ );
+ [id(17), propput]
+ HRESULT __stdcall Compatibility (
+ [in] enum _TASK_COMPATIBILITY argNo1
+ );
+ [propget]
+ HRESULT __stdcall Hidden (
+ [out retval] WINBOOL *pHidden
+ );
+ [id(18), propput]
+ HRESULT __stdcall Hidden (
+ [in] WINBOOL argNo1
+ );
+ [propget]
+ HRESULT __stdcall IdleSettings (
+ [out retval] dispinterface IIdleSettings **ppIdleSettings
+ );
+ [id(19), propput]
+ HRESULT __stdcall IdleSettings (
+ [in] dispinterface IIdleSettings *argNo1
+ );
+ [propget]
+ HRESULT __stdcall RunOnlyIfIdle (
+ [out retval] WINBOOL *pRunOnlyIfIdle
+ );
+ [id(20), propput]
+ HRESULT __stdcall RunOnlyIfIdle (
+ [in] WINBOOL argNo1
+ );
+ [propget]
+ HRESULT __stdcall WakeToRun (
+ [out retval] WINBOOL *pWake
+ );
+ [id(21), propput]
+ HRESULT __stdcall WakeToRun (
+ [in] WINBOOL argNo1
+ );
+ [propget]
+ HRESULT __stdcall NetworkSettings (
+ [out retval] dispinterface INetworkSettings **ppNetworkSettings
+ );
+ [id(22), propput]
+ HRESULT __stdcall NetworkSettings (
+ [in] dispinterface INetworkSettings *argNo1
+ );
+ };
+ [
+ uuid(84594461-0053-4342-A8FD-088FABF11F32),
+ helpstring("Parameters which specify idle state required for task to run"),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IIdleSettings : IDispatch
+ {
+ [id(1), propget]
+ HRESULT __stdcall IdleDuration (
+ [out retval] BSTR *pDelay
+ );
+ [id(1), propput]
+ HRESULT __stdcall IdleDuration (
+ [in] BSTR argNo1
+ );
+ [propget]
+ HRESULT __stdcall WaitTimeout (
+ [out retval] BSTR *pTimeout
+ );
+ [id(2), propput]
+ HRESULT __stdcall WaitTimeout (
+ [in] BSTR argNo1
+ );
+ [propget]
+ HRESULT __stdcall StopOnIdleEnd (
+ [out retval] WINBOOL *pStop
+ );
+ [id(3), propput]
+ HRESULT __stdcall StopOnIdleEnd (
+ [in] WINBOOL argNo1
+ );
+ [propget]
+ HRESULT __stdcall RestartOnIdle (
+ [out retval] WINBOOL *pRestart
+ );
+ [id(4), propput]
+ HRESULT __stdcall RestartOnIdle (
+ [in] WINBOOL argNo1
+ );
+ };
+ [
+ uuid(9F7DEA84-C30B-4245-80B6-00E9F646F1B4),
+ helpstring("Specify network settings required to run task"),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface INetworkSettings : IDispatch
+ {
+ [id(1), propget]
+ HRESULT __stdcall Name (
+ [out retval] BSTR *pName
+ );
+ [id(1), propput]
+ HRESULT __stdcall Name (
+ [in] BSTR argNo1
+ );
+ [propget]
+ HRESULT __stdcall Id (
+ [out retval] BSTR *pId
+ );
+ [id(2), propput]
+ HRESULT __stdcall Id (
+ [in] BSTR argNo1
+ );
+ };
+ [
+ uuid(D98D51E5-C9B4-496A-A9C1-18980261CF0F),
+ helpstring("User associated with task"),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IPrincipal : IDispatch
+ {
+ [id(1), propget]
+ HRESULT __stdcall Id (
+ [out retval] BSTR *pId
+ );
+ [id(1), propput]
+ HRESULT __stdcall Id (
+ [in] BSTR argNo1
+ );
+ [propget]
+ HRESULT __stdcall DisplayName (
+ [out retval] BSTR *pName
+ );
+ [id(2), propput]
+ HRESULT __stdcall DisplayName (
+ [in] BSTR argNo1
+ );
+ [propget]
+ HRESULT __stdcall UserId (
+ [out retval] BSTR *pUser
+ );
+ [id(3), propput]
+ HRESULT __stdcall UserId (
+ [in] BSTR argNo1
+ );
+ [propget]
+ HRESULT __stdcall LogonType (
+ [out retval] enum _TASK_LOGON_TYPE *pLogon
+ );
+ [id(4), propput]
+ HRESULT __stdcall LogonType (
+ [in] enum _TASK_LOGON_TYPE argNo1
+ );
+ [propget]
+ HRESULT __stdcall GroupId (
+ [out retval] BSTR *pGroup
+ );
+ [id(5), propput]
+ HRESULT __stdcall GroupId (
+ [in] BSTR argNo1
+ );
+ [propget]
+ HRESULT __stdcall RunLevel (
+ [out retval] enum _TASK_RUNLEVEL *pRunLevel
+ );
+ [id(6), propput]
+ HRESULT __stdcall RunLevel (
+ [in] enum _TASK_RUNLEVEL argNo1
+ );
+ };
+ [
+ uuid(02820E19-7B98-4ED2-B2E8-FDCCCEFF619B),
+ helpstring("Container for IActions"),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IActionCollection : IDispatch
+ {
+ [id(1), propget]
+ HRESULT __stdcall Count (
+ [out retval] long *pCount
+ );
+ [id(0), propget]
+ HRESULT __stdcall Item (
+ [in] long index,
+ [out retval] dispinterface IAction **ppAction
+ );
+ [id(-4), propget]
+ HRESULT __stdcall _NewEnum (
+ [out retval] IUnknown **ppEnum
+ );
+ [id(2), propget]
+ HRESULT __stdcall XmlText (
+ [out retval] BSTR *pText
+ );
+ [id(2), propput]
+ HRESULT __stdcall XmlText (
+ [in] BSTR argNo1
+ );
+ HRESULT __stdcall Create (
+ [in] enum _TASK_ACTION_TYPE Type,
+ [out retval] dispinterface IAction **ppAction
+ );
+ HRESULT __stdcall Remove (
+ [in] VARIANT index
+ );
+ HRESULT __stdcall Clear (void);
+ [propget]
+ HRESULT __stdcall Context (
+ [out retval] BSTR *pContext
+ );
+ [id(6), propput]
+ HRESULT __stdcall Context (
+ [in] BSTR argNo1
+ );
+ };
+ [
+ uuid(BAE54997-48B1-4CBE-9965-D6BE263EBEA4),
+ helpstring("A single operation to be performed"),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IAction : IDispatch
+ {
+ [id(1), propget]
+ HRESULT __stdcall Id (
+ [out retval] BSTR *pId
+ );
+ [id(1), propput]
+ HRESULT __stdcall Id (
+ [in] BSTR argNo1
+ );
+ [propget]
+ HRESULT __stdcall Type (
+ [out retval] enum _TASK_ACTION_TYPE *pType
+ );
+ };
+ [
+ uuid(86627EB4-42A7-41E4-A4D9-AC33A72F2D52),
+ helpstring("Group of IRegisteredTasks"),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IRegisteredTaskCollection : IDispatch
+ {
+ [id(1610743808), propget]
+ HRESULT __stdcall Count (
+ [out retval] long *pCount
+ );
+ [id(0), propget]
+ HRESULT __stdcall Item (
+ [in] VARIANT index,
+ [out retval] dispinterface IRegisteredTask **ppRegisteredTask
+ );
+ [id(-4), propget]
+ HRESULT __stdcall _NewEnum (
+ [out retval] IUnknown **ppEnum
+ );
+ };
+ [
+ uuid(2FABA4C7-4DA9-4013-9697-20CC3FD40F85),
+ helpstring("Communicate with the Task Scheduler service"),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface ITaskService : IDispatch
+ {
+ [id(1)]
+ HRESULT __stdcall GetFolder (
+ [in] BSTR Path,
+ [out retval] dispinterface ITaskFolder **ppFolder
+ );
+ HRESULT __stdcall GetRunningTasks (
+ long flags,
+ [out retval] dispinterface IRunningTaskCollection **ppRunningTasks
+ );
+ HRESULT __stdcall NewTask (
+ [in] UINT flags,
+ [out retval] dispinterface ITaskDefinition **ppDefinition
+ );
+ HRESULT __stdcall Connect (
+ [in opt] VARIANT serverName,
+ [in opt] VARIANT user,
+ [in opt] VARIANT domain,
+ [in opt] VARIANT password
+ );
+ [propget]
+ HRESULT __stdcall Connected (
+ [out retval] WINBOOL *pConnected
+ );
+ [id(0), propget]
+ HRESULT __stdcall TargetServer (
+ [out retval] BSTR *pServer
+ );
+ [id(6), propget]
+ HRESULT __stdcall ConnectedUser (
+ [out retval] BSTR *pUser
+ );
+ [propget]
+ HRESULT __stdcall ConnectedDomain (
+ [out retval] BSTR *pDomain
+ );
+ [propget]
+ HRESULT __stdcall HighestVersion (
+ [out retval] UINT *pVersion
+ );
+ };
+ [
+ uuid(39038068-2B46-4AFD-8662-7BB6F868D221),
+ helpstring("Container for named strings"),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface ITaskNamedValuePair : IDispatch
+ {
+ [id(0), propget]
+ HRESULT __stdcall Name (
+ [out retval] BSTR *pName
+ );
+ [id(0), propput]
+ HRESULT __stdcall Name (
+ [in] BSTR argNo1
+ );
+ [propget]
+ HRESULT __stdcall Value (
+ [out retval] BSTR *pValue
+ );
+ [id(1), propput]
+ HRESULT __stdcall Value (
+ [in] BSTR argNo1
+ );
+ };
+ [
+ uuid(B4EF826B-63C3-46E4-A504-EF69E4F7EA4D),
+ helpstring("Group of ITaskNamedValuePairs"),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface ITaskNamedValueCollection : IDispatch
+ {
+ [id(1), propget]
+ HRESULT __stdcall Count (
+ [out retval] long *pCount
+ );
+ [id(0), propget]
+ HRESULT __stdcall Item (
+ [in] long index,
+ [out retval] dispinterface ITaskNamedValuePair **ppPair
+ );
+ [id(-4), propget]
+ HRESULT __stdcall _NewEnum (
+ [out retval] IUnknown **ppEnum
+ );
+ [id(2)]
+ HRESULT __stdcall Create (
+ [in] BSTR Name,
+ [in] BSTR Value,
+ [out retval] dispinterface ITaskNamedValuePair **ppPair
+ );
+ [id(4)]
+ HRESULT __stdcall Remove (
+ [in] long index
+ );
+ HRESULT __stdcall Clear (void);
+ };
+ [
+ uuid(D537D2B0-9FB3-4D34-9739-1FF5CE7B1EF3),
+ helpstring("Run task when machine becomes idle"),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IIdleTrigger : ITrigger
+ {
+ };
+ [
+ uuid(72DADE38-FAE4-4B3E-BAF4-5D009AF02B1C),
+ helpstring("Run task when user logs on"),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface ILogonTrigger : ITrigger
+ {
+ [id(20), propget]
+ HRESULT __stdcall Delay (
+ [out retval] BSTR *pDelay
+ );
+ [id(20), propput]
+ HRESULT __stdcall Delay (
+ [in] BSTR argNo1
+ );
+ [propget]
+ HRESULT __stdcall UserId (
+ [out retval] BSTR *pUser
+ );
+ [id(21), propput]
+ HRESULT __stdcall UserId (
+ [in] BSTR argNo1
+ );
+ };
+ [
+ uuid(754DA71B-4385-4475-9DD9-598294FA3641),
+ helpstring("Run task when login session state changes"),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface ISessionStateChangeTrigger : ITrigger
+ {
+ [id(20), propget]
+ HRESULT __stdcall Delay (
+ [out retval] BSTR *pDelay
+ );
+ [id(20), propput]
+ HRESULT __stdcall Delay (
+ [in] BSTR argNo1
+ );
+ [propget]
+ HRESULT __stdcall UserId (
+ [out retval] BSTR *pUser
+ );
+ [id(21), propput]
+ HRESULT __stdcall UserId (
+ [in] BSTR argNo1
+ );
+ [propget]
+ HRESULT __stdcall StateChange (
+ [out retval] enum _TASK_SESSION_STATE_CHANGE_TYPE *pType
+ );
+ [id(22), propput]
+ HRESULT __stdcall StateChange (
+ [in] enum _TASK_SESSION_STATE_CHANGE_TYPE argNo1
+ );
+ };
+ [
+ uuid(D45B0167-9653-4EEF-B94F-0732CA7AF251),
+ helpstring("Start task in response to an event log event"),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IEventTrigger : ITrigger
+ {
+ [id(20), propget]
+ HRESULT __stdcall Subscription (
+ [out retval] BSTR *pQuery
+ );
+ [id(20), propput]
+ HRESULT __stdcall Subscription (
+ [in] BSTR argNo1
+ );
+ [propget]
+ HRESULT __stdcall Delay (
+ [out retval] BSTR *pDelay
+ );
+ [id(21), propput]
+ HRESULT __stdcall Delay (
+ [in] BSTR argNo1
+ );
+ [propget]
+ HRESULT __stdcall ValueQueries (
+ [out retval] dispinterface ITaskNamedValueCollection **ppNamedXPaths
+ );
+ [id(22), propput]
+ HRESULT __stdcall ValueQueries (
+ [in] dispinterface ITaskNamedValueCollection *argNo1
+ );
+ };
+ [
+ uuid(B45747E0-EBA7-4276-9F29-85C5BB300006),
+ helpstring("Start task at a specific time"),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface ITimeTrigger : ITrigger
+ {
+ [id(20), propget]
+ HRESULT __stdcall RandomDelay (
+ [out retval] BSTR *pRandomDelay
+ );
+ [id(20), propput]
+ HRESULT __stdcall RandomDelay (
+ [in] BSTR argNo1
+ );
+ };
+ [
+ uuid(126C5CD8-B288-41D5-8DBF-E491446ADC5C),
+ helpstring("Run task every day, or every N days"),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IDailyTrigger : ITrigger
+ {
+ [id(25), propget]
+ HRESULT __stdcall DaysInterval (
+ [out retval] short *pDays
+ );
+ [id(25), propput]
+ HRESULT __stdcall DaysInterval (
+ [in] short argNo1
+ );
+ [id(20), propget]
+ HRESULT __stdcall RandomDelay (
+ [out retval] BSTR *pRandomDelay
+ );
+ [id(20), propput]
+ HRESULT __stdcall RandomDelay (
+ [in] BSTR argNo1
+ );
+ };
+ [
+ uuid(5038FC98-82FF-436D-8728-A512A57C9DC1),
+ helpstring("Run task every week, or every N weeks"),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IWeeklyTrigger : ITrigger
+ {
+ [id(25), propget]
+ HRESULT __stdcall DaysOfWeek (
+ [out retval] short *pDays
+ );
+ [id(25), propput]
+ HRESULT __stdcall DaysOfWeek (
+ [in] short argNo1
+ );
+ [propget]
+ HRESULT __stdcall WeeksInterval (
+ [out retval] short *pWeeks
+ );
+ [id(26), propput]
+ HRESULT __stdcall WeeksInterval (
+ [in] short argNo1
+ );
+ [id(20), propget]
+ HRESULT __stdcall RandomDelay (
+ [out retval] BSTR *pRandomDelay
+ );
+ [id(20), propput]
+ HRESULT __stdcall RandomDelay (
+ [in] BSTR argNo1
+ );
+ };
+ [
+ uuid(97C45EF1-6B02-4A1A-9C0E-1EBFBA1500AC),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IMonthlyTrigger : ITrigger
+ {
+ [id(25), propget]
+ HRESULT __stdcall DaysOfMonth (
+ [out retval] long *pDays
+ );
+ [id(25), propput]
+ HRESULT __stdcall DaysOfMonth (
+ [in] long argNo1
+ );
+ [propget]
+ HRESULT __stdcall MonthsOfYear (
+ [out retval] short *pMonths
+ );
+ [id(26), propput]
+ HRESULT __stdcall MonthsOfYear (
+ [in] short argNo1
+ );
+ [propget]
+ HRESULT __stdcall RunOnLastDayOfMonth (
+ [out retval] WINBOOL *pLastDay
+ );
+ [id(27), propput]
+ HRESULT __stdcall RunOnLastDayOfMonth (
+ [in] WINBOOL argNo1
+ );
+ [id(20), propget]
+ HRESULT __stdcall RandomDelay (
+ [out retval] BSTR *pRandomDelay
+ );
+ [id(20), propput]
+ HRESULT __stdcall RandomDelay (
+ [in] BSTR argNo1
+ );
+ };
+ [
+ uuid(77D025A3-90FA-43AA-B52E-CDA5499B946A),
+ helpstring("Run task on specific day of week, e.g. 'Second Tuesday in March'"),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IMonthlyDOWTrigger : ITrigger
+ {
+ [id(25), propget]
+ HRESULT __stdcall DaysOfWeek (
+ [out retval] short *pDays
+ );
+ [id(25), propput]
+ HRESULT __stdcall DaysOfWeek (
+ [in] short argNo1
+ );
+ [propget]
+ HRESULT __stdcall WeeksOfMonth (
+ [out retval] short *pWeeks
+ );
+ [id(26), propput]
+ HRESULT __stdcall WeeksOfMonth (
+ [in] short argNo1
+ );
+ [propget]
+ HRESULT __stdcall MonthsOfYear (
+ [out retval] short *pMonths
+ );
+ [id(27), propput]
+ HRESULT __stdcall MonthsOfYear (
+ [in] short argNo1
+ );
+ [propget]
+ HRESULT __stdcall RunOnLastWeekOfMonth (
+ [out retval] WINBOOL *pLastWeek
+ );
+ [id(28), propput]
+ HRESULT __stdcall RunOnLastWeekOfMonth (
+ [in] WINBOOL argNo1
+ );
+ [id(20), propget]
+ HRESULT __stdcall RandomDelay (
+ [out retval] BSTR *pRandomDelay
+ );
+ [id(20), propput]
+ HRESULT __stdcall RandomDelay (
+ [in] BSTR argNo1
+ );
+ };
+ [
+ uuid(2A9C35DA-D357-41F4-BBC1-207AC1B1F3CB),
+ helpstring("Run task when machine starts up"),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IBootTrigger : ITrigger
+ {
+ [id(20), propget]
+ HRESULT __stdcall Delay (
+ [out retval] BSTR *pDelay
+ );
+ [id(20), propput]
+ HRESULT __stdcall Delay (
+ [in] BSTR argNo1
+ );
+ };
+ [
+ uuid(4C8FEC3A-C218-4E0C-B23D-629024DB91A2),
+ helpstring("Run task as soon as it is registered"),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IRegistrationTrigger : ITrigger
+ {
+ [id(20), propget]
+ HRESULT __stdcall Delay (
+ [out retval] BSTR *pDelay
+ );
+ [id(20), propput]
+ HRESULT __stdcall Delay (
+ [in] BSTR argNo1
+ );
+ };
+ [
+ uuid(4C3D624D-FD6B-49A3-B9B7-09CB3CD3F047),
+ helpstring("Run a program"),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IExecAction : IAction
+ {
+ [id(10), propget]
+ HRESULT __stdcall Path (
+ [out retval] BSTR *pPath
+ );
+ [id(10), propput]
+ HRESULT __stdcall Path (
+ [in] BSTR argNo1
+ );
+ [propget]
+ HRESULT __stdcall Arguments (
+ [out retval] BSTR *pArgument
+ );
+ [id(11), propput]
+ HRESULT __stdcall Arguments (
+ [in] BSTR argNo1
+ );
+ [propget]
+ HRESULT __stdcall WorkingDirectory (
+ [out retval] BSTR *pWorkingDirectory
+ );
+ [id(12), propput]
+ HRESULT __stdcall WorkingDirectory (
+ [in] BSTR argNo1
+ );
+ };
+ [
+ uuid(505E9E68-AF89-46B8-A30F-56162A83D537),
+ helpstring("Show a message to the user"),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IShowMessageAction : IAction
+ {
+ [id(10), propget]
+ HRESULT __stdcall Title (
+ [out retval] BSTR *pTitle
+ );
+ [id(10), propput]
+ HRESULT __stdcall Title (
+ [in] BSTR argNo1
+ );
+ [propget]
+ HRESULT __stdcall MessageBody (
+ [out retval] BSTR *pMessageBody
+ );
+ [id(11), propput]
+ HRESULT __stdcall MessageBody (
+ [in] BSTR argNo1
+ );
+ };
+ [
+ uuid(6D2FD252-75C5-4F66-90BA-2A7D8CC3039F),
+ helpstring("Execute a Task Handler"),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IComHandlerAction : IAction
+ {
+ [id(10), propget]
+ HRESULT __stdcall ClassId (
+ [out retval] BSTR *pClsid
+ );
+ [id(10), propput]
+ HRESULT __stdcall ClassId (
+ [in] BSTR argNo1
+ );
+ [propget]
+ HRESULT __stdcall Data (
+ [out retval] BSTR *pData
+ );
+ [id(11), propput]
+ HRESULT __stdcall Data (
+ [in] BSTR argNo1
+ );
+ };
+ [
+ uuid(10F62C64-7E16-4314-A0C2-0C3683F99D40),
+ helpstring("Send an email"),
+ dual,
+ nonextensible,
+ oleautomation,
+ dispatchable
+ ]
+ dispinterface IEmailAction : IAction
+ {
+ [id(10), propget]
+ HRESULT __stdcall Server (
+ [out retval] BSTR *pServer
+ );
+ [id(10), propput]
+ HRESULT __stdcall Server (
+ [in] BSTR argNo1
+ );
+ [propget]
+ HRESULT __stdcall Subject (
+ [out retval] BSTR *pSubject
+ );
+ [id(11), propput]
+ HRESULT __stdcall Subject (
+ [in] BSTR argNo1
+ );
+ [propget]
+ HRESULT __stdcall To (
+ [out retval] BSTR *pTo
+ );
+ [id(12), propput]
+ HRESULT __stdcall To (
+ [in] BSTR argNo1
+ );
+ [propget]
+ HRESULT __stdcall Cc (
+ [out retval] BSTR *pCc
+ );
+ [id(13), propput]
+ HRESULT __stdcall Cc (
+ [in] BSTR argNo1
+ );
+ [propget]
+ HRESULT __stdcall Bcc (
+ [out retval] BSTR *pBcc
+ );
+ [id(14), propput]
+ HRESULT __stdcall Bcc (
+ [in] BSTR argNo1
+ );
+ [propget]
+ HRESULT __stdcall ReplyTo (
+ [out retval] BSTR *pReplyTo
+ );
+ [id(15), propput]
+ HRESULT __stdcall ReplyTo (
+ [in] BSTR argNo1
+ );
+ [propget]
+ HRESULT __stdcall From (
+ [out retval] BSTR *pFrom
+ );
+ [id(16), propput]
+ HRESULT __stdcall From (
+ [in] BSTR argNo1
+ );
+ [propget]
+ HRESULT __stdcall HeaderFields (
+ [out retval] dispinterface ITaskNamedValueCollection **ppHeaderFields
+ );
+ [id(17), propput]
+ HRESULT __stdcall HeaderFields (
+ [in] dispinterface ITaskNamedValueCollection *argNo1
+ );
+ [propget]
+ HRESULT __stdcall Body (
+ [out retval] BSTR *pBody
+ );
+ [id(18), propput]
+ HRESULT __stdcall Body (
+ [in] BSTR argNo1
+ );
+ [propget]
+ HRESULT __stdcall Attachments (
+ [out retval] VARIANT pAttachements[]*
+ );
+ [id(19), propput]
+ HRESULT __stdcall Attachments (
+ [in] VARIANT argNo1[]
+ );
+ };
+
+};
+
+/* Interface declarations. */
+[
+ uuid(839D7762-5121-4009-9234-4F0D19394F04),
+ helpstring("an extension to the actions that a task can execute")
+]
+interface ITaskHandler : IUnknown
+{
+ [id(1610678272)]
+ HRESULT __stdcall Start (
+ [in] IUnknown * pHandlerServices,
+ [in] BSTR Data
+ );
+ HRESULT __stdcall Stop (
+ [out] HRESULT *pRetCode
+ );
+ HRESULT __stdcall Pause (void);
+ HRESULT __stdcall Resume (void);
+};
+[
+ uuid(EAEC7A8F-27A0-4DDC-8675-14726A01A38A),
+ helpstring("Allow handler to send status information to task engine")
+]
+interface ITaskHandlerStatus : IUnknown
+{
+ [id(1610678272)]
+ HRESULT __stdcall UpdateStatus (
+ [in] short percentComplete,
+ [in] BSTR statusMessage
+ );
+ HRESULT __stdcall TaskCompleted (
+ [in] HRESULT taskErrCode
+ );
+};
+[
+ uuid(3E4C9351-D966-4B8B-BB87-CEBA68BB0107),
+ helpstring("Allows task handler to share information with task")
+]
+interface ITaskVariables : IUnknown
+{
+ [id(1610678272)]
+ HRESULT __stdcall GetInput (
+ [out retval] BSTR *pInput
+ );
+ HRESULT __stdcall SetOutput (
+ [in] BSTR input
+ );
+ HRESULT __stdcall GetContext (
+ [out retval] BSTR *pContext
+ );
+};
+
diff --git a/mingw-w64-headers/include/tbs.h b/mingw-w64-headers/include/tbs.h
new file mode 100644
index 0000000..4808c93
--- /dev/null
+++ b/mingw-w64-headers/include/tbs.h
@@ -0,0 +1,93 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_TBS
+#define _INC_TBS
+#if (_WIN32_WINNT >= 0x0600)
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef UINT32 TBS_RESULT; /* Assumed */
+
+typedef enum _TBS_COMMAND_LOCALITY {
+ TBS_COMMAND_LOCALITY_ZERO = 0,
+ TBS_COMMAND_LOCALITY_ONE,
+ TBS_COMMAND_LOCALITY_TWO,
+ TBS_COMMAND_LOCALITY_THREE,
+ TBS_COMMAND_LOCALITY_FOUR
+} TBS_COMMAND_LOCALITY;
+
+typedef enum _TBS_COMMAND_PRIORITY {
+ TBS_COMMAND_PRIORITY_LOW = 100,
+ TBS_COMMAND_PRIORITY_NORMAL = 200,
+ TBS_COMMAND_PRIORITY_HIGH = 300,
+ TBS_COMMAND_PRIORITY_SYSTEM = 400,
+ TBS_COMMAND_PRIORITY_MAX = 0x80000000
+} TBS_COMMAND_PRIORITY;
+
+typedef struct _TBS_CONTEXT_PARAMS {
+ UINT32 version;
+} TBS_CONTEXT_PARAMS;
+
+typedef LPVOID TBS_HCONTEXT;
+
+#define TBS_SUCCESS 0
+#define TBS_E_BAD_PARAMETER 0x80284002
+#define TBS_E_INTERNAL_ERROR 0x80284007
+#define TBS_E_INVALID_OUTPUT_POINTER 0x80284003
+#define TBS_E_SERVICE_DISABLED 0x80284010
+#define TBS_E_SERVICE_NOT_RUNNING 0x80284008
+#define TBS_E_SERVICE_START_PENDING 0x8028400B
+#define TBS_E_TOO_MANY_TBS_CONTEXTS 0x80284009
+#define TBS_E_TPM_NOT_FOUND 0x8028400F
+#define TBS_E_DEACTIVATED 0x80284016
+#define TBS_E_INVALID_CONTEXT_PARAM 0x80284007
+#define TBS_E_IOERROR 0x80284006
+#define TBS_E_INSUFFICIENT_BUFFER 0x80284005
+#define TBS_E_BUFFER_TOO_LARGE 0x8028400E
+
+TBS_RESULT WINAPI Tbsi_Context_Create(
+ const TBS_CONTEXT_PARAMS *pContextParams,
+ TBS_HCONTEXT *phContext
+);
+
+TBS_RESULT WINAPI Tbsi_Get_TCG_Log(
+ TBS_HCONTEXT hContext,
+ BYTE *pOutputBuf,
+ UINT32 *pOutputBufLen
+);
+
+TBS_RESULT WINAPI Tbsi_Physical_Presence_Command(
+ TBS_HCONTEXT hContext,
+ const BYTE *pInputBuf,
+ UINT32 InputBufLen,
+ BYTE *pOutputBuf,
+ UINT32 *pOutputBufLen
+);
+
+TBS_RESULT WINAPI Tbsip_Cancel_Commands(
+ TBS_HCONTEXT hContext
+);
+
+TBS_RESULT WINAPI Tbsip_Context_Close(
+ TBS_HCONTEXT hContext
+);
+
+TBS_RESULT WINAPI Tbsip_Submit_Command(
+ TBS_HCONTEXT hContext,
+ TBS_COMMAND_LOCALITY locality,
+ TBS_COMMAND_PRIORITY priority,
+ const BYTE *pCommandBuf,
+ UINT32 commandBufLen,
+ BYTE *pResultBuf,
+ UINT32 *pResultBufLen
+);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_TBH*/
diff --git a/mingw-w64-headers/include/tcpestats.h b/mingw-w64-headers/include/tcpestats.h
new file mode 100644
index 0000000..1f33f25
--- /dev/null
+++ b/mingw-w64-headers/include/tcpestats.h
@@ -0,0 +1,217 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_TCPESTATS
+#define _INC_TCPESTATS
+
+#if (_WIN32_WINNT >= 0x0600)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct _TCP_ESTATS_BANDWIDTH_ROD_v0 {
+ ULONG64 OutboundBandwidth;
+ ULONG64 InboundBandwidth;
+ ULONG64 OutboundInstability;
+ ULONG64 InboundInstability;
+ BOOLEAN OutboundBandwidthPeaked;
+ BOOLEAN InboundBandwidthPeaked;
+} TCP_ESTATS_BANDWIDTH_ROD_v0, *PTCP_ESTATS_BANDWIDTH_ROD_v0;
+
+typedef struct _TCP_ESTATS_BANDWIDTH_RW_v0 {
+ TCP_BOOLEAN_OPTIONAL EnableCollectionOutbound;
+ TCP_BOOLEAN_OPTIONAL EnableCollectionInbound;
+} TCP_ESTATS_BANDWIDTH_RW_v0, *PTCP_ESTATS_BANDWIDTH_RW_v0;
+
+typedef struct _TCP_ESTATS_DATA_ROD_v0 {
+ ULONG64 DataBytesOut;
+ ULONG64 DataSegsOut;
+ ULONG64 DataBytesIn;
+ ULONG64 DataSegsIn;
+ ULONG64 SegsOut;
+ SegsIn;
+ ULONG SoftErrors;
+ ULONG SoftErrorReason;
+ ULONG SndUna;
+ ULONG SndNxt;
+ ULONG SndMax;
+ ULONG64 ThruBytesAcked;
+ ULONG RcvNxt;
+ ULONG64 ThruBytesReceived;
+} TCP_ESTATS_DATA_ROD_v0, *PTCP_ESTATS_DATA_ROD_v0;
+
+typedef struct _TCP_ESTATS_DATA_RW_v0 {
+ BOOLEAN EnableCollection;
+} TCP_ESTATS_DATA_RW_v0, *PTCP_ESTATS_DATA_RW_v0;
+
+typedef struct _TCP_ESTATS_FINE_RTT_ROD_v0 {
+ ULONG RttVar;
+ ULONG MaxRtt;
+ ULONG MinRtt;
+ ULONG SumRtt;
+} TCP_ESTATS_FINE_RTT_ROD_v0, *PTCP_ESTATS_FINE_RTT_ROD_v0;
+
+typedef struct _TCP_ESTATS_FINE_RTT_RW_v0 {
+ BOOLEAN EnableCollection;
+} TCP_ESTATS_FINE_RTT_RW_v0, *PTCP_ESTATS_FINE_RTT_RW_v0;
+
+typedef struct _TCP_ESTATS_OBS_REC_ROD_v0 {
+ ULONG CurRwinRcvd;
+ ULONG MaxRwinRcvd;
+ ULONG MinRwinRcvd;
+ ULONG WinScaleRcvd;
+} TCP_ESTATS_OBS_REC_ROD_v0, *PTCP_ESTATS_OBS_REC_ROD_v0;
+
+typedef struct _TCP_ESTATS_OBS_REC_RW_v0 {
+ BOOLEAN EnableCollection;
+} TCP_ESTATS_OBS_REC_RW_v0, *PTCP_ESTATS_OBS_REC_RW_v0;
+
+typedef struct _TCP_ESTATS_PATH_ROD_v0 {
+ ULONG FastRetran;
+ ULONG Timeouts;
+ ULONG SubsequentTimeouts;
+ ULONG CurTimeoutCount;
+ ULONG AbruptTimeouts;
+ ULONG PktsRetrans;
+ ULONG BytesRetrans;
+ ULONG DupAcksIn;
+ ULONG SacksRcvd;
+ ULONG SackBlocksRcvd;
+ ULONG CongSignals;
+ ULONG PreCongSumCwnd;
+ ULONG PreCongSumRtt;
+ ULONG PostCongSumRtt;
+ ULONG PostCongCountRtt;
+ ULONG EcnSignals;
+ ULONG EceRcvd;
+ ULONG SendStall;
+ ULONG QuenchRcvd;
+ ULONG RetranThresh;
+ ULONG SndDupAckEpisodes;
+ ULONG SumBytesReordered;
+ ULONG NonRecovDa;
+ ULONG NonRecovDaEpisodes;
+ ULONG AckAfterFr;
+ ULONG DsackDups;
+ ULONG SampleRtt;
+ ULONG SmoothedRtt;
+ ULONG RttVar;
+ ULONG MaxRtt;
+ ULONG MinRtt;
+ ULONG SumRtt;
+ ULONG CountRtt;
+ ULONG CurRto;
+ ULONG MaxRto;
+ ULONG MinRto;
+ ULONG CurMss;
+ ULONG MaxMss;
+ ULONG MinMss;
+ ULONG SpuriousRtoDetections;
+} TCP_ESTATS_PATH_ROD_v0, *PTCP_ESTATS_PATH_ROD_v0;
+
+typedef struct _TCP_ESTATS_PATH_RW_v0 {
+ BOOLEAN EnableCollection;
+} TCP_ESTATS_PATH_RW_v0, *PTCP_ESTATS_PATH_RW_v0;
+
+typedef struct _TCP_ESTATS_REC_ROD_v0 {
+ ULONG CurRwinSent;
+ ULONG MaxRwinSent;
+ ULONG MinRwinSent;
+ ULONG LimRwin;
+ ULONG DupAckEpisodes;
+ ULONG DupAcksOut;
+ ULONG CeRcvd;
+ ULONG EcnSent;
+ ULONG EcnNoncesRcvd;
+ ULONG CurReasmQueue;
+ ULONG MaxReasmQueue;
+ SIZE_T CurAppRQueue;
+ SIZE_T MaxAppRQueue;
+ UCHAR WinScaleSent;
+} TCP_ESTATS_REC_ROD_v0, *PTCP_ESTATS_REC_ROD_v0;
+
+typedef struct _TCP_ESTATS_REC_RW_v0 {
+ BOOLEAN EnableCollection;
+} TCP_ESTATS_REC_RW_v0, *PTCP_ESTATS_REC_RW_v0;
+
+typedef struct _TCP_ESTATS_SEND_BUFF_ROD_v0 {
+ SIZE_T CurRetxQueue;
+ SIZE_T MaxRetxQueue;
+ SIZE_T CurAppWQueue;
+ SIZE_T MaxAppWQueue;
+} TCP_ESTATS_SEND_BUFF_ROD_v0, *PTCP_ESTATS_SEND_BUFF_ROD_v0;
+
+typedef struct _TCP_ESTATS_SEND_BUFF_RW_v0 {
+ BOOLEAN EnableCollection;
+} TCP_ESTATS_SEND_BUFF_RW_v0, *PTCP_ESTATS_SEND_BUFF_RW_v0;
+
+typedef struct _TCP_ESTATS_SND_CONG_ROD_v0 {
+ ULONG SndLimTransRwin;
+ ULONG SndLimTimeRwin;
+ SIZE_T SndLimBytesRwin;
+ ULONG SndLimTransCwnd;
+ ULONG SndLimTimeCwnd;
+ SIZE_T SndLimBytesCwnd;
+ ULONG SndLimTransSnd;
+ ULONG SndLimTimeSnd;
+ SIZE_T SndLimBytesSnd;
+ ULONG SlowStart;
+ ULONG CongAvoid;
+ ULONG OtherReductions;
+ ULONG CurCwnd;
+ ULONG MaxSsCwnd;
+ ULONG MaxCaCwnd;
+ ULONG CurSsthresh;
+ ULONG MaxSsthresh;
+ ULONG MinSsthresh;
+} TCP_ESTATS_SND_CONG_ROD_v0, *PTCP_ESTATS_SND_CONG_ROD_v0;
+
+typedef struct _TCP_ESTATS_SND_CONG_ROS_v0 {
+ ULONG LimCwnd;
+} TCP_ESTATS_SND_CONG_ROS_v0, *PTCP_ESTATS_SND_CONG_ROS_v0;
+
+typedef struct _TCP_ESTATS_SND_CONG_RW_v0 {
+ BOOLEAN EnableCollection;
+} TCP_ESTATS_SND_CONG_RW_v0, *PTCP_ESTATS_SND_CONG_RW_v0;
+
+typedef struct _TCP_ESTATS_SYN_OPTS_ROS_v0 {
+ BOOLEAN ActiveOpen;
+ ULONG MssRcvd;
+ ULONG MssSent;
+} TCP_ESTATS_SYN_OPTS_ROS_v0, *PTCP_ESTATS_SYN_OPTS_ROS_v0;
+
+typedef struct _TCPIP_OWNER_MODULE_BASIC_INFO {
+ PWCHAR pModuleName;
+ PWCHAR pModulePath;
+} TCPIP_OWNER_MODULE_BASIC_INFO, *PTCPIP_OWNER_MODULE_BASIC_INFO;
+
+typedef enum _TCP_ESTATS_TYPE {
+ TcpConnectionEstatsSynOpts,
+ TcpConnectionEstatsData,
+ TcpConnectionEstatsSndCong,
+ TcpConnectionEstatsPath,
+ TcpConnectionEstatsSendBuff,
+ TcpConnectionEstatsRec,
+ TcpConnectionEstatsObsRec,
+ TcpConnectionEstatsBandwidth,
+ TcpConnectionEstatsFineRtt,
+ TcpConnectionEstatsMaximum
+} TCP_ESTATS_TYPE;
+
+typedef enum _TCP_BOOLEAN_OPTIONAL {
+ TcpBoolOptDisabled = 0,
+ TcpBoolOptEnabled = 1,
+ TcpBoolOptUnchanged = -1
+} TCP_BOOLEAN_OPTIONAL;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
+#endif /*_INC_TCPESTATS*/
+
diff --git a/mingw-w64-headers/include/tcpmib.h b/mingw-w64-headers/include/tcpmib.h
new file mode 100644
index 0000000..9754649
--- /dev/null
+++ b/mingw-w64-headers/include/tcpmib.h
@@ -0,0 +1,71 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_TCPMIB
+#define _INC_TCPMIB
+#if (_WIN32_WINNT >= 0x0600)
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum _TCP_CONNECTION_OFFLOAD_STATE {
+ TcpConnectionOffloadStateInHost = 0,
+ TcpConnectionOffloadStateOffloading = 1,
+ TcpConnectionOffloadStateOffloaded = 2,
+ TcpConnectionOffloadStateUploading = 3,
+ TcpConnectionOffloadStateMax = 4
+} TCP_CONNECTION_OFFLOAD_STATE;
+
+typedef struct _MIB_TCP6ROW {
+ MIB_TCP_STATE State;
+ IN6_ADDR LocalAddr;
+ DWORD dwLocalScopeId;
+ DWORD dwLocalPort;
+ IN6_ADDR RemoteAddr;
+ DWORD dwRemoteScopeId;
+ DWORD dwRemotePort;
+} MIB_TCP6ROW, *PMIB_TCP6ROW;
+
+typedef struct _MIB_TCP6TABLE {
+ DWORD dwNumEntries;
+ MIB_TCP6ROW table[ANY_SIZE];
+} MIB_TCP6TABLE, *PMIB_TCP6TABLE;
+
+typedef struct _MIB_TCP6ROW2 {
+ IN6_ADDR LocalAddr;
+ DWORD dwLocalScopeId;
+ DWORD dwLocalPort;
+ IN6_ADDR RemoteAddr;
+ DWORD dwRemoteScopeId;
+ DWORD dwRemotePort;
+ MIB_TCP_STATE State;
+ DWORD dwOwningPid;
+ TCP_CONNECTION_OFFLOAD_STATE dwOffloadState;
+} MIB_TCP6ROW2, *PMIB_TCP6ROW2;
+
+typedef struct _MIB_TCP6TABLE2 {
+ DWORD dwNumEntries;
+ MIB_TCP6ROW2 table[ANY_SIZE];
+} MIB_TCP6TABLE2, *PMIB_TCP6TABLE2;
+
+typedef struct _MIB_TCPROW2 {
+ DWORD dwState;
+ DWORD dwLocalAddr;
+ DWORD dwLocalPort;
+ DWORD dwRemoteAddr;
+ DWORD dwRemotePort;
+ TCP_CONNECTION_OFFLOAD_STATE dwOffloadState;
+} MIB_TCPROW2, *PMIB_TCPROW2;
+
+typedef struct _MIB_TCPTABLE2 {
+ DWORD dwNumEntries;
+ MIB_TCPROW2 table[ANY_SIZE];
+} MIB_TCPTABLE2, *PMIB_TCPTABLE2;
+
+#ifdef __cplusplus
+}
+#endif
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_TCPMIB*/
diff --git a/mingw-w64-headers/include/tdh.h b/mingw-w64-headers/include/tdh.h
new file mode 100644
index 0000000..39c202c
--- /dev/null
+++ b/mingw-w64-headers/include/tdh.h
@@ -0,0 +1,242 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_TDH
+#define _INC_TDH
+#include <evntprov.h>
+#include <evntcons.h>
+#if (_WIN32_WINNT >= 0x0600)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum _EVENT_FIELD_TYPE {
+ EventKeywordInformation = 0,
+ EventLevelInformation = 1,
+ EventChannelInformation = 2,
+ EventTaskInformation = 3,
+ EventOpcodeInformation = 4,
+ EventInformationMax = 5
+} EVENT_FIELD_TYPE;
+
+typedef struct _EVENT_MAP_ENTRY {
+ ULONG OutputOffset;
+ __MINGW_EXTENSION union {
+ ULONG Value;
+ ULONG InputOffset;
+ };
+} EVENT_MAP_ENTRY, *PEVENT_MAP_ENTRY;
+
+typedef enum _MAP_VALUETYPE
+{
+ EVENTMAP_ENTRY_VALUETYPE_ULONG = 0,
+ EVENTMAP_ENTRY_VALUETYPE_STRING = 1
+} MAP_VALUETYPE;
+
+typedef enum _MAP_FLAGS {
+ EVENTMAP_INFO_FLAG_MANIFEST_VALUEMAP = 1,
+ EVENTMAP_INFO_FLAG_MANIFEST_BITMAP = 2,
+ EVENTMAP_INFO_FLAG_MANIFEST_PATTERNMAP = 4,
+ EVENTMAP_INFO_FLAG_WBEM_VALUEMAP = 8,
+ EVENTMAP_INFO_FLAG_WBEM_BITMAP = 16,
+ EVENTMAP_INFO_FLAG_WBEM_FLAG = 32,
+ EVENTMAP_INFO_FLAG_WBEM_NO_MAP = 64
+} MAP_FLAGS;
+
+typedef struct _EVENT_MAP_INFO {
+ ULONG NameOffset;
+ MAP_FLAGS Flag;
+ ULONG EntryCount;
+ __MINGW_EXTENSION union {
+ MAP_VALUETYPE MapEntryValueType;
+ ULONG FormatStringOffset;
+ };
+ EVENT_MAP_ENTRY MapEntryArray[ANYSIZE_ARRAY];
+} EVENT_MAP_INFO, *PEVENT_MAP_INFO;
+
+typedef enum _PROPERTY_FLAGS {
+ PropertyStruct = 0x1,
+ PropertyParamLength = 0x2,
+ PropertyParamCount = 0x4,
+ PropertyWBEMXmlFragment = 0x8,
+ PropertyParamFixedLength = 0x10
+} PROPERTY_FLAGS;
+
+typedef struct _EVENT_PROPERTY_INFO {
+ PROPERTY_FLAGS Flags;
+ ULONG NameOffset;
+ __MINGW_EXTENSION union {
+ __MINGW_EXTENSION struct {
+ USHORT InType;
+ USHORT OutType;
+ ULONG MapNameOffset;
+ } nonStructType;
+ __MINGW_EXTENSION struct {
+ USHORT StructStartIndex;
+ USHORT NumOfStructMembers;
+ ULONG padding;
+ } structType;
+ };
+ __MINGW_EXTENSION union {
+ USHORT count;
+ USHORT countPropertyIndex;
+ };
+ __MINGW_EXTENSION union {
+ USHORT length;
+ USHORT lengthPropertyIndex;
+ };
+ ULONG Reserved;
+} EVENT_PROPERTY_INFO;
+
+typedef enum _DECODING_SOURCE {
+ DecodingSourceXMLFile = 0,
+ DecodingSourceWbem = 1,
+ DecodingSourceWPP = 2
+} DECODING_SOURCE;
+
+typedef enum _TDH_CONTEXT_TYPE {
+ TDH_CONTEXT_WPP_TMFFILE = 0,
+ TDH_CONTEXT_WPP_TMFSEARCHPATH = 1,
+ TDH_CONTEXT_WPP_GMT = 2,
+ TDH_CONTEXT_POINTERSIZE = 3,
+ TDH_CONTEXT_MAXIMUM = 4
+} TDH_CONTEXT_TYPE;
+
+typedef enum _TEMPLATE_FLAGS {
+ TEMPLATE_EVENT_DATA = 1,
+ TEMPLATE_USER_DATA = 2
+} TEMPLATE_FLAGS;
+
+typedef struct _TRACE_EVENT_INFO {
+ GUID ProviderGuid;
+ GUID EventGuid;
+ EVENT_DESCRIPTOR EventDescriptor;
+ DECODING_SOURCE DecodingSource;
+ ULONG ProviderNameOffset;
+ ULONG LevelNameOffset;
+ ULONG ChannelNameOffset;
+ ULONG KeywordsNameOffset;
+ ULONG TaskNameOffset;
+ ULONG OpcodeNameOffset;
+ ULONG EventMessageOffset;
+ ULONG ProviderMessageOffset;
+ ULONG BinaryXMLOffset;
+ ULONG BinaryXMLSize;
+ ULONG ActivityIDNameOffset;
+ ULONG RelatedActivityIDNameOffset;
+ ULONG PropertyCount;
+ ULONG TopLevelPropertyCount;
+ TEMPLATE_FLAGS Flags;
+ EVENT_PROPERTY_INFO EventPropertyInfoArray[ANYSIZE_ARRAY];
+} TRACE_EVENT_INFO, *PTRACE_EVENT_INFO;
+
+typedef struct _PROPERTY_DATA_DESCRIPTOR {
+ ULONGLONG PropertyName;
+ ULONG ArrayIndex;
+ ULONG Reserved;
+} PROPERTY_DATA_DESCRIPTOR, *PPROPERTY_DATA_DESCRIPTOR;
+
+typedef struct _TRACE_PROVIDER_INFO {
+ GUID ProviderGuid;
+ ULONG SchemaSource;
+ ULONG ProviderNameOffset;
+} TRACE_PROVIDER_INFO;
+
+typedef struct _PROVIDER_ENUMERATION_INFO {
+ ULONG NumberOfProviders;
+ ULONG Padding;
+ TRACE_PROVIDER_INFO TraceProviderInfoArray[ANYSIZE_ARRAY];
+} PROVIDER_ENUMERATION_INFO, *PPROVIDER_ENUMERATION_INFO;
+
+typedef struct _PROVIDER_FIELD_INFO {
+ ULONG NameOffset;
+ ULONG DescriptionOffset;
+ ULONGLONG Value;
+} PROVIDER_FIELD_INFO;
+
+typedef struct _PROVIDER_FIELD_INFOARRAY {
+ ULONG NumberOfElements;
+ EVENT_FIELD_TYPE FieldType;
+ PROVIDER_FIELD_INFO FieldInfoArray[ANYSIZE_ARRAY];
+} PROVIDER_FIELD_INFOARRAY, *PPROVIDER_FIELD_INFOARRAY;
+
+typedef struct _TDH_CONTEXT {
+ ULONGLONG ParameterValue;
+ TDH_CONTEXT_TYPE ParameterType;
+ ULONG ParameterSize;
+} TDH_CONTEXT, *PTDH_CONTEXT;
+
+ULONG __stdcall TdhEnumerateProviderFieldInformation(
+ LPGUID pGuid,
+ EVENT_FIELD_TYPE EventFieldType,
+ PPROVIDER_FIELD_INFOARRAY pBuffer,
+ ULONG *pBufferSize
+);
+
+ULONG __stdcall TdhEnumerateProviders(
+ PPROVIDER_ENUMERATION_INFO pBuffer,
+ ULONG *pBufferSize
+);
+
+ULONG __stdcall TdhGetEventInformation(
+ PEVENT_RECORD pEvent,
+ ULONG TdhContextCount,
+ PTDH_CONTEXT pTdhContext,
+ PTRACE_EVENT_INFO pBuffer,
+ ULONG *pBufferSize
+);
+
+ULONG __stdcall TdhGetEventMapInformation(
+ PEVENT_RECORD pEvent,
+ LPWSTR pMapName,
+ PEVENT_MAP_INFO pBuffer,
+ ULONG *pBufferSize
+);
+
+ULONG __stdcall TdhGetProperty(
+ PEVENT_RECORD pEvent,
+ ULONG TdhContextCount,
+ PTDH_CONTEXT pTdhContext,
+ ULONG PropertyDataCount,
+ PPROPERTY_DATA_DESCRIPTOR pPropertyData,
+ ULONG BufferSize,
+ PBYTE pBuffer
+);
+
+ULONG __stdcall TdhGetPropertySize(
+ PEVENT_RECORD pEvent,
+ ULONG TdhContextCount,
+ PTDH_CONTEXT pTdhContext,
+ ULONG PropertyDataCount,
+ PPROPERTY_DATA_DESCRIPTOR pPropertyData,
+ ULONG *pPropertySize
+);
+
+ULONG __stdcall TdhQueryProviderFieldInformation(
+ LPGUID pGuid,
+ ULONGLONG EventFieldValue,
+ EVENT_FIELD_TYPE EventFieldType,
+ PPROVIDER_FIELD_INFOARRAY pBuffer,
+ ULONG *pBufferSize
+);
+
+#if (_WIN32_WINNT >= 0x0601)
+typedef struct _PROVIDER_FILTER_INFO {
+ UCHAR Id;
+ UCHAR Version;
+ ULONG MessageOffset;
+ ULONG Reserved;
+ ULONG PropertyCount;
+ EVENT_PROPERTY_INFO EventPropertyInfoArray[ANYSIZE_ARRAY];
+} PROVIDER_FILTER_INFO, *PPROVIDER_FILTER_INFO;
+#endif /*(_WIN32_WINNT >= 0x0601)*/
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_TDH*/
diff --git a/mingw-w64-headers/include/tpcshrd.h b/mingw-w64-headers/include/tpcshrd.h
new file mode 100644
index 0000000..2429f15
--- /dev/null
+++ b/mingw-w64-headers/include/tpcshrd.h
@@ -0,0 +1,18 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+
+#define TABLET_DISABLE_PRESSANDHOLD 0x00000001
+#define TABLET_DISABLE_PENTAPFEEDBACK 0x00000008
+#define TABLET_DISABLE_PENBARRELFEEDBACK 0x00000010
+#define TABLET_DISABLE_TOUCHUIFORCEON 0x00000100
+#define TABLET_DISABLE_TOUCHUIFORCEOFF 0x00000200
+#define TABLET_DISABLE_TOUCHSWITCH 0x00008000
+#define TABLET_DISABLE_FLICKS 0x00010000
+#define TABLET_ENABLE_FLICKSONCONTEXT 0x00020000
+#define TABLET_ENABLE_FLICKLEARNINGMODE 0x00040000
+#define TABLET_DISABLE_SMOOTHSCROLLING 0x00080000
+#define TABLET_DISABLE_FLICKFALLBACKKEYS 0x00100000
+#define TABLET_ENABLE_MULTITOUCHDATA 0x01000000
diff --git a/mingw-w64-headers/include/tssbx.h b/mingw-w64-headers/include/tssbx.h
new file mode 100644
index 0000000..dad5817
--- /dev/null
+++ b/mingw-w64-headers/include/tssbx.h
@@ -0,0 +1,106 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_TSSBX
+#define _INC_TSSBX
+
+#if (_WIN32_WINNT >= 0x0600)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum _WTSSBX_ADDRESS_FAMILY {
+ WTSSBX_ADDRESS_FAMILY_AF_UNSPEC = 0,
+ WTSSBX_ADDRESS_FAMILY_AF_INET = 1,
+ WTSSBX_ADDRESS_FAMILY_AF_INET6 = 2,
+ WTSSBX_ADDRESS_FAMILY_AF_IPX = 3,
+ WTSSBX_ADDRESS_FAMILY_AF_NETBIOS = 4
+} WTSSBX_ADDRESS_FAMILY;
+
+typedef enum _WTSSBX_MACHINE_DRAIN {
+ WTSSBX_MACHINE_DRAIN_UNSPEC = 0,
+ WTSSBX_MACHINE_DRAIN_OFF = 1,
+ WTSSBX_MACHINE_DRAIN_ON = 2
+} WTSSBX_MACHINE_DRAIN;
+
+typedef enum _WTSSBX_NOTIFICATION_TYPE {
+ WTSSBX_MACHINE_SESSION_MODE_UNSPEC = 0,
+ WTSSBX_MACHINE_SESSION_MODE_SINGLE = 1,
+ WTSSBX_MACHINE_SESSION_MODE_MULTIPLE = 2
+} WTSSBX_NOTIFICATION_TYPE;
+
+typedef enum _WTSSBX_MACHINE_STATE {
+ WTSSBX_MACHINE_STATE_UNSPEC = 0,
+ WTSSBX_MACHINE_STATE_READY = 1,
+ WTSSBX_MACHINE_STATE_SYNCHRONIZING = 2
+} WTSSBX_MACHINE_STATE;
+
+typedef enum _WTSSBX_NOTIFICATION_TYPE {
+ WTSSBX_NOTIFICATION_REMOVED = 1,
+ WTSSBX_NOTIFICATION_CHANGED = 2,
+ WTSSBX_NOTIFICATION_ADDED = 4,
+ WTSSBX_NOTIFICATION_RESYNC = 8
+} WTSSBX_NOTIFICATION_TYPE;
+
+typedef enum _WTSSBX_SESSION_STATE {
+ WTSSBX_SESSION_STATE_UNSPEC = 0,
+ WTSSBX_SESSION_STATE_ACTIVE = 1,
+ WTSSBX_SESSION_STATE_DISCONNECTED = 2
+} WTSSBX_SESSION_STATE;
+
+typedef struct _WTSSBX_IP_ADDRESS {
+ WTSSBX_ADDRESS_FAMILY AddressFamily;
+ BYTE Address[16];
+ unsigned short PortNumber;
+ DWORD dwScope;
+} WTSSBX_IP_ADDRESS;
+
+#define MaxFQDN_Len 256
+#define MaxNetBiosName_Len 16
+
+typedef struct _WTSSBX_MACHINE_CONNECT_INFO {
+ WCHAR wczMachineFQDN[MaxFQDN_Len + 1];
+ WCHAR wczMachineNetBiosName[MaxNetBiosName_Len + 1];
+ DWORD dwNumOfIPAddr;
+ WTSSBX_IP_ADDRESS IPaddr[MaxNumOfExposed_IPs];
+} WTSSBX_MACHINE_CONNECT_INFO;
+
+#define MaxFarm_Len 256
+
+typedef struct _WTSSBX_MACHINE_INFO {
+ WTSSBX_MACHINE_CONNECT_INFO ClientConnectInfo;
+ WCHAR wczFarmName[MaxFarm_Len + 1];
+ WTSSBX_IP_ADDRESS InternalIPAddress;
+ DWORD dwMaxSessionsLimit;
+ DWORD ServerWeight;
+ WTSSBX_MACHINE_SESSION_MODE SingleSessionMode;
+ WTSSBX_MACHINE_DRAIN InDrain;
+ WTSSBX_MACHINE_STATE MachineState;
+} WTSSBX_MACHINE_INFO;
+
+#define MaxUserName_Len 104
+#define MaxDomainName_Len 256
+#define MaxAppName_Len 256
+
+typedef struct _WTSSBX_SESSION_INFO {
+ WCHAR wszUserName[MaxUserName_Len + 1];
+ WCHAR wszDomainName[MaxDomainName_Len + 1];
+ WCHAR ApplicationType[MaxAppName_Len + 1];
+ DWORD dwSessionId;
+ FILETIME CreateTime;
+ FILETIME DisconnectTime;
+ WTSSBX_SESSION_STATE SessionState;
+} WTSSBX_SESSION_INFO;
+
+/*IID_IWTSSBPlugin is defined as DC44BE78-B18D-4399-B210-641BF67A002C*/
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
+#endif /*_INC_TSSBX*/
diff --git a/mingw-w64-headers/include/txfw32.h b/mingw-w64-headers/include/txfw32.h
new file mode 100644
index 0000000..3d06673
--- /dev/null
+++ b/mingw-w64-headers/include/txfw32.h
@@ -0,0 +1,92 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_TXFW32
+#define _INC_TXFW32
+#include <clfs.h>
+#if (_WIN32_WINNT >= 0x0600)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct _TXF_ID {
+ __MINGW_EXTENSION struct {
+ LONGLONG LowPart;
+ LONGLONG HighPart;
+ } DUMMYSTRUCTNAME;
+} TXF_ID, *PTXF_ID;
+
+typedef struct _TXF_LOG_RECORD_AFFECTED_FILE {
+ USHORT Version;
+ ULONG RecordLength;
+ ULONG Flags;
+ TXF_ID TxfFileId;
+ UUID KtmGuid;
+ ULONG FileNameLength;
+ ULONG FileNameByteOffsetInStructure;
+} TXF_LOG_RECORD_AFFECTED_FILE, *PTXF_LOG_RECORD_AFFECTED_FILE;
+
+typedef struct _TXF_LOG_RECORD_TRUNCATE {
+ USHORT Version;
+ USHORT RecordType;
+ ULONG RecordLength;
+ ULONG Flags;
+ TXF_ID TxfFileId;
+ UUID KtmGuid;
+ LONGLONG NewFileSize;
+ ULONG FileNameLength;
+ ULONG FileNameByteOffsetInStructure;
+} TXF_LOG_RECORD_TRUNCATE, *PTXF_LOG_RECORD_TRUNCATE;
+
+typedef struct _TXF_LOG_RECORD_WRITE {
+ USHORT Version;
+ USHORT RecordType;
+ ULONG RecordLength;
+ ULONG Flags;
+ TXF_ID TxfFileId;
+ UUID KtmGuid;
+ LONGLONG ByteOffsetInFile;
+ ULONG NumBytesWritten;
+ ULONG ByteOffsetInStructure;
+ ULONG FileNameLength;
+ ULONG FileNameByteOffsetInStructure;
+} TXF_LOG_RECORD_WRITE, *PTXF_LOG_RECORD_WRITE;
+
+#define TXF_LOG_RECORD_TYPE_WRITE 1
+#define TXF_LOG_RECORD_TYPE_TRUNCATE 2
+#define TXF_LOG_RECORD_TYPE_AFFECTED_FILE 4
+
+typedef struct _TXF_LOG_RECORD_BASE {
+ USHORT Version;
+ USHORT RecordType;
+ ULONG RecordLength;
+} TXF_LOG_RECORD_BASE, *PTXF_LOG_RECORD_BASE;
+
+WINBOOL WINAPI TxfLogCreateFileReadContext(
+ LPCWSTR LogPath,
+ CLFS_LSN BeginningLsn,
+ CLFS_LSN EndingLSN,
+ PTXF_ID TxfFileId,
+ PVOID *TxfLogContext
+);
+
+WINBOOL WINAPI TxfLogDestroyReadContext(
+ PVOID TxfLogContext
+);
+
+WINBOOL WINAPI TxfLogReadRecords(
+ PVOID TxfLogContext,
+ ULONG BufferLength,
+ PVOID Buffer,
+ PULONG BytesUsed,
+ PULONG RecordCount
+);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* (_WIN32_WINNT >= 0x0600) */
+#endif /*_INC_TXFW32*/
diff --git a/mingw-w64-headers/include/udpmib.h b/mingw-w64-headers/include/udpmib.h
new file mode 100644
index 0000000..de8d2d5
--- /dev/null
+++ b/mingw-w64-headers/include/udpmib.h
@@ -0,0 +1,29 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_UDPMIB
+#define _INC_UDPMIB
+#if (_WIN32_WINNT >= 0x0600)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct _MIB_UDP6ROW {
+ IN6_ADDR dwLocalAddr;
+ DWORD dwLocalScopeId;
+ DWORD dwLocalPort;
+} MIB_UDP6ROW, *PMIB_UDP6ROW;
+
+typedef struct _MIB_UDP6TABLE {
+ DWORD dwNumEntries;
+ MIB_UDP6ROW table[ANY_SIZE];
+} MIB_UDP6TABLE, *PMIB_UDP6TABLE;
+
+#ifdef __cplusplus
+}
+#endif
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_UDPMIB*/
diff --git a/mingw-w64-headers/include/usp10.h b/mingw-w64-headers/include/usp10.h
index f7dd52a..9fc1837 100644
--- a/mingw-w64-headers/include/usp10.h
+++ b/mingw-w64-headers/include/usp10.h
@@ -18,6 +18,8 @@
typedef void *SCRIPT_CACHE;
+ typedef ULONG OPENTYPE_TAG;
+
HRESULT WINAPI ScriptFreeCache(SCRIPT_CACHE *psc);
typedef struct tag_SCRIPT_CONTROL {
@@ -214,6 +216,150 @@
HRESULT WINAPI ScriptApplyDigitSubstitution(const SCRIPT_DIGITSUBSTITUTE *psds,SCRIPT_CONTROL *psc,SCRIPT_STATE *pss);
+#if (_WIN32_WINNT >= 0x0600)
+typedef struct opentype_feature_record {
+ OPENTYPE_TAG tagFeature;
+ LONG lParameter;
+} OPENTYPE_FEATURE_RECORD;
+
+typedef struct script_charprop {
+ WORD fCanGlyphAlone :1;
+ WORD reserved :15;
+} SCRIPT_CHARPROP;
+
+typedef struct textrange_properties {
+ OPENTYPE_FEATURE_RECORD *potfRecords;
+ int cotfRecords;
+} TEXTRANGE_PROPERTIES;
+
+typedef struct script_glyphprop {
+ SCRIPT_VISATTR sva;
+ WORD reserved;
+} SCRIPT_GLYPHPROP;
+
+HRESULT WINAPI ScriptGetFontAlternateGlyphs(
+ HDC hdc,
+ SCRIPT_CACHE *psc,
+ SCRIPT_ANALYSIS *psa,
+ OPENTYPE_TAG tagScript,
+ OPENTYPE_TAG tagLangSys,
+ OPENTYPE_TAG tagFeature,
+ WORD wGlyphId,
+ int cMaxAlternates,
+ WORD *pAlternateGlyphs,
+ int *pcAlternates
+);
+
+HRESULT WINAPI ScriptGetFontFeatureTags(
+ HDC hdc,
+ SCRIPT_CACHE *psc,
+ SCRIPT_ANALYSIS *psa,
+ OPENTYPE_TAG tagScript,
+ OPENTYPE_TAG tagLangSys,
+ int cMaxTags,
+ OPENTYPE_TAG *pFeatureTags,
+ int *pcTags
+);
+
+HRESULT WINAPI ScriptGetFontLanguageTags(
+ HDC hdc,
+ SCRIPT_CACHE *psc,
+ SCRIPT_ANALYSIS *psa,
+ OPENTYPE_TAG tagScript,
+ int cMaxTags,
+ OPENTYPE_TAG *pLangSysTags,
+ int *pcTags
+);
+
+HRESULT WINAPI ScriptGetFontScriptTags(
+ HDC hdc,
+ SCRIPT_CACHE *psc,
+ SCRIPT_ANALYSIS *psa,
+ int cMaxTags,
+ OPENTYPE_TAG *pScriptTags,
+ int *pcTags
+);
+
+HRESULT WINAPI ScriptItemizeOpenType(
+ const WCHAR *pwcInChars,
+ int cInChars,
+ int cMaxItems,
+ const SCRIPT_CONTROL *psControl,
+ const SCRIPT_STATE *psState,
+ SCRIPT_ITEM *pItems,
+ OPENTYPE_TAG *pScriptTags,
+ int *pcItems
+);
+
+HRESULT WINAPI ScriptPlaceOpenType(
+ HDC hdc,
+ SCRIPT_CACHE *psc,
+ SCRIPT_ANALYSIS *psa,
+ OPENTYPE_TAG tagScript,
+ OPENTYPE_TAG tagLangSys,
+ int *rcRangeChars,
+ TEXTRANGE_PROPERTIES **rpRangeProperties,
+ int cRanges,
+ const WCHAR *pwcChars,
+ WORD *pwLogClust,
+ SCRIPT_CHARPROP *pCharProps,
+ int cChars,
+ const WORD *pwGlyphs,
+ const SCRIPT_GLYPHPROP *pGlyphProps,
+ int cGlyphs,
+ int *piAdvance,
+ GOFFSET *pGoffset,
+ ABC *pABC
+);
+
+HRESULT WINAPI ScriptPositionSingleGlyph(
+ HDC hdc,
+ SCRIPT_CACHE *psc,
+ SCRIPT_ANALYSIS *psa,
+ OPENTYPE_TAG tagScript,
+ OPENTYPE_TAG tagLangSys,
+ OPENTYPE_TAG tagFeature,
+ LONG lParameter,
+ WORD wGlyphId,
+ int iAdvance,
+ GOFFSET Goffset,
+ int *piOutAdvance,
+ GOFFSET *pOutGoffset
+);
+
+HRESULT WINAPI ScriptShapeOpenType(
+ HDC hdc,
+ SCRIPT_CACHE *psc,
+ SCRIPT_ANALYSIS *psa,
+ OPENTYPE_TAG tagScript,
+ OPENTYPE_TAG tagLangSys,
+ int *rcRangeChars,
+ TEXTRANGE_PROPERTIES **rpRangeProperties,
+ int cRanges,
+ const WCHAR *pwcChars,
+ int cChars,
+ int cMaxGlyphs,
+ WORD *pwLogClust,
+ SCRIPT_CHARPROP *pCharProps,
+ WORD *pwOutGlyphs,
+ SCRIPT_GLYPHPROP *pOutGlyphProps,
+ int *pcGlyphs
+);
+
+HRESULT ScriptSubstituteSingleGlyph(
+ HDC hdc,
+ SCRIPT_CACHE *psc,
+ SCRIPT_ANALYSIS *psa,
+ OPENTYPE_TAG tagScript,
+ OPENTYPE_TAG tagLangSys,
+ OPENTYPE_TAG tagFeature,
+ LONG lParameter,
+ WORD wGlyphId,
+ WORD *pwOutGlyphId
+);
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
#ifdef __cplusplus
}
#endif
diff --git a/mingw-w64-headers/include/vds.h b/mingw-w64-headers/include/vds.h
new file mode 100644
index 0000000..8a9dba4
--- /dev/null
+++ b/mingw-w64-headers/include/vds.h
@@ -0,0 +1,1262 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_VDS
+#define _INC_VDS
+
+#if (_WIN32_WINNT >= 0x0600)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define GPT_PARTITION_NAME_LENGTH 36
+
+typedef GUID VDS_OBJECT_ID;
+typedef UINT64 VDS_PATH_ID;
+
+typedef enum _VDS_PARTITION_STYLE {
+ VDS_PST_UNKNOWN = 0,
+ VDS_PST_MBR = 1,
+ VDS_PST_GPT = 2
+} VDS_PARTITION_STYLE;
+
+typedef enum tag_VDS_PARTITION_STYLE {
+ VDS_PARTITION_STYLE_MBR,
+ VDS_PARTITION_STYLE_GPT,
+ VDS_PARTITION_STYLE_RAW
+} __VDS_PARTITION_STYLE;
+
+typedef enum _VDS_ASYNC_OUTPUT_TYPE {
+ VDS_ASYNCOUT_UNKNOWN = 0,
+ VDS_ASYNCOUT_CREATEVOLUME = 1,
+ VDS_ASYNCOUT_EXTENDVOLUME = 2,
+ VDS_ASYNCOUT_SHRINKVOLUME = 3,
+ VDS_ASYNCOUT_ADDVOLUMEPLEX = 4,
+ VDS_ASYNCOUT_BREAKVOLUMEPLEX = 5,
+ VDS_ASYNCOUT_REMOVEVOLUMEPLEX = 6,
+ VDS_ASYNCOUT_REPAIRVOLUMEPLEX = 7,
+ VDS_ASYNCOUT_RECOVERPACK = 8,
+ VDS_ASYNCOUT_REPLACEDISK = 9,
+ VDS_ASYNCOUT_CREATEPARTITION = 10,
+ VDS_ASYNCOUT_CLEAN = 11,
+ VDS_ASYNCOUT_CREATELUN = 50,
+ VDS_ASYNCOUT_ADDLUNPLEX = 52,
+ VDS_ASYNCOUT_REMOVELUNPLEX = 53,
+ VDS_ASYNCOUT_EXTENDLUN = 54,
+ VDS_ASYNCOUT_SHRINKLUN = 55,
+ VDS_ASYNCOUT_RECOVERLUN = 56,
+ VDS_ASYNCOUT_LOGINTOTARGET = 60,
+ VDS_ASYNCOUT_LOGOUTFROMTARGET = 61,
+ VDS_ASYNCOUT_CREATETARGET = 62,
+ VDS_ASYNCOUT_CREATEPORTALGROUP = 63,
+ VDS_ASYNCOUT_DELETETARGET = 64,
+ VDS_ASYNCOUT_ADDPORTAL = 65,
+ VDS_ASYNCOUT_REMOVEPORTAL = 66,
+ VDS_ASYNCOUT_DELETEPORTALGROUP = 67,
+ VDS_ASYNCOUT_FORMAT = 101,
+ VDS_ASYNCOUT_CREATE_VDISK = 200,
+ VDS_ASYNCOUT_ATTACH_VDISK = 201,
+ VDS_ASYNCOUT_COMPACT_VDISK = 202,
+ VDS_ASYNCOUT_MERGE_VDISK = 203,
+ VDS_ASYNCOUT_EXPAND_VDISK = 204
+} VDS_ASYNC_OUTPUT_TYPE;
+
+typedef enum _VDS_HEALTH {
+ VDS_H_UNKNOWN = 0,
+ VDS_H_HEALTHY = 1,
+ VDS_H_REBUILDING = 2,
+ VDS_H_STALE = 3,
+ VDS_H_FAILING = 4,
+ VDS_H_FAILING_REDUNDANCY = 5,
+ VDS_H_FAILED_REDUNDANCY = 6,
+ VDS_H_FAILED_REDUNDANCY_FAILING = 7,
+ VDS_H_FAILED = 8,
+ VDS_H_REPLACED = 9,
+ VDS_H_PENDING_FAILURE = 10,
+ VDS_H_DEGRADED = 11
+} VDS_HEALTH;
+
+typedef enum _VDS_CONTROLLER_STATUS {
+ VDS_CS_UNKNOWN = 0,
+ VDS_CS_ONLINE = 1,
+ VDS_CS_NOT_READY = 2,
+ VDS_CS_OFFLINE = 4,
+ VDS_CS_FAILED = 5,
+ VDS_CS_REMOVED = 8
+} VDS_CONTROLLER_STATUS;
+
+typedef enum _VDS_DISK_EXTENT_TYPE {
+ VDS_DET_UNKNOWN = 0,
+ VDS_DET_FREE = 1,
+ VDS_DET_DATA = 2,
+ VDS_DET_OEM = 3,
+ VDS_DET_ESP = 4,
+ VDS_DET_MSR = 5,
+ VDS_DET_LDM = 6,
+ VDS_DET_CLUSTER = 7,
+ VDS_DET_UNUSABLE = 0x7FFF
+} VDS_DISK_EXTENT_TYPE;
+
+typedef enum _VDS_DISK_FLAG {
+ VDS_DF_AUDIO_CD = 0x1,
+ VDS_DF_HOTSPARE = 0x2,
+ VDS_DF_RESERVE_CAPABLE = 0x4,
+ VDS_DF_MASKED = 0x8,
+ VDS_DF_STYLE_CONVERTIBLE = 0x10,
+ VDS_DF_CLUSTERED = 0x20,
+ VDS_DF_READ_ONLY = 0x40,
+ VDS_DF_SYSTEM_DISK = 0x80,
+ VDS_DF_BOOT_DISK = 0x100,
+ VDS_DF_PAGEFILE_DISK = 0x200,
+ VDS_DF_HIBERNATIONFILE_DISK = 0x400,
+ VDS_DF_CRASHDUMP_DISK = 0x800,
+ VDS_DF_HAS_ARC_PATH = 0x1000,
+ VDS_DF_DYNAMIC = 0x2000,
+ VDS_DF_BOOT_FROM_DISK = 0x4000,
+ VDS_DF_CURRENT_READ_ONLY = 0x8000
+} VDS_DISK_FLAG;
+
+typedef enum _VDS_NOTIFICATION_TARGET_TYPE {
+ VDS_NTT_UNKNOWN = 0,
+ VDS_NTT_PACK = 10,
+ VDS_NTT_VOLUME = 11,
+ VDS_NTT_DISK = 13,
+ VDS_NTT_PARTITION = 60,
+ VDS_NTT_DRIVE_LETTER = 61,
+ VDS_NTT_FILE_SYSTEM = 62,
+ VDS_NTT_MOUNT_POINT = 63,
+ VDS_NTT_SUB_SYSTEM = 30,
+ VDS_NTT_CONTROLLER = 31,
+ VDS_NTT_DRIVE = 32,
+ VDS_NTT_LUN = 33,
+ VDS_NTT_PORT = 35,
+ VDS_NTT_PORTAL = 36,
+ VDS_NTT_TARGET = 37,
+ VDS_NTT_PORTAL_GROUP = 38,
+ VDS_NTT_SERVICE = 200
+} VDS_NOTIFICATION_TARGET_TYPE;
+
+typedef enum _VDS_OBJECT_TYPE {
+ VDS_OT_UNKNOWN = 0,
+ VDS_OT_PROVIDER = 1,
+ VDS_OT_PACK = 10,
+ VDS_OT_VOLUME = 11,
+ VDS_OT_VOLUME_PLEX = 12,
+ VDS_OT_DISK = 13,
+ VDS_OT_SUB_SYSTEM = 30,
+ VDS_OT_CONTROLLER = 31,
+ VDS_OT_DRIVE = 32,
+ VDS_OT_LUN = 33,
+ VDS_OT_LUN_PLEX = 34,
+ VDS_OT_PORT = 35,
+ VDS_OT_PORTAL = 36,
+ VDS_OT_TARGET = 37,
+ VDS_OT_PORTAL_GROUP = 38,
+ VDS_OT_STORAGE_POOL = 39,
+ VDS_OT_HBAPORT = 90,
+ VDS_OT_INIT_ADAPTER = 91,
+ VDS_OT_INIT_PORTAL = 92,
+ VDS_OT_ASYNC = 100,
+ VDS_OT_ENUM = 101,
+ VDS_OT_VDISK = 200,
+ VDS_OT_OPEN_VDISK = 201
+} VDS_OBJECT_TYPE;
+
+typedef enum _VDS_STORAGE_BUS_TYPE {
+ VDSBusTypeUnknown = 0x00,
+ VDSBusTypeScsi = 0x01,
+ VDSBusTypeAtapi = 0x02,
+ VDSBusTypeAta = 0x03,
+ VDSBusType1394 = 0x04,
+ VDSBusTypeSsa = 0x05,
+ VDSBusTypeFibre = 0x06,
+ VDSBusTypeUsb = 0x07,
+ VDSBusTypeRAID = 0x08,
+ VDSBusTypeiScsi = 0x09,
+ VDSBusTypeMaxReserved = 0x7F
+}VDS_STORAGE_BUS_TYPE;
+
+typedef enum _VDS_DISK_STATUS {
+ VDS_DS_UNKNOWN = 0,
+ VDS_DS_ONLINE = 1,
+ VDS_DS_NOT_READY = 2,
+ VDS_DS_NO_MEDIA = 3,
+ VDS_DS_OFFLINE = 4,
+ VDS_DS_FAILED = 5,
+ VDS_DS_MISSING = 6
+} VDS_DISK_STATUS;
+
+typedef enum _VDS_DRIVE_FLAG {
+ VDS_DRF_HOTSPARE = 0x1,
+ VDS_DRF_ASSIGNED = 0x2,
+ VDS_DRF_UNASSIGNED = 0x4,
+ VDS_DRF_HOTSPARE_IN_USE = 0x8,
+ VDS_DRF_HOTSPARE_STANDBY = 0x10
+} VDS_DRIVE_FLAG;
+
+typedef enum _VDS_DRIVE_LETTER_FLAG {
+ VDS_DLF_NON_PERSISTENT = 0x1
+} VDS_DRIVE_LETTER_FLAG;
+
+typedef enum _VDS_DRIVE_STATUS {
+ VDS_DRS_UNKNOWN = 0,
+ VDS_DRS_ONLINE = 1,
+ VDS_DRS_NOT_READY = 2,
+ VDS_DRS_OFFLINE = 4,
+ VDS_DRS_FAILED = 5,
+ VDS_DRS_REMOVED = 8
+} VDS_DRIVE_STATUS;
+
+typedef enum _VDS_FILE_SYSTEM_FLAG {
+ VDS_FSF_SUPPORT_FORMAT = 0x1,
+ VDS_FSF_SUPPORT_QUICK_FORMAT = 0x2,
+ VDS_FSF_SUPPORT_COMPRESS = 0x4,
+ VDS_FSF_SUPPORT_SPECIFY_LABEL = 0x8,
+ VDS_FSF_SUPPORT_MOUNT_POINT = 0x10,
+ VDS_FSF_SUPPORT_REMOVABLE_MEDIA = 0x20,
+ VDS_FSF_SUPPORT_EXTEND = 0x40,
+ VDS_FSF_ALLOCATION_UNIT_512 = 0x10000,
+ VDS_FSF_ALLOCATION_UNIT_1K = 0x20000,
+ VDS_FSF_ALLOCATION_UNIT_2K = 0x40000,
+ VDS_FSF_ALLOCATION_UNIT_4K = 0x80000,
+ VDS_FSF_ALLOCATION_UNIT_8K = 0x100000,
+ VDS_FSF_ALLOCATION_UNIT_16K = 0x200000,
+ VDS_FSF_ALLOCATION_UNIT_32K = 0x400000,
+ VDS_FSF_ALLOCATION_UNIT_64K = 0x800000,
+ VDS_FSF_ALLOCATION_UNIT_128K = 0x1000000,
+ VDS_FSF_ALLOCATION_UNIT_256K = 0x2000000
+} VDS_FILE_SYSTEM_FLAG;
+
+typedef enum _VDS_FILE_SYSTEM_FORMAT_SUPPORT_FLAG {
+ VDS_FSS_DEFAULT = 0x00000001,
+ VDS_FSS_PREVIOUS_REVISION = 0x00000002,
+ VDS_FSS_RECOMMENDED = 0x00000004
+} VDS_FILE_SYSTEM_FORMAT_SUPPORT_FLAG;
+
+typedef enum _VDS_FILE_SYSTEM_PROP_FLAG {
+ VDS_FPF_COMPRESSED = 0x1
+} VDS_FILE_SYSTEM_PROP_FLAG;
+
+typedef enum _VDS_FILE_SYSTEM_TYPE {
+ VDS_FST_UNKNOWN = 0,
+ VDS_FST_RAW = 1,
+ VDS_FST_FAT = 2,
+ VDS_FST_FAT32 = 3,
+ VDS_FST_NTFS = 4,
+ VDS_FST_CDFS = 5,
+ VDS_FST_UDF = 6,
+ VDS_FST_EXFAT = 7
+} VDS_FILE_SYSTEM_TYPE;
+
+typedef enum _VDS_HBAPORT_SPEED_FLAG {
+ VDS_HSF_UNKNOWN = 0,
+ VDS_HSF_1GBIT = 0x1,
+ VDS_HSF_2GBIT = 0x2,
+ VDS_HSF_10GBIT = 0x4,
+ VDS_HSF_4GBIT = 0x8,
+ VDS_HSF_NOT_NEGOTIATED = 0x8000
+} VDS_HBAPORT_SPEED_FLAG;
+
+typedef enum _VDS_HBAPORT_STATUS {
+ VDS_HPS_UNKNOWN = 1,
+ VDS_HPS_ONLINE = 2,
+ VDS_HPS_OFFLINE = 3,
+ VDS_HPS_BYPASSED = 4,
+ VDS_HPS_DIAGNOSTICS = 5,
+ VDS_HPS_LINKDOWN = 6,
+ VDS_HPS_ERROR = 7,
+ VDS_HPS_LOOPBACK = 8
+} VDS_HBAPORT_STATUS;
+
+typedef enum _VDS_HBAPORT_TYPE {
+ VDS_HPT_UNKNOWN = 1,
+ VDS_HPT_OTHER = 2,
+ VDS_HPT_NOTPRESENT = 3,
+ VDS_HPT_NPORT = 5,
+ VDS_HPT_NLPORT = 6,
+ VDS_HPT_FLPORT = 7,
+ VDS_HPT_FPORT = 8,
+ VDS_HPT_EPORT = 9,
+ VDS_HPT_GPORT = 10,
+ VDS_HPT_LPORT = 20,
+ VDS_HPT_PTP = 21
+} VDS_HBAPORT_TYPE;
+
+typedef enum _VDS_HWPROVIDER_TYPE {
+ VDS_HWT_UNKNOWN = 0,
+ VDS_HWT_PCI_RAID = 1,
+ VDS_HWT_FIBRE_CHANNEL = 2,
+ VDS_HWT_ISCSI = 3,
+ VDS_HWT_SAS = 4,
+ VDS_HWT_HYBRID = 5
+} VDS_HWPROVIDER_TYPE;
+
+typedef enum _VDS_INTERCONNECT_ADDRESS_TYPE {
+ VDS_IA_UNKNOWN = 0,
+ VDS_IA_FCFS = 1,
+ VDS_IA_FCPH = 2,
+ VDS_IA_FCPH3 = 3,
+ VDS_IA_MAC = 4,
+ VDS_IA_SCSI = 5
+}VDS_INTERCONNECT_ADDRESS_TYPE;
+
+typedef enum VDS_IPADDRESS_TYPE {
+ VDS_IPT_TEXT = 0,
+ VDS_IPT_IPV4 = 1,
+ VDS_IPT_IPV6 = 2,
+ VDS_IPT_EMPTY = 3
+} VDS_IPADDRESS_TYPE;
+
+typedef enum _VDS_ISCSI_AUTH_TYPE {
+ VDS_IAT_NONE = 0,
+ VDS_IAT_CHAP = 1,
+ VDS_IAT_MUTUAL_CHAP = 2
+} VDS_ISCSI_AUTH_TYPE;
+
+typedef enum _VDS_ISCSI_LOGIN_FLAG {
+ VDS_ILF_REQUIRE_IPSEC = 0x1,
+ VDS_ILF_MULTIPATH_ENABLED = 0x2
+} VDS_ISCSI_LOGIN_FLAG;
+
+typedef enum _VDS_ISCSI_LOGIN_TYPE {
+ VDS_ILT_MANUAL = 0,
+ VDS_ILT_PERSISTENT = 1,
+ VDS_ILT_BOOT = 2
+} VDS_ISCSI_LOGIN_TYPE;
+
+typedef enum _VDS_ISCSI_PORTAL_STATUS {
+ VDS_IPS_UNKNOWN = 0,
+ VDS_IPS_ONLINE = 1,
+ VDS_IPS_NOT_READY = 2,
+ VDS_IPS_OFFLINE = 4,
+ VDS_IPS_FAILED = 5
+} VDS_ISCSI_PORTAL_STATUS;
+
+typedef enum _VDS_LOADBALANCE_POLICY_ENUM {
+ VDS_LBP_UNKNOWN = 0,
+ VDS_LBP_FAILOVER = 1,
+ VDS_LBP_ROUND_ROBIN = 2,
+ VDS_LBP_ROUND_ROBIN_WITH_SUBSET = 3,
+ VDS_LBP_DYN_LEAST_QUEUE_DEPTH = 4,
+ VDS_LBP_WEIGHTED_PATHS = 5,
+ VDS_LBP_LEAST_BLOCKS = 6,
+ VDS_LBP_VENDOR_SPECIFIC = 7
+} VDS_LOADBALANCE_POLICY_ENUM;
+
+typedef enum _VDS_LUN_FLAG {
+ VDS_LF_LBN_REMAP_ENABLED = 0x01,
+ VDS_LF_READ_BACK_VERIFY_ENABLED = 0x02,
+ VDS_LF_WRITE_THROUGH_CACHING_ENABLED = 0x04,
+ VDS_LF_HARDWARE_CHECKSUM_ENABLED = 0x08,
+ VDS_LF_READ_CACHE_ENABLED = 0x10,
+ VDS_LF_WRITE_CACHE_ENABLED = 0x20,
+ VDS_LF_MEDIA_SCAN_ENABLED = 0x40,
+ VDS_LF_CONSISTENCY_CHECK_ENABLED = 0x80,
+ VDS_LF_SNAPSHOT = 0x100
+} VDS_LUN_FLAG;
+
+typedef enum _VDS_LUN_PLEX_FLAG {
+ VDS_LPF_LBN_REMAP_ENABLED = 0x1
+} VDS_LUN_PLEX_FLAG;
+
+typedef enum _VDS_TRANSITION_STATE {
+ VDS_TS_UNKNOWN = 0,
+ VDS_TS_STABLE = 1,
+ VDS_TS_EXTENDING = 2,
+ VDS_TS_SHRINKING = 3,
+ VDS_TS_RECONFIGING = 4,
+ VDS_TS_RESTRIPING = 8
+} VDS_TRANSITION_STATE;
+
+typedef enum _VDS_LUN_PLEX_STATUS {
+ VDS_LPS_UNKNOWN = 0,
+ VDS_LPS_ONLINE = 1,
+ VDS_LPS_NOT_READY = 2,
+ VDS_LPS_OFFLINE = 4,
+ VDS_LPS_FAILED = 5
+} VDS_LUN_PLEX_STATUS;
+
+typedef enum _VDS_LUN_PLEX_TYPE {
+ VDS_LPT_UNKNOWN = 0,
+ VDS_LPT_SIMPLE = 10,
+ VDS_LPT_SPAN = 11,
+ VDS_LPT_STRIPE = 12,
+ VDS_LPT_PARITY = 14,
+ VDS_LPT_RAID2 = 15,
+ VDS_LPT_RAID3 = 16,
+ VDS_LPT_RAID4 = 17,
+ VDS_LPT_RAID5 = 18,
+ VDS_LPT_RAID6 = 19,
+ VDS_LPT_RAID03 = 21,
+ VDS_LPT_RAID05 = 22,
+ VDS_LPT_RAID10 = 23,
+ VDS_LPT_RAID15 = 24,
+ VDS_LPT_RAID30 = 25,
+ VDS_LPT_RAID50 = 26,
+ VDS_LPT_RAID53 = 28,
+ VDS_LPT_RAID60 = 29
+} VDS_LUN_PLEX_TYPE;
+
+typedef enum _VDS_LUN_STATUS {
+ VDS_LS_UNKNOWN = 0,
+ VDS_LS_ONLINE = 1,
+ VDS_LS_NOT_READY = 2,
+ VDS_LS_OFFLINE = 4,
+ VDS_LS_FAILED = 5
+} VDS_LUN_STATUS;
+
+typedef enum _VDS_LUN_TYPE {
+ VDS_LT_UNKNOWN = 0,
+ VDS_LT_DEFAULT = 1,
+ VDS_LT_FAULT_TOLERANT = 2,
+ VDS_LT_NON_FAULT_TOLERANT = 3,
+ VDS_LT_SIMPLE = 10,
+ VDS_LT_SPAN = 11,
+ VDS_LT_STRIPE = 12,
+ VDS_LT_MIRROR = 13,
+ VDS_LT_PARITY = 14,
+ VDS_LT_RAID2 = 15,
+ VDS_LT_RAID3 = 16,
+ VDS_LT_RAID4 = 17,
+ VDS_LT_RAID5 = 18,
+ VDS_LT_RAID6 = 19,
+ VDS_LT_RAID01 = 20,
+ VDS_LT_RAID03 = 21,
+ VDS_LT_RAID05 = 22,
+ VDS_LT_RAID10 = 23,
+ VDS_LT_RAID15 = 24,
+ VDS_LT_RAID30 = 25,
+ VDS_LT_RAID50 = 26,
+ VDS_LT_RAID51 = 27,
+ VDS_LT_RAID53 = 28,
+ VDS_LT_RAID60 = 29,
+ VDS_LT_RAID61 = 30
+} VDS_LUN_TYPE;
+
+typedef enum _VDS_MAINTENANCE_OPERATION {
+ BlinkLight = 1,
+ BeepAlarm = 2,
+ SpinDown = 3,
+ SpinUp = 4,
+ Ping = 5
+} VDS_MAINTENANCE_OPERATION;
+
+typedef enum _VDS_PACK_FLAG {
+ VDS_PKF_FOREIGN = 0x1,
+ VDS_PKF_NOQUORUM = 0x2,
+ VDS_PKF_POLICY = 0x4,
+ VDS_PKF_CORRUPTED = 0x8,
+ VDS_PKF_ONLINE_ERROR = 0x10
+} VDS_PACK_FLAG;
+
+typedef enum _VDS_PACK_STATUS {
+ VDS_PS_UNKNOWN = 0,
+ VDS_PS_ONLINE = 1,
+ VDS_PS_OFFLINE = 4
+} VDS_PACK_STATUS;
+
+typedef enum _VDS_PARTITION_FLAG {
+ VDS_PTF_SYSTEM = 0x1
+} VDS_PARTITION_FLAG;
+
+typedef enum _VDS_PATH_STATUS {
+ VDS_MPS_UNKNOWN = 0,
+ VDS_MPS_ONLINE = 1,
+ VDS_MPS_FAILED = 5,
+ VDS_MPS_STANDBY = 7
+} VDS_PATH_STATUS;
+
+typedef enum _VDS_PORT_STATUS {
+ VDS_PRS_UNKNOWN = 0,
+ VDS_PRS_ONLINE = 1,
+ VDS_PRS_NOT_READY = 2,
+ VDS_PRS_OFFLINE = 4,
+ VDS_PRS_FAILED = 5,
+ VDS_PRS_REMOVED = 8
+} VDS_PORT_STATUS;
+
+typedef enum _VDS_PROVIDER_FLAG {
+ VDS_PF_DYNAMIC = 0x00000001,
+ VDS_PF_INTERNAL_HARDWARE_PROVIDER = 0x00000002,
+ VDS_PF_ONE_DISK_ONLY_PER_PACK = 0x00000004,
+ VDS_PF_ONE_PACK_ONLINE_ONLY = 0x00000008,
+ VDS_PF_VOLUME_SPACE_MUST_BE_CONTIGUOUS = 0x00000010,
+ VDS_PF_SUPPORT_DYNAMIC = 0x80000000,
+ VDS_PF_SUPPORT_FAULT_TOLERANT = 0x40000000,
+ VDS_PF_SUPPORT_DYNAMIC_1394 = 0x20000000,
+ VDS_PF_SUPPORT_MIRROR = 0x00000020,
+ VDS_PF_SUPPORT_RAID5 = 0x00000040
+} VDS_PROVIDER_FLAG;
+
+typedef enum _VDS_PROVIDER_LBSUPPORT_FLAG {
+ VDS_LBF_FAILOVER = 0x1,
+ VDS_LBF_ROUND_ROBIN = 0x2,
+ VDS_LBF_ROUND_ROBIN_WITH_SUBSET = 0x4,
+ VDS_LBF_DYN_LEAST_QUEUE_DEPTH = 0x8,
+ VDS_LBF_WEIGHTED_PATHS = 0x10,
+ VDS_LBF_LEAST_BLOCKS = 0x20,
+ VDS_LBF_VENDOR_SPECIFIC = 0x40
+} VDS_PROVIDER_LBSUPPORT_FLAG;
+
+typedef enum _VDS_PROVIDER_TYPE {
+ VDS_PT_UNKNOWN = 0,
+ VDS_PT_SOFTWARE = 1,
+ VDS_PT_HARDWARE = 2,
+ VDS_PT_VIRTUALDISK = 3,
+ VDS_PT_MAX = 4
+} VDS_PROVIDER_TYPE;
+
+typedef enum _VDS_QUERY_PROVIDER_FLAG {
+ VDS_QUERY_SOFTWARE_PROVIDERS = 0x1,
+ VDS_QUERY_HARDWARE_PROVIDERS = 0x2
+} VDS_QUERY_PROVIDER_FLAG;
+
+typedef enum _VDS_SAN_POLICY {
+ VDS_SP_UNKNOWN = 0x0,
+ VDS_SP_ONLINE = 0x1,
+ VDS_SP_OFFLINE_SHARED = 0x2,
+ VDS_SP_OFFLINE = 0x3
+} VDS_SAN_POLICY;
+
+typedef enum _VDS_SERVICE_FLAG {
+ VDS_SVF_SUPPORT_DYNAMIC = 0x1,
+ VDS_SVF_SUPPORT_FAULT_TOLERANT = 0x2,
+ VDS_SVF_SUPPORT_GPT = 0x4,
+ VDS_SVF_SUPPORT_DYNAMIC_1394 = 0x8,
+ VDS_SVF_CLUSTER_SERVICE_CONFIGURED = 0x10,
+ VDS_SVF_AUTO_MOUNT_OFF = 0x20,
+ VDS_SVF_OS_UNINSTALL_VALID = 0x40,
+ VDS_SVF_EFI = 0x80,
+ VDS_SVF_SUPPORT_MIRROR = 0x100L,
+ VDS_SVF_SUPPORT_RAID5 = 0x200L
+} VDS_SERVICE_FLAG;
+
+typedef enum _VDS_STORAGE_IDENTIFIER_CODE_SET {
+ VDSStorageIdCodeSetReserved = 0,
+ VDSStorageIdCodeSetBinary = 1,
+ VDSStorageIdCodeSetAscii = 2
+}VDS_STORAGE_IDENTIFIER_CODE_SET;
+
+typedef enum VDS_STORAGE_IDENTIFIER_TYPE {
+ VDSStorageIdTypeVendorSpecific = 0,
+ VDSStorageIdTypeVendorId = 1,
+ VDSStorageIdTypeEUI64 = 2,
+ VDSStorageIdTypeFCPHName = 3,
+ VDSStorageIdTypeSCSINameString = 8
+}VDS_STORAGE_IDENTIFIER_TYPE;
+
+typedef enum _VDS_SUB_SYSTEM_FLAG {
+ VDS_SF_LUN_MASKING_CAPABLE = 0x1,
+ VDS_SF_LUN_PLEXING_CAPABLE = 0x2,
+ VDS_SF_LUN_REMAPPING_CAPABLE = 0x4,
+ VDS_SF_DRIVE_EXTENT_CAPABLE = 0x8,
+ VDS_SF_HARDWARE_CHECKSUM_CAPABLE = 0x10,
+ VDS_SF_RADIUS_CAPABLE = 0x20,
+ VDS_SF_READ_BACK_VERIFY_CAPABLE = 0x40,
+ VDS_SF_WRITE_THROUGH_CACHING_CAPABLE = 0x80,
+ VDS_SF_SUPPORTS_FAULT_TOLERANT_LUNS = 0x200,
+ VDS_SF_SUPPORTS_NON_FAULT_TOLERANT_LUNS = 0x400,
+ VDS_SF_SUPPORTS_SIMPLE_LUNS = 0x800,
+ VDS_SF_SUPPORTS_SPAN_LUNS = 0x1000,
+ VDS_SF_SUPPORTS_STRIPE_LUNS = 0x2000,
+ VDS_SF_SUPPORTS_MIRROR_LUNS = 0x4000,
+ VDS_SF_SUPPORTS_PARITY_LUNS = 0x8000,
+ VDS_SF_SUPPORTS_AUTH_CHAP = 0x10000,
+ VDS_SF_SUPPORTS_AUTH_MUTUAL_CHAP = 0x20000,
+ VDS_SF_SUPPORTS_SIMPLE_TARGET_CONFIG = 0x40000,
+ VDS_SF_SUPPORTS_LUN_NUMBER = 0x80000,
+ VDS_SF_SUPPORTS_MIRRORED_CACHE = 0x100000,
+ VDS_SF_READ_CACHING_CAPABLE = 0x200000,
+ VDS_SF_WRITE_CACHING_CAPABLE = 0x400000,
+ VDS_SF_MEDIA_SCAN_CAPABLE = 0x800000,
+ VDS_SF_CONSISTENCY_CHECK_CAPABLE = 0x1000000
+} VDS_SUB_SYSTEM_FLAG;
+
+typedef enum _VDS_SUB_SYSTEM_STATUS {
+ VDS_SSS_UNKNOWN = 0,
+ VDS_SSS_ONLINE = 1,
+ VDS_SSS_NOT_READY = 2,
+ VDS_SSS_OFFLINE = 4,
+ VDS_SSS_FAILED = 5,
+ VDS_SSS_PARTIALLY_MANAGED = 9
+} VDS_SUB_SYSTEM_STATUS;
+
+typedef enum _VDS_VERSION_SUPPORT_FLAG {
+ VDS_VSF_1_0 = 0x1,
+ VDS_VSF_1_1 = 0x2,
+ VDS_VSF_2_0 = 0x4,
+ VDS_VSF_2_1 = 0x8,
+ VDS_VSF_3_0 = 0x10
+} VDS_VERSION_SUPPORT_FLAG;
+
+typedef enum _VDS_VOLUME_FLAG {
+ VDS_VF_SYSTEM_VOLUME = 0x1,
+ VDS_VF_BOOT_VOLUME = 0x2,
+ VDS_VF_ACTIVE = 0x4,
+ VDS_VF_READONLY = 0x8,
+ VDS_VF_HIDDEN = 0x10,
+ VDS_VF_CAN_EXTEND = 0x20,
+ VDS_VF_CAN_SHRINK = 0x40,
+ VDS_VF_PAGEFILE = 0x80,
+ VDS_VF_HIBERNATION = 0x100,
+ VDS_VF_CRASHDUMP = 0x200,
+ VDS_VF_INSTALLABLE = 0x400,
+ VDS_VF_LBN_REMAP_ENABLED = 0x800,
+ VDS_VF_FORMATTING = 0x1000,
+ VDS_VF_NOT_FORMATTABLE = 0x2000,
+ VDS_VF_NTFS_NOT_SUPPORTED = 0x4000,
+ VDS_VF_FAT32_NOT_SUPPORTED = 0x8000,
+ VDS_VF_FAT_NOT_SUPPORTED = 0x10000,
+ VDS_VF_NO_DEFAULT_DRIVE_LETTER = 0x20000,
+ VDS_VF_PERMANENTLY_DISMOUNTED = 0x40000,
+ VDS_VF_PERMANENT_DISMOUNT_SUPPORTED = 0x80000,
+ VDS_VF_SHADOW_COPY = 0x100000,
+ VDS_VF_FVE_ENABLED = 0x200000,
+ VDS_VF_DIRTY = 0x400000
+} VDS_VOLUME_FLAG;
+
+typedef enum _VDS_VOLUME_PLEX_STATUS {
+ VDS_VPS_UNKNOWN = 0,
+ VDS_VPS_ONLINE = 1,
+ VDS_VPS_NO_MEDIA = 3,
+ VDS_VPS_FAILED = 5
+} VDS_VOLUME_PLEX_STATUS;
+
+typedef enum _VDS_VOLUME_PLEX_TYPE {
+ VDS_VPT_UNKNOWN = 0,
+ VDS_VPT_SIMPLE = 10,
+ VDS_VPT_SPAN = 11,
+ VDS_VPT_STRIPE = 12,
+ VDS_VPT_PARITY = 14
+} VDS_VOLUME_PLEX_TYPE;
+
+typedef enum _VDS_VOLUME_STATUS {
+ VDS_VS_UNKNOWN = 0,
+ VDS_VS_ONLINE = 1,
+ VDS_VS_NO_MEDIA = 3,
+ VDS_VS_FAILED = 5,
+ VDS_VS_OFFLINE = 4
+} VDS_VOLUME_STATUS;
+
+typedef enum _VDS_VOLUME_TYPE {
+ VDS_VT_UNKNOWN = 0,
+ VDS_VT_SIMPLE = 10,
+ VDS_VT_SPAN = 11,
+ VDS_VT_STRIPE = 12,
+ VDS_VT_MIRROR = 13,
+ VDS_VT_PARITY = 14
+} VDS_VOLUME_TYPE;
+
+typedef struct _VDS_PARTITION_INFO_GPT {
+ GUID partitionType;
+ GUID partitionId;
+ ULONGLONG attributes;
+ WCHAR name[GPT_PARTITION_NAME_LENGTH];
+} VDS_PARTITION_INFO_GPT;
+
+typedef struct _CHANGE_ATTRIBUTES_PARAMETERS {
+ VDS_PARTITION_STYLE style;
+ __MINGW_EXTENSION union {
+ __MINGW_EXTENSION struct {
+ BOOLEAN bootIndicator;
+ } MbrPartInfo;
+ __MINGW_EXTENSION struct {
+ ULONGLONG attributes;
+ } GptPartInfo;
+ };
+} CHANGE_ATTRIBUTES_PARAMETERS;
+
+typedef struct _CREATE_PARTITION_PARAMETERS {
+ VDS_PARTITION_STYLE style;
+ __MINGW_EXTENSION union {
+ __MINGW_EXTENSION struct {
+ BYTE partitionType;
+ BOOLEAN bootIndicator;
+ } MbrPartInfo;
+ __MINGW_EXTENSION struct {
+ GUID partitionType;
+ GUID partitionId;
+ ULONGLONG attributes;
+ WCHAR name[GPT_PARTITION_NAME_LENGTH];
+ } GptPartInfo;
+ };
+} CREATE_PARTITION_PARAMETERS;
+
+typedef struct _VDS_ASYNC_OUTPUT {
+ VDS_ASYNC_OUTPUT_TYPE type;
+ /*[switch(type)] */__MINGW_EXTENSION union {
+ /*[case(VDS_ASYNCOUT_CREATEPARTITION)]*/
+ __MINGW_EXTENSION struct {
+ ULONGLONG ullOffset;
+ VDS_OBJECT_ID volumeId;
+ } cp;
+ /*[case(VDS_ASYNCOUT_CREATEVOLUME)]*/
+ __MINGW_EXTENSION struct {
+ IUnknown *pVolumeUnk;
+ } cv;
+ /*[case(VDS_ASYNCOUT_BREAKVOLUMEPLEX)]*/
+ __MINGW_EXTENSION struct {
+ IUnknown *pVolumeUnk;
+ } bvp;
+ /*[case(VDS_ASYNCOUT_CREATELUN)]*/
+ __MINGW_EXTENSION struct {
+ IUnknown *pLunUnk;
+ } cl;
+ /*[case(VDS_ASYNCOUT_CREATETARGET)]*/
+ __MINGW_EXTENSION struct {
+ IUnknown *pTargetUnk;
+ } ct;
+ /*[case(VDS_ASYNCOUT_CREATEPORTALGROUP)]*/
+ __MINGW_EXTENSION struct {
+ IUnknown *pPortalGroupUnk;
+ } cpg;
+ /*[case(VDS_ASYNCOUT_CREATE_VDISK)]*/
+ __MINGW_EXTENSION struct {
+ IUnknown *pVDiskUnk;
+ } cvd;
+ } DUMMYUNIONNAME;
+} VDS_ASYNC_OUTPUT;
+
+#define VDS_NF_CONTROLLER_ARRIVE 103
+#define VDS_NF_CONTROLLER_DEPART 104
+#define VDS_NF_CONTROLLER_MODIFY 350
+#define VDS_NF_CONTROLLER_REMOVED 351
+
+typedef struct _VDS_CONTROLLER_NOTIFICATION {
+ ULONG ulEvent;
+ VDS_OBJECT_ID controllerId;
+} VDS_CONTROLLER_NOTIFICATION;
+
+typedef struct _VDS_CONTROLLER_PROP {
+ VDS_OBJECT_ID id;
+ LPWSTR pwszFriendlyName;
+ LPWSTR pwszIdentification;
+ VDS_CONTROLLER_STATUS status;
+ VDS_HEALTH health;
+ SHORT sNumberOfPorts;
+} VDS_CONTROLLER_PROP;
+
+typedef struct _VDS_DISK_EXTENT {
+ VDS_OBJECT_ID diskId;
+ VDS_DISK_EXTENT_TYPE type;
+ ULONGLONG ullOffset;
+ ULONGLONG ullSize;
+ VDS_OBJECT_ID volumeId;
+ VDS_OBJECT_ID plexId;
+ ULONG memberIdx;
+} VDS_DISK_EXTENT, *PVDS_DISK_EXTENT;
+
+typedef struct _VDS_DISK_NOTIFICATION {
+ ULONG ulEvent;
+ VDS_OBJECT_ID diskId;
+} VDS_DISK_NOTIFICATION;
+
+typedef struct _VDS_PACK_NOTIFICATION {
+ ULONG ulEvent;
+ VDS_OBJECT_ID packId;
+} VDS_PACK_NOTIFICATION;
+
+typedef struct _VDS_VOLUME_NOTIFICATION {
+ ULONG ulEvent;
+ VDS_OBJECT_ID volumeId;
+ VDS_OBJECT_ID plexId;
+ ULONG ulPercentCompleted;
+} VDS_VOLUME_NOTIFICATION;
+
+typedef struct _VDS_PARTITION_NOTIFICATION {
+ ULONG ulEvent;
+ VDS_OBJECT_ID diskId;
+ ULONGLONG ullOffset;
+} VDS_PARTITION_NOTIFICATION;
+
+typedef struct _VDS_DRIVE_LETTER_NOTIFICATION {
+ ULONG ulEvent;
+ WCHAR wcLetter;
+ VDS_OBJECT_ID volumeId;
+} VDS_DRIVE_LETTER_NOTIFICATION;
+
+typedef struct _VDS_FILE_SYSTEM_NOTIFICATION {
+ ULONG ulEvent;
+ VDS_OBJECT_ID volumeId;
+ DWORD dwPercentCompleted;
+} VDS_FILE_SYSTEM_NOTIFICATION;
+
+typedef struct _VDS_MOUNT_POINT_NOTIFICATION {
+ ULONG ulEvent;
+ VDS_OBJECT_ID volumeId;
+} VDS_MOUNT_POINT_NOTIFICATION;
+
+typedef struct _VDS_SUB_SYSTEM_NOTIFICATION {
+ ULONG ulEvent;
+ VDS_OBJECT_ID subSystemId;
+} VDS_SUB_SYSTEM_NOTIFICATION;
+
+typedef struct _VDS_DRIVE_NOTIFICATION {
+ ULONG ulEvent;
+ VDS_OBJECT_ID driveId;
+} VDS_DRIVE_NOTIFICATION;
+
+typedef struct _VDS_LUN_NOTIFICATION {
+ ULONG ulEvent;
+ VDS_OBJECT_ID LunId;
+} VDS_LUN_NOTIFICATION;
+
+typedef struct _VDS_PORT_NOTIFICATION {
+ ULONG ulEvent;
+ VDS_OBJECT_ID portId;
+} VDS_PORT_NOTIFICATION;
+
+typedef struct _VDS_PORTAL_NOTIFICATION {
+ ULONG ulEvent;
+ VDS_OBJECT_ID portalId;
+} VDS_PORTAL_NOTIFICATION;
+
+typedef struct _VDS_TARGET_NOTIFICATION {
+ ULONG ulEvent;
+ VDS_OBJECT_ID targetId;
+} VDS_TARGET_NOTIFICATION;
+
+typedef struct _VDS_PORTAL_GROUP_NOTIFICATION {
+ ULONG ulEvent;
+ VDS_OBJECT_ID portalGroupId;
+} VDS_PORTAL_GROUP_NOTIFICATION;
+
+typedef struct _VDS_NOTIFICATION {
+ VDS_NOTIFICATION_TARGET_TYPE objectType;
+ __MINGW_EXTENSION union {
+ VDS_PACK_NOTIFICATION Pack;
+ VDS_DISK_NOTIFICATION Disk;
+ VDS_VOLUME_NOTIFICATION Volume;
+ VDS_PARTITION_NOTIFICATION Partition;
+ VDS_DRIVE_LETTER_NOTIFICATION Letter;
+ VDS_FILE_SYSTEM_NOTIFICATION FileSystem;
+ VDS_MOUNT_POINT_NOTIFICATION MountPoint;
+ VDS_SUB_SYSTEM_NOTIFICATION SubSystem;
+ VDS_CONTROLLER_NOTIFICATION Controller;
+ VDS_DRIVE_NOTIFICATION Drive;
+ VDS_LUN_NOTIFICATION Lun;
+ VDS_PORT_NOTIFICATION Port;
+ VDS_PORTAL_NOTIFICATION Portal;
+ VDS_TARGET_NOTIFICATION Target;
+ VDS_PORTAL_GROUP_NOTIFICATION PortalGroup;
+ } DUMMYUNIONNAME;
+} VDS_NOTIFICATION;
+
+typedef LPVOID VDS_LUN_RESERVE_MODE; /* Unsupported enum */
+
+typedef struct _VDS_DISK_PROP {
+ VDS_OBJECT_ID id;
+ VDS_DISK_STATUS status;
+ VDS_LUN_RESERVE_MODE ReserveMode;
+ VDS_HEALTH health;
+ DWORD dwDeviceType;
+ DWORD dwMediaType;
+ ULONGLONG ullSize;
+ ULONG ulBytesPerSector;
+ ULONG ulSectorsPerTrack;
+ ULONG ulTracksPerCylinder;
+ ULONG ulFlags;
+ VDS_STORAGE_BUS_TYPE BusType;
+ VDS_PARTITION_STYLE PartitionStyle;
+ __MINGW_EXTENSION union {
+ DWORD dwSignature;
+ GUID DiskGuid;
+ } DUMMYUNIONNAME;
+ LPWSTR pwszDiskAddress;
+ LPWSTR pwszName;
+ LPWSTR pwszFriendlyName;
+ LPWSTR pwszAdaptorName;
+ LPWSTR pwszDevicePath;
+} VDS_DISK_PROP, *PVDS_DISK_PROP;
+
+typedef struct _VDS_DRIVE_EXTENT {
+ VDS_OBJECT_ID id;
+ VDS_OBJECT_ID LunId;
+ ULONGLONG ullSize;
+ WINBOOL bUsed;
+} VDS_DRIVE_EXTENT;
+
+#define VDS_NF_DRIVE_LETTER_FREE 201
+#define VDS_NF_DRIVE_LETTER_ASSIGN 202
+
+typedef struct _VDS_DRIVE_LETTER_PROP {
+ WCHAR wcLetter;
+ VDS_OBJECT_ID volumeId;
+ ULONG ulFlags;
+ WINBOOL bUsed;
+} VDS_DRIVE_LETTER_PROP, *PVDS_DRIVE_LETTER_PROP;
+
+#define VDS_NF_DRIVE_ARRIVE 105
+#define VDS_NF_DRIVE_DEPART 106
+#define VDS_NF_DRIVE_MODIFY 107
+#define VDS_NF_DRIVE_REMOVED 354
+
+typedef struct _VDS_DRIVE_PROP {
+ VDS_OBJECT_ID id;
+ ULONGLONG ullSize;
+ LPWSTR pwszFriendlyName;
+ LPWSTR pwszIdentification;
+ ULONG ulFlags;
+ VDS_DRIVE_STATUS status;
+ VDS_HEALTH health;
+ SHORT sInternalBusNumber;
+ SHORT sSlotNumber;
+} VDS_DRIVE_PROP;
+
+typedef struct _VDS_FILE_SYSTEM_FORMAT_SUPPORT_PROP {
+ ULONG ulFlags;
+ USHORT usRevision;
+ ULONG ulDefaultUnitAllocationSize;
+ ULONG rgulAllowedUnitAllocationSizes;
+ WCHAR wszName;
+} VDS_FILE_SYSTEM_FORMAT_SUPPORT_PROP, *PVDS_FILE_SYSTEM_FORMAT_SUPPORT_PROP;
+
+#define VDS_NF_FILE_SYSTEM_MODIFY 203
+#define VDS_NF_FILE_SYSTEM_FORMAT_PROGRESS 204
+
+typedef struct _VDS_FILE_SYSTEM_PROP {
+ VDS_FILE_SYSTEM_TYPE type;
+ VDS_OBJECT_ID volumeId;
+ ULONG ulFlags;
+ ULONGLONG ullTotalAllocationUnits;
+ ULONGLONG ullAvailableAllocationUnits;
+ ULONG ulAllocationUnitSize;
+ LPWSTR pwszLabel;
+} VDS_FILE_SYSTEM_PROP, *PVDS_FILE_SYSTEM_PROP;
+
+#define MAX_FS_NAME_SIZE 8
+
+typedef struct _VDS_FILE_SYSTEM_TYPE_PROP {
+ VDS_FILE_SYSTEM_TYPE type;
+ WCHAR wszName[MAX_FS_NAME_SIZE];
+ ULONG ulFlags;
+ ULONG ulCompressionFlags;
+ ULONG ulMaxLableLength;
+ LPWSTR pwszIllegalLabelCharSet;
+} VDS_FILE_SYSTEM_TYPE_PROP, *PVDS_FILE_SYSTEM_TYPE_PROP;
+
+typedef struct _VDS_WWN {
+ UCHAR rguchWwn[8];
+} VDS_WWN;
+
+typedef struct _VDS_HBAPORT_PROP {
+ VDS_OBJECT_ID id;
+ VDS_WWN wwnNode;
+ VDS_WWN wwnPort;
+ VDS_HBAPORT_TYPE type;
+ VDS_HBAPORT_STATUS status;
+ ULONG ulPortSpeed;
+ ULONG ulSupportedPortSpeed;
+} VDS_HBAPORT_PROP;
+
+#define VDS_HINT_FASTCRASHRECOVERYREQUIRED 0x0000000000000001ULL
+#define VDS_HINT_MOSTLYREADS 0x0000000000000002ULL
+#define VDS_HINT_OPTIMIZEFORSEQUENTIALREADS 0x0000000000000004ULL
+#define VDS_HINT_OPTIMIZEFORSEQUENTIALWRITES 0x0000000000000008ULL
+#define VDS_HINT_READBACKVERIFYENABLED 0x0000000000000010ULL
+#define VDS_HINT_REMAPENABLED 0x0000000000000020ULL
+#define VDS_HINT_WRITETHROUGHCACHINGENABLED 0x0000000000000040ULL
+#define VDS_HINT_HARDWARECHECKSUMENABLED 0x0000000000000080ULL
+#define VDS_HINT_ISYANKABLE 0x0000000000000100ULL
+
+typedef struct _VDS_HINTS {
+ ULONGLONG ullHintMask;
+ ULONGLONG ullExpectedMaximumSize;
+ ULONG ulOptimalReadSize;
+ ULONG ulOptimalReadAlignment;
+ ULONG ulOptimalWriteSize;
+ ULONG ulOptimalWriteAlignment;
+ ULONG ulMaximumDriveCount;
+ ULONG ulStripeSize;
+ WINBOOL bFastCrashRecoveryRequired;
+ WINBOOL bMostlyReads;
+ WINBOOL bOptimizeForSequentialReads;
+ WINBOOL bOptimizeForSequentialWrites;
+ WINBOOL bRemapEnabled;
+ WINBOOL bReadBackVerifyEnabled;
+ WINBOOL bWriteThroughCachingEnabled;
+ WINBOOL bHardwareChecksumEnabled;
+ WINBOOL bIsYankable;
+ SHORT sRebuildPriority;
+} VDS_HINTS, *PVDS_HINTS;
+
+typedef struct _VDS_INPUT_DISK {
+ VDS_OBJECT_ID diskId;
+ ULONGLONG ullSize;
+ VDS_OBJECT_ID plexId;
+ ULONG memberIdx;
+} VDS_INPUT_DISK;
+
+typedef struct _VDS_INTERCONNECT {
+ VDS_INTERCONNECT_ADDRESS_TYPE m_addressType;
+ ULONG m_cbPort; BYTE* m_pbPort;
+ ULONG m_cbAddress;
+ BYTE* m_pbAddress;
+} VDS_INTERCONNECT;
+
+typedef struct _VDS_IPADDRESS {
+ VDS_IPADDRESS_TYPE type;
+ ULONG ipv4Address;
+ UCHAR ipv6Address[16];
+ ULONG ulIpv6FlowInfo;
+ ULONG ulIpv6ScopeId;
+ WCHAR wszTextAddress[256 + 1];
+ ULONG ulPort;
+} VDS_IPADDRESS;
+
+typedef struct _VDS_ISCSI_INITIATOR_ADAPTER_PROP {
+ VDS_OBJECT_ID id;
+ LPWSTR pwszName;
+} VDS_ISCSI_INITIATOR_ADAPTER_PROP;
+
+typedef struct _VDS_ISCSI_INITIATOR_PORTAL_PROP {
+ VDS_OBJECT_ID id;
+ VDS_IPADDRESS address;
+ ULONG ulPortIndex;
+} VDS_ISCSI_INITIATOR_PORTAL_PROP;
+
+typedef struct _VDS_ISCSI_PORTAL_PROP {
+ VDS_OBJECT_ID id;
+ VDS_IPADDRESS address;
+ VDS_ISCSI_PORTAL_STATUS status;
+} VDS_ISCSI_PORTAL_PROP;
+
+typedef LPVOID VDS_ISCSI_PORTALGROUP_TAG;
+/*http://msdn.microsoft.com/en-us/library/aa383380%28VS.85%29.aspx
+says to see http://www.ietf.org/rfc/rfc3720.txt*/
+
+typedef struct _VDS_ISCSI_PORTALGROUP_PROP {
+ VDS_OBJECT_ID id;
+ VDS_ISCSI_PORTALGROUP_TAG tag;
+} VDS_ISCSI_PORTALGROUP_PROP;
+
+typedef struct _VDS_ISCSI_SHARED_SECRET {
+ UCHAR *pSharedSecret;
+ ULONG ulSharedSecretSize;
+} VDS_ISCSI_SHARED_SECRET;
+
+typedef struct _VDS_ISCSI_TARGET_PROP {
+ VDS_OBJECT_ID id;
+ LPWSTR pwszIscsiName;
+ LPWSTR pwszFriendlyName;
+ WINBOOL bChapEnabled;
+} VDS_ISCSI_TARGET_PROP;
+
+typedef struct _VDS_STORAGE_IDENTIFIER {
+ VDS_STORAGE_IDENTIFIER_CODE_SET m_CodeSet;
+ VDS_STORAGE_IDENTIFIER_TYPE m_Type;
+ ULONG m_cbIdentifier;
+ BYTE* m_rgbIdentifier;
+} VDS_STORAGE_IDENTIFIER;
+
+typedef struct _VDS_STORAGE_DEVICE_ID_DESCRIPTOR {
+ ULONG m_version;
+ ULONG m_cIdentifiers;
+ VDS_STORAGE_IDENTIFIER* m_rgIdentifiers;
+} VDS_STORAGE_DEVICE_ID_DESCRIPTOR;
+
+typedef struct _VDS_LUN_INFORMATION {
+ ULONG m_version;
+ BYTE m_DeviceType;
+ BYTE m_DeviceTypeModifier;
+ WINBOOL m_bCommandQueueing;
+ VDS_STORAGE_BUS_TYPE m_BusType;
+ char* m_szVendorId;
+ char* m_szProductId;
+ char* m_szProductRevision;
+ char* m_szSerialNumber;
+ GUID m_diskSignature;
+ VDS_STORAGE_DEVICE_ID_DESCRIPTOR m_deviceIdDescriptor;
+ ULONG m_cInterconnects;
+ VDS_INTERCONNECT* m_rgInterconnects;
+} VDS_LUN_INFORMATION;
+
+#define VDS_NF_LUN_ARRIVE 108
+#define VDS_NF_LUN_DEPART 109
+#define VDS_NF_LUN_MODIFY 110
+
+typedef struct _VDS_LUN_PLEX_PROP {
+ VDS_OBJECT_ID id;
+ ULONGLONG ullSize;
+ VDS_LUN_PLEX_TYPE type;
+ VDS_LUN_PLEX_STATUS status;
+ VDS_HEALTH health;
+ VDS_TRANSITION_STATE TransitionState;
+ ULONG ulFlags;
+ ULONG ulStripeSize;
+ SHORT sRebuildPriority;
+} VDS_LUN_PLEX_PROP;
+
+typedef struct _VDS_LUN_PROP {
+ VDS_OBJECT_ID id;
+ ULONGLONG ullSize;
+ LPWSTR pwszFriendlyName;
+ LPWSTR pwszIdentification;
+ LPWSTR pwszUnmaskingList;
+ ULONG ulFlags;
+ VDS_LUN_TYPE type;
+ VDS_LUN_STATUS status;
+ VDS_HEALTH health;
+ VDS_TRANSITION_STATE TransitionState;
+ SHORT sRebuildPriority;
+} VDS_LUN_PROP, *PVDS_LUN_PROP;
+
+#define VDS_NF_MOUNT_POINTS_CHANGE 205
+
+#define VDS_NF_PACK_ARRIVE 1
+#define VDS_NF_PACK_DEPART 2
+#define VDS_NF_PACK_MODIFY 3
+
+typedef struct _VDS_PACK_PROP {
+ VDS_OBJECT_ID id;
+ LPWSTR pwszName;
+ VDS_PACK_STATUS status;
+ ULONG ulFlags;
+} VDS_PACK_PROP, *PVDS_PACK_PROP;
+
+typedef struct _VDS_PARTITION_INFO_MBR {
+ BYTE partitionType;
+ BOOLEAN bootIndicator;
+ BOOLEAN recognizedPartition;
+ DWORD hiddenSectors;
+} VDS_PARTITION_INFO_MBR;
+
+#define VDS_NF_PARTITION_ARRIVE 11
+#define VDS_NF_PARTITION_DEPART 12
+#define VDS_NF_PARTITION_MODIFY 13
+
+typedef struct _VDS_PARTITION_PROP {
+ VDS_PARTITION_STYLE PartitionStyle;
+ ULONG ulFlags;
+ ULONG ulPartitionNumber;
+ ULONGLONG ullOffset;
+ ULONGLONG ullSize;
+ __MINGW_EXTENSION union {
+ VDS_PARTITION_INFO_MBR Mbr;
+ VDS_PARTITION_INFO_GPT Gpt;
+ } DUMMYUNIONNAME;
+} VDS_PARTITION_PROP;
+
+typedef struct _VDS_PATH_INFO {
+ VDS_PATH_ID pathId;
+ VDS_HWPROVIDER_TYPE type;
+ VDS_PATH_STATUS status;
+ __MINGW_EXTENSION union {
+ VDS_OBJECT_ID controllerPortId;
+ VDS_OBJECT_ID targetPortalId;
+ };
+ __MINGW_EXTENSION union {
+ VDS_OBJECT_ID hbaPortId;
+ VDS_OBJECT_ID initiatorAdapterId;
+ };
+ __MINGW_EXTENSION union {
+ VDS_HBAPORT_PROP *pHbaPortProp;
+ VDS_IPADDRESS *pInitiatorPortalIpAddr;
+ };
+} VDS_PATH_INFO;
+
+typedef struct _VDS_PATH_POLICY {
+ VDS_PATH_ID pathId;
+ BOOL bPrimaryPath;
+ ULONG ulWeight;
+} VDS_PATH_POLICY;
+
+#define VDS_NF_PORT_ARRIVE 121
+#define VDS_NF_PORT_DEPART 122
+#define VDS_NF_PORT_MODIFY 352
+#define VDS_NF_PORT_REMOVED 353
+
+typedef struct _VDS_PORT_PROP {
+ VDS_OBJECT_ID id;
+ LPWSTR pwszFriendlyName;
+ LPWSTR pwszIdentification;
+ VDS_PORT_STATUS status;
+} VDS_PORT_PROP;
+
+#define VDS_NF_PORTAL_GROUP_ARRIVE 129
+#define VDS_NF_PORTAL_GROUP_DEPART 130
+#define VDS_NF_PORTAL_GROUP_MODIFY 131
+#define VDS_NF_PORTAL_ARRIVE 123
+#define VDS_NF_PORTAL_DEPART 124
+#define VDS_NF_PORTAL_MODIFY 125
+
+typedef struct _VDS_PROVIDER_PROP {
+ VDS_OBJECT_ID id;
+ LPWSTR pwszName;
+ GUID guidVersionId;
+ LPWSTR pwszVersion;
+ VDS_PROVIDER_TYPE type;
+ ULONG ulFlags;
+ ULONG ulStripeSizeFlags;
+ SHORT sRebuildPriority;
+} VDS_PROVIDER_PROP;
+
+typedef struct VDS_REPARSE_POINT_PROP {
+ VDS_OBJECT_ID SourceVolumeId;
+ LPWSTR pwszPath;
+} VDS_REPARSE_POINT_PROP, *PVDS_REPARSE_POINT_PROP;
+
+typedef struct _VDS_SERVICE_PROP {
+ LPWSTR pwszVersion;
+ ULONG ulFlags;
+} VDS_SERVICE_PROP;
+
+#define VDS_NF_SUB_SYSTEM_ARRIVE 101
+#define VDS_NF_SUB_SYSTEM_DEPART 102
+#define VDS_NF_SUB_SYSTEM_MODIFY 151
+
+typedef struct _VDS_SUB_SYSTEM_PROP {
+ VDS_OBJECT_ID id;
+ LPWSTR pwszFriendlyName;
+ LPWSTR pwszIdentification;
+ ULONG ulFlags;
+ ULONG ulStripeSizeFlags;
+ VDS_SUB_SYSTEM_STATUS status;
+ VDS_HEALTH health;
+ SHORT sNumberOfInternalBuses;
+ SHORT sMaxNumberOfSlotsEachBus;
+ SHORT sMaxNumberOfControllers;
+ SHORT sRebuildPriority;
+} VDS_SUB_SYSTEM_PROP;
+
+#define VDS_NF_TARGET_ARRIVE 126
+#define VDS_NF_TARGET_DEPART 127
+#define VDS_NF_TARGET_MODIFY 128
+#define VDS_NF_VOLUME_ARRIVE 4
+#define VDS_NF_VOLUME_DEPART 5
+#define VDS_NF_VOLUME_MODIFY 6
+#define VDS_NF_VOLUME_REBUILDING 7
+
+typedef struct _VDS_VOLUME_PLEX_PROP {
+ VDS_OBJECT_ID id;
+ VDS_VOLUME_PLEX_TYPE type;
+ VDS_VOLUME_PLEX_STATUS status;
+ VDS_HEALTH health;
+ VDS_TRANSITION_STATE TransitionState;
+ ULONGLONG ullSize;
+ ULONG ulStripeSize;
+ ULONG ulNumberOfMembers;
+} VDS_VOLUME_PLEX_PROP, *PVDS_VOLUME_PLEX_PROP;
+
+typedef struct _VDS_VOLUME_PROP {
+ VDS_OBJECT_ID id;
+ VDS_VOLUME_TYPE type;
+ VDS_VOLUME_STATUS status;
+ VDS_HEALTH health;
+ VDS_TRANSITION_STATE TransitionState;
+ ULONGLONG ullSize;
+ ULONG ulFlags;
+ VDS_FILE_SYSTEM_TYPE RecommendedFileSystemType;
+ LPWSTR pwszName;
+} VDS_VOLUME_PROP, *PVDS_VOLUME_PROP;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
+#endif /*_INC_VDS*/
diff --git a/mingw-w64-headers/include/vsbackup.h b/mingw-w64-headers/include/vsbackup.h
new file mode 100644
index 0000000..0a75641
--- /dev/null
+++ b/mingw-w64-headers/include/vsbackup.h
@@ -0,0 +1,22 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_VSBACKUP
+#define _INC_VSBACKUP
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+HRESULT ShouldBlockRevert(
+ LPCWSTR wszVolumeName,
+ WINBOOL *pbBlock
+);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*_INC_VSBACKUP*/
diff --git a/mingw-w64-headers/include/vsmgt.h b/mingw-w64-headers/include/vsmgt.h
new file mode 100644
index 0000000..776cd56
--- /dev/null
+++ b/mingw-w64-headers/include/vsmgt.h
@@ -0,0 +1,89 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_VSMGT
+#define _INC_VSMGT
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+typedef PWSTR VSS_PWSZ; /*assumed*/
+
+typedef enum _VSS_PROTECTION_FAULT {
+ VSS_PROTECTION_FAULT_NONE = 0,
+ VSS_PROTECTION_FAULT_DIFF_AREA_MISSING = ( VSS_PROTECTION_FAULT_NONE + 1 ),
+ VSS_PROTECTION_FAULT_IO_FAILURE_DURING_ONLINE = ( VSS_PROTECTION_FAULT_DIFF_AREA_MISSING + 1 ),
+ VSS_PROTECTION_FAULT_META_DATA_CORRUPTION = ( VSS_PROTECTION_FAULT_IO_FAILURE_DURING_ONLINE + 1 ),
+ VSS_PROTECTION_FAULT_MEMORY_ALLOCATION_FAILURE = ( VSS_PROTECTION_FAULT_META_DATA_CORRUPTION + 1 ),
+ VSS_PROTECTION_FAULT_MAPPED_MEMORY_FAILURE = ( VSS_PROTECTION_FAULT_MEMORY_ALLOCATION_FAILURE + 1 ),
+ VSS_PROTECTION_FAULT_COW_READ_FAILURE = ( VSS_PROTECTION_FAULT_MAPPED_MEMORY_FAILURE + 1 ),
+ VSS_PROTECTION_FAULT_COW_WRITE_FAILURE = ( VSS_PROTECTION_FAULT_COW_READ_FAILURE + 1 ),
+ VSS_PROTECTION_FAULT_DIFF_AREA_FULL = ( VSS_PROTECTION_FAULT_COW_WRITE_FAILURE + 1 ),
+ VSS_PROTECTION_FAULT_GROW_TOO_SLOW = ( VSS_PROTECTION_FAULT_DIFF_AREA_FULL + 1 ),
+ VSS_PROTECTION_FAULT_GROW_FAILED = ( VSS_PROTECTION_FAULT_GROW_TOO_SLOW + 1 ),
+ VSS_PROTECTION_FAULT_DESTROY_ALL_SNAPSHOTS = ( VSS_PROTECTION_FAULT_GROW_FAILED + 1 ),
+ VSS_PROTECTION_FAULT_FILE_SYSTEM_FAILURE = ( VSS_PROTECTION_FAULT_DESTROY_ALL_SNAPSHOTS + 1 ),
+ VSS_PROTECTION_FAULT_IO_FAILURE = ( VSS_PROTECTION_FAULT_FILE_SYSTEM_FAILURE + 1 ),
+ VSS_PROTECTION_FAULT_DIFF_AREA_REMOVED = ( VSS_PROTECTION_FAULT_IO_FAILURE + 1 ),
+ VSS_PROTECTION_FAULT_EXTERNAL_WRITER_TO_DIFF_AREA = ( VSS_PROTECTION_FAULT_DIFF_AREA_REMOVED + 1 )
+} VSS_PROTECTION_FAULT;
+
+typedef enum _VSS_PROTECTION_LEVEL {
+ VSS_PROTECTION_LEVEL_ORIGINAL_VOLUME = 0,
+ VSS_PROTECTION_LEVEL_SNAPSHOT = ( VSS_PROTECTION_LEVEL_ORIGINAL_VOLUME + 1 )
+} VSS_PROTECTION_LEVEL;
+
+typedef struct _VSS_DIFF_AREA_PROP {
+ VSS_PWSZ m_pwszVolumeName;
+ VSS_PWSZ m_pwszDiffAreaVolumeName;
+ LONGLONG m_llMaximumDiffSpace;
+ LONGLONG m_llAllocatedDiffSpace;
+ LONGLONG m_llUsedDiffSpace;
+} VSS_DIFF_AREA_PROP, *PVSS_DIFF_AREA_PROP;
+
+typedef struct _VSS_DIFF_VOLUME_PROP {
+ VSS_PWSZ m_pwszVolumeName;
+ VSS_PWSZ m_pwszVolumeDisplayName;
+ LONGLONG m_llVolumeFreeSpace;
+ LONGLONG m_llVolumeTotalSpace;
+} VSS_DIFF_VOLUME_PROP, *PVSS_DIFF_VOLUME_PROP;
+
+typedef union _VSS_MGMT_OBJECT_UNION {
+ VSS_VOLUME_PROP Vol;
+ VSS_DIFF_VOLUME_PROP DiffVol;
+ VSS_DIFF_AREA_PROP DiffArea;
+} VSS_MGMT_OBJECT_UNION, *PVSS_MGMT_OBJECT_UNION;
+
+typedef struct _VSS_MGMT_OBJECT_PROP {
+ VSS_MGMT_OBJECT_TYPE Type;
+ VSS_MGMT_OBJECT_UNION Obj;
+} VSS_MGMT_OBJECT_PROP, *PVSS_MGMT_OBJECT_PROP;
+
+typedef enum _VSS_MGMT_OBJECT_TYPE {
+ VSS_MGMT_OBJECT_UNKNOWN = 0,
+ VSS_MGMT_OBJECT_VOLUME = 1,
+ VSS_MGMT_OBJECT_DIFF_VOLUME = 2,
+ VSS_MGMT_OBJECT_DIFF_AREA = 3
+} VSS_MGMT_OBJECT_TYPE, *PVSS_MGMT_OBJECT_TYPE;
+
+typedef struct _VSS_VOLUME_PROP {
+ VSS_PWSZ m_pwszVolumeName;
+ VSS_PWSZ m_pwszVolumeDisplayName;
+} VSS_VOLUME_PROP, *PVSS_VOLUME_PROP;
+
+typedef struct _VSS_VOLUME_PROTECTION_INFO {
+ VSS_PROTECTION_LEVEL m_protectionLevel;
+ WINBOOL m_volumeIsOfflineForProtection;
+ VSS_PROTECTION_FAULT m_protectionFault;
+ LONG m_failureStatus;
+ WINBOOL m_volumeHasUnusedDiffArea;
+ DWORD m_reserved;
+} VSS_VOLUME_PROTECTION_INFO;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*_INC_VSMGT*/
diff --git a/mingw-w64-headers/include/vss.h b/mingw-w64-headers/include/vss.h
new file mode 100644
index 0000000..8083b1e
--- /dev/null
+++ b/mingw-w64-headers/include/vss.h
@@ -0,0 +1,57 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_VSS
+#define _INC_VSS
+#if (_WIN32_WINNT >= 0x0600)
+
+typedef enum VSS_BACKUP_SCHEMA {
+ VSS_BS_UNDEFINED = 0x00000000,
+ VSS_BS_DIFFERENTIAL = 0x00000001,
+ VSS_BS_INCREMENTAL = 0x00000002,
+ VSS_BS_EXCLUSIVE_INCREMENTAL_DIFFERENTIAL = 0x00000004,
+ VSS_BS_LOG = 0x00000008,
+ VSS_BS_COPY = 0x00000010,
+ VSS_BS_TIMESTAMPED = 0x00000020,
+ VSS_BS_LAST_MODIFY = 0x00000040,
+ VSS_BS_LSN = 0x00000080,
+ VSS_BS_WRITER_SUPPORTS_NEW_TARGET = 0x00000100,
+ VSS_BS_WRITER_SUPPORTS_RESTORE_WITH_MOVE = 0x00000200,
+ VSS_BS_INDEPENDENT_SYSTEM_STATE = 0x00000400,
+ VSS_BS_ROLLFORWARD_RESTORE = 0x00001000,
+ VSS_BS_RESTORE_RENAME = 0x00002000,
+ VSS_BS_AUTHORITATIVE_RESTORE = 0x00004000,
+ VSS_BS_WRITER_SUPPORTS_PARALLEL_RESTORES = 0x00008000
+} VSS_BACKUP_SCHEMA, *PVSS_BACKUP_SCHEMA;
+
+typedef enum _VSS_FILE_SPEC_BACKUP_TYPE {
+ VSS_FSBT_FULL_BACKUP_REQUIRED = 0x00000001,
+ VSS_FSBT_DIFFERENTIAL_BACKUP_REQUIRED = 0x00000002,
+ VSS_FSBT_INCREMENTAL_BACKUP_REQUIRED = 0x00000004,
+ VSS_FSBT_LOG_BACKUP_REQUIRED = 0x00000008,
+ VSS_FSBT_FULL_SNAPSHOT_REQUIRED = 0x00000100,
+ VSS_FSBT_DIFFERENTIAL_SNAPSHOT_REQUIRED = 0x00000200,
+ VSS_FSBT_INCREMENTAL_SNAPSHOT_REQUIRED = 0x00000400,
+ VSS_FSBT_LOG_SNAPSHOT_REQUIRED = 0x00000800,
+ VSS_FSBT_ALL_BACKUP_REQUIRED = 0x0000000F,
+ VSS_FSBT_ALL_SNAPSHOT_REQUIRED = 0x00000F00
+} VSS_FILE_SPEC_BACKUP_TYPE, *PVSS_FILE_SPEC_BACKUP_TYPE;
+
+typedef enum _VSS_RESTORE_TYPE {
+ VSS_RTYPE_UNDEFINED = 0,
+ VSS_RTYPE_BY_COPY = 1,
+ VSS_RTYPE_IMPORT = 2,
+ VSS_RTYPE_OTHER = 3
+} VSS_RESTORE_TYPE, *PVSS_RESTORE_TYPE;
+
+typedef enum _VSS_ROLLFORWARD_TYPE {
+ VSS_RF_UNDEFINED = 0,
+ VSS_RF_NONE = 1,
+ VSS_RF_ALL = 2,
+ VSS_RF_PARTIAL = 3
+} VSS_ROLLFORWARD_TYPE, *PVSS_ROLLFORWARD_TYPE;
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_VSS*/
diff --git a/mingw-w64-headers/include/vswriter.h b/mingw-w64-headers/include/vswriter.h
new file mode 100644
index 0000000..5e2730b
--- /dev/null
+++ b/mingw-w64-headers/include/vswriter.h
@@ -0,0 +1,15 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_VSWRITER
+#define _INC_VSWRITER
+
+typedef enum VSS_COMPONENT_FLAGS {
+ VSS_CF_BACKUP_RECOVERY = 0x00000001,
+ VSS_CF_APP_ROLLBACK_RECOVERY = 0x00000002,
+ VSS_CF_NOT_SYSTEM_STATE = 0x00000004
+} VSS_COMPONENT_FLAGS;
+
+#endif /*_INC_VSWRITER*/
diff --git a/mingw-w64-headers/include/wcmconfig.h b/mingw-w64-headers/include/wcmconfig.h
new file mode 100644
index 0000000..83a462d
--- /dev/null
+++ b/mingw-w64-headers/include/wcmconfig.h
@@ -0,0 +1,62 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_WCMCONFIG
+#define _INC_WCMCONFIG
+#if (_WIN32_WINNT >= 0x0600)
+
+typedef enum __MIDL___MIDL_itf_wcmconfig_0000_0000_0013 {
+ dataTypeByte = 1,
+ dataTypeSByte = 2,
+ dataTypeUInt16 = 3,
+ dataTypeInt16 = 4,
+ dataTypeUInt32 = 5,
+ dataTypeInt32 = 6,
+ dataTypeUInt64 = 7,
+ dataTypeInt64 = 8,
+ dataTypeBoolean = 11,
+ dataTypeString = 12,
+ dataTypeFlagArray = 0x8000
+} WcmDataType;
+
+typedef enum __MIDL___MIDL_itf_wcmconfig_0000_0000_0020 {
+ ReadOnlyAccess = 1,
+ ReadWriteAccess = 2
+} WcmNamespaceAccess;
+
+typedef enum __MIDL___MIDL_itf_wcmconfig_0000_0000_0003 {
+ SharedEnumeration = 1,
+ UserEnumeration = 2,
+ AllEnumeration = ( SharedEnumeration | UserEnumeration )
+} WcmNamespaceEnumerationFlags;
+
+typedef enum __MIDL___MIDL_itf_wcmconfig_0000_0000_0016 {
+ restrictionFacetMaxLength = 0x1,
+ restrictionFacetEnumeration = 0x2,
+ restrictionFacetMaxInclusive = 0x4,
+ restrictionFacetMinInclusive = 0x8
+} WcmRestrictionFacets;
+
+typedef enum __MIDL___MIDL_itf_wcmconfig_0000_0000_0014 {
+ settingTypeScalar = 1,
+ settingTypeComplex = 2,
+ settingTypeList = 3
+} WcmSettingType;
+
+typedef enum __MIDL___MIDL_itf_wcmconfig_0000_0000_0002 {
+ OfflineMode = 1,
+ OnlineMode = 2
+} WcmTargetMode;
+
+typedef enum __MIDL___MIDL_itf_wcmconfig_0000_0000_0019 {
+ UnknownStatus = 0,
+ UserRegistered = 1,
+ UserUnregistered = 2,
+ UserLoaded = 3,
+ UserUnloaded = 4
+} WcmUserStatus;
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_WCMCONFIG*/
diff --git a/mingw-w64-headers/include/wcmconfig.idl b/mingw-w64-headers/include/wcmconfig.idl
new file mode 100644
index 0000000..7ad0a2c
--- /dev/null
+++ b/mingw-w64-headers/include/wcmconfig.idl
@@ -0,0 +1,1002 @@
+/* Automated generated idl file <wcmpriv>.
+ * Generated by genidl tool (c) 2009, 2010 Mingw-w64 project.
+ */
+
+/* Interface forward declarations. */
+interface ISettingsEnginePriv;
+interface IItemCollectionPriv;
+interface ISettingsItemPriv;
+interface IMetadataItemPriv;
+interface IItemEnumerator;
+interface INamespaceIdentityPriv;
+interface ISettingsNamespacePriv;
+interface ITargetInfoPriv;
+interface IMetadataPriv;
+interface ISettingsResult;
+interface IStream;
+interface ISequentialStream;
+interface ISettingsContext;
+interface ITargetInfo;
+interface ISettingsIdentity;
+
+/* Structure forward declarations. */
+struct _FILETIME;
+struct _LARGE_INTEGER;
+struct _ULARGE_INTEGER;
+struct tagSTATSTG;
+
+/* Union record forward declarations. */
+coclass SettingsEnginePriv;
+
+/* Enumeration declarations. */
+enum __MIDL___MIDL_itf_wcmconfigp_0000_0000_0008
+{
+ UnknownItem = (int) 201326592,
+ SettingsNamespace = (int) 201326593,
+ Metadata = (int) 201327592,
+ ComplexTypes = (int) 201327593,
+ ComplexType = (int) 201327594,
+ Member = (int) 201327595,
+ SimpleTypes = (int) 201327596,
+ SimpleType = (int) 201327597,
+ Restriction = (int) 201327598,
+ RestrictionFacet = (int) 201327599,
+ Elements = (int) 201327600,
+ Element = (int) 201327601,
+ SecurityDefinitions = (int) 201327602,
+ SecurityDefinition = (int) 201327603,
+ Settings = (int) 201328592,
+ ScalarSetting = (int) 201328593,
+ ComplexSetting = (int) 201328594,
+ List = (int) 201328595,
+ Attribute = (int) 201330592,
+ UnknownMetadata = (int) 201335593
+};
+enum __MIDL___MIDL_itf_wcmconfigp_0000_0000_0004
+{
+ UpdateAlways = (int) 201392128,
+ NoExpansion = (int) 201457664,
+ NoDefaultValue = (int) 201588736,
+ NoInheritedValue = (int) 201850880,
+ DefaultValueOnly = (int) 203423744
+};
+enum __MIDL___MIDL_itf_wcmconfigp_0000_0000_0005
+{
+ ValueNotExisting = (int) 201326592,
+ ValueDeleted = (int) 201326593,
+ ValueNull = (int) 201326594,
+ ValueIsValid = (int) 201326595,
+ ValueNotValid = (int) 201326596
+};
+enum __MIDL___MIDL_itf_wcmconfigp_0001_0071_0005
+{
+ restrictionFacetMaxLength = (int) 201326593,
+ restrictionFacetEnumeration = (int) 201326594,
+ restrictionFacetMaxInclusive = (int) 201326596,
+ restrictionFacetMinInclusive = (int) 201326600
+};
+enum __MIDL___MIDL_itf_wcmconfigp_0001_0071_0003
+{
+ dataTypeByte = (int) 201326593,
+ dataTypeSByte = (int) 201326594,
+ dataTypeUInt16 = (int) 201326595,
+ dataTypeInt16 = (int) 201326596,
+ dataTypeUInt32 = (int) 201326597,
+ dataTypeInt32 = (int) 201326598,
+ dataTypeUInt64 = (int) 201326599,
+ dataTypeInt64 = (int) 201326600,
+ dataTypeBoolean = (int) 201326603,
+ dataTypeString = (int) 201326604,
+ dataTypeFlagArray = (int) 201359360
+};
+enum __MIDL___MIDL_itf_wcmconfigp_0000_0000_0006
+{
+ ValidateSelf = (int) 201326592,
+ ValidateAll = (int) 201326593
+};
+enum __MIDL___MIDL_itf_wcmconfigp_0000_0000_0001
+{
+ ValueLocationCurrent = (int) 201326593,
+ ValueLocationDefault = (int) 201326594,
+ ValueLocationPolicy = (int) 201326595
+};
+enum __MIDL___MIDL_itf_wcmconfigp_0001_0071_0002
+{
+ SharedEnumeration = (int) 201326593,
+ UserEnumeration = (int) 201326594,
+ AllEnumeration = (int) 201326595
+};
+enum __MIDL___MIDL_itf_wcmconfigp_0001_0071_0007
+{
+ ReadOnlyAccess = (int) 201326593,
+ ReadWriteAccess = (int) 201326594
+};
+enum __MIDL___MIDL_itf_wcmconfigp_0001_0071_0001
+{
+ OfflineMode = (int) 201326593,
+ OnlineMode = (int) 201326594
+};
+enum __MIDL___MIDL_itf_wcmconfigp_0000_0000_0002
+{
+ SettingChangeMode = (int) 201326593,
+ MetadataChangeMode = (int) 201326594
+};
+enum __MIDL___MIDL_itf_wcmconfigp_0001_0071_0006
+{
+ UnknownStatus = (int) 201326592,
+ UserRegistered = (int) 201326593,
+ UserUnregistered = (int) 201326594,
+ UserLoaded = (int) 201326595,
+ UserUnloaded = (int) 201326596
+};
+enum __MIDL___MIDL_itf_wcmconfigp_0000_0000_0003
+{
+ InstallOnly = (int) 201326593,
+ InstallWithUpgrade = (int) 201326594
+};
+
+/* Structure/union declarations. */
+struct _FILETIME
+{
+ UINT dwLowDateTime;
+ UINT dwHighDateTime;
+};
+struct _LARGE_INTEGER
+{
+ LONGLONG QuadPart;
+};
+struct _ULARGE_INTEGER
+{
+ ULONGLONG QuadPart;
+};
+struct tagSTATSTG
+{
+ LPWSTR pwcsName;
+ UINT Type;
+ struct _ULARGE_INTEGER cbSize;
+ struct _FILETIME mtime;
+ struct _FILETIME ctime;
+ struct _FILETIME atime;
+ UINT grfMode;
+ UINT grfLocksSupported;
+ struct GUID clsid;
+ UINT grfStateBits;
+ UINT reserved;
+};
+
+/* Type definitions. */
+typedef enum __MIDL___MIDL_itf_wcmconfigp_0000_0000_0008 WcmNodeType;
+typedef enum __MIDL___MIDL_itf_wcmconfigp_0000_0000_0004 WcmProcessingOptions;
+typedef enum __MIDL___MIDL_itf_wcmconfigp_0000_0000_0005 WcmValueStatus;
+typedef enum __MIDL___MIDL_itf_wcmconfigp_0001_0071_0005 WcmRestrictionFacets;
+typedef enum __MIDL___MIDL_itf_wcmconfigp_0001_0071_0003 WcmDataType;
+typedef enum __MIDL___MIDL_itf_wcmconfigp_0000_0000_0006 WcmValidateOption;
+typedef enum __MIDL___MIDL_itf_wcmconfigp_0000_0000_0001 WcmValueLocation;
+typedef enum __MIDL___MIDL_itf_wcmconfigp_0001_0071_0002 WcmNamespaceEnumerationFlags;
+typedef enum __MIDL___MIDL_itf_wcmconfigp_0001_0071_0007 WcmNamespaceAccess;
+typedef enum __MIDL___MIDL_itf_wcmconfigp_0001_0071_0001 WcmTargetMode;
+typedef enum __MIDL___MIDL_itf_wcmconfigp_0000_0000_0002 WcmNamespaceMode;
+typedef enum __MIDL___MIDL_itf_wcmconfigp_0001_0071_0006 WcmUserStatus;
+typedef enum __MIDL___MIDL_itf_wcmconfigp_0000_0000_0003 WcmInstallMode;
+typedef ULONGLONG ULONG_PTR;
+
+[
+ uuid(90A45ABD-2C77-11D9-BDF0-000874CD1BAE),
+ version(1.0),
+ helpstring("Settings Management Infrastructure Library for Private Use"),
+ helpfile("WcmConfig.HLP")
+]
+library wcmpriv
+{
+ importlib("stdole2.tlb");
+
+ /* CoClass declarations. */
+ [
+ uuid(90A45ABE-2C77-11D9-BDF0-000874CD1BAE),
+ helpstring("SMI engine class for private use"),
+ cancreate
+ ]
+ coclass SettingsEnginePriv
+ {
+ interface ISettingsEnginePriv;
+ };
+
+};
+
+/* Interface declarations. */
+[
+ uuid(90A45AC0-2C77-11D9-BDF0-000874CD1BAE),
+ helpstring("ISettingsEnginePriv Interface"),
+ nonextensible
+]
+interface ISettingsEnginePriv : IUnknown
+{
+ [id(1610678272)]
+ HRESULT __stdcall GetNamespaces (
+ [out retval] interface IItemCollectionPriv **NamespaceCollection
+ );
+ HRESULT __stdcall GetNamespacesByOptions (
+ [in] WcmNamespaceEnumerationFlags Flags,
+ [out retval] interface IItemCollectionPriv **NamespaceCollection
+ );
+ HRESULT __stdcall GetNamespace (
+ [in] interface INamespaceIdentityPriv *NamespaceID,
+ [in] WcmNamespaceAccess Access,
+ [out retval] interface ISettingsNamespacePriv **NamespaceItem
+ );
+ HRESULT __stdcall GetNamespaceByOptions (
+ [in] interface INamespaceIdentityPriv *NamespaceID,
+ [in] WcmNamespaceMode Mode,
+ [in] WcmNamespaceAccess Access,
+ [out retval] interface ISettingsNamespacePriv **NamespaceItem
+ );
+ HRESULT __stdcall GetErrorDescription (
+ [in] long HResult,
+ [out retval] BSTR *Message
+ );
+ HRESULT __stdcall CreateNamespaceIdentity (
+ [out retval] interface INamespaceIdentityPriv **NamespaceID
+ );
+ HRESULT __stdcall GetStoreStatus (
+ [out retval] WcmUserStatus *Status
+ );
+ HRESULT __stdcall SetStoreStatus (
+ [in] UINT Flags,
+ [in] WcmUserStatus Status
+ );
+ HRESULT __stdcall CreateNamespaceByOptions (
+ [in] interface INamespaceIdentityPriv *NamespaceID,
+ [in] long Overwrite,
+ [out retval] interface ISettingsNamespacePriv **NamespaceItem
+ );
+ HRESULT __stdcall RegisterNamespaceFromFile (
+ [in] WcmInstallMode Mode,
+ [in] LPWSTR Manifest,
+ [in] long Overwrite,
+ [out retval] VARIANT *ppResult
+ );
+ HRESULT __stdcall UnregisterNamespace (
+ [in] interface INamespaceIdentityPriv *NamespaceID,
+ [in] long RemoveSettings
+ );
+ HRESULT __stdcall Import (
+ [in] interface ISettingsNamespacePriv *Namespace,
+ [in] UINT Option,
+ [in] interface IStream *Stream,
+ [out retval] VARIANT *Results
+ );
+ HRESULT __stdcall CreateTargetInfo (
+ [out retval] interface ITargetInfoPriv **Target
+ );
+ HRESULT __stdcall GetTargetInfo (
+ [out retval] interface ITargetInfoPriv **Target
+ );
+ HRESULT __stdcall SetTargetInfo (
+ [in] interface ITargetInfoPriv *Target
+ );
+ HRESULT __stdcall CreateSettingsContext (
+ [in] UINT Flags,
+ [in] void *reserved,
+ [out retval] interface ISettingsContext **SettingsContext
+ );
+ HRESULT __stdcall SetSettingsContext (
+ [in] interface ISettingsContext *SettingsContext
+ );
+ HRESULT __stdcall ApplySettingsContext (
+ [in] interface ISettingsContext *SettingsContext,
+ [out] LPWSTR pppwzIdentities,
+ [out retval] ULONG_PTR *pcIdentities
+ );
+ HRESULT __stdcall GetSettingsContext (
+ [out retval] interface ISettingsContext **SettingsContext
+ );
+};
+[
+ uuid(90A45ABF-2C77-11D9-BDF0-000874CD1BAE),
+ helpstring("Item dictionary to hold Item items or attributes"),
+ nonextensible
+]
+interface IItemCollectionPriv : IUnknown
+{
+ [id(1610678272)]
+ HRESULT __stdcall IsReadOnly (
+ [out retval] long *ReadOnlyItem
+ );
+ HRESULT __stdcall Count (
+ [out retval] long *Count
+ );
+ HRESULT __stdcall GetItem (
+ [in] VARIANT *Key,
+ [out retval] interface ISettingsItemPriv **Item
+ );
+ HRESULT __stdcall Create (
+ [in] VARIANT *Key,
+ [out retval] interface ISettingsItemPriv **Item
+ );
+ HRESULT __stdcall Contains (
+ [in] VARIANT *Key,
+ [out retval] long *ItemExists
+ );
+ HRESULT __stdcall Remove (
+ [in] VARIANT *Key
+ );
+ HRESULT __stdcall GetEnumerator (
+ [out retval] interface IItemEnumerator **Enumerator
+ );
+};
+[
+ uuid(90A45AC1-2C77-11D9-BDF0-000874CD1BAE),
+ helpstring("ISettingsItemPriv Interface"),
+ nonextensible
+]
+interface ISettingsItemPriv : IUnknown
+{
+ [id(1610678272)]
+ HRESULT __stdcall GetName (
+ [out retval] BSTR *Name
+ );
+ HRESULT __stdcall SetName (
+ [in] LPWSTR Name
+ );
+ HRESULT __stdcall GetPath (
+ [out retval] BSTR *Path
+ );
+ HRESULT __stdcall GetFullPath (
+ [out retval] BSTR *Path
+ );
+ HRESULT __stdcall GetType (
+ [out retval] long *Type
+ );
+ HRESULT __stdcall IsReadOnly (
+ [out retval] long *ReadOnlyItem
+ );
+ HRESULT __stdcall GetNodeType (
+ [out retval] WcmNodeType *NodeType
+ );
+ HRESULT __stdcall GetDisplayName (
+ [out retval] BSTR *DisplayName
+ );
+ HRESULT __stdcall SetDisplayName (
+ [in] LPWSTR DisplayName
+ );
+ HRESULT __stdcall GetDescription (
+ [out retval] BSTR *Description
+ );
+ HRESULT __stdcall SetDescription (
+ [in] LPWSTR Description
+ );
+ HRESULT __stdcall GetParent (
+ [out retval] interface ISettingsItemPriv **Parent
+ );
+ HRESULT __stdcall HasChild (
+ [out retval] long *ItemHasChild
+ );
+ HRESULT __stdcall GetValue (
+ [out retval] VARIANT *Value
+ );
+ HRESULT __stdcall SetValue (
+ [in] VARIANT *Value
+ );
+ HRESULT __stdcall GetDefaultValue (
+ [out retval] VARIANT *Value
+ );
+ HRESULT __stdcall SetDefaultValue (
+ [in] VARIANT *Value
+ );
+ HRESULT __stdcall GetValueByOptions (
+ [in] WcmProcessingOptions Options,
+ [out] WcmValueStatus *Status,
+ [out] struct _FILETIME *Timestamp,
+ [out retval] VARIANT *Value
+ );
+ HRESULT __stdcall SetValueByOptions (
+ [in] VARIANT *Value,
+ [in] WcmProcessingOptions Options,
+ [in] struct _FILETIME Timestamp
+ );
+ HRESULT __stdcall Children (
+ [out retval] interface IItemCollectionPriv **Children
+ );
+ HRESULT __stdcall AddChild (
+ [in] LPWSTR Name,
+ [out retval] interface ISettingsItemPriv **Child
+ );
+ HRESULT __stdcall GetChild (
+ [in] LPWSTR Name,
+ [out retval] interface ISettingsItemPriv **Child
+ );
+ HRESULT __stdcall RemoveChild (
+ [in] LPWSTR Name
+ );
+ HRESULT __stdcall Attributes (
+ [out retval] interface IItemCollectionPriv **Attributes
+ );
+ HRESULT __stdcall AddAttribute (
+ [in] LPWSTR Name,
+ [in] VARIANT *Value
+ );
+ HRESULT __stdcall GetAttribute (
+ [in] LPWSTR Name,
+ [out retval] VARIANT *Value
+ );
+ HRESULT __stdcall RemoveAttribute (
+ [in] LPWSTR Name
+ );
+ HRESULT __stdcall GetRestrictionFacets (
+ [out retval] WcmRestrictionFacets *RestrictionFacets
+ );
+ HRESULT __stdcall GetRestriction (
+ [in] WcmRestrictionFacets RestrictionFacet,
+ [out retval] VARIANT *FacetData
+ );
+ HRESULT __stdcall GetItemByPath (
+ [in] LPWSTR Path,
+ [out retval] interface ISettingsItemPriv **Item
+ );
+ HRESULT __stdcall CreateItemByPath (
+ [in] LPWSTR Path,
+ [out retval] interface ISettingsItemPriv **Item
+ );
+ HRESULT __stdcall RemoveItemByPath (
+ [in] LPWSTR Path
+ );
+ HRESULT __stdcall GetValueRaw (
+ [out] UCHAR *Data,
+ [out retval] UINT *DataSize
+ );
+ HRESULT __stdcall SetValueRaw (
+ [in] long DataType,
+ [in] UCHAR *Data,
+ [in] UINT DataSize
+ );
+ HRESULT __stdcall GetValueRawByOptions (
+ [in] WcmProcessingOptions Options,
+ [out] WcmValueStatus *Status,
+ [out] UCHAR *Data,
+ [out retval] UINT *DataSize
+ );
+ HRESULT __stdcall SetValueRawByOptions (
+ [in] WcmProcessingOptions Options,
+ [in] long DataType,
+ [in] UCHAR *Data,
+ [in] UINT DataSize
+ );
+ HRESULT __stdcall IsDynamic (
+ [out retval] long *DynamicItem
+ );
+ HRESULT __stdcall ResetToDefault (void);
+ HRESULT __stdcall GetSettingByPath (
+ [in] LPWSTR Path,
+ [out retval] interface ISettingsItemPriv **Setting
+ );
+ HRESULT __stdcall CreateSettingByPath (
+ [in] LPWSTR Path,
+ [out retval] interface ISettingsItemPriv **Setting
+ );
+ HRESULT __stdcall RemoveSettingByPath (
+ [in] LPWSTR Path
+ );
+ HRESULT __stdcall GetListKeyInformation (
+ [out] BSTR *KeyName,
+ [out retval] WcmDataType *DataType
+ );
+ HRESULT __stdcall CreateListElement (
+ [in] VARIANT *KeyData,
+ [out retval] interface ISettingsItemPriv **Child
+ );
+ HRESULT __stdcall RemoveListElement (
+ [in] LPWSTR ElementName
+ );
+ HRESULT __stdcall GetTypeDefinition (
+ [out retval] interface IMetadataItemPriv **Type
+ );
+ HRESULT __stdcall UninstallSetting (void);
+ HRESULT __stdcall DeleteValue (void);
+ HRESULT __stdcall GetValueByLocation (
+ [in] WcmValueLocation Location,
+ [in] WcmProcessingOptions Options,
+ [out] WcmValueStatus *Status,
+ [out] struct _FILETIME *Timestamp,
+ [out] VARIANT *Value
+ );
+ HRESULT __stdcall GetKeyValue (
+ [out retval] VARIANT *Value
+ );
+};
+[
+ uuid(90A45AC2-2C77-11D9-BDF0-000874CD1BAE),
+ helpstring("IMetadataItemPriv Interface"),
+ nonextensible
+]
+interface IMetadataItemPriv : ISettingsItemPriv
+{
+ [id(1610743808)]
+ HRESULT __stdcall Validate (
+ [in] WcmValidateOption Option,
+ [out retval] VARIANT *ppResult
+ );
+};
+[
+ uuid(9F7D7BB7-20B3-11DA-81A5-0030F1642E3C),
+ helpstring("IItemEnumerator Interface"),
+ nonextensible
+]
+interface IItemEnumerator : IUnknown
+{
+ [id(1610678272)]
+ HRESULT __stdcall Current (
+ [out retval] VARIANT *Item
+ );
+ HRESULT __stdcall MoveNext (
+ [out retval] long *ItemValid
+ );
+ HRESULT __stdcall Reset (void);
+};
+[
+ uuid(90A45ACC-2C77-11D9-BDF0-000874CD1BAE),
+ helpstring("INamespaceIdentityPriv Interface"),
+ nonextensible
+]
+interface INamespaceIdentityPriv : IUnknown
+{
+ [id(1610678272)]
+ HRESULT __stdcall Initialize (
+ [in] LPWSTR Name,
+ [in] LPWSTR Version,
+ [in] LPWSTR Language,
+ [in] LPWSTR Architecture,
+ [in] LPWSTR Token,
+ [in] LPWSTR VersionScope
+ );
+ HRESULT __stdcall GetUri (
+ [out retval] BSTR *Uri
+ );
+ HRESULT __stdcall SetUri (
+ [in] LPWSTR Uri
+ );
+ HRESULT __stdcall GetName (
+ [out retval] BSTR *Name
+ );
+ HRESULT __stdcall SetName (
+ [in] LPWSTR Name
+ );
+ HRESULT __stdcall GetVersion (
+ [out retval] BSTR *Version
+ );
+ HRESULT __stdcall SetVersion (
+ [in] LPWSTR Version
+ );
+ HRESULT __stdcall GetLanguage (
+ [out retval] BSTR *Language
+ );
+ HRESULT __stdcall SetLanguage (
+ [in] LPWSTR Language
+ );
+ HRESULT __stdcall GetProcessorArchitecture (
+ [out retval] BSTR *Architecture
+ );
+ HRESULT __stdcall SetProcessorArchitecture (
+ [in] LPWSTR Architecture
+ );
+ HRESULT __stdcall GetPublicKeyToken (
+ [out retval] BSTR *Token
+ );
+ HRESULT __stdcall SetPublicKeyToken (
+ [in] LPWSTR Token
+ );
+ HRESULT __stdcall GetVersionScope (
+ [out retval] BSTR *VersionScope
+ );
+ HRESULT __stdcall SetVersionScope (
+ [in] LPWSTR VersionScope
+ );
+};
+[
+ uuid(90A45AC3-2C77-11D9-BDF0-000874CD1BAE),
+ helpstring("ISettingsNamespacePriv Interface"),
+ nonextensible
+]
+interface ISettingsNamespacePriv : ISettingsItemPriv
+{
+ [id(1610743808)]
+ HRESULT __stdcall GetIdentity (
+ [out retval] interface INamespaceIdentityPriv **Identity
+ );
+ HRESULT __stdcall SetIdentity (
+ [in] interface INamespaceIdentityPriv *Identity
+ );
+ HRESULT __stdcall GetTargetInfo (
+ [out retval] interface ITargetInfoPriv **Target
+ );
+ HRESULT __stdcall Settings (
+ [out retval] interface IItemCollectionPriv **Settings
+ );
+ HRESULT __stdcall Metadata (
+ [out retval] interface IMetadataPriv **Metadata
+ );
+ HRESULT __stdcall GetNamespaceMode (
+ [out retval] WcmNamespaceMode *Mode
+ );
+ HRESULT __stdcall Save (
+ [in] long fPushSettings,
+ [out retval] interface ISettingsResult **ppResult
+ );
+ HRESULT __stdcall ServiceSyncSetting (
+ [in] USHORT *szSettingPath,
+ [in] long fCreate,
+ [out retval] interface ISettingsResult **ppResult
+ );
+ HRESULT __stdcall GetXmlNamespaceUri (
+ [in] LPWSTR NamespacePrefix,
+ [out retval] BSTR *NamespaceUri
+ );
+ HRESULT __stdcall GetXmlNamespacePrefix (
+ [in] LPWSTR NamespaceUri,
+ [out retval] BSTR *NamespacePrefix
+ );
+ HRESULT __stdcall Validate (
+ [in] WcmValidateOption Option,
+ [out retval] VARIANT *ppResult
+ );
+ HRESULT __stdcall GetSettingValue (
+ [in] LPWSTR Path,
+ [out retval] VARIANT *Value
+ );
+ HRESULT __stdcall SetSettingValue (
+ [in] LPWSTR Path,
+ [in] VARIANT *Value
+ );
+ HRESULT __stdcall SaveWinSxS (
+ long fIsInstall
+ );
+};
+[
+ uuid(90A45ACD-2C77-11D9-BDF0-000874CD1BAE),
+ helpstring("ITargetInfoPriv Interface"),
+ nonextensible
+]
+interface ITargetInfoPriv : IUnknown
+{
+ [id(1610678272)]
+ HRESULT __stdcall GetTargetMode (
+ [out retval] WcmTargetMode *TargetMode
+ );
+ HRESULT __stdcall SetTargetMode (
+ [in] WcmTargetMode TargetMode
+ );
+ HRESULT __stdcall GetTemporaryStoreLocation (
+ [out retval] BSTR *TemporaryStoreLocation
+ );
+ HRESULT __stdcall SetTemporaryStoreLocation (
+ [in] LPWSTR TemporaryStoreLocation
+ );
+ HRESULT __stdcall GetTargetID (
+ [out retval] BSTR *TargetID
+ );
+ HRESULT __stdcall SetTargetID (
+ [in] struct GUID TargetID
+ );
+ HRESULT __stdcall GetTargetProcessorArchitecture (
+ [out retval] BSTR *ProcessorArchitecture
+ );
+ HRESULT __stdcall SetTargetProcessorArchitecture (
+ [in] LPWSTR ProcessorArchitecture
+ );
+ HRESULT __stdcall GetProperty (
+ [in] long Offline,
+ [in] LPWSTR Property,
+ [out retval] BSTR *Value
+ );
+ HRESULT __stdcall SetProperty (
+ [in] long Offline,
+ [in] LPWSTR Property,
+ [in] LPWSTR Value
+ );
+ HRESULT __stdcall GetEnumerator (
+ [out retval] interface IItemEnumerator **Enumerator
+ );
+ HRESULT __stdcall ExpandTarget (
+ [in] long Offline,
+ [in] LPWSTR Location,
+ [out retval] BSTR *ExpandedLocation
+ );
+ HRESULT __stdcall ExpandTargetPath (
+ [in] long Offline,
+ [in] LPWSTR Location,
+ [out retval] BSTR *ExpandedLocation
+ );
+ HRESULT __stdcall SetModulePath (
+ [in] LPWSTR Module,
+ [in] LPWSTR Path
+ );
+ HRESULT __stdcall LoadModule (
+ [in] LPWSTR Module,
+ [out retval] void *ModuleHandle
+ );
+ HRESULT __stdcall SetSchemaLocation (
+ [in] LPWSTR SchemaLocation
+ );
+ HRESULT __stdcall GetSchemaLocation (
+ [out retval] BSTR *SchemaLocation
+ );
+ HRESULT __stdcall SetWow64Context (
+ [in] LPWSTR InstallerModule,
+ [in] UCHAR *Wow64Context
+ );
+ HRESULT __stdcall HasWow64Context (
+ [out retval] long *HasContext
+ );
+ HRESULT __stdcall TranslateWow64 (
+ [in] LPWSTR ClientArchitecture,
+ [in] LPWSTR Value,
+ [out retval] BSTR *TranslatedValue
+ );
+ HRESULT __stdcall SetSchemaHiveLocation (
+ [in] LPWSTR pwzHiveDir
+ );
+ HRESULT __stdcall GetSchemaHiveLocation (
+ [out retval] BSTR *pHiveDir
+ );
+ HRESULT __stdcall SetSchemaHiveMountName (
+ [in] LPWSTR pwzMountName
+ );
+ HRESULT __stdcall GetSchemaHiveMountName (
+ [out retval] BSTR *pMountName
+ );
+};
+[
+ uuid(90A45AC4-2C77-11D9-BDF0-000874CD1BAE),
+ helpstring("IMetadataPriv Interface"),
+ nonextensible
+]
+interface IMetadataPriv : ISettingsItemPriv
+{
+ [id(1610743808)]
+ HRESULT __stdcall ComplexTypes (
+ [out retval] interface IItemCollectionPriv **Collection
+ );
+ HRESULT __stdcall SimpleTypes (
+ [out retval] interface IItemCollectionPriv **Collection
+ );
+ HRESULT __stdcall Elements (
+ [out retval] interface IItemCollectionPriv **Collection
+ );
+ HRESULT __stdcall SecurityDefinitions (
+ [out retval] interface IItemCollectionPriv **Collection
+ );
+};
+[
+ uuid(9F7D7BBC-20B3-11DA-81A5-0030F1642E3C),
+ helpstring("ISettingsResult Interface"),
+ nonextensible
+]
+interface ISettingsResult : IUnknown
+{
+ [id(1610678272)]
+ HRESULT __stdcall GetDescription (
+ [out retval] BSTR *Description
+ );
+ HRESULT __stdcall GetErrorCode (
+ [out retval] HRESULT *hrOut
+ );
+ HRESULT __stdcall GetContextDescription (
+ [out retval] BSTR *Description
+ );
+ HRESULT __stdcall GetLine (
+ [out retval] UINT *dwLine
+ );
+ HRESULT __stdcall GetColumn (
+ [out retval] UINT *dwColumn
+ );
+ HRESULT __stdcall GetSource (
+ [out retval] BSTR *file
+ );
+};
+[
+ uuid(0000000C-0000-0000-C000-000000000046)
+]
+interface IStream : ISequentialStream
+{
+ [id(1610743808)]
+ HRESULT __stdcall RemoteSeek (
+ [in] struct _LARGE_INTEGER dlibMove,
+ [in] UINT dwOrigin,
+ [out] struct _ULARGE_INTEGER *plibNewPosition
+ );
+ HRESULT __stdcall SetSize (
+ [in] struct _ULARGE_INTEGER libNewSize
+ );
+ HRESULT __stdcall RemoteCopyTo (
+ [in] interface IStream *pstm,
+ [in] struct _ULARGE_INTEGER cb,
+ [out] struct _ULARGE_INTEGER *pcbRead,
+ [out] struct _ULARGE_INTEGER *pcbWritten
+ );
+ HRESULT __stdcall Commit (
+ [in] UINT grfCommitFlags
+ );
+ HRESULT __stdcall Revert (void);
+ HRESULT __stdcall LockRegion (
+ [in] struct _ULARGE_INTEGER libOffset,
+ [in] struct _ULARGE_INTEGER cb,
+ [in] UINT dwLockType
+ );
+ HRESULT __stdcall UnlockRegion (
+ [in] struct _ULARGE_INTEGER libOffset,
+ [in] struct _ULARGE_INTEGER cb,
+ [in] UINT dwLockType
+ );
+ HRESULT __stdcall Stat (
+ [out] struct tagSTATSTG *pstatstg,
+ [in] UINT grfStatFlag
+ );
+ HRESULT __stdcall Clone (
+ [out] interface IStream **ppstm
+ );
+};
+[
+ uuid(0C733A30-2A1C-11CE-ADE5-00AA0044773D)
+]
+interface ISequentialStream : IUnknown
+{
+ [id(1610678272)]
+ HRESULT __stdcall RemoteRead (
+ [out] UCHAR *pv,
+ [in] UINT cb,
+ [out] UINT *pcbRead
+ );
+ HRESULT __stdcall RemoteWrite (
+ [in] UCHAR *pv,
+ [in] UINT cb,
+ [out] UINT *pcbWritten
+ );
+};
+[
+ uuid(9F7D7BBD-20B3-11DA-81A5-0030F1642E3C),
+ helpstring("ISettingsContext Interface"),
+ nonextensible
+]
+interface ISettingsContext : IUnknown
+{
+ [id(1610678272)]
+ HRESULT __stdcall Serialize (
+ [in] interface IStream *pStream,
+ [in] interface ITargetInfo *pTarget
+ );
+ HRESULT __stdcall Deserialize (
+ [in] interface IStream *pStream,
+ [in] interface ITargetInfo *pTarget,
+ [out] interface ISettingsResult ***pppResults,
+ [out retval] ULONG_PTR *pcResultCount
+ );
+ HRESULT __stdcall SetUserData (
+ [in] void *pUserData
+ );
+ HRESULT __stdcall GetUserData (
+ [out retval] void *pUserData
+ );
+ HRESULT __stdcall GetNamespaces (
+ [out retval] interface IItemEnumerator **ppNamespaceIds
+ );
+ HRESULT __stdcall GetStoredSettings (
+ [in] interface ISettingsIdentity *pIdentity,
+ [out] interface IItemEnumerator **ppAddedSettings,
+ [out] interface IItemEnumerator **ppModifiedSettings,
+ [out] interface IItemEnumerator **ppDeletedSettings
+ );
+ HRESULT __stdcall RevertSetting (
+ [in] interface ISettingsIdentity *pIdentity,
+ [in] LPWSTR pwzSetting
+ );
+};
+[
+ uuid(9F7D7BB8-20B3-11DA-81A5-0030F1642E3C),
+ helpstring("ITargetInfo Interface"),
+ nonextensible
+]
+interface ITargetInfo : IUnknown
+{
+ [id(1610678272)]
+ HRESULT __stdcall GetTargetMode (
+ [out retval] WcmTargetMode *TargetMode
+ );
+ HRESULT __stdcall SetTargetMode (
+ [in] WcmTargetMode TargetMode
+ );
+ HRESULT __stdcall GetTemporaryStoreLocation (
+ [out retval] BSTR *TemporaryStoreLocation
+ );
+ HRESULT __stdcall SetTemporaryStoreLocation (
+ [in] LPWSTR TemporaryStoreLocation
+ );
+ HRESULT __stdcall GetTargetID (
+ [out retval] BSTR *TargetID
+ );
+ HRESULT __stdcall SetTargetID (
+ [in] struct GUID TargetID
+ );
+ HRESULT __stdcall GetTargetProcessorArchitecture (
+ [out retval] BSTR *ProcessorArchitecture
+ );
+ HRESULT __stdcall SetTargetProcessorArchitecture (
+ [in] LPWSTR ProcessorArchitecture
+ );
+ HRESULT __stdcall GetProperty (
+ [in] long Offline,
+ [in] LPWSTR Property,
+ [out retval] BSTR *Value
+ );
+ HRESULT __stdcall SetProperty (
+ [in] long Offline,
+ [in] LPWSTR Property,
+ [in] LPWSTR Value
+ );
+ HRESULT __stdcall GetEnumerator (
+ [out retval] interface IItemEnumerator **Enumerator
+ );
+ HRESULT __stdcall ExpandTarget (
+ [in] long Offline,
+ [in] LPWSTR Location,
+ [out retval] BSTR *ExpandedLocation
+ );
+ HRESULT __stdcall ExpandTargetPath (
+ [in] long Offline,
+ [in] LPWSTR Location,
+ [out retval] BSTR *ExpandedLocation
+ );
+ HRESULT __stdcall SetModulePath (
+ [in] LPWSTR Module,
+ [in] LPWSTR Path
+ );
+ HRESULT __stdcall LoadModule (
+ [in] LPWSTR Module,
+ [out retval] void *ModuleHandle
+ );
+ HRESULT __stdcall SetWow64Context (
+ [in] LPWSTR InstallerModule,
+ [in] UCHAR *Wow64Context
+ );
+ HRESULT __stdcall TranslateWow64 (
+ [in] LPWSTR ClientArchitecture,
+ [in] LPWSTR Value,
+ [out retval] BSTR *TranslatedValue
+ );
+ HRESULT __stdcall SetSchemaHiveLocation (
+ [in] LPWSTR pwzHiveDir
+ );
+ HRESULT __stdcall GetSchemaHiveLocation (
+ [out retval] BSTR *pHiveLocation
+ );
+ HRESULT __stdcall SetSchemaHiveMountName (
+ [in] LPWSTR pwzMountName
+ );
+ HRESULT __stdcall GetSchemaHiveMountName (
+ [out retval] BSTR *pMountName
+ );
+};
+[
+ uuid(9F7D7BB6-20B3-11DA-81A5-0030F1642E3C),
+ helpstring("ISettingsIdentity Interface"),
+ nonextensible
+]
+interface ISettingsIdentity : IUnknown
+{
+ [id(1610678272)]
+ HRESULT __stdcall GetAttribute (
+ [in] void *reserved,
+ [in] LPWSTR Name,
+ [out retval] BSTR *Value
+ );
+ HRESULT __stdcall SetAttribute (
+ [in] void *reserved,
+ [in] LPWSTR Name,
+ [in] LPWSTR Value
+ );
+ HRESULT __stdcall GetFlags (
+ [out retval] UINT *Flags
+ );
+ HRESULT __stdcall SetFlags (
+ [in] UINT Flags
+ );
+};
+
diff --git a/mingw-w64-headers/include/wcsplugin.h b/mingw-w64-headers/include/wcsplugin.h
new file mode 100644
index 0000000..a8b0d43
--- /dev/null
+++ b/mingw-w64-headers/include/wcsplugin.h
@@ -0,0 +1,90 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_WCSPLUGIN
+#define _INC_WCSPLUGIN
+#if (_WIN32_WINNT >= 0x0600)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct _BlackInformation {
+ WINBOOL bBlackOnly;
+ FLOAT blackWeight;
+} BlackInformation;
+
+typedef struct _JabColorF {
+ FLOAT J;
+ FLOAT a;
+ FLOAT b;
+} JabColorF;
+
+typedef struct _PrimaryJabColors {
+ JabColorF red;
+ JabColorF yellow;
+ JabColorF green;
+ JabColorF cyan;
+ JabColorF blue;
+ JabColorF magenta;
+ JabColorF black;
+ JabColorF white;
+} PrimaryJabColors;
+
+typedef struct _GamutShellTriangle {
+ UINT aVertexIndex[3];
+} GamutShellTriangle;
+
+typedef struct _GamutShell {
+ FLOAT JMin;
+ FLOAT JMax;
+ UINT cVertices;
+ UINT cTriangles;
+ JabColorF *pVertices;
+ GamutShellTriangle *pTriangles;
+} GamutShell;
+
+typedef struct _GamutBoundaryDescription {
+ PrimaryJabColors primaries;
+ UINT cNeutralSamples
+ JabColorF *pNeutralSamples;
+ GamutShell *pReferenceShell;
+ GamutShell *pPlausibleShell;
+ GamutShell *pPossibleShell;
+} GamutBoundaryDescription;
+
+typedef struct _PrimaryJabColors {
+ JabColorF red;
+ JabColorF yellow;
+ JabColorF green;
+ JabColorF cyan;
+ JabColorF blue;
+ JabColorF magenta;
+ JabColorF black;
+ JabColorF white;
+} PrimaryJabColors;
+
+typedef struct _XYZColorF {
+ FLOAT X;
+ FLOAT Y;
+ FLOAT Z;
+} XYZColorF;
+
+typedef struct _PrimaryXYZColors {
+ XYZColorF red;
+ XYZColorF yellow;
+ XYZColorF green;
+ XYZColorF cyan;
+ XYZColorF blue;
+ XYZColorF magenta;
+ XYZColorF black;
+ XYZColorF white;
+} PrimaryXYZColors;
+
+#ifdef __cplusplus
+}
+#endif
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_WCSPLUGIN*/
diff --git a/mingw-w64-headers/include/wct.h b/mingw-w64-headers/include/wct.h
new file mode 100644
index 0000000..7a554c8
--- /dev/null
+++ b/mingw-w64-headers/include/wct.h
@@ -0,0 +1,100 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_WCT
+#define _INC_WCT
+#if (_WIN32_WINNT >= 0x0600)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef LPVOID HWCT;
+
+typedef enum _WCT_OBJECT_TYPE {
+ WctCriticalSectionType,
+ WctSendMessageType,
+ WctMutexType,
+ WctAlpcType,
+ WctComType,
+ WctThreadWaitType,
+ WctProcessWaitType,
+ WctThreadType,
+ WctComActivationType,
+ WctUnknownType
+} WCT_OBJECT_TYPE;
+
+typedef enum _WCT_OBJECT_STATUS {
+ WctStatusNoAccess,
+ WctStatusRunning,
+ WctStatusBlocked,
+ WctStatusPidOnly,
+ WctStatusPidOnlyRpcss,
+ WctStatusOwned,
+ WctStatusNotOwned,
+ WctStatusAbandoned,
+ WctStatusUnknown,
+ WctStatusError
+} WCT_OBJECT_STATUS;
+
+/* According to http://msdn.microsoft.com/en-us/magazine/cc163395.aspx
+ RealObjectName has 0x8 offset and TimeOutLowPart has 0x108
+ WCT_OBJNAME_LENGTH assumed to be 50
+*/
+#define WCT_OBJNAME_LENGTH 50
+
+typedef struct _WAITCHAIN_NODE_INFO {
+ WCT_OBJECT_TYPE ObjectType;
+ WCT_OBJECT_STATUS ObjectStatus;
+ __MINGW_EXTENSION union {
+ __MINGW_EXTENSION struct {
+ WCHAR ObjectName[WCT_OBJNAME_LENGTH];
+ LARGE_INTEGER Timeout;
+ WINBOOL Alertable;
+ } LockObject;
+ __MINGW_EXTENSION struct {
+ DWORD ProcessId;
+ DWORD ThreadId;
+ DWORD WaitTime;
+ DWORD ContextSwitches;
+ } ThreadObject;
+ };
+} WAITCHAIN_NODE_INFO, *PWAITCHAIN_NODE_INFO;
+
+typedef VOID (CALLBACK *PWAITCHAINCALLBACK)(
+ HWCT WctHandle,
+ DWORD_PTR Context,
+ DWORD CallbackStatus,
+ LPDWORD NodeCount,
+ PWAITCHAIN_NODE_INFO NodeInfoArray,
+ LPBOOL IsCycle
+);
+
+HWCT WINAPI OpenThreadWaitChainSession(DWORD Flags,PWAITCHAINCALLBACK callback);
+VOID WINAPI CloseThreadWaitChainSession(HWCT WctHandle);
+WINBOOL WINAPI GetThreadWaitChain(
+ HWCT WctHandle,
+ DWORD_PTR Context,
+ DWORD Flags,
+ DWORD ThreadId,
+ LPDWORD NodeCount,
+ PWAITCHAIN_NODE_INFO NodeInfoArray,
+ LPBOOL IsCycle
+);
+
+/* Unknown Callbacks */
+typedef LPVOID (WINAPI *PCOGETCALLSTATE)();
+typedef LPVOID (WINAPI *PCOGETACTIVATIONSTATE)();
+
+VOID WINAPI RegisterWaitChainCOMCallback(
+ PCOGETCALLSTATE CallStateCallback,
+ PCOGETACTIVATIONSTATE ActivationStateCallback
+);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* (_WIN32_WINNT >= 0x0600) */
+#endif /*_INC_WCT*/
diff --git a/mingw-w64-headers/include/wdsbp.h b/mingw-w64-headers/include/wdsbp.h
new file mode 100644
index 0000000..2c86345
--- /dev/null
+++ b/mingw-w64-headers/include/wdsbp.h
@@ -0,0 +1,66 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_WDSBP
+#define _INC_WDSBP
+#if (_WIN32_WINNT >= 0x0600)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef WDSBPAPI
+#define WDSBPAPI WINAPI
+#endif
+
+/* Wdsbp.dll is missing an implib because Vista clients don't have the dll to generate it from */
+
+HRESULT WDSBPAPI WdsBpAddOption(
+ HANDLE hHandle,
+ ULONG uOption,
+ ULONG uValueLen,
+ PVOID pValue
+);
+
+HRESULT WDSBPAPI WdsBpCloseHandle(
+ HANDLE hHandle
+);
+
+HRESULT WDSBPAPI WdsBpGetOptionBuffer(
+ HANDLE hHandle,
+ ULONG uBufferLen,
+ PVOID pBuffer,
+ PULONG puBytes
+);
+
+#define WDSBP_PK_TYPE_DHCP 1
+#define WDSBP_PK_TYPE_WDSNBP 2
+#define WDSBP_PK_TYPE_BCD 4
+
+HRESULT WDSBPAPI WdsBpInitialize(
+ BYTE bPacketType,
+ HANDLE *phHandle
+);
+
+HRESULT WDSBPAPI WdsBpParseInitialize(
+ PVOID pPacket,
+ ULONG uPacketLen,
+ PBYTE pbPacketType,
+ HANDLE *phHandle
+);
+
+HRESULT WDSBPAPI WdsBpQueryOption(
+ HANDLE hHandle,
+ ULONG uOption,
+ ULONG uValueLen,
+ PVOID pValue,
+ PULONG puBytes
+);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_WDSBP*/
diff --git a/mingw-w64-headers/include/wdsclientapi.h b/mingw-w64-headers/include/wdsclientapi.h
new file mode 100644
index 0000000..73c30ba
--- /dev/null
+++ b/mingw-w64-headers/include/wdsclientapi.h
@@ -0,0 +1,244 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_WDSCLIENTAPI
+#define _INC_WDSCLIENTAPI
+#if (_WIN32_WINNT >= 0x0600)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define WDS_CLI_MSG_START 0
+#define WDS_CLI_MSG_COMPLETE 1
+#define WDS_CLI_MSG_PROGRESS 2
+#define WDS_CLI_MSG_TEXT 3
+
+#ifndef WDSCLIAPI
+#define WDSCLIAPI WINAPI
+#endif
+
+/* WdsClientAPI.dll is missing an implib because Vista clients don't have the dll to generate it from */
+
+typedef VOID (CALLBACK *PFN_WdsCliCallback)(
+ DWORD dwMessageId,
+ WPARAM wParam,
+ LPARAM lParam,
+ PVOID pvUserData
+);
+
+typedef VOID (WDSCLIAPI *PFN_WdsCliTraceFunction)(
+ LPCWSTR pwszFormat,
+ va_list Params
+);
+
+
+typedef enum _WDS_LOG_LEVEL {
+ WDS_LOG_LEVEL_DISABLED = 0,
+ WDS_LOG_LEVEL_ERROR = 1,
+ WDS_LOG_LEVEL_WARNING = 2,
+ WDS_LOG_LEVEL_INFO = 3
+} WDS_LOG_LEVEL;
+
+typedef enum _WDS_LOG_TYPE_CLIENT {
+ WDS_LOG_TYPE_CLIENT_ERROR = 1,
+ WDS_LOG_TYPE_CLIENT_STARTED,
+ WDS_LOG_TYPE_CLIENT_FINISHED,
+ WDS_LOG_TYPE_CLIENT_IMAGE_SELECTED,
+ WDS_LOG_TYPE_CLIENT_APPLY_STARTED,
+ WDS_LOG_TYPE_CLIENT_APPLY_FINISHED,
+ WDS_LOG_TYPE_CLIENT_GENERIC_MESSAGE,
+ WDS_LOG_TYPE_CLIENT_MAX_CODE
+} WDS_LOG_TYPE_CLIENT;
+
+typedef struct tagWDS_CLI_CRED {
+ PCWSTR pwszUserName;
+ PCWSTR pwszDomain;
+ PCWSTR pwszPassword;
+} WDS_CLI_CRED, *PWDS_CLI_CRED, *LPWDS_CLI_CRED;
+
+HRESULT WDSCLIAPI WdsCliAuthorizeSession(
+ HANDLE hSession,
+ PWDS_CLI_CRED pCred
+);
+
+HRESULT WDSCLIAPI WdsCliCancelTransfer(
+ HANDLE hTransfer
+);
+
+HRESULT WDSCLIAPI WdsCliClose(
+ HANDLE Handle
+);
+
+HRESULT WDSCLIAPI WdsCliCreateSession(
+ PWSTR pwszServer,
+ PWDS_CLI_CRED pCred,
+ PHANDLE phSession
+);
+
+HRESULT WDSCLIAPI WdsCliFindFirstImage(
+ HANDLE hSession,
+ PHANDLE phFindHandle
+);
+
+HRESULT WDSCLIAPI WdsCliFindNextImage(
+ HANDLE Handle
+);
+
+#define WdsCliFlagEnumFilterVersion 1
+
+HRESULT WDSCLIAPI WdsCliGetEnumerationFlags(
+ HANDLE Handle,
+ PDWORD pdwFlags
+);
+
+#define PROCESSOR_ARCHITECTURE_AMD64 9
+#define PROCESSOR_ARCHITECTURE_IA64 6
+#define PROCESSOR_ARCHITECTURE_INTEL 0
+
+HRESULT WDSCLIAPI WdsCliGetImageArchitecture(
+ HANDLE hIfh,
+ PDWORD pdwValue
+);
+
+HRESULT WDSCLIAPI WdsCliGetImageDescription(
+ HANDLE hIfh,
+ PWSTR *ppwszValue
+);
+
+HRESULT WDSCLIAPI WdsCliGetImageGroup(
+ HANDLE hIfh,
+ PWSTR *ppwszValue
+);
+
+HRESULT WDSCLIAPI WdsCliGetImageHalName(
+ HANDLE hIfh,
+ PWSTR *ppwszValue
+);
+
+HRESULT WDSCLIAPI WdsCliGetImageHandleFromFindHandle(
+ HANDLE FindHandle,
+ PHANDLE phImageHandle
+);
+
+HRESULT WDSCLIAPI WdsCliGetImageHandleFromTransferHandle(
+ HANDLE hTransfer,
+ PHANDLE phImageHandle
+);
+
+HRESULT WDSCLIAPI WdsCliGetImageIndex(
+ HANDLE hIfh,
+ PDWORD pdwValue
+);
+
+HRESULT WDSCLIAPI WdsCliGetImageLanguage(
+ HANDLE hIfh,
+ PWSTR *ppwszValue
+);
+
+HRESULT WDSCLIAPI WdsCliGetImageLanguages(
+ HANDLE hIfh,
+ PTSTR **pppszValues,
+ PDWORD pdwNumValues
+);
+
+HRESULT WDSCLIAPI WdsCliGetImageLastModifiedTime(
+ HANDLE hIfh,
+ PSYSTEMTIME *ppSysTimeValue
+);
+
+HRESULT WINAPI WdsCliGetImageName(
+ HANDLE hIfh,
+ PWSTR *ppwszValue
+);
+
+HRESULT WDSCLIAPI WdsCliGetImageNamespace(
+ HANDLE hIfh,
+ PWSTR *ppwszValue
+);
+
+HRESULT WDSCLIAPI WdsCliGetImagePath(
+ HANDLE hIfh,
+ PWSTR *ppwszValue
+);
+
+HRESULT WDSCLIAPI WdsCliGetImageSize(
+ HANDLE hIfh,
+ PULONGLONG pullValue
+);
+
+HRESULT WDSCLIAPI WdsCliGetImageVersion(
+ HANDLE hIfh,
+ PWSTR *ppwszValue
+);
+
+HRESULT WDSCLIAPI WdsCliGetTransferSize(
+ HANDLE hIfh,
+ PULONGLONG pullValue
+);
+
+HRESULT WDSCLIAPI WdsCliInitializeLog(
+ HANDLE hSession,
+ ULONG ulClientArchitecture,
+ PWSTR pwszClientId,
+ PWSTR pwszClientAddress
+);
+
+#define WDS_LOG_LEVEL_DISABLED 0
+#define WDS_LOG_LEVEL_ERROR 1
+#define WDS_LOG_LEVEL_WARNING 2
+#define WDS_LOG_LEVEL_INFO 3
+
+#define WDS_LOG_TYPE_CLIENT_ERROR 1
+#define WDS_LOG_TYPE_CLIENT_STARTED 2
+#define WDS_LOG_TYPE_CLIENT_FINISHED 3
+#define WDS_LOG_TYPE_CLIENT_IMAGE_SELECTED 4
+#define WDS_LOG_TYPE_CLIENT_APPLY_STARTED 5
+#define WDS_LOG_TYPE_CLIENT_APPLY_FINISHED 6
+#define WDS_LOG_TYPE_CLIENT_GENERIC_MESSAGE 7
+#define WDS_LOG_TYPE_CLIENT_MAX_CODE 8
+
+HRESULT __cdecl WdsCliLog(
+ HANDLE hSession,
+ ULONG ulLogLevel,
+ ULONG ulMessageCode,
+ ...
+);
+
+HRESULT WDSCLIAPI WdsCliRegisterTrace(
+ PFN_WdsCliTraceFunction pfn
+);
+
+HRESULT WDSCLIAPI WdsCliTransferFile(
+ PCWSTR pwszServer,
+ PCWSTR pwszNamespace,
+ PCWSTR pwszRemoteFilePath,
+ PCWSTR pwszLocalFilePath,
+ DWORD dwFlags,
+ DWORD dwReserved,
+ PFN_WdsCliCallback pfnWdsCliCallback,
+ PVOID pvUserData,
+ PHANDLE phTransfer
+);
+
+HRESULT WDSCLIAPI WdsCliTransferImage(
+ HANDLE hImage,
+ PWSTR pwszLocalPath,
+ DWORD dwFlags,
+ DWORD dwReserved,
+ PFN_WdsCliCallback pfnWdsCliCallback,
+ PVOID pvUserData,
+ PHANDLE phTransfer
+);
+
+HRESULT WDSCLIAPI WdsCliWaitForTransfer(
+ HANDLE hTransfer
+);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_WDSCLIENTAPI*/
diff --git a/mingw-w64-headers/include/wdspxe.h b/mingw-w64-headers/include/wdspxe.h
new file mode 100644
index 0000000..e764604
--- /dev/null
+++ b/mingw-w64-headers/include/wdspxe.h
@@ -0,0 +1,266 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_WDSPXE
+#define _INC_WDSPXE
+#if (_WIN32_WINNT >= 0x0600)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define PXE_ADDR_BROADCAST 0x0001
+#define PXE_ADDR_USE_PORT 0x0002
+#define PXE_ADDR_USE_ADDR 0x0004
+#define PXE_ADDR_USE_DHCP_RULES 0x0008
+
+#ifndef PXEAPI
+#define PXEAPI WINAPI
+#endif
+
+typedef LPVOID PXE_BOOT_ACTION;
+typedef ULONG PXE_REG_INDEX;
+typedef ULONG PXE_PROVIDER_ATTRIBUTE;
+
+typedef struct tagPXE_ADDRESS {
+ ULONG uFlags;
+ __MINGW_EXTENSION union {
+ BYTE bAddress[PXE_MAX_ADDRESS];
+ ULONG uIpAddress;
+ } DUMMYUNIONNAME;
+ ULONG uAddrLen;
+ USHORT uPort;
+} PXE_ADDRESS, *PPXE_ADDRESS;
+
+typedef struct _PXE_DHCP_MESSAGE {
+ BYTE Operation;
+ BYTE HardwareAddressType;
+ BYTE HardwareAddressLength;
+ BYTE HopCount;
+ DWORD TransactionID;
+ WORD SecondsSinceBoot;
+ WORD Reserved;
+ ULONG ClientIpAddress;
+ ULONG YourIPAddress;
+ ULONG BootstrapServerAddress;
+ ULONG RelayAgentIpAddress;
+ BYTE HardwareAddress[PXE_DHCP_HWAADR_SIZE];
+ BYTE HostName[PXE_DHCP_SERVER_SIZE];
+ BYTE BootFileName;
+ __MINGW_EXTENSION union {
+ BYTE bMagicCookie[PXE_DHCP_MAGIC_COOKIE_SIZE];
+ ULONG uMagicCookie;
+ } DUMMYUNIONNAME;
+} PXE_DHCP_MESSAGE, *PPXE_DHCP_MESSAGE;
+
+typedef struct _PXE_DHCP_OPTION {
+ BYTE OptionType;
+ BYTE OptionLength;
+ BYTE OptionValue[1];
+} PXE_DHCP_OPTION, *PPXE_DHCP_OPTION;
+
+#define PXE_BA_NBP 1
+#define PXE_BA_CUSTOM 2
+#define PXE_BA_IGNORE 3
+#define PXE_BA_REJECTED 4
+
+typedef struct tagPXE_PROVIDER {
+ ULONG uSizeOfStruct;
+ LPWSTR pwszName;
+ LPWSTR pwszFilePath;
+ WINBOOL bIsCritical;
+ ULONG uIndex;
+} PXE_PROVIDER, *PPXE_PROVIDER;
+
+DWORD PXEAPI PxeDhcpAppendOption(
+ PVOID pReplyPacket,
+ ULONG uMaxReplyPacketLen,
+ PULONG puReplyPacketLen,
+ BYTE bOption,
+ BYTE bOptionLen,
+ PVOID pValue
+);
+
+DWORD PXEAPI PxeDhcpGetOptionValue(
+ PVOID pPacket,
+ ULONG uPacketLen,
+ ULONG uInstance,
+ BYTE bOption,
+ PBYTE pbOptionLen,
+ PVOID *ppOptionValue
+);
+
+DWORD PXEAPI PxeDhcpGetVendorOptionValue(
+ PVOID pPacket,
+ ULONG uPacketLen,
+ BYTE bOption,
+ ULONG uInstance,
+ PBYTE pbOptionLen,
+ PVOID *ppOptionValue
+);
+
+DWORD PXEAPI PxeDhcpInitialize(
+ PVOID pRecvPacket,
+ ULONG uRecvPacketLen,
+ PVOID pReplyPacket,
+ ULONG uMaxReplyPacketLen,
+ PULONG puReplyPacketLen
+);
+
+DWORD PXEAPI PxeDhcpIsValid(
+ PVOID pPacket,
+ ULONG uPacketLen,
+ WINBOOL bRequestPacket,
+ PBOOL pbPxeOptionPresent
+);
+
+typedef enum _PXE_GSI_TYPE {
+ PXE_GSI_TRACE_ENABLED = 1
+} PXE_GSI_TYPE;
+
+DWORD PXEAPI PxeGetServerInfo(
+ PXE_GSI_TYPE uInfoType,
+ PVOID pBuffer,
+ ULONG uBufferLen
+);
+
+PVOID PXEAPI PxePacketAllocate(
+ HANDLE hProvider,
+ HANDLE hClientRequest,
+ ULONG uSize
+);
+
+DWORD PXEAPI PxePacketFree(
+ HANDLE hProvider,
+ HANDLE hClientRequest,
+ PVOID pPacket
+);
+
+DWORD PXEAPI PxeProviderEnumClose(
+ HANDLE hEnum
+);
+
+DWORD PXEAPI PxeProviderEnumFirst(
+ HANDLE *phEnum
+);
+
+DWORD PXEAPI PxeProviderEnumNext(
+ HANDLE hEnum,
+ PPXE_PROVIDER *ppProvider
+);
+
+DWORD PXEAPI PxeProviderFreeInfo(
+ PPXE_PROVIDER pProvider
+);
+
+DWORD PXEAPI PxeProviderInitialize(
+ HANDLE hProvider,
+ HKEY hProviderKey
+); /*CALLBACK*/
+
+DWORD PXEAPI PxeProviderQueryIndex(
+ LPCWSTR pszProviderName,
+ PULONG puIndex
+);
+
+#define PXE_BA_NBP 1
+#define PXE_BA_CUSTOM 2
+#define PXE_BA_IGNORE 3
+#define PXE_BA_REJECTED 4
+
+DWORD PXEAPI PxeProviderRecvRequest(
+ HANDLE hClientRequest,
+ PVOID pPacket,
+ ULONG uPacketLen,
+ PXE_ADDRESS *pLocalAddress,
+ PXE_ADDRESS *pRemoteAddress,
+ PXE_BOOT_ACTION pAction,
+ PVOID pContext
+); /*CALLBACK*/
+
+#define PXE_REG_INDEX_TOP 0
+#define PXE_REG_INDEX_BOTTOM 0xFFFFFFFF
+
+DWORD PXEAPI PxeProviderRegister(
+ LPCWSTR pszProviderName,
+ LPCWSTR pszModulePath,
+ PXE_REG_INDEX Index,
+ WINBOOL bIsCritical,
+ PHKEY phProviderKey
+);
+
+DWORD PXEAPI PxeProviderServiceControl(
+ PVOID pContext,
+ DWORD dwControl
+); /*CALLBACK*/
+
+DWORD PXEAPI PxeProviderSetAttribute(
+ HANDLE hProvider,
+ PXE_PROVIDER_ATTRIBUTE Attribute,
+ PVOID pParameterBuffer,
+ ULONG uParamLen
+);
+
+#define PXE_PROV_ATTR_FILTER 0
+#define PXE_PROV_FILTER_ALL 0x0000
+#define PXE_PROV_FILTER_DHCP_ONLY 0x0001
+#define PXE_PROV_FILTER_PXE_ONLY 0x0002
+
+DWORD PXEAPI PxeProviderSetAttribute(
+ HANDLE hProvider,
+ PXE_PROVIDER_ATTRIBUTE Attribute,
+ PVOID pParameterBuffer,
+ ULONG uParamLen
+); /*CALLBACK*/
+
+DWORD PXEAPI PxeProviderShutdown(
+ PVOID pContext
+); /*CALLBACK*/
+
+DWORD PXEAPI PxeProviderUnRegister(
+ LPCWSTR pszProviderName
+);
+
+typedef enum _PXE_CALLBACK_TYPE {
+ PXE_CALLBACK_RECV_REQUEST = 0,
+ PXE_CALLBACK_SHUTDOWN,
+ PXE_CALLBACK_SERVICE_CONTROL,
+ PXE_CALLBACK_MAX
+} PXE_CALLBACK_TYPE;
+
+DWORD PXEAPI PxeSendReply(
+ HANDLE hClientRequest,
+ PVOID pPacket,
+ ULONG uPacketLen,
+ PXE_ADDRESS *pAddress
+);
+
+DWORD PXEAPI PxeRegisterCallback(
+ HANDLE hProvider,
+ PXE_CALLBACK_TYPE CallbackType,
+ PVOID pCallbackFunction,
+ PVOID pContext
+);
+
+typedef DWORD PXE_SEVERITY;
+#define PXE_TRACE_VERBOSE 0x00010000
+#define PXE_TRACE_INFO 0x00020000
+#define PXE_TRACE_WARNING 0x00040000
+#define PXE_TRACE_ERROR 0x00080000
+#define PXE_TRACE_FATAL 0x00100000
+
+/* Fixme: PXEAPI/WINAPI varargs?? */
+DWORD PXEAPI PxeTrace(
+ HANDLE hProvider,
+ PXE_SEVERITY Severity,
+ LPCWSTR pszFormat,
+ ...
+);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_WDSPXE*/
diff --git a/mingw-w64-headers/include/wdstci.h b/mingw-w64-headers/include/wdstci.h
new file mode 100644
index 0000000..693fccb
--- /dev/null
+++ b/mingw-w64-headers/include/wdstci.h
@@ -0,0 +1,146 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_WDSCLIENTAPI
+#define _INC_WDSCLIENTAPI
+#include <wdstpdi.h>
+#if (_WIN32_WINNT >= 0x0600)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef WDSTCIAPI
+#define WDSTCIAPI WINAPI
+#endif
+
+/* Wdstptc.dll is missing an implib because Vista clients don't have the dll to generate it from */
+
+typedef VOID (CALLBACK *PFN_WdsTransportClientReceiveContents)(
+ HANDLE hSessionKey,
+ PVOID pCallerData,
+ PVOID pMetadata,
+ ULONG ulSize,
+ PULARGE_INTEGER pContentOffset
+);
+
+typedef VOID (CALLBACK *PFN_WdsTransportClientReceiveMetadata)(
+ HANDLE hSessionKey,
+ PVOID pCallerData,
+ PVOID pMetadata,
+ ULONG ulSize
+);
+
+typedef VOID (CALLBACK *PFN_WdsTransportClientSessionComplete)(
+ HANDLE hSessionKey,
+ PVOID pCallerData,
+ DWORD dwError
+);
+
+typedef VOID (CALLBACK *PFN_WdsTransportClientSessionStart)(
+ HANDLE hSessionKey,
+ PVOID pCallerData,
+ PULARGE_INTEGER FileSize
+);
+
+typedef VOID (CALLBACK *PFN_WdsTransportClientSessionStartEx)(
+ HANDLE hSessionKey,
+ PVOID pCallerData,
+ PTRANSPORTCLIENT_SESSION_INFO Info
+);
+
+typedef enum _TRANSPORTCLIENT_CALLBACK_ID {
+ WDS_TRANSPORTCLIENT_SESSION_START = 0,
+ WDS_TRANSPORTCLIENT_RECEIVE_CONTENTS = 1,
+ WDS_TRANSPORTCLIENT_SESSION_COMPLETE = 2,
+ WDS_TRANSPORTCLIENT_RECEIVE_METADATA = 3,
+ WDS_TRANSPORTCLIENT_SESSION_STARTEX = 4,
+ WDS_TRANSPORTCLIENT_MAX_CALLBACKS = 5
+} TRANSPORTCLIENT_CALLBACK_ID,*PTRANSPORTCLIENT_CALLBACK_ID;
+
+typedef struct _TRANSPORTCLIENT_SESSION_INFO {
+ ULONG ulStructureLength;
+ ULARGE_INTEGER ullFileSize;
+ ULONG ulBlockSize;
+} TRANSPORTCLIENT_SESSION_INFO, *PTRANSPORTCLIENT_SESSION_INFO;
+
+#define WDS_TRANSPORT_CLIENT_CURRENT_API_VERSION 1
+
+#define WDS_TRANSPORTCLIENT_AUTH 1
+#define WDS_TRANSPORTCLIENT_NO_AUTH 2
+
+#define WDS_TRANSPORTCLIENT_PROTOCOL_MULTICAST 1
+
+typedef struct _WDS_TRANSPORTCLIENT_REQUEST {
+ ULONG ulLength;
+ ULONG ulApiVersion;
+ ULONG ulAuthLevel;
+ LPCWSTR pwszServer;
+ LPCWSTR pwszNamespace;
+ LPCWSTR pwszObjectName;
+ ULONG ulCacheSize;
+ ULONG ulProtocol;
+ PVOID pvProtocolData;
+ ULONG ulProtocolDataLength;
+} WDS_TRANSPORTCLIENT_REQUEST, *PWDS_TRANSPORTCLIENT_REQUEST;
+
+DWORD WDSTCIAPI WdsTransportClientStartSession(
+ HANDLE hSessionKey
+);
+
+DWORD WDSTCIAPI WdsTransportClientAddRefBuffer(
+ PVOID pvBuffer
+);
+
+DWORD WDSTCIAPI WdsTransportClientCancelSession(
+ HANDLE hSessionKey
+);
+
+DWORD WDSTCIAPI WdsTransportClientCloseSession(
+ HANDLE hSessionKey
+);
+
+DWORD WDSTCIAPI WdsTransportClientCompleteReceive(
+ HANDLE hSessionKey,
+ HANDLE ulSize,
+ PULARGE_INTEGER pullOffset
+);
+
+DWORD WDSTCIAPI WdsTransportClientInitialize(void);
+
+DWORD WDSTCIAPI WdsTransportClientInitializeSession(
+ PWDS_TRANSPORTCLIENT_REQUEST pSessionRequest,
+ PVOID pCallerData,
+ PHANDLE hSessionKey
+);
+
+DWORD WDSTCIAPI WdsTransportClientQueryStatus(
+ HANDLE hSessionKey,
+ PULONG puStatus,
+ PULONG puErrorCode
+);
+
+DWORD WDSTCIAPI WdsTransportClientRegisterCallback(
+ HANDLE hSessionKey,
+ TRANSPORTCLIENT_CALLBACK_ID CallbackId,
+ PVOID pfnCallback
+);
+
+DWORD WDSTCIAPI WdsTransportClientReleaseBuffer(
+ PVOID pvBuffer
+);
+
+DWORD WDSTCIAPI WdsTransportClientShutdown(void);
+
+DWORD WDSTCIAPI WdsTransportClientWaitForCompletion(
+ HANDLE hSessionKey,
+ ULONG uTimeout
+);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_WDSCLIENTAPI*/
diff --git a/mingw-w64-headers/include/wdstpdi.h b/mingw-w64-headers/include/wdstpdi.h
new file mode 100644
index 0000000..6c97d9d
--- /dev/null
+++ b/mingw-w64-headers/include/wdstpdi.h
@@ -0,0 +1,97 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+
+#ifndef _INC_WDSTPDI
+#define _INC_WDSTPDI
+#if (_WIN32_WINNT >= 0x0600)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Wdsmc.dll is missing an implib because Vista clients don't have the dll to generate it from */
+
+#ifndef WDSMCSAPI
+#define WDSMCSAPI WINAPI
+#endif
+
+typedef enum _TRANSPORTPROVIDER_CALLBACK_ID {
+ WDS_TRANSPORTPROVIDER_CREATE_INSTANCE = 0,
+ WDS_TRANSPORTPROVIDER_COMPARE_CONTENT = 1,
+ WDS_TRANSPORTPROVIDER_OPEN_CONTENT = 2,
+ WDS_TRANSPORTPROVIDER_USER_ACCESS_CHECK = 3,
+ WDS_TRANSPORTPROVIDER_GET_CONTENT_SIZE = 4,
+ WDS_TRANSPORTPROVIDER_READ_CONTENT = 5,
+ WDS_TRANSPORTPROVIDER_CLOSE_CONTENT = 6,
+ WDS_TRANSPORTPROVIDER_CLOSE_INSTANCE = 7,
+ WDS_TRANSPORTPROVIDER_SHUTDOWN = 8,
+ WDS_TRANSPORTPROVIDER_DUMP_STATE = 9,
+ WDS_TRANSPORTPROVIDER_REFRESH_SETTINGS = 10,
+ WDS_TRANSPORTPROVIDER_GET_CONTENT_METADATA = 11,
+ WDS_TRANSPORTPROVIDER_MAX_CALLBACKS = 12
+} TRANSPORTPROVIDER_CALLBACK_ID, *PTRANSPORTPROVIDER_CALLBACK_ID;
+
+typedef enum _WDS_MC_SEVERITY {
+ WDS_MC_TRACE_VERBOSE = 0x00010000,
+ WDS_MC_TRACE_INFO = 0x00020000,
+ WDS_MC_TRACE_WARNING = 0x00040000,
+ WDS_MC_TRACE_ERROR = 0x00080000,
+ WDS_MC_TRACE_FATAL = 0x00010000
+} WDS_MC_SEVERITY;
+
+typedef struct _WDS_TRANSPORTPROVIDER_INIT_PARAMS {
+ ULONG ulLength;
+ ULONG ulMcServerVersion;
+ HKEY hRegistryKey;
+ HANDLE hProvider;
+} WDS_TRANSPORTPROVIDER_INIT_PARAMS, *PWDS_TRANSPORTPROVIDER_INIT_PARAMS;
+
+typedef struct _WDS_TRANSPORTPROVIDER_SETTINGS {
+ ULONG ulLength;
+ ULONG ulLength;
+} WDS_TRANSPORTPROVIDER_SETTINGS, *PWDS_TRANSPORTPROVIDER_SETTINGS;
+
+PVOID WDSMCSAPI WdsTransportServerAllocateBuffer(
+ HANDLE hProvider,
+ ULONG ulBufferSize
+);
+
+HRESULT WDSMCSAPI WdsTransportServerCompleteRead(
+ HANDLE hProvider,
+ ULONG ulBytesRead,
+ PVOID pvUserData,
+ HRESULT hReadResult
+);
+
+HRESULT WDSMCSAPI WdsTransportServerFreeBuffer(
+ HANDLE hProvider,
+ PVOID pvBuffer
+);
+
+HRESULT WDSMCSAPI WdsTransportServerRegisterCallback(
+ HANDLE hProvider,
+ TRANSPORTPROVIDER_CALLBACK_ID CallbackId,
+ PVOID pfnCallback
+);
+
+HRESULT WDSMCSAPI WdsTransportServerTraceV(
+ HANDLE hProvider,
+ WDS_MC_SEVERITY Severity,
+ LPCWSTR pwszFormat,
+ va_list Params
+);
+
+HRESULT WDSMCSAPI WdsTransportServerTrace(
+ HANDLE hProvider,
+ WDS_MC_SEVERITY Severity,
+ LPCWSTR pwszFormat
+);
+
+#ifdef __cplusplus
+}
+#endi
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_WDSTPDI*/
diff --git a/mingw-w64-headers/include/wdstptmgmt.h b/mingw-w64-headers/include/wdstptmgmt.h
new file mode 100644
index 0000000..3e1a803
--- /dev/null
+++ b/mingw-w64-headers/include/wdstptmgmt.h
@@ -0,0 +1,75 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+
+#ifndef _INC_WDSTPTMGMT
+#define _INC_WDSTPTMGMT
+#if (_WIN32_WINNT >= 0x0600)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum _WDSTRANSPORT_DIAGNOSTICS_COMPONENT_FLAGS {
+ WdsTptDiagnosticsComponentPxe = 1,
+ WdsTptDiagnosticsComponentTftp = 2,
+ WdsTptDiagnosticsComponentImageServer = 4,
+ WdsTptDiagnosticsComponentMulticast = 8
+} WDSTRANSPORT_DIAGNOSTICS_COMPONENT_FLAGS;
+
+typedef enum _WDSTRANSPORT_DISCONNECT_TYPE {
+ WdsTptDisconnectUnknown = 0,
+ WdsTptDisconnectFallback = 1,
+ WdsTptDisconnectAbort = 2
+} WDSTRANSPORT_DISCONNECT_TYPE;
+
+typedef enum _WDSTRANSPORT_FEATURE_FLAGS {
+ WdsTptFeatureAdminPack = 1,
+ WdsTptFeatureTransportServer = 2,
+ WdsTptFeatureDeploymentServer = 4
+} WDSTRANSPORT_FEATURE_FLAGS;
+
+typedef enum _WDSTRANSPORT_IP_ADDRESS_SOURCE_TYPE {
+ WdsTptIpAddressSourceUnknown = 0,
+ WdsTptIpAddressSourceDhcp = 1,
+ WdsTptIpAddressSourceRange = 2
+} WDSTRANSPORT_IP_ADDRESS_SOURCE_TYPE;
+
+typedef enum _WDSTRANSPORT_IP_ADDRESS_TYPE {
+ WdsTptIpAddressUnknown = 0,
+ WdsTptIpAddressIpv4 = 1,
+ WdsTptIpAddressIpv6 = 2
+} WDSTRANSPORT_IP_ADDRESS_TYPE;
+
+typedef enum _WDSTRANSPORT_NAMESPACE_TYPE {
+ WdsTptNamespaceTypeUnknown = 0,
+ WdsTptNamespaceTypeAutoCast = 1,
+ WdsTptNamespaceTypeScheduledCastManualStart = 2,
+ WdsTptNamespaceTypeScheduledCastAutoStart = 3
+} WDSTRANSPORT_NAMESPACE_TYPE;
+
+typedef enum _WDSTRANSPORT_NETWORK_PROFILE_TYPE {
+ WdsTptNetworkProfileUnknown = 0,
+ WdsTptNetworkProfileCustom = 1,
+ WdsTptNetworkProfile10Mbps = 2,
+ WdsTptNetworkProfile100Mbps = 3,
+ WdsTptNetworkProfile1Gbps = 4
+} WDSTRANSPORT_NETWORK_PROFILE_TYPE;
+
+typedef enum _WDSTRANSPORT_PROTOCOL_FLAGS {
+ WdsTptProtocolUnicast = 1,
+ WdsTptProtocolMulticast = 2
+} WDSTRANSPORT_PROTOCOL_FLAGS;
+
+typedef enum _WDSTRANSPORT_SERVICE_NOTIFICATION {
+ WdsTptServiceNotifyUnknown = 0,
+ WdsTptServiceNotifyReadSettings = 1
+} WDSTRANSPORT_SERVICE_NOTIFICATION;
+
+#ifdef __cplusplus
+}
+#endi
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_WDSTPTMGMT*/
diff --git a/mingw-w64-headers/include/werapi.h b/mingw-w64-headers/include/werapi.h
new file mode 100644
index 0000000..c4805c2
--- /dev/null
+++ b/mingw-w64-headers/include/werapi.h
@@ -0,0 +1,188 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_WERAPI
+#define _INC_WERAPI
+#if (_WIN32_WINNT >= 0x0600)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Guessed from http://msdn.microsoft.com/en-us/library/bb513623%28v=VS.85%29.aspx */
+typedef enum _WER_REGISTER_FILE_TYPE {
+ WerFileTypeHeapdump,
+ WerFileTypeMicrodump,
+ WerFileTypeMinidump,
+ WerRegFileTypeOther,
+ WerRegFileTypeUserDocument
+} WER_REGISTER_FILE_TYPE;
+
+/* Guessed from http://msdn.microsoft.com/en-us/library/bb513622%28VS.85%29.aspx */
+typedef enum _WER_DUMP_TYPE {
+ WerDumpTypeHeapDump,
+ WerDumpTypeMicroDump,
+ WerDumpTypeMiniDump,
+} WER_DUMP_TYPE;
+
+/* Guessed from http://msdn.microsoft.com/en-us/library/bb513627%28v=VS.85%29.aspx */
+typedef enum _WER_REPORT_UI {
+ WerUIAdditionalDataDlgHeader,
+ WerUICloseDlgBody,
+ WerUICloseDlgButtonText,
+ WerUICloseDlgHeader,
+ WerUICloseText,
+ WerUIConsentDlgBody,
+ WerUIConsentDlgHeader,
+ WerUIIconFilePath,
+ WerUIOfflineSolutionCheckText,
+ WerUIOnlineSolutionCheckText
+} WER_REPORT_UI;
+
+/* Guessed from http://msdn.microsoft.com/en-us/library/bb513628%28v=VS.85%29.aspx */
+typedef enum _WER_CONSENT {
+ WerConsentApproved,
+ WerConsentDenied,
+ WerConsentNotAsked
+} WER_CONSENT;
+
+/* Guessed from http://msdn.microsoft.com/en-us/library/bb513628%28v=VS.85%29.aspx */
+typedef enum _WER_SUBMIT_RESULT {
+ WerDisabled,
+ WerDisabledQueue,
+ WerReportAsync,
+ WerReportCancelled,
+ WerReportDebug,
+ WerReportFailed,
+ WerReportQueued,
+ WerReportUploaded
+} WER_SUBMIT_RESULT;
+
+typedef struct _WER_DUMP_CUSTOM_OPTIONS {
+ DWORD dwSize;
+ DWORD dwMask;
+ DWORD dwDumpFlags;
+ WINBOOL bOnlyThisThread;
+ DWORD dwExceptionThreadFlags;
+ DWORD dwOtherThreadFlags;
+ DWORD dwExceptionThreadExFlags;
+ DWORD dwOtherThreadExFlags;
+ DWORD dwPreferredModuleFlags;
+ DWORD dwOtherModuleFlags;
+ WCHAR wzPreferredModuleList[WER_MAX_PREFERRED_MODULES_BUFFER];
+} WER_DUMP_CUSTOM_OPTIONS, *PWER_DUMP_CUSTOM_OPTIONS;
+
+typedef struct _WER_EXCEPTION_INFORMATION {
+ PEXCEPTION_POINTERS pExceptionPointers;
+ WINBOOL bClientPointers;
+} WER_EXCEPTION_INFORMATION, *PWER_EXCEPTION_INFORMATION;
+
+typedef struct _WER_REPORT_INFORMATION {
+ DWORD dwSize;
+ HANDLE hProcess;
+ WCHAR wzConsentKey[64];
+ WCHAR wzFriendlyEventName[128];
+ WCHAR wzApplicationName[128];
+ WCHAR wzApplicationPath[MAX_PATH];
+ WCHAR wzDescription[512];
+ HWND hwndParent;
+} WER_REPORT_INFORMATION, *PWER_REPORT_INFORMATION;
+
+HRESULT WINAPI WerAddExcludedApplication(
+ PCWSTR pwzExeName,
+ WINBOOL bAllUsers
+);
+
+HRESULT WINAPI WerGetFlags(
+ HANDLE hProcess,
+ PDWORD pdwFlags
+);
+
+HRESULT WINAPI WerRegisterFile(
+ PCWSTR pwzFile,
+ WER_REGISTER_FILE_TYPE regFileType,
+ DWORD dwFlags
+);
+
+HRESULT WINAPI WerRegisterMemoryBlock(
+ PVOID pvAddress,
+ DWORD dwSize
+);
+
+HRESULT WINAPI WerRemoveExcludedApplication(
+ PCWSTR pwzExeName,
+ WINBOOL bAllUsers
+);
+
+HRESULT WINAPI WerReportAddDump(
+ HREPORT hReportHandle,
+ HANDLE hProcess,
+ HANDLE hThread,
+ WER_DUMP_TYPE dumpType,
+ PWER_EXCEPTION_INFORMATION pExceptionParam,
+ PWER_DUMP_CUSTOM_OPTIONS pDumpCustomOptions,
+ DWORD dwFlags
+);
+
+HRESULT WINAPI WerReportAddFile(
+ HREPORT hReportHandle,
+ PCWSTR pwzPath,
+ WER_FILE_TYPE repFileType,
+ DWORD dwFileFlags
+);
+
+HRESULT WINAPI WerReportCloseHandle(
+ HREPORT hReportHandle
+);
+
+HRESULT WINAPI WerReportCreate(
+ PCWSTR pwzEventType,
+ WER_REPORT_TYPE repType,
+ PWER_REPORT_INFORMATION pReportInformation,
+ HREPORT *phReportHandle
+);
+
+HRESULT WINAPI WerReportHang(
+ HWND hwndHungWindow,
+ PCWSTR wszHungApplicationName
+);
+
+HRESULT WINAPI WerReportSetParameter(
+ HREPORT hReportHandle,
+ DWORD dwparamID,
+ PCWSTR pwzName,
+ PCWSTR pwzValue
+);
+
+HRESULT WINAPI WerReportSetUIOption(
+ HREPORT hReportHandle,
+ WER_REPORT_UI repUITypeID,
+ PCWSTR pwzValue
+);
+
+HRESULT WINAPI WerReportSubmit(
+ HREPORT hReportHandle,
+ WER_CONSENT consent,
+ DWORD dwFlags,
+ PWER_SUBMIT_RESULT pSubmitResult
+);
+
+HRESULT WINAPI WerSetFlags(
+ DWORD dwFlags
+);
+
+HRESULT WINAPI WerUnregisterFile(
+ PCWSTR pwzFilePath
+);
+
+HRESULT WINAPI WerUnregisterMemoryBlock(
+ PVOID pvAddress
+);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_WERAPI*/
diff --git a/mingw-w64-headers/include/winbase.h b/mingw-w64-headers/include/winbase.h
index 2ecf4b6..c98557f 100644
--- a/mingw-w64-headers/include/winbase.h
+++ b/mingw-w64-headers/include/winbase.h
@@ -2732,11 +2732,24 @@
#if (_WIN32_WINNT >= 0x0600)
#define SYMBOLIC_LINK_FLAG_FILE 0x0
#define SYMBOLIC_LINK_FLAG_DIRECTORY 0x1
+#define EXTENDED_STARTUPINFO_PRESENT 0x00080000
#define CreateSymbolicLink __MINGW_NAME_AW(CreateSymbolicLink)
#define CreateBoundaryDescriptor __MINGW_NAME_AW(CreateBoundaryDescriptor)
#define OpenPrivateNamespace __MINGW_NAME_AW(OpenPrivateNamespace)
#define CreatePrivateNamespace __MINGW_NAME_AW(CreatePrivateNamespace)
+#define CopyFileTransacted __MINGW_NAME_AW(CopyFileTransacted)
+#define CreateDirectoryTransacted __MINGW_NAME_AW(CreateDirectoryTransacted)
+#define CreateEventEx __MINGW_NAME_AW(CreateEventEx)
+#define CreateFileMappingNuma __MINGW_NAME_AW(CreateFileMappingNuma)
+#define CreateFileTransacted __MINGW_NAME_AW(CreateFileTransacted)
+#define CreateHardLinkTransacted __MINGW_NAME_AW(CreateHardLinkTransacted)
+#define DeleteFileTransacted __MINGW_NAME_AW(DeleteFileTransacted)
+#define CreateMutexEx __MINGW_NAME_AW(CreateMutexEx)
+#define CreateSemaphoreEx __MINGW_NAME_AW(CreateSemaphoreEx)
+#define CreateSymbolicLinkTransacted __MINGW_NAME_AW(CreateSymbolicLinkTransacted)
+#define CreateWaitableTimerEx __MINGW_NAME_AW(CreateWaitableTimerEx)
+#define FindFirstFileTransacted __MINGW_NAME_AW(FindFirstFileTransacted)
WINBASEAPI BOOLEAN WINAPI CreateSymbolicLinkA (LPSTR lpSymLinkFileName, LPSTR lpTargetFileName, DWORD dwFlags);
WINBASEAPI BOOLEAN WINAPI CreateSymbolicLinkW (LPWSTR lpSymLinkFileName, LPWSTR lpTargetFileName, DWORD dwFlags);
@@ -2797,6 +2810,1204 @@
WINBASEAPI VOID WINAPI ApplicationRecoveryFinished(WINBOOL bSuccess);
WINBASEAPI HRESULT WINAPI ApplicationRecoveryInProgress(PBOOL pbCanceled);
+WINBASEAPI WINBOOL WINAPI QueryIdleProcessorCycleTime(PULONG BufferLength,PULONG64 ProcessorIdleCycleTime);
+WINBASEAPI WINBOOL WINAPI QueryProcessCycleTime(HANDLE ProcessHandle,PULONG64 CycleTime);
+WINBASEAPI WINBOOL WINAPI QueryThreadCycleTime(HANDLE ThreadHandle,PULONG64 CycleTime);
+
+#if (_WIN32_WINNT >= 0x0601)
+WINBASEAPI WINBOOL WINAPI QueryIdleProcessorCycleTimeEx(USHORT Group,PULONG BufferLength,PULONG64 ProcessorIdleCycleTime);
+#endif
+
+typedef struct _TP_IO *PTP_IO;
+typedef struct _TP_CALLBACK_INSTANCE *PTP_CALLBACK_INSTANCE;
+typedef struct _TP_WIN32_IO_CALLBACK *PTP_WIN32_IO_CALLBACK;
+typedef struct _TP_CALLBACK_ENVIRON *PTP_CALLBACK_ENVIRON;
+typedef struct _TP_CLEANUP_GROUP *PTP_CLEANUP_GROUP;
+typedef struct _TP_CLEANUP_GROUP_CANCEL_CALLBACK *PTP_CLEANUP_GROUP_CANCEL_CALLBACK;
+typedef struct _TP_TIMER *PTP_TIMER;
+typedef struct _TP_WAIT *PTP_WAIT;
+typedef struct _TP_WORK *PTP_WORK;
+typedef struct _TP_POOL *PTP_POOL;
+
+typedef DWORD TP_WAIT_RESULT;
+typedef VOID (CALLBACK *PTP_WAIT_CALLBACK)(
+ PTP_CALLBACK_INSTANCE Instance,
+ PVOID Context,
+ PTP_WAIT Wait,
+ TP_WAIT_RESULT WaitResult
+);
+
+typedef VOID (CALLBACK *PTP_WORK_CALLBACK)(
+ PTP_CALLBACK_INSTANCE Instance,
+ PVOID Context,
+ PTP_WORK Work
+);
+
+typedef VOID (CALLBACK *PTP_TIMER_CALLBACK)(
+ PTP_CALLBACK_INSTANCE Instance,
+ PVOID Context,
+ PTP_TIMER Timer
+);
+
+#define PRIVATE_NAMESPACE_FLAG_DESTROY 0x00000001
+
+WINBASEAPI WINBOOL WINAPI CallbackMayRunLong(PTP_CALLBACK_INSTANCE pci);
+WINBASEAPI WINBOOL WINAPI CancelIoEx(HANDLE hFile,LPOVERLAPPED lpOverlapped);
+WINBASEAPI WINBOOL WINAPI CancelSynchronousIo(HANDLE hThread);
+WINBASEAPI VOID WINAPI CancelThreadpoolIo(PTP_IO pio);
+WINBASEAPI PTP_IO WINAPI CreateThreadpoolIo(HANDLE fl,PTP_WIN32_IO_CALLBACK pfnio,PVOID pv,PTP_CALLBACK_ENVIRON pcbe);
+WINBASEAPI VOID WINAPI CloseThreadpool(PTP_POOL ptpp);
+WINBASEAPI PTP_POOL WINAPI CreateThreadpool(PVOID reserved);
+WINBASEAPI VOID WINAPI CloseThreadpoolCleanupGroup(PTP_CLEANUP_GROUP ptpcg);
+WINBASEAPI VOID WINAPI CloseThreadpoolCleanupGroupMembers(PTP_CLEANUP_GROUP ptpcg,WINBOOL fCancelPendingCallbacks,PVOID pvCleanupContext);
+WINBASEAPI VOID WINAPI CloseThreadpoolIo(PTP_IO pio);
+WINBASEAPI VOID WINAPI CloseThreadpoolTimer(PTP_TIMER pti);
+WINBASEAPI VOID WINAPI CloseThreadpoolWait(PTP_WAIT pwa);
+WINBASEAPI VOID WINAPI CloseThreadpoolWork(PTP_WORK pwk);
+
+
+WINBASEAPI PTP_CLEANUP_GROUP WINAPI CreateThreadpoolCleanupGroup(void);
+WINBASEAPI PTP_WAIT WINAPI CreateThreadpoolWait(PTP_WAIT_CALLBACK pfnwa,PVOID pv,PTP_CALLBACK_ENVIRON pcbe);
+WINBASEAPI PTP_WORK WINAPI CreateThreadpoolWork(PTP_WORK_CALLBACK pfnwk,PVOID pv,PTP_CALLBACK_ENVIRON pcbe);
+WINBASEAPI PTP_TIMER WINAPI CreateThreadpoolTimer(PTP_TIMER_CALLBACK pfnti,PVOID pv,PTP_CALLBACK_ENVIRON pcbe);
+
+WINBASEAPI LPVOID WINAPI ConvertThreadToFiberEx(
+ LPVOID lpParameter,
+ DWORD dwFlags
+);
+
+WINBASEAPI VOID WINAPI SubmitThreadpoolWork(PTP_WORK pwk);
+
+WINBASEAPI WINBOOL WINAPI CopyFileTransactedA(
+ LPCSTR lpExistingFileName,
+ LPCSTR lpNewFileName,
+ LPPROGRESS_ROUTINE lpProgressRoutine,
+ LPVOID lpData,
+ LPBOOL pbCancel,
+ DWORD dwCopyFlags,
+ HANDLE hTransaction
+);
+
+WINBASEAPI WINBOOL WINAPI CopyFileTransactedW(
+ LPCWSTR lpExistingFileName,
+ LPCWSTR lpNewFileName,
+ LPPROGRESS_ROUTINE lpProgressRoutine,
+ LPVOID lpData,
+ LPBOOL pbCancel,
+ DWORD dwCopyFlags,
+ HANDLE hTransaction
+);
+
+WINBASEAPI WINBOOL WINAPI CreateDirectoryTransactedA(
+ LPCSTR lpTemplateDirectory,
+ LPCSTR lpNewDirectory,
+ LPSECURITY_ATTRIBUTES lpSecurityAttributes,
+ HANDLE hTransaction
+);
+
+WINBASEAPI WINBOOL WINAPI CreateDirectoryTransactedW(
+ LPCWSTR lpTemplateDirectory,
+ LPCWSTR lpNewDirectory,
+ LPSECURITY_ATTRIBUTES lpSecurityAttributes,
+ HANDLE hTransaction
+);
+
+#define CREATE_EVENT_INITIAL_SET 0x00000002
+#define CREATE_EVENT_MANUAL_RESET 0x00000001
+
+WINBASEAPI HANDLE WINAPI CreateEventExA(
+ LPSECURITY_ATTRIBUTES lpEventAttributes,
+ LPCSTR lpName,
+ DWORD dwFlags,
+ DWORD dwDesiredAccess
+);
+
+WINBASEAPI HANDLE WINAPI CreateEventExW(
+ LPSECURITY_ATTRIBUTES lpEventAttributes,
+ LPCWSTR lpName,
+ DWORD dwFlags,
+ DWORD dwDesiredAccess
+);
+
+WINBASEAPI HANDLE WINAPI CreateFileMappingNumaA(
+ HANDLE hFile,
+ LPSECURITY_ATTRIBUTES lpFileMappingAttributes,
+ DWORD flProtect,
+ DWORD dwMaximumSizeHigh,
+ DWORD dwMaximumSizeLow,
+ LPCSTR lpName,
+ DWORD nndPreferred
+);
+
+WINBASEAPI HANDLE WINAPI CreateFileMappingNumaW(
+ HANDLE hFile,
+ LPSECURITY_ATTRIBUTES lpFileMappingAttributes,
+ DWORD flProtect,
+ DWORD dwMaximumSizeHigh,
+ DWORD dwMaximumSizeLow,
+ LPCWSTR lpName,
+ DWORD nndPreferred
+);
+
+
+#define TXFS_MINIVERSION_COMMITTED_VIEW 0x0000
+#define TXFS_MINIVERSION_DIRTY_VIEW 0xFFFE
+#define TXFS_MINIVERSION_DEFAULT_VIEW 0xFFFF
+
+WINBASEAPI HANDLE WINAPI CreateFileTransactedA(
+ LPCSTR lpFileName,
+ DWORD dwDesiredAccess,
+ DWORD dwShareMode,
+ LPSECURITY_ATTRIBUTES lpSecurityAttributes,
+ DWORD dwCreationDisposition,
+ DWORD dwFlagsAndAttributes,
+ HANDLE hTemplateFile,
+ HANDLE hTransaction,
+ PUSHORT pusMiniVersion,
+ PVOID pExtendedParameter
+);
+
+WINBASEAPI HANDLE WINAPI CreateFileTransactedW(
+ LPCWSTR lpFileName,
+ DWORD dwDesiredAccess,
+ DWORD dwShareMode,
+ LPSECURITY_ATTRIBUTES lpSecurityAttributes,
+ DWORD dwCreationDisposition,
+ DWORD dwFlagsAndAttributes,
+ HANDLE hTemplateFile,
+ HANDLE hTransaction,
+ PUSHORT pusMiniVersion,
+ PVOID pExtendedParameter
+);
+
+WINBASEAPI WINBOOL WINAPI CreateHardLinkTransactedA(
+ LPCSTR lpFileName,
+ LPCSTR lpExistingFileName,
+ LPSECURITY_ATTRIBUTES lpSecurityAttributes,
+ HANDLE hTransaction
+);
+
+WINBASEAPI WINBOOL WINAPI CreateHardLinkTransactedW(
+ LPCWSTR lpFileName,
+ LPCWSTR lpExistingFileName,
+ LPSECURITY_ATTRIBUTES lpSecurityAttributes,
+ HANDLE hTransaction
+);
+
+WINBASEAPI HANDLE WINAPI CreateTransaction(
+ LPSECURITY_ATTRIBUTES lpTransactionAttributes,
+ LPGUID UOW,
+ DWORD CreateOptions,
+ DWORD IsolationLevel,
+ DWORD IsolationFlags,
+ DWORD Timeout,
+ LPWSTR Description
+);
+
+WINBASEAPI WINBOOL WINAPI DeleteFileTransactedA(
+ LPCSTR lpFileName,
+ HANDLE hTransaction
+);
+
+WINBASEAPI WINBOOL WINAPI DeleteFileTransactedW(
+ LPCWSTR lpFileName,
+ HANDLE hTransaction
+);
+
+WINBASEAPI HANDLE WINAPI CreateMutexExA(
+ LPSECURITY_ATTRIBUTES lpMutexAttributes,
+ LPCTSTR lpName,
+ DWORD dwFlags,
+ DWORD dwDesiredAccess
+);
+
+WINBASEAPI HANDLE WINAPI CreateMutexExW(
+ LPSECURITY_ATTRIBUTES lpMutexAttributes,
+ LPCWSTR lpName,
+ DWORD dwFlags,
+ DWORD dwDesiredAccess
+);
+
+WINBASEAPI HANDLE WINAPI CreateSemaphoreExA(
+ LPSECURITY_ATTRIBUTES lpSemaphoreAttributes,
+ LONG lInitialCount,
+ LONG lMaximumCount,
+ LPCSTR lpName,
+ DWORD dwFlags,
+ DWORD dwDesiredAccess
+);
+
+WINBASEAPI HANDLE WINAPI CreateSemaphoreExW(
+ LPSECURITY_ATTRIBUTES lpSemaphoreAttributes,
+ LONG lInitialCount,
+ LONG lMaximumCount,
+ LPCWSTR lpName,
+ DWORD dwFlags,
+ DWORD dwDesiredAccess
+);
+
+WINBASEAPI BOOLEAN WINAPI CreateSymbolicLinkTransactedW(
+ LPWSTR lpSymlinkFileName,
+ LPWSTR lpTargetFileName,
+ DWORD dwFlags,
+ HANDLE hTransaction
+);
+
+WINBASEAPI BOOLEAN WINAPI CreateSymbolicLinkTransactedA(
+ LPSTR lpSymlinkFileName,
+ LPSTR lpTargetFileName,
+ DWORD dwFlags,
+ HANDLE hTransaction
+);
+
+WINBASEAPI HANDLE WINAPI CreateWaitableTimerExA(
+ LPSECURITY_ATTRIBUTES lpTimerAttributes,
+ LPCSTR lpTimerName,
+ DWORD dwFlags,
+ DWORD dwDesiredAccess
+);
+
+WINBASEAPI HANDLE WINAPI CreateWaitableTimerExW(
+ LPSECURITY_ATTRIBUTES lpTimerAttributes,
+ LPCWSTR lpTimerName,
+ DWORD dwFlags,
+ DWORD dwDesiredAccess
+);
+
+#define DeleteFileTransacted __MINGW_NAME_AW(DeleteFileTransacted)
+
+WINBASEAPI WINBOOL WINAPI DeleteFileTransactedW(
+ LPCWSTR lpFileName,
+ HANDLE hTransaction
+);
+
+WINBASEAPI WINBOOL WINAPI DeleteFileTransactedA(
+ LPCSTR lpFileName,
+ HANDLE hTransaction
+);
+
+WINBASEAPI VOID WINAPI DestroyThreadpoolEnvironment(
+ PTP_CALLBACK_ENVIRON pcbe
+);
+
+WINBASEAPI VOID WINAPI DisassociateCurrentThreadFromCallback(
+ PTP_CALLBACK_INSTANCE pci
+);
+
+typedef enum _FILE_ID_TYPE {
+ FileIdType,
+ ObjectIdType,
+ MaximumFileIdType
+} FILE_ID_TYPE, *PFILE_ID_TYPE;
+
+typedef struct _TIME_DYNAMIC_ZONE_INFORMATION {
+ LONG Bias;
+ WCHAR StandardName[32];
+ SYSTEMTIME StandardDate;
+ LONG StandardBias;
+ WCHAR DaylightName[32];
+ SYSTEMTIME DaylightDate;
+ LONG DaylightBias;
+ WCHAR TimeZoneKeyName[128];
+ BOOLEAN DynamicDaylightTimeDisabled;
+} DYNAMIC_TIME_ZONE_INFORMATION, *PDYNAMIC_TIME_ZONE_INFORMATION;
+
+typedef struct _FILE_ALLOCATION_INFO {
+ LARGE_INTEGER AllocationSize;
+} FILE_ALLOCATION_INFO, *PFILE_ALLOCATION_INFO;
+
+typedef struct _FILE_ATTRIBUTE_TAG_INFO {
+ DWORD FileAttributes;
+ DWORD ReparseTag;
+} FILE_ATTRIBUTE_TAG_INFO, *PFILE_ATTRIBUTE_TAG_INFO;
+
+typedef struct _FILE_BASIC_INFO {
+ LARGE_INTEGER CreationTime;
+ LARGE_INTEGER LastAccessTime;
+ LARGE_INTEGER LastWriteTime;
+ LARGE_INTEGER ChangeTime;
+ DWORD FileAttributes;
+} FILE_BASIC_INFO, *PFILE_BASIC_INFO;
+
+typedef struct _FILE_COMPRESSION_INFO {
+ LARGE_INTEGER CompressedFileSize;
+ WORD CompressionFormat;
+ UCHAR CompressionUnitShift;
+ UCHAR ChunkShift;
+ UCHAR ClusterShift;
+ UCHAR Reserved[3];
+} FILE_COMPRESSION_INFO, *PFILE_COMPRESSION_INFO;
+
+typedef struct _FILE_DISPOSITION_INFO {
+ WINBOOL DeleteFile;
+} FILE_DISPOSITION_INFO, *PFILE_DISPOSITION_INFO;
+
+typedef struct _FILE_END_OF_FILE_INFO {
+ LARGE_INTEGER EndOfFile;
+} FILE_END_OF_FILE_INFO, *PFILE_END_OF_FILE_INFO;
+
+typedef struct _FILE_ID_BOTH_DIR_INFO {
+ DWORD NextEntryOffset;
+ DWORD FileIndex;
+ LARGE_INTEGER CreationTime;
+ LARGE_INTEGER LastAccessTime;
+ LARGE_INTEGER LastWriteTime;
+ LARGE_INTEGER ChangeTime;
+ LARGE_INTEGER EndOfFile;
+ LARGE_INTEGER AllocationSize;
+ DWORD FileAttributes;
+ DWORD FileNameLength;
+ DWORD EaSize;
+ CCHAR ShortNameLength;
+ WCHAR ShortName[12];
+ LARGE_INTEGER FileId;
+ WCHAR FileName[1];
+} FILE_ID_BOTH_DIR_INFO, *PFILE_ID_BOTH_DIR_INFO;
+
+typedef struct _FILE_ID_DESCRIPTOR{
+ DWORD dwSize;
+ FILE_ID_TYPE Type;
+ __MINGW_EXTENSION union {
+ LARGE_INTEGER FileId;
+ GUID ObjectId;
+ };
+} FILE_ID_DESCRIPTOR, *LPFILE_ID_DESCRIPTOR;
+
+typedef enum _FILE_INFO_BY_HANDLE_CLASS {
+ FileBasicInfo = 0,
+ FileStandardInfo = 1,
+ FileNameInfo = 2,
+ FileRenameInfo = 3,
+ FileDispositionInfo = 4,
+ FileAllocationInfo = 5,
+ FileEndOfFileInfo = 6,
+ FileStreamInfo = 7,
+ FileCompressionInfo = 8,
+ FileAttributeTagInfo = 9,
+ FileIdBothDirectoryInfo = 10, // 0xA
+ FileIdBothDirectoryRestartInfo = 11, // 0xB
+ FileIoPriorityHintInfo = 12, // 0xC
+ FileRemoteProtocolInfo = 13, // 0xD
+ MaximumFileInfoByHandlesClass = 14 // 0xE
+} FILE_INFO_BY_HANDLE_CLASS, *PFILE_INFO_BY_HANDLE_CLASS;
+
+typedef enum _PRIORITY_HINT {
+ IoPriorityHintVeryLow = 0,
+ IoPriorityHintLow,
+ IoPriorityHintNormal,
+ MaximumIoPriorityHintType
+} PRIORITY_HINT;
+
+typedef struct _FILE_IO_PRIORITY_HINT_INFO {
+ PRIORITY_HINT PriorityHint;
+} FILE_IO_PRIORITY_HINT_INFO, *PFILE_IO_PRIORITY_HINT_INFO;
+
+typedef struct _FILE_NAME_INFO {
+ DWORD FileNameLength;
+ WCHAR FileName[1];
+} FILE_NAME_INFO, *PFILE_NAME_INFO;
+
+typedef struct _FILE_RENAME_INFO {
+ BOOL ReplaceIfExists;
+ HANDLE RootDirectory;
+ DWORD FileNameLength;
+ WCHAR FileName[1];
+} FILE_RENAME_INFO, *PFILE_RENAME_INFO;
+
+typedef struct _FILE_STANDARD_INFO {
+ LARGE_INTEGER AllocationSize;
+ LARGE_INTEGER EndOfFile;
+ DWORD NumberOfLinks;
+ WINBOOL DeletePending;
+ WINBOOL Directory;
+} FILE_STANDARD_INFO, *PFILE_STANDARD_INFO;
+
+typedef struct _FILE_STREAM_INFO {
+ DWORD NextEntryOffset;
+ DWORD StreamNameLength;
+ LARGE_INTEGER StreamSize;
+ LARGE_INTEGER StreamAllocationSize;
+ WCHAR StreamName[1];
+} FILE_STREAM_INFO, *PFILE_STREAM_INFO;
+
+typedef struct _OVERLAPPED_ENTRY {
+ ULONG_PTR lpCompletionKey;
+ LPOVERLAPPED lpOverlapped;
+ ULONG_PTR Internal;
+ DWORD dwNumberOfBytesTransferred;
+} OVERLAPPED_ENTRY, *LPOVERLAPPED_ENTRY;
+
+WINBASEAPI HANDLE WINAPI FindFirstFileNameTransactedW(
+ LPCWSTR lpFileName,
+ DWORD dwFlags,
+ LPDWORD StringLength,
+ PWCHAR LinkName,
+ HANDLE hTransaction
+);
+
+WINBASEAPI HANDLE WINAPI FindFirstFileNameW(
+ LPCWSTR lpFileName,
+ DWORD dwFlags,
+ LPDWORD StringLength,
+ PWCHAR LinkName
+);
+
+WINBASEAPI HANDLE WINAPI FindFirstFileTransactedA(
+ LPCSTR lpFileName,
+ FINDEX_INFO_LEVELS fInfoLevelId,
+ LPVOID lpFindFileData,
+ FINDEX_SEARCH_OPS fSearchOp,
+ LPVOID lpSearchFilter,
+ DWORD dwAdditionalFlags,
+ HANDLE hTransaction
+);
+
+WINBASEAPI HANDLE WINAPI FindFirstFileTransactedW(
+ LPCWSTR lpFileName,
+ FINDEX_INFO_LEVELS fInfoLevelId,
+ LPVOID lpFindFileData,
+ FINDEX_SEARCH_OPS fSearchOp,
+ LPVOID lpSearchFilter,
+ DWORD dwAdditionalFlags,
+ HANDLE hTransaction
+);
+
+WINBASEAPI HANDLE WINAPI FindFirstStreamTransactedW(
+ LPCWSTR lpFileName,
+ STREAM_INFO_LEVELS InfoLevel,
+ LPVOID lpFindStreamData,
+ DWORD dwFlags,
+ HANDLE hTransaction
+);
+
+WINBASEAPI HANDLE WINAPI FindFirstStreamW(
+ LPCWSTR lpFileName,
+ STREAM_INFO_LEVELS InfoLevel,
+ LPVOID lpFindStreamData,
+ DWORD dwFlags
+);
+
+WINBASEAPI WINBOOL WINAPI FindNextFileNameW(
+ HANDLE hFindStream,
+ LPDWORD StringLength,
+ PWCHAR LinkName
+);
+
+WINBASEAPI WINBOOL WINAPI FindNextStreamW(
+ HANDLE hFindStream,
+ LPVOID lpFindStreamData
+);
+
+WINBASEAPI DWORD WINAPI FlsAlloc(
+ PFLS_CALLBACK_FUNCTION lpCallback
+);
+
+WINBASEAPI WINBOOL WINAPI FlsFree(
+ DWORD dwFlsIndex
+);
+
+WINBASEAPI PVOID WINAPI FlsGetValue(
+ DWORD dwFlsIndex
+);
+
+WINBASEAPI WINBOOL WINAPI FlsSetValue(
+ DWORD dwFlsIndex,
+ PVOID lpFlsData
+);
+
+WINBASEAPI VOID WINAPI FlushProcessWriteBuffers(void);
+
+WINBASEAPI VOID WINAPI FreeLibraryWhenCallbackReturns(
+ PTP_CALLBACK_INSTANCE pci,
+ HMODULE mod
+);
+
+WINBASEAPI HRESULT WINAPI GetApplicationRecoveryCallback(
+ HANDLE hProcess,
+ APPLICATION_RECOVERY_CALLBACK *pRecoveryCallback,
+ PVOID *ppvParameter,
+ DWORD dwPingInterval,
+ DWORD dwFlags
+);
+
+WINBASEAPI HRESULT WINAPI GetApplicationRestartSettings(
+ HANDLE hProcess,
+ PWSTR pwzCommandline,
+ PDWORD pcchSize,
+ PDWORD pdwFlags
+);
+
+#define RESTART_NO_CRASH 1
+#define RESTART_NO_HANG 2
+#define RESTART_NO_PATCH 4
+#define RESTART_NO_REBOOT 8
+
+WINBASEAPI HRESULT WINAPI RegisterApplicationRestart(
+ PCWSTR pwzCommandline,
+ DWORD dwFlags
+);
+
+#define GetCompressedFileSizeTransacted __MINGW_NAME_AW(GetCompressedFileSizeTransacted)
+
+WINBASEAPI DWORD WINAPI GetCompressedFileSizeTransactedA(
+ LPCTSTR lpFileName,
+ LPDWORD lpFileSizeHigh,
+ HANDLE hTransaction
+);
+
+WINBASEAPI DWORD WINAPI GetCompressedFileSizeTransactedW(
+ LPCWSTR lpFileName,
+ LPDWORD lpFileSizeHigh,
+ HANDLE hTransaction
+);
+
+WINBASEAPI DWORD WINAPI GetDynamicTimeZoneInformation(
+ PDYNAMIC_TIME_ZONE_INFORMATION pTimeZoneInformation
+);
+
+WINBASEAPI UINT WINAPI GetErrorMode(void);
+
+#define GetFileAttributesTransacted __MINGW_NAME_AW(GetFileAttributesTransacted)
+
+WINBASEAPI WINBOOL WINAPI GetFileAttributesTransactedA(
+ LPCSTR lpFileName,
+ GET_FILEEX_INFO_LEVELS fInfoLevelId,
+ LPVOID lpFileInformation,
+ HANDLE hTransaction
+);
+
+WINBASEAPI WINBOOL WINAPI GetFileAttributesTransactedW(
+ LPCWSTR lpFileName,
+ GET_FILEEX_INFO_LEVELS fInfoLevelId,
+ LPVOID lpFileInformation,
+ HANDLE hTransaction
+);
+
+WINBASEAPI WINBOOL WINAPI GetFileBandwidthReservation(
+ HANDLE hFile,
+ LPDWORD lpPeriodMilliseconds,
+ LPDWORD lpBytesPerPeriod,
+ LPBOOL pDiscardable,
+ LPDWORD lpTransferSize,
+ LPDWORD lpNumOutstandingRequests
+);
+
+WINBASEAPI WINBOOL WINAPI GetFileInformationByHandleEx(
+ HANDLE hFile,
+ FILE_INFO_BY_HANDLE_CLASS FileInformationClass,
+ LPVOID lpFileInformation,
+ DWORD dwBufferSize
+);
+
+#define GetFinalPathNameByHandle __MINGW_NAME_AW(GetFinalPathNameByHandle)
+#define VOLUME_NAME_DOS 0x0
+#define VOLUME_NAME_GUID 0x1
+#define VOLUME_NAME_NONE 0x2
+#define VOLUME_NAME_NT 0x3
+
+#define FILE_NAME_NORMALIZED 0x0
+#define FILE_NAME_OPENED 0x8
+
+WINBASEAPI DWORD WINAPI GetFinalPathNameByHandleA(
+ HANDLE hFile,
+ LPSTR lpszFilePath,
+ DWORD cchFilePath,
+ DWORD dwFlags
+);
+
+WINBASEAPI DWORD WINAPI GetFinalPathNameByHandleW(
+ HANDLE hFile,
+ LPWSTR lpszFilePath,
+ DWORD cchFilePath,
+ DWORD dwFlags
+);
+
+#define GetFullPathNameTransacted __MINGW_NAME_AW(GetFullPathNameTransacted)
+
+WINBASEAPI DWORD WINAPI GetFullPathNameTransactedA(
+ LPCSTR lpFileName,
+ DWORD nBufferLength,
+ LPSTR lpBuffer,
+ LPSTR *lpFilePart,
+ HANDLE hTransaction
+);
+
+WINBASEAPI DWORD WINAPI GetFullPathNameTransactedW(
+ LPCWSTR lpFileName,
+ DWORD nBufferLength,
+ LPWSTR lpBuffer,
+ LPWSTR *lpFilePart,
+ HANDLE hTransaction
+);
+
+#define GetLongPathNameTransacted __MINGW_NAME_AW(GetLongPathNameTransacted)
+
+WINBASEAPI DWORD WINAPI GetLongPathNameTransactedA(
+ LPCSTR lpszShortPath,
+ LPSTR lpszLongPath,
+ DWORD cchBuffer,
+ HANDLE hTransaction
+);
+
+WINBASEAPI DWORD WINAPI GetLongPathNameTransactedW(
+ LPCWSTR lpszShortPath,
+ LPWSTR lpszLongPath,
+ DWORD cchBuffer,
+ HANDLE hTransaction
+);
+
+#define GetNamedPipeClientComputerName __MINGW_NAME_AW(GetNamedPipeClientComputerName)
+
+WINBASEAPI WINBOOL WINAPI GetNamedPipeClientComputerNameA(
+ HANDLE Pipe,
+ LPSTR ClientComputerName,
+ ULONG ClientComputerNameLength
+);
+
+WINBASEAPI WINBOOL WINAPI GetNamedPipeClientComputerNameW(
+ HANDLE Pipe,
+ LPWSTR ClientComputerName,
+ ULONG ClientComputerNameLength
+);
+
+WINBASEAPI WINBOOL WINAPI GetNamedPipeClientProcessId(
+ HANDLE Pipe,
+ PULONG ClientProcessId
+);
+
+WINBASEAPI WINBOOL WINAPI GetNamedPipeClientSessionId(
+ HANDLE Pipe,
+ PULONG ClientSessionId
+);
+
+WINBASEAPI WINBOOL WINAPI GetNamedPipeServerProcessId(
+ HANDLE Pipe,
+ PULONG ServerProcessId
+);
+
+WINBASEAPI WINBOOL WINAPI GetNamedPipeServerSessionId(
+ HANDLE Pipe,
+ PULONG ServerSessionId
+);
+
+WINBASEAPI WINBOOL WINAPI GetNumaProximityNode(
+ ULONG ProximityId,
+ PUCHAR NodeNumber
+);
+
+WINBOOL WINAPI GetPhysicallyInstalledSystemMemory(
+ PULONGLONG TotalMemoryInKilobytes
+);
+
+typedef LPVOID PPROC_THREAD_ATTRIBUTE_LIST, LPPROC_THREAD_ATTRIBUTE_LIST;
+
+WINBASEAPI WINBOOL WINAPI UpdateProcThreadAttribute(
+ LPPROC_THREAD_ATTRIBUTE_LIST lpAttributeList,
+ DWORD dwFlags,
+ DWORD_PTR Attribute,
+ PVOID lpValue,
+ SIZE_T cbSize,
+ PVOID lpPreviousValue,
+ PSIZE_T lpReturnSize
+);
+
+WINBASEAPI WINBOOL WINAPI GetProductInfo(
+ DWORD dwOSMajorVersion,
+ DWORD dwOSMinorVersion,
+ DWORD dwSpMajorVersion,
+ DWORD dwSpMinorVersion,
+ PDWORD pdwReturnedProductType
+);
+
+WINBASEAPI WINBOOL WINAPI GetQueuedCompletionStatusEx(
+ HANDLE CompletionPort,
+ LPOVERLAPPED_ENTRY lpCompletionPortEntries,
+ ULONG ulCount,
+ PULONG ulNumEntriesRemoved,
+ DWORD dwMilliseconds,
+ WINBOOL fAlertable
+);
+
+WINBASEAPI WINBOOL WINAPI GetSystemRegistryQuota(
+ PDWORD pdwQuotaAllowed,
+ PDWORD pdwQuotaUsed
+);
+
+WINBASEAPI WINBOOL WINAPI GetSystemTimes(
+ LPFILETIME lpIdleTime,
+ LPFILETIME lpKernelTime,
+ LPFILETIME lpUserTime
+);
+
+WINBASEAPI ULONGLONG WINAPI GetTickCount64(void);
+
+WINBASEAPI WINBOOL WINAPI GetTimeZoneInformationForYear(
+ USHORT wYear,
+ PDYNAMIC_TIME_ZONE_INFORMATION pdtzi,
+ LPTIME_ZONE_INFORMATION ptzi
+);
+
+WINBASEAPI WINBOOL WINAPI GetVolumeInformationByHandleW(
+ HANDLE hFile,
+ LPWSTR lpVolumeNameBuffer,
+ DWORD nVolumeNameSize,
+ LPDWORD lpVolumeSerialNumber,
+ LPDWORD lpMaximumComponentLength,
+ LPDWORD lpFileSystemFlags,
+ LPWSTR lpFileSystemNameBuffer,
+ DWORD nFileSystemNameSize
+);
+
+WINBASEAPI VOID WINAPI LeaveCriticalSectionWhenCallbackReturns(
+ PTP_CALLBACK_INSTANCE pci,
+ PCRITICAL_SECTION pcs
+);
+
+WINBASEAPI LPVOID WINAPI MapViewOfFileExNuma(
+ HANDLE hFileMappingObject,
+ DWORD dwDesiredAccess,
+ DWORD dwFileOffsetHigh,
+ DWORD dwFileOffsetLow,
+ SIZE_T dwNumberOfBytesToMap,
+ LPVOID lpBaseAddress,
+ DWORD nndPreferred
+);
+
+#define MoveFileTransacted __MINGW_NAME_AW(MoveFileTransacted)
+
+WINBASEAPI WINBOOL WINAPI MoveFileTransactedA(
+ LPCSTR lpExistingFileName,
+ LPCSTR lpNewFileName,
+ LPPROGRESS_ROUTINE lpProgressRoutine,
+ LPVOID lpData,
+ DWORD dwFlags,
+ HANDLE hTransaction
+);
+
+WINBASEAPI WINBOOL WINAPI MoveFileTransactedW(
+ LPCWSTR lpExistingFileName,
+ LPCWSTR lpNewFileName,
+ LPPROGRESS_ROUTINE lpProgressRoutine,
+ LPVOID lpData,
+ DWORD dwFlags,
+ HANDLE hTransaction
+);
+
+WINBASEAPI HANDLE WINAPI OpenFileById(
+ HANDLE hFile,
+ LPFILE_ID_DESCRIPTOR lpFileID,
+ DWORD dwDesiredAccess,
+ DWORD dwShareMode,
+ LPSECURITY_ATTRIBUTES lpSecurityAttributes,
+ DWORD dwFlags
+);
+
+WINBASEAPI WINBOOL WINAPI QueryActCtxSettingsW(
+ DWORD dwFlags,
+ HANDLE hActCtx,
+ PCWSTR settingsNameSpace,
+ PCWSTR settingName,
+ PWSTR pvBuffer,
+ SIZE_T dwBuffer,
+ SIZE_T *pdwWrittenOrRequired
+);
+
+WINBASEAPI WINBOOL WINAPI QueryFullProcessImageNameA(
+ HANDLE hProcess,
+ DWORD dwFlags,
+ LPSTR lpExeName,
+ PDWORD lpdwSize
+);
+
+WINBASEAPI WINBOOL WINAPI QueryFullProcessImageNameW(
+ HANDLE hProcess,
+ DWORD dwFlags,
+ LPWSTR lpExeName,
+ PDWORD lpdwSize
+);
+#define QueryFullProcessImageName __MINGW_NAME_AW(QueryFullProcessImageName)
+
+WINBASEAPI WINBOOL WINAPI QueryProcessAffinityUpdateMode(
+ HANDLE ProcessHandle,
+ DWORD lpdwFlags
+);
+
+WINADVAPI VOID WINAPI QuerySecurityAccessMask(
+ SECURITY_INFORMATION SecurityInformation,
+ LPDWORD DesiredAccess
+);
+
+WINADVAPI VOID WINAPI ReleaseMutexWhenCallbackReturns(
+ PTP_CALLBACK_INSTANCE pci,
+ HANDLE mut
+);
+
+#define RemoveDirectoryTransacted __MINGW_NAME_AW(RemoveDirectoryTransacted)
+
+WINBASEAPI WINBOOL WINAPI RemoveDirectoryTransactedA(
+ LPCSTR lpPathName,
+ HANDLE hTransaction
+);
+
+WINBASEAPI WINBOOL WINAPI RemoveDirectoryTransactedW(
+ LPCWSTR lpPathName,
+ HANDLE hTransaction
+);
+
+WINBASEAPI HANDLE WINAPI ReOpenFile(
+ HANDLE hOriginalFile,
+ DWORD dwDesiredAccess,
+ DWORD dwShareMode,
+ DWORD dwFlags
+);
+
+WINBASEAPI WINBOOL WINAPI SetDynamicTimeZoneInformation(
+ const DYNAMIC_TIME_ZONE_INFORMATION *lpTimeZoneInformation
+);
+
+WINBASEAPI VOID WINAPI SetEventWhenCallbackReturns(
+ PTP_CALLBACK_INSTANCE pci,
+ HANDLE evt
+);
+
+WINBASEAPI WINBOOL WINAPI SetFileAttributesTransactedA(
+ LPCSTR lpFileName,
+ DWORD dwFileAttributes,
+ HANDLE hTransaction
+);
+
+WINBASEAPI WINBOOL WINAPI SetFileAttributesTransactedW(
+ LPCWSTR lpFileName,
+ DWORD dwFileAttributes,
+ HANDLE hTransaction
+);
+
+#define SetFileAttributesTransacted __MINGW_NAME_AW(SetFileAttributesTransacted)
+
+WINBASEAPI WINBOOL WINAPI SetFileBandwidthReservation(
+ HANDLE hFile,
+ DWORD nPeriodMilliseconds,
+ DWORD nBytesPerPeriod,
+ WINBOOL bDiscardable,
+ LPDWORD lpTransferSize,
+ LPDWORD lpNumOutstandingRequests
+);
+
+WINBASEAPI WINBOOL WINAPI SetFileCompletionNotificationModes(
+ HANDLE FileHandle,
+ UCHAR Flags
+);
+
+WINBASEAPI WINBOOL WINAPI SetFileInformationByHandle(
+ HANDLE hFile,
+ FILE_INFO_BY_HANDLE_CLASS FileInformationClass,
+ LPVOID lpFileInformation,
+ DWORD dwBufferSize
+);
+
+WINBASEAPI WINBOOL WINAPI SetFileIoOverlappedRange(
+ HANDLE FileHandle,
+ PUCHAR OverlappedRangeStart,
+ ULONG Length
+);
+
+#define PROCESS_AFFINITY_ENABLE_AUTO_UPDATE 0x00000001UL
+
+WINBASEAPI WINBOOL WINAPI SetProcessAffinityUpdateMode(
+ HANDLE ProcessHandle,
+ DWORD dwFlags
+);
+
+WINBASEAPI WINBOOL WINAPI SetProcessWorkingSetSizeEx(
+ HANDLE hProcess,
+ SIZE_T dwMinimumWorkingSetSize,
+ SIZE_T dwMaximumWorkingSetSize,
+ DWORD Flags
+);
+
+WINADVAPI VOID WINAPI SetSecurityAccessMask(
+ SECURITY_INFORMATION SecurityInformation,
+ LPDWORD DesiredAccess
+);
+
+/* INLINE - http://msdn.microsoft.com/en-us/library/ms686255%28v=VS.85%29.aspx */
+VOID SetThreadpoolCallbackCleanupGroup(
+ PTP_CALLBACK_ENVIRON pcbe,
+ PTP_CLEANUP_GROUP ptpcg,
+ PTP_CLEANUP_GROUP_CANCEL_CALLBACK pfng
+);
+
+/* INLINE - http://msdn.microsoft.com/en-us/library/ms686258%28v=VS.85%29.aspx */
+VOID SetThreadpoolCallbackLibrary(
+ PTP_CALLBACK_ENVIRON pcbe,
+ PVOID mod
+);
+
+/* INLINE - http://msdn.microsoft.com/en-us/library/ms686261%28v=VS.85%29.aspx */
+VOID SetThreadpoolCallbackPool(
+ PTP_CALLBACK_ENVIRON pcbe,
+ PTP_POOL ptpp
+);
+
+/* INLINE - http://msdn.microsoft.com/en-us/library/ms686263%28v=VS.85%29.aspx */
+VOID SetThreadpoolCallbackRunsLong(
+ PTP_CALLBACK_ENVIRON pcbe
+);
+
+WINBASEAPI VOID WINAPI SetThreadpoolThreadMaximum(
+ PTP_POOL ptpp,
+ DWORD cthrdMost
+);
+
+WINBASEAPI WINBOOL WINAPI SetThreadpoolThreadMinimum(
+ PTP_POOL ptpp,
+ DWORD cthrdMic
+);
+
+WINBASEAPI VOID WINAPI SetThreadpoolTimer(
+ PTP_TIMER pti,
+ PFILETIME pftDueTime,
+ DWORD msPeriod,
+ DWORD msWindowLength
+);
+
+WINBASEAPI VOID WINAPI SetThreadpoolWait(
+ PTP_WAIT pwa,
+ HANDLE h,
+ PFILETIME pftTimeout
+);
+
+typedef VOID (CALLBACK *PTP_SIMPLE_CALLBACK)(
+ PTP_CALLBACK_INSTANCE Instance,
+ PVOID Context
+);
+
+WINBASEAPI VOID WINAPI StartThreadpoolIo(
+ PTP_IO pio
+);
+
+typedef struct _STARTUPINFOEXA {
+ STARTUPINFOA StartupInfo;
+ PPROC_THREAD_ATTRIBUTE_LIST lpAttributeList;
+} STARTUPINFOEXA, *LPSTARTUPINFOEXA;
+
+typedef struct _STARTUPINFOEXAW {
+ STARTUPINFOW StartupInfo;
+ PPROC_THREAD_ATTRIBUTE_LIST lpAttributeList;
+} STARTUPINFOEXW, *LPSTARTUPINFOEXW;
+
+__MINGW_TYPEDEF_AW(STARTUPINFOEX)
+__MINGW_TYPEDEF_AW(LPSTARTUPINFOEX)
+
+WINBASEAPI WINBOOL WINAPI TrySubmitThreadpoolCallback(
+ PTP_SIMPLE_CALLBACK pfns,
+ PVOID pv,
+ PTP_CALLBACK_ENVIRON pcbe
+);
+
+WINBASEAPI HRESULT WINAPI UnregisterApplicationRestart(void);
+
+WINBASEAPI HRESULT WINAPI UnregisterApplicationRecoveryCallback(void);
+
+WINBASEAPI LPVOID WINAPI VirtualAllocExNuma(
+ HANDLE hProcess,
+ LPVOID lpAddress,
+ SIZE_T dwSize,
+ DWORD flAllocationType,
+ DWORD flProtect,
+ DWORD nndPreferred
+);
+
+WINBASEAPI VOID WINAPI WaitForThreadpoolIoCallbacks(
+ PTP_IO pio,
+ WINBOOL fCancelPendingCallbacks
+);
+
+WINBASEAPI VOID WINAPI WaitForThreadpoolTimerCallbacks(
+ PTP_TIMER pti,
+ WINBOOL fCancelPendingCallbacks
+);
+
+WINBASEAPI VOID WINAPI WaitForThreadpoolWaitCallbacks(
+ PTP_WAIT pwa,
+ WINBOOL fCancelPendingCallbacks
+);
+
+WINBASEAPI VOID WINAPI WaitForThreadpoolWorkCallbacks(
+ PTP_WORK pwk,
+ WINBOOL fCancelPendingCallbacks
+);
+
+WINBASEAPI WINBOOL WINAPI Wow64GetThreadContext(
+ HANDLE hThread,
+ PWOW64_CONTEXT lpContext
+);
+
+WINBASEAPI WINBOOL WINAPI Wow64RevertWow64FsRedirection(
+ PVOID OldValue
+);
+
+WINBASEAPI WINBOOL WINAPI Wow64SetThreadContext(
+ HANDLE hThread,
+ const WOW64_CONTEXT *lpContext
+);
+
+WINBASEAPI DWORD WINAPI Wow64SuspendThread(
+ HANDLE hThread
+);
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
+#if (_WIN32_WINNT >= 0x0601)
+WINBASEAPI VOID WINAPI GetCurrentProcessorNumberEx(
+ PPROCESSOR_NUMBER ProcNumber
+);
+
+WINBASEAPI WINBOOL WINAPI GetLogicalProcessorInformationEx(
+ LOGICAL_PROCESSOR_RELATIONSHIP RelationshipType,
+ PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX Buffer,
+ PDWORD ReturnedLength
+);
+
+WINBASEAPI WINBOOL WINAPI GetNumaAvailableMemoryNodeEx(
+ USHORT Node,
+ PULONGLONG AvailableBytes
+);
+
+WINBASEAPI WINBOOL WINAPI GetNumaNodeProcessorMaskEx(
+ USHORT Node,
+ PGROUP_AFFINITY ProcessorMask
+);
+
+WINBASEAPI WINBOOL WINAPI GetNumaProcessorNodeEx(
+ PPROCESSOR_NUMBER Processor,
+ PUSHORT NodeNumber
+);
+
+WINBASEAPI WINBOOL WINAPI GetNumaProximityNodeEx(
+ ULONG ProximityId,
+ PUSHORT NodeNumber
+);
+
+WINBASEAPI HANDLE WINAPI CreateRemoteThreadEx(
+ HANDLE hProcess,
+ LPSECURITY_ATTRIBUTES lpThreadAttributes,
+ SIZE_T dwStackSize,
+ LPTHREAD_START_ROUTINE lpStartAddress,
+ LPVOID lpParameter,
+ DWORD dwCreationFlags,
+ LPPROC_THREAD_ATTRIBUTE_LIST lpAttributeList,
+ LPDWORD lpThreadId
+);
+
+WINBASEAPI WINBOOL WINAPI QueryUnbiasedInterruptTime(
+ PULONGLONG UnbiasedTime
+);
+
+WINBASEAPI WINBOOL WINAPI AddConditionalAce(
+ PACL pAcl,
+ DWORD dwAceRevision,
+ DWORD AceFlags,
+ UCHAR AceType,
+ DWORD AccessMask,
+ PSID pSid,
+ PWCHAR ConditionStr,
+ DWORD *ReturnLength
+);
+
+#ifdef _WIN64
+typedef struct _UMS_COMPLETION_LIST *PUMS_COMPLETION_LIST;
+typedef struct _UMS_CONTEXT *PUMS_CONTEXT;
+
+typedef enum _UMS_SCHEDULER_REASON {
+ UmsSchedulerStartup = 0,
+ UmsSchedulerThreadBlocked = 1,
+ UmsSchedulerThreadYield = 2
+} UMS_SCHEDULER_REASON;
+
+typedef VOID (*PUMS_SCHEDULER_ENTRY_POINT)(
+ UMS_SCHEDULER_REASON Reason,
+ ULONG_PTR ActivationPayload,
+ PVOID SchedulerParam
+);
+
+typedef enum _UMS_THREAD_INFO_CLASS {
+ UmsThreadInvalidInfoClass = 0,
+ UmsThreadUserContext = 1,
+ UmsThreadPriority = 2,
+ UmsThreadAffinity = 3,
+ UmsThreadTeb = 4,
+ UmsThreadIsSuspended = 5,
+ UmsThreadIsTerminated = 6,
+ UmsThreadMaxInfoClass = 7
+} UMS_THREAD_INFO_CLASS, *PUMS_THREAD_INFO_CLASS;
+
+typedef struct _UMS_SCHEDULER_STARTUP_INFO {
+ ULONG UmsVersion;
+ PUMS_COMPLETION_LIST CompletionList;
+ PUMS_SCHEDULER_ENTRY_POINT SchedulerProc;
+ PVOID SchedulerParam;
+} UMS_SCHEDULER_STARTUP_INFO, *PUMS_SCHEDULER_STARTUP_INFO;
+
+WINBASEAPI WINBOOL CreateUmsCompletionList(
+ PUMS_COMPLETION_LIST *UmsCompletionList
+);
+
+WINBASEAPI WINBOOL CreateUmsThreadContext(
+ PUMS_CONTEXT *lpUmsThread
+);
+
+WINBASEAPI WINBOOL EnterUmsSchedulingMode(
+ PUMS_SCHEDULER_STARTUP_INFO SchedulerStartupInfo
+);
+
+WINBASEAPI WINBOOL DequeueUmsCompletionListItems(
+ PUMS_COMPLETION_LIST UmsCompletionList,
+ DWORD WaitTimeOut,
+ PUMS_CONTEXT *UmsThreadList
+);
+
+WINBASEAPI WINBOOL GetUmsCompletionListEvent(
+ PUMS_COMPLETION_LIST UmsCompletionList,
+ PHANDLE UmsCompletionEvent
+);
+
+WINBASEAPI WINBOOL DeleteUmsCompletionList(
+ PUMS_COMPLETION_LIST UmsCompletionList
+);
+
+WINBASEAPI WINBOOL DeleteUmsThreadContext(
+ PUMS_CONTEXT UmsThread
+);
+
+WINBASEAPI WINBOOL QueryUmsThreadInformation(
+ PUMS_CONTEXT UmsThread,
+ UMS_THREAD_INFO_CLASS UmsThreadInfoClass,
+ PVOID UmsThreadInformation,
+ ULONG UmsThreadInformationLength,
+ PULONG ReturnLength
+);
+
+WINBASEAPI WINBOOL SetUmsThreadInformation(
+ PUMS_CONTEXT UmsThread,
+ UMS_THREAD_INFO_CLASS UmsThreadInfoClass,
+ PVOID UmsThreadInformation,
+ ULONG UmsThreadInformationLength
+);
+
+WINBASEAPI WINBOOL ExecuteUmsThread(
+ PUMS_CONTEXT UmsThread
+);
+
+WINBASEAPI WINBOOL UmsThreadYield(
+ PVOID SchedulerParam
+);
+
+WINBASEAPI PUMS_CONTEXT GetNextUmsListItem(
+ PUMS_CONTEXT UmsContext
+);
+
+#endif /* _WIN64 */
#endif /*(_WIN32_WINNT >= 0x0601)*/
#ifdef __cplusplus
diff --git a/mingw-w64-headers/include/wincon.h b/mingw-w64-headers/include/wincon.h
index 4ab71fa..a5e6179 100644
--- a/mingw-w64-headers/include/wincon.h
+++ b/mingw-w64-headers/include/wincon.h
@@ -275,6 +275,88 @@
WINBASEAPI DWORD WINAPI GetConsoleAliasExesA(LPSTR ExeNameBuffer,DWORD ExeNameBufferLength);
WINBASEAPI DWORD WINAPI GetConsoleAliasExesW(LPWSTR ExeNameBuffer,DWORD ExeNameBufferLength);
+#if (_WIN32_WINNT >= 0x0600)
+#define LF_FACESIZE 32
+
+typedef struct _CONSOLE_FONT_INFOEX {
+ ULONG cbSize;
+ DWORD nFont;
+ COORD dwFontSize;
+ UINT FontFamily;
+ UINT FontWeight;
+ WCHAR FaceName[LF_FACESIZE];
+} CONSOLE_FONT_INFOEX, *PCONSOLE_FONT_INFOEX;
+
+typedef struct _CONSOLE_HISTORY_INFO {
+ UINT cbSize;
+ UINT HistoryBufferSize;
+ UINT NumberOfHistoryBuffers;
+ DWORD dwFlags;
+} CONSOLE_HISTORY_INFO, *PCONSOLE_HISTORY_INFO;
+
+typedef struct _CONSOLE_READCONSOLE_CONTROL {
+ ULONG nLength;
+ ULONG nInitialChars;
+ ULONG dwCtrlWakeupMask;
+ ULONG dwControlKeyState;
+} CONSOLE_READCONSOLE_CONTROL, *PCONSOLE_READCONSOLE_CONTROL;
+
+typedef struct _CONSOLE_SCREEN_BUFFER_INFOEX {
+ ULONG cbSize;
+ COORD dwSize;
+ COORD dwCursorPosition;
+ WORD wAttributes;
+ SMALL_RECT srWindow;
+ COORD dwMaximumWindowSize;
+ WORD wPopupAttributes;
+ BOOL bFullscreenSupported;
+ COLORREF ColorTable[16];
+} CONSOLE_SCREEN_BUFFER_INFOEX, *PCONSOLE_SCREEN_BUFFER_INFOEX;
+
+WINBOOL WINAPI GetConsoleHistoryInfo(
+ PCONSOLE_HISTORY_INFO lpConsoleHistoryInfo
+);
+
+#define GetConsoleOriginalTitle __MINGW_NAME_AW(GetConsoleOriginalTitle)
+
+DWORD WINAPI GetConsoleOriginalTitleA(
+ LPSTR lpConsoleTitle,
+ DWORD nSize
+);
+
+DWORD WINAPI GetConsoleOriginalTitleW(
+ LPWSTR lpConsoleTitle,
+ DWORD nSize
+);
+
+WINBOOL WINAPI GetConsoleScreenBufferInfoEx(
+ HANDLE hConsoleOutput,
+ PCONSOLE_SCREEN_BUFFER_INFOEX lpConsoleScreenBufferInfoEx
+);
+
+WINBOOL WINAPI GetCurrentConsoleFontEx(
+ HANDLE hConsoleOutput,
+ WINBOOL bMaximumWindow,
+ PCONSOLE_FONT_INFOEX lpConsoleCurrentFontEx
+);
+
+WINBOOL WINAPI SetConsoleHistoryInfo(
+ PCONSOLE_HISTORY_INFO lpConsoleHistoryInfo
+);
+
+WINBOOL WINAPI SetConsoleScreenBufferInfoEx(
+ HANDLE hConsoleOutput,
+ PCONSOLE_SCREEN_BUFFER_INFOEX lpConsoleScreenBufferInfoEx
+);
+
+WINBOOL WINAPI SetCurrentConsoleFontEx(
+ HANDLE hConsoleOutput,
+ WINBOOL bMaximumWindow,
+ PCONSOLE_FONT_INFOEX lpConsoleCurrentFontEx
+);
+
+#endif /* (_WIN32_WINNT >= 0x0600) */
+
#ifdef __cplusplus
}
#endif
diff --git a/mingw-w64-headers/include/wincred.h b/mingw-w64-headers/include/wincred.h
index ed33759..bdca491 100644
--- a/mingw-w64-headers/include/wincred.h
+++ b/mingw-w64-headers/include/wincred.h
@@ -314,6 +314,145 @@
CREDUIAPI DWORD WINAPI CredUIStoreSSOCredW (PCWSTR pszRealm,PCWSTR pszUsername,PCWSTR pszPassword,WINBOOL bPersist);
CREDUIAPI DWORD WINAPI CredUIReadSSOCredW (PCWSTR pszRealm,PWSTR *ppszUsername);
+#if (_WIN32_WINNT >= 0x0600)
+#define CredFindBestCredential __MINGW_NAME_AW(CredFindBestCredential)
+#define CredIsProtected __MINGW_NAME_AW(CredIsProtected)
+#define CredPackAuthenticationBuffer __MINGW_NAME_AW(CredPackAuthenticationBuffer)
+#define CredProtect __MINGW_NAME_AW(CredProtect)
+#define CredUIPromptForWindowsCredentials __MINGW_NAME_AW(CredUIPromptForWindowsCredentials)
+#define CredUnPackAuthenticationBuffer __MINGW_NAME_AW(CredUnPackAuthenticationBuffer)
+#define CredUnprotect __MINGW_NAME_AW(CredUnprotect)
+
+typedef enum _CRED_PROTECTION_TYPE {
+ CredUnprotected = 0,
+ CredUserProtection = 1,
+ CredTrustedProtection = 2
+} CRED_PROTECTION_TYPE, *PCRED_PROTECTION_TYPE;
+
+WINADVAPI WINBOOL WINAPI CredFindBestCredentialA(
+ LPCSTR TargetName,
+ DWORD Type,
+ DWORD Flags,
+ PCREDENTIALA *Credential
+);
+
+WINADVAPI WINBOOL WINAPI CredFindBestCredentialW(
+ LPCWSTR TargetName,
+ DWORD Type,
+ DWORD Flags,
+ PCREDENTIALW *Credential
+);
+
+WINADVAPI WINBOOL WINAPI CredIsProtectedA(
+ LPSTR pszProtectedCredentials,
+ CRED_PROTECTION_TYPE *pProtectionType
+);
+
+WINADVAPI WINBOOL WINAPI CredIsProtectedW(
+ LPWSTR pszProtectedCredentials,
+ CRED_PROTECTION_TYPE *pProtectionType
+);
+
+CREDUIAPI WINBOOL WINAPI CredPackAuthenticationBufferA(
+ DWORD dwFlags,
+ LPSTR pszUserName,
+ LPSTR pszPassword,
+ PBYTE pPackedCredentials,
+ DWORD *pcbPackedCredentials
+);
+
+CREDUIAPI WINBOOL WINAPI CredPackAuthenticationBufferW(
+ DWORD dwFlags,
+ LPWSTR pszUserName,
+ LPWSTR pszPassword,
+ PBYTE pPackedCredentials,
+ DWORD *pcbPackedCredentials
+);
+
+WINADVAPI WINBOOL WINAPI CredProtectW(
+ WINBOOL fAsSelf,
+ LPWSTR pszCredentials,
+ DWORD cchCredentials,
+ LPWSTR pszProtectedCredentials,
+ DWORD *pcchMaxChars,
+ CRED_PROTECTION_TYPE *ProtectionType
+);
+
+WINADVAPI WINBOOL WINAPI CredProtectA(
+ WINBOOL fAsSelf,
+ LPSTR pszCredentials,
+ DWORD cchCredentials,
+ LPSTR pszProtectedCredentials,
+ DWORD *pcchMaxChars,
+ CRED_PROTECTION_TYPE *ProtectionType
+);
+
+CREDUIAPI DWORD WINAPI CredUIPromptForWindowsCredentialsA(
+ PCREDUI_INFOA pUiInfo,
+ DWORD dwAuthError,
+ ULONG *pulAuthPackage,
+ LPCVOID pvInAuthBuffer,
+ ULONG ulInAuthBufferSize,
+ LPVOID *ppvOutAuthBuffer,
+ ULONG *pulOutAuthBufferSize,
+ WINBOOL *pfSave,
+ DWORD dwFlags
+);
+
+CREDUIAPI DWORD WINAPI CredUIPromptForWindowsCredentialsW(
+ PCREDUI_INFOW pUiInfo,
+ DWORD dwAuthError,
+ ULONG *pulAuthPackage,
+ LPCVOID pvInAuthBuffer,
+ ULONG ulInAuthBufferSize,
+ LPVOID *ppvOutAuthBuffer,
+ ULONG *pulOutAuthBufferSize,
+ WINBOOL *pfSave,
+ DWORD dwFlags
+);
+
+CREDUIAPI WINBOOL WINAPI CredUnPackAuthenticationBufferA(
+ DWORD dwFlags,
+ PVOID pAuthBuffer,
+ DWORD cbAuthBuffer,
+ LPSTR pszUserName,
+ DWORD *pcchMaxUserName,
+ LPSTR pszDomainName,
+ DWORD *pcchMaxDomainame,
+ LPSTR pszPassword,
+ DWORD *pcchMaxPassword
+);
+
+CREDUIAPI WINBOOL WINAPI CredUnPackAuthenticationBufferW(
+ DWORD dwFlags,
+ PVOID pAuthBuffer,
+ DWORD cbAuthBuffer,
+ LPWSTR pszUserName,
+ DWORD *pcchMaxUserName,
+ LPWSTR pszDomainName,
+ DWORD *pcchMaxDomainame,
+ LPWSTR pszPassword,
+ DWORD *pcchMaxPassword
+);
+
+WINADVAPI WINBOOL WINAPI CredUnprotectA(
+ WINBOOL fAsSelf,
+ LPSTR pszProtectedCredentials,
+ DWORD cchCredentials,
+ LPSTR pszCredentials,
+ DWORD *pcchMaxChars
+);
+
+WINADVAPI WINBOOL WINAPI CredUnprotectW(
+ WINBOOL fAsSelf,
+ LPWSTR pszProtectedCredentials,
+ DWORD cchCredentials,
+ LPWSTR pszCredentials,
+ DWORD *pcchMaxChars
+);
+
+#endif /* (_WIN32_WINNT >= 0x0600) */
+
#ifdef __cplusplus
}
#endif
diff --git a/mingw-w64-headers/include/wincrypt.h b/mingw-w64-headers/include/wincrypt.h
index 3f81f40..8bfb9e4 100644
--- a/mingw-w64-headers/include/wincrypt.h
+++ b/mingw-w64-headers/include/wincrypt.h
@@ -9,6 +9,8 @@
#include <_mingw.h>
#include <_mingw_unicode.h>
#include <guiddef.h>
+#include <bcrypt.h>
+#include <ncrypt.h>
#ifdef __cplusplus
extern "C" {
@@ -201,8 +203,12 @@
#define CALG_SHA_384 (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SHA_384)
#define CALG_SHA_512 (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SHA_512)
- typedef ULONG_PTR HCRYPTPROV;
+#ifndef __HCRYPTKEY__
+#define __HCRYPTKEY__
+/* In ncrypt.h too */
typedef ULONG_PTR HCRYPTKEY;
+ typedef ULONG_PTR HCRYPTPROV;
+#endif
typedef ULONG_PTR HCRYPTHASH;
#define CRYPT_VERIFYCONTEXT 0xF0000000
@@ -4214,6 +4220,519 @@
WINIMPM WINBOOL WINAPI PFXExportCertStore(HCERTSTORE hStore,CRYPT_DATA_BLOB *pPFX,LPCWSTR szPassword,DWORD dwFlags);
+#if (_WIN32_WINNT >= 0x0600)
+#define szOID_LOYALTY_OTHER_LOGOTYPE "1.3.6.1.5.5.7.20.1"
+#define szOID_BACKGROUND_OTHER_LOGOTYPE "1.3.6.1.5.5.7.20.2"
+#define szOID_QC_EU_COMPLIANCE "0.4.0.1862.1.1"
+#define szOID_QC_SSCD "0.4.0.1862.1.4"
+#define CERT_CHAIN_REVOCATION_CHECK_OCSP_CERT 0x04000000
+
+#define CERT_SRV_OCSP_RESP_MIN_VALIDITY_SECONDS_VALUE_NAME L"SrvOcspRespMinValiditySeconds"
+#define CERT_SRV_OCSP_RESP_MIN_VALIDITY_SECONDS_DEFAULT (10 * 60)
+#define CERT_SRV_OCSP_RESP_URL_RETRIEVAL_TIMEOUT_MILLISECONDS_VALUE_NAME L"SrvOcspRespUrlRetrievalTimeoutMilliseconds"
+#define CERT_SRV_OCSP_RESP_URL_RETRIEVAL_TIMEOUT_MILLISECONDS_DEFAULT (15 * 1000)
+#define CERT_SRV_OCSP_RESP_MAX_BEFORE_NEXT_UPDATE_SECONDS_VALUE_NAME L"SrvOcspRespMaxBeforeNextUpdateSeconds"
+#define CERT_SRV_OCSP_RESP_MAX_BEFORE_NEXT_UPDATE_SECONDS_DEFAULT (4 * 60 * 60)
+#define CERT_SRV_OCSP_RESP_MIN_BEFORE_NEXT_UPDATE_SECONDS_VALUE_NAME L"SrvOcspRespMinBeforeNextUpdateSeconds"
+#define CERT_SRV_OCSP_RESP_MIN_BEFORE_NEXT_UPDATE_SECONDS_DEFAULT (2 * 60)
+#define CERT_SRV_OCSP_RESP_MIN_AFTER_NEXT_UPDATE_SECONDS_VALUE_NAME L"SrvOcspRespMinAfterNextUpdateSeconds"
+#define CERT_SRV_OCSP_RESP_MIN_AFTER_NEXT_UPDATE_SECONDS_DEFAULT (1 * 60)
+
+typedef LPVOID HCERT_SERVER_OCSP_RESPONSE;
+
+typedef WINBOOL ( WINAPI *PFN_CERT_CREATE_CONTEXT_SORT_FUNC )(
+ DWORD cbTotalEncoded,
+ DWORD cbRemainEncoded,
+ DWORD cEntry,
+ void *pvSort
+);
+
+#define CRYPT_OID_EXPORT_PUBLIC_KEY_INFO_EX2_FUNC "CryptDllExportPublicKeyInfoEx2"
+
+typedef WINBOOL ( WINAPI *PFN_CRYPT_EXPORT_PUBLIC_KEY_INFO_EX2_FUNC )(
+ NCRYPT_KEY_HANDLE hNCryptKey,
+ DWORD dwCertEncodingType,
+ LPSTR pszPublicKeyObjId,
+ DWORD dwFlags,
+ void *pvAuxInfo,
+ PCERT_PUBLIC_KEY_INFO pInfo,
+ DWORD *pcbInfo
+);
+
+#define CRYPT_OID_EXTRACT_ENCODED_SIGNATURE_PARAMETERS_FUNC "CryptDllExtractEncodedSignatureParameters"
+
+typedef WINBOOL ( WINAPI *PFN_CRYPT_EXTRACT_ENCODED_SIGNATURE_PARAMETERS_FUNC )(
+ DWORD dwCertEncodingType,
+ PCRYPT_ALGORITHM_IDENTIFIER pSignatureAlgorithm,
+ void **ppvDecodedSignPara,
+ LPWSTR *ppwszCNGHashAlgid
+);
+
+typedef WINBOOL ( WINAPI *PFN_CRYPT_SIGN_AND_ENCODE_HASH_FUNC )(
+ NCRYPT_KEY_HANDLE hKey,
+ DWORD dwCertEncodingType,
+ PCRYPT_ALGORITHM_IDENTIFIER pSignatureAlgorithm,
+ void *pvDecodedSignPara,
+ LPCWSTR pwszCNGPubKeyAlgid,
+ LPCWSTR pwszCNGHashAlgid,
+ BYTE *pbComputedHash,
+ DWORD cbComputedHash,
+ BYTE *pbSignature,
+ DWORD *pcbSignature
+);
+
+typedef WINBOOL ( WINAPI *PFN_CRYPT_VERIFY_ENCODED_SIGNATURE_FUNC )(
+ DWORD dwCertEncodingType,
+ PCERT_PUBLIC_KEY_INFO pPubKeyInfo,
+ PCRYPT_ALGORITHM_IDENTIFIER pSignatureAlgorithm,
+ void *pvDecodedSignPara,
+ LPCWSTR pwszCNGPubKeyAlgid,
+ LPCWSTR pwszCNGHashAlgid,
+ BYTE *pbComputedHash,
+ DWORD cbComputedHash,
+ BYTE *pbSignature,
+ DWORD cbSignature
+);
+
+#define CRYPT_OID_IMPORT_PUBLIC_KEY_INFO_EX2_FUNC "CryptDllImportPublicKeyInfoEx2"
+
+typedef WINBOOL ( WINAPI *PFN_IMPORT_PUBLIC_KEY_INFO_EX2_FUNC )(
+ DWORD dwCertEncodingType,
+ PCERT_PUBLIC_KEY_INFO pInfo,
+ DWORD dwFlags,
+ void *pvAuxInfo,
+ BCRYPT_KEY_HANDLE *phKey
+);
+
+typedef struct _CERT_HASHED_URL {
+ CRYPT_ALGORITHM_IDENTIFIER HashAlgorithm;
+ CRYPT_HASH_BLOB Hash;
+ LPWSTR pwszUrl;
+} CERT_HASHED_URL, *PCERT_HASHED_URL;
+
+typedef struct _CERT_BIOMETRIC_DATA {
+ DWORD dwTypeOfBiometricDataChoice;
+ __MINGW_EXTENSION union {
+ DWORD dwPredefined;
+ LPSTR pszObjId;
+ };
+ CERT_HASHED_URL HashedUrl;
+} CERT_BIOMETRIC_DATA, *PCERT_BIOMETRIC_DATA;
+
+typedef struct _CERT_BIOMETRIC_EXT_INFO {
+ DWORD cBiometricData;
+ PCERT_BIOMETRIC_DATA rgBiometricData;
+} CERT_BIOMETRIC_EXT_INFO, *PCERT_BIOMETRIC_EXT_INFO;
+
+typedef struct _CERT_ECC_SIGNATURE {
+ CRYPT_UINT_BLOB r;
+ CRYPT_UINT_BLOB s;
+} CERT_ECC_SIGNATURE, *PCERT_ECC_SIGNATURE;
+
+typedef struct _CERT_LOGOTYPE_DETAILS {
+ LPWSTR pwszMimeType;
+ DWORD cHashedUrl;
+ PCERT_HASHED_URL rgHashedUrl;
+} CERT_LOGOTYPE_DETAILS, *PCERT_LOGOTYPE_DETAILS;
+
+typedef struct _CERT_LOGOTYPE_AUDIO_INFO {
+ DWORD dwFileSize;
+ DWORD dwPlayTime;
+ DWORD dwChannels;
+ DWORD dwSampleRate;
+ LPWSTR pwszLanguage;
+} CERT_LOGOTYPE_AUDIO_INFO, *PCERT_LOGOTYPE_AUDIO_INFO;
+
+typedef struct _CERT_LOGOTYPE_AUDIO {
+ CERT_LOGOTYPE_DETAILS LogotypeDetails;
+ PCERT_LOGOTYPE_AUDIO_INFO pLogotypeAudioInfo;
+} CERT_LOGOTYPE_AUDIO, *PCERT_LOGOTYPE_AUDIO;
+
+typedef struct _CERT_LOGOTYPE_IMAGE_INFO {
+ DWORD dwLogotypeImageInfoChoice;
+ DWORD dwFileSize;
+ DWORD dwXSize;
+ DWORD dwYSize;
+ DWORD dwLogotypeImageResolutionChoice;
+ __MINGW_EXTENSION union {
+ DWORD dwNumBits;
+ DWORD dwTableSize;
+ };
+ LPWSTR pwszLanguage;
+} CERT_LOGOTYPE_IMAGE_INFO, *PCERT_LOGOTYPE_IMAGE_INFO;
+
+typedef struct _CERT_LOGOTYPE_IMAGE {
+ CERT_LOGOTYPE_DETAILS LogotypeDetails;
+ PCERT_LOGOTYPE_IMAGE_INFO pLogotypeImageInfo;
+} CERT_LOGOTYPE_IMAGE, *PCERT_LOGOTYPE_IMAGE;
+
+typedef struct _CERT_LOGOTYPE_DATA {
+ DWORD cLogotypeImage;
+ PCERT_LOGOTYPE_IMAGE rgLogotypeImage;
+ DWORD cLogotypeAudio;
+ PCERT_LOGOTYPE_AUDIO rgLogotypeAudio;
+} CERT_LOGOTYPE_DATA, *PCERT_LOGOTYPE_DATA;
+
+typedef struct _CERT_LOGOTYPE_REFERENCE {
+ DWORD cHashedUrl;
+ PCERT_HASHED_URL rgHashedUrl;
+} CERT_LOGOTYPE_REFERENCE, *PCERT_LOGOTYPE_REFERENCE;
+
+typedef struct _CERT_LOGOTYPE_INFO {
+ DWORD dwLogotypeInfoChoice;
+ __MINGW_EXTENSION union {
+ PCERT_LOGOTYPE_DATA pLogotypeDirectInfo;
+ PCERT_LOGOTYPE_REFERENCE pLogotypeIndirectInfo;
+ } ;
+} CERT_LOGOTYPE_INFO, *PCERT_LOGOTYPE_INFO;
+
+typedef struct _CERT_OTHER_LOGOTYPE_INFO {
+ LPSTR pszObjId;
+ CERT_LOGOTYPE_INFO LogotypeInfo;
+} CERT_OTHER_LOGOTYPE_INFO, *PCERT_OTHER_LOGOTYPE_INFO;
+
+typedef struct _CERT_LOGOTYPE_EXT_INFO {
+ DWORD cCommunityLogo;
+ PCERT_LOGOTYPE_INFO rgCommunityLogo;
+ PCERT_LOGOTYPE_INFO pIssuerLogo;
+ PCERT_LOGOTYPE_INFO pSubjectLogo;
+ DWORD cOtherLogo;
+ PCERT_OTHER_LOGOTYPE_INFO rgOtherLogo;
+} CERT_LOGOTYPE_EXT_INFO, *PCERT_LOGOTYPE_EXT_INFO;
+
+typedef struct _CERT_QC_STATEMENT {
+ LPSTR pszStatementId;
+ CRYPT_OBJID_BLOB StatementInfo;
+} CERT_QC_STATEMENT, *PCERT_QC_STATEMENT;
+
+typedef struct _CERT_QC_STATEMENTS_EXT_INFO {
+ DWORD cStatement;
+ PCERT_QC_STATEMENT rgStatement;
+} CERT_QC_STATEMENTS_EXT_INFO, *PCERT_QC_STATEMENTS_EXT_INFO;
+
+typedef struct _CERT_REVOCATION_CHAIN_PARA {
+ DWORD cbSize;
+ HCERTCHAINENGINE hChainEngine;
+ HCERTSTORE hAdditionalStore;
+ DWORD dwChainFlags;
+ DWORD dwUrlRetrievalTimeout;
+ LPFILETIME pftCurrentTime;
+ LPFILETIME pftCacheResync;
+ DWORD cbMaxUrlRetrievalByteCount;
+} CERT_REVOCATION_CHAIN_PARA, *PCERT_REVOCATION_CHAIN_PARA;
+
+typedef struct _CERT_SERVER_OCSP_RESPONSE_CONTEXT {
+ DWORD cbSize;
+ BYTE *pbEncodedOcspResponse;
+ DWORD cbEncodedOcspResponse;
+} CERT_SERVER_OCSP_RESPONSE_CONTEXT, *PCERT_SERVER_OCSP_RESPONSE_CONTEXT, *PCCERT_SERVER_OCSP_RESPONSE_CONTEXT;
+
+#ifndef __NCRYPT_KEY_HANDLE__
+#define __NCRYPT_KEY_HANDLE__
+/*in ncrypt.h too*/
+typedef LPVOID NCRYPT_KEY_HANDLE;
+#endif
+
+typedef struct _CMSG_CNG_CONTENT_DECRYPT_INFO {
+ DWORD cbSize;
+ CRYPT_ALGORITHM_IDENTIFIER ContentEncryptionAlgorithm;
+ PFN_CMSG_ALLOC pfnAlloc;
+ PFN_CMSG_FREE pfnFree;
+ NCRYPT_KEY_HANDLE hNCryptKey;
+ BYTE *pbContentEncryptKey;
+ DWORD cbContentEncryptKey;
+ BCRYPT_KEY_HANDLE hCNGContentEncryptKey;
+ BYTE *pbCNGContentEncryptKeyObject;
+} CMSG_CNG_CONTENT_DECRYPT_INFO, *PCMSG_CNG_CONTENT_DECRYPT_INFO;
+
+typedef struct _CRYPT_AES_128_KEY_STATE {
+ unsigned char Key[16];
+ unsigned char IV[16];
+ unsigned char EncryptionState[11][16];
+ unsigned char DecryptionState[11][16];
+ unsigned char Feedback[16];
+} CRYPT_AES_128_KEY_STATE, *PCRYPT_AES_128_KEY_STATE;
+
+typedef struct _CRYPT_AES_256_KEY_STATE {
+ unsigned char Key[32];
+ unsigned char IV[16];
+ unsigned char EncryptionState[15][16];
+ unsigned char DecryptionState[15][16];
+ unsigned char Feedback[16];
+} CRYPT_AES_256_KEY_STATE, *PCRYPT_AES_256_KEY_STATE;
+
+typedef struct _ROOT_INFO_LUID {
+ DWORD LowPart;
+ LONG HighPart;
+} ROOT_INFO_LUID, *PROOT_INFO_LUID;
+
+WINCRYPT32API VOID WINAPI CertAddRefServerOcspResponse(HCERT_SERVER_OCSP_RESPONSE hServerOcspResponse);
+HCERT_SERVER_OCSP_RESPONSE WINAPI CertOpenServerOcspResponse(
+ PCCERT_CHAIN_CONTEXT pChainContext,
+ DWORD dwFlags,
+ LPVOID pvReserved
+);
+
+VOID WINAPI CertAddRefServerOcspResponseContext(
+ PCCERT_SERVER_OCSP_RESPONSE_CONTEXT pServerOcspResponseContext
+);
+
+VOID WINAPI CertCloseServerOcspResponse(
+ HCERT_SERVER_OCSP_RESPONSE hServerOcspResponse,
+ DWORD dwFlags
+);
+
+VOID WINAPI CertFreeServerOcspResponseContext(
+ PCCERT_SERVER_OCSP_RESPONSE_CONTEXT pServerOcspResponseContext
+);
+
+PCCERT_SERVER_OCSP_RESPONSE_CONTEXT WINAPI CertGetServerOcspResponseContext(
+ HCERT_SERVER_OCSP_RESPONSE hServerOcspResponse,
+ DWORD dwFlags,
+ LPVOID pvReserved
+);
+
+WINBOOL WINAPI CertRetrieveLogoOrBiometricInfo(
+ PCCERT_CONTEXT pCertContext,
+ LPCSTR lpszLogoOrBiometricType,
+ DWORD dwRetrievalFlags,
+ DWORD dwTimeout,
+ DWORD dwFlags,
+ void *pvReserved,
+ BYTE **ppbData,
+ DWORD *pcbData,
+ LPWSTR *ppwszMimeType
+);
+
+typedef WINBOOL ( WINAPI *PFN_CMSG_CNG_IMPORT_KEY_TRANS )(
+ PCMSG_CNG_CONTENT_DECRYPT_INFO pCNGContentDecryptInfo,
+ PCMSG_CTRL_KEY_TRANS_DECRYPT_PARA pKeyTransDecryptPara,
+ DWORD dwFlags,
+ void *pvReserved
+);
+
+typedef WINBOOL ( WINAPI *PFN_CMSG_CNG_IMPORT_KEY_AGREE )(
+ PCMSG_CNG_CONTENT_DECRYPT_INFO pCNGContentDecryptInfo,
+ PCMSG_CTRL_KEY_AGREE_DECRYPT_PARA pKeyAgreeDecryptPara,
+ DWORD dwFlags,
+ void *pvReserved
+);
+
+typedef WINBOOL ( WINAPI *PFN_CMSG_CNG_IMPORT_CONTENT_ENCRYPT_KEY )(
+ PCMSG_CNG_CONTENT_DECRYPT_INFO pCNGContentDecryptInfo,
+ DWORD dwFlags,
+ void *pvReserved
+);
+
+#define CMSG_OID_CNG_IMPORT_KEY_TRANS_FUNC "CryptMsgDllCNGImportKeyTrans"
+
+#define CRYPT_ECC_CMS_SHARED_INFO_SUPPPUBINFO_BYTE_LENGTH 4
+
+typedef struct _CRYPT_ECC_CMS_SHARED_INFO {
+ CRYPT_ALGORITHM_IDENTIFIER Algorithm;
+ CRYPT_DATA_BLOB EntityUInfo;
+ BYTE rgbSuppPubInfo[CRYPT_ECC_CMS_SHARED_INFO_SUPPPUBINFO_BYTE_LENGTH];
+} CRYPT_ECC_CMS_SHARED_INFO, *PCRYPT_ECC_CMS_SHARED_INFO;
+
+typedef struct _CRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO {
+ DWORD cbSize;
+ int iDeltaCrlIndicator;
+ LPFILETIME pftCacheResync;
+ LPFILETIME pLastSyncTime;
+ LPFILETIME pMaxAgeTime;
+ PCERT_REVOCATION_CHAIN_PARA pChainPara;
+ PCRYPT_INTEGER_BLOB pDeltaCrlIndicator;
+} CRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO, *PCRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO;
+
+#define szOID_RSA_MGF1 "1.2.840.113549.1.1.8"
+
+typedef struct _CRYPT_MASK_GEN_ALGORITHM {
+ LPSTR pszObjId;
+ CRYPT_ALGORITHM_IDENTIFIER HashAlgorithm;
+} CRYPT_MASK_GEN_ALGORITHM, *PCRYPT_MASK_GEN_ALGORITHM;
+
+typedef struct _CRYPT_PKCS12_PBE_PARAMS {
+ int iIterations;
+ ULONG cbSalt;
+} CRYPT_PKCS12_PBE_PARAMS;
+
+#define szOID_RSA_PSPECIFIED "1.2.840.113549.1.1.9"
+
+typedef struct _CRYPT_PSOURCE_ALGORITHM {
+ LPSTR pszObjId;
+ CRYPT_DATA_BLOB EncodingParameters;
+} CRYPT_PSOURCE_ALGORITHM, *PCRYPT_PSOURCE_ALGORITHM;
+
+typedef struct _CRYPT_RSA_SSA_PSS_PARAMETERS {
+ CRYPT_ALGORITHM_IDENTIFIER HashAlgorithm;
+ CRYPT_MASK_GEN_ALGORITHM MaskGenAlgorithm;
+ DWORD dwSaltLength;
+ DWORD dwTrailerField;
+} CRYPT_RSA_SSA_PSS_PARAMETERS, *PCRYPT_RSA_SSA_PSS_PARAMETERS;
+
+typedef struct _CRYPT_RSAES_OAEP_PARAMETERS {
+ CRYPT_ALGORITHM_IDENTIFIER HashAlgorithm;
+ CRYPT_MASK_GEN_ALGORITHM MaskGenAlgorithm;
+ CRYPT_PSOURCE_ALGORITHM PSourceAlgorithm;
+} CRYPT_RSAES_OAEP_PARAMETERS, *PCRYPT_RSAES_OAEP_PARAMETERS;
+
+typedef struct _CRYPT_SMART_CARD_ROOT_INFO {
+ BYTE rgbCardID[16];
+ ROOT_INFO_LUID luid;
+} CRYPT_SMART_CARD_ROOT_INFO, *PCRYPT_SMART_CARD_ROOT_INFO;
+
+#define CRYPTNET_URL_CACHE_DEFAULT_FLUSH 0
+#define CRYPTNET_URL_CACHE_DISABLE_FLUSH 0xFFFFFFFF
+
+typedef struct _CRYPTNET_URL_CACHE_FLUSH_INFO {
+ DWORD cbSize;
+ DWORD dwExemptSeconds;
+ FILETIME ExpireTime;
+} CRYPTNET_URL_CACHE_FLUSH_INFO, *PCRYPTNET_URL_CACHE_FLUSH_INFO;
+
+#define CRYPTNET_URL_CACHE_PRE_FETCH_NONE 0
+#define CRYPTNET_URL_CACHE_PRE_FETCH_BLOB 1
+#define CRYPTNET_URL_CACHE_PRE_FETCH_CRL 2
+#define CRYPTNET_URL_CACHE_PRE_FETCH_OCSP 3
+#define CRYPTNET_URL_CACHE_PRE_FETCH_AUTOROOT_CAB 5
+#define szOID_CRL_NEXT_PUBLISH "1.3.6.1.4.1.311.21.4"
+
+typedef struct _CRYPTNET_URL_CACHE_PRE_FETCH_INFO {
+ DWORD cbSize;
+ DWORD dwObjectType;
+ DWORD dwError;
+ DWORD dwReserved;
+ FILETIME ThisUpdateTime;
+ FILETIME NextUpdateTime;
+ FILETIME PublishTime;
+} CRYPTNET_URL_CACHE_PRE_FETCH_INFO, *PCRYPTNET_URL_CACHE_PRE_FETCH_INFO;
+
+#define CRYPTNET_URL_CACHE_RESPONSE_NONE 0
+#define CRYPTNET_URL_CACHE_RESPONSE_HTTP 1
+#define CRYPTNET_URL_CACHE_RESPONSE_VALIDATED 0x8000
+
+typedef struct _CRYPTNET_URL_CACHE_RESPONSE_INFO {
+ DWORD cbSize;
+ WORD wResponseType;
+ WORD wResponseFlags;
+ FILETIME LastModifiedTime;
+ DWORD dwMaxAge;
+ LPCWSTR pwszETag;
+ DWORD dwProxyId;
+} CRYPTNET_URL_CACHE_RESPONSE_INFO, *PCRYPTNET_URL_CACHE_RESPONSE_INFO;
+
+typedef struct _OCSP_CERT_ID {
+ CRYPT_ALGORITHM_IDENTIFIER HashAlgorithm;
+ CRYPT_HASH_BLOB IssuerNameHash;
+ CRYPT_HASH_BLOB IssuerKeyHash;
+ CRYPT_INTEGER_BLOB SerialNumber;
+} OCSP_CERT_ID, *POCSP_CERT_ID;
+
+
+typedef struct _OCSP_BASIC_REVOKED_INFO {
+ FILETIME RevocationDate;
+ DWORD dwCrlReasonCode;
+} OCSP_BASIC_REVOKED_INFO, *POCSP_BASIC_REVOKED_INFO;
+
+typedef struct _OCSP_BASIC_RESPONSE_ENTRY {
+ OCSP_CERT_ID CertId;
+ DWORD dwCertStatus;
+ __MINGW_EXTENSION union {
+ POCSP_BASIC_REVOKED_INFO pRevokedInfo;
+ };
+ FILETIME ThisUpdate;
+ FILETIME NextUpdate;
+ DWORD cExtension;
+ PCERT_EXTENSION rgExtension;
+} OCSP_BASIC_RESPONSE_ENTRY, *POCSP_BASIC_RESPONSE_ENTRY;
+
+typedef struct _OCSP_BASIC_RESPONSE_INFO {
+ DWORD dwVersion;
+ DWORD dwResponderIdChoice;
+ __MINGW_EXTENSION union {
+ CERT_NAME_BLOB ByNameResponderId;
+ CRYPT_HASH_BLOB ByKeyResponderId;
+ };
+ FILETIME ProducedAt;
+ DWORD cResponseEntry;
+ POCSP_BASIC_RESPONSE_ENTRY rgResponseEntry;
+ DWORD cExtension;
+ PCERT_EXTENSION rgExtension;
+} OCSP_BASIC_RESPONSE_INFO, *POCSP_BASIC_RESPONSE_INFO;
+
+typedef struct _OCSP_REQUEST_ENTRY {
+ OCSP_CERT_ID CertId;
+ DWORD cExtension;
+ PCERT_EXTENSION rgExtension;
+} OCSP_REQUEST_ENTRY, *POCSP_REQUEST_ENTRY;
+
+typedef struct _OCSP_REQUEST_INFO {
+ DWORD dwVersion;
+ PCERT_ALT_NAME_ENTRY pRequestorName;
+ DWORD cRequestEntry;
+ POCSP_REQUEST_ENTRY rgRequestEntry;
+ DWORD cExtension;
+ PCERT_EXTENSION rgExtension;
+} OCSP_REQUEST_INFO, *POCSP_REQUEST_INFO;
+
+#define OCSP_SUCCESSFUL_RESPONSE 0
+#define OCSP_MALFORMED_REQUEST_RESPONSE 1
+#define OCSP_INTERNAL_ERROR_RESPONSE 2
+#define OCSP_TRY_LATER_RESPONSE 3
+#define OCSP_SIG_REQUIRED_RESPONSE 5
+#define OCSP_UNAUTHORIZED_RESPONSE 6
+
+typedef struct _OCSP_RESPONSE_INFO {
+ DWORD dwStatus;
+ LPSTR pszObjId;
+ CRYPT_OBJID_BLOB Value;
+} OCSP_RESPONSE_INFO, *POCSP_RESPONSE_INFO;
+
+typedef struct _OCSP_SIGNATURE_INFO {
+ CRYPT_ALGORITHM_IDENTIFIER SignatureAlgorithm;
+ CRYPT_BIT_BLOB Signature;
+ DWORD cCertEncoded;
+ PCERT_BLOB rgCertEncoded;
+} OCSP_SIGNATURE_INFO, *POCSP_SIGNATURE_INFO;
+
+typedef struct _OCSP_BASIC_SIGNED_RESPONSE_INFO {
+ CRYPT_DER_BLOB ToBeSigned;
+ OCSP_SIGNATURE_INFO SignatureInfo;
+} OCSP_BASIC_SIGNED_RESPONSE_INFO, *POCSP_BASIC_SIGNED_RESPONSE_INFO;
+
+typedef struct _OCSP_SIGNED_REQUEST_INFO {
+ CRYPT_DER_BLOB ToBeSigned;
+ POCSP_SIGNATURE_INFO pOptionalSignatureInfo;
+} OCSP_SIGNED_REQUEST_INFO, *POCSP_SIGNED_REQUEST_INFO;
+
+WINBOOL WINAPI CryptHashCertificate2(
+ LPCWSTR pwszCNGHashAlgid,
+ DWORD dwFlags,
+ void *pvReserved,
+ BYTE *pbEncoded,
+ DWORD cbEncoded,
+ BYTE *pbComputedHash,
+ DWORD *pcbComputedHash
+);
+
+WINBOOL WINAPI CryptImportPublicKeyInfoEx2(
+ DWORD dwCertEncodingType,
+ PCERT_PUBLIC_KEY_INFO pInfo,
+ DWORD dwFlags,
+ void *pvAuxInfo,
+ BCRYPT_KEY_HANDLE *phKey
+);
+
+WINBOOL WINAPI CryptUpdateProtectedState(
+ PSID pOldSid,
+ LPCWSTR pwszOldPassword,
+ DWORD dwFlags,
+ DWORD *pdwSuccessCount,
+ DWORD *pdwFailureCount
+);
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
#ifdef __cplusplus
}
#endif
diff --git a/mingw-w64-headers/include/windef.h b/mingw-w64-headers/include/windef.h
index 687a5c6..506f426 100644
--- a/mingw-w64-headers/include/windef.h
+++ b/mingw-w64-headers/include/windef.h
@@ -102,12 +102,11 @@
#pragma push_macro("BOOL")
#undef BOOL
#if !defined(__OBJC__) && !defined(__OBJC_BOOL) && !defined(__objc_INCLUDE_GNU)
-typedef int BOOL;
+typedef WINBOOL BOOL;
#endif
-#define BOOL WINBOOL
-typedef BOOL *PBOOL;
-typedef BOOL *LPBOOL;
#pragma pop_macro("BOOL")
+typedef WINBOOL *PBOOL;
+typedef WINBOOL *LPBOOL;
#endif /* _DEF_WINBOOL_ */
typedef unsigned char BYTE;
diff --git a/mingw-w64-headers/include/windot11.h b/mingw-w64-headers/include/windot11.h
new file mode 100644
index 0000000..1b683aa
--- /dev/null
+++ b/mingw-w64-headers/include/windot11.h
@@ -0,0 +1,35 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_WINDOT11
+#define _INC_WINDOT11
+#include <ntddnis.h>
+#include <wlantypes.h>
+
+typedef UCHAR DOT11_MAC_ADDRESS[6];
+typedef DOT11_MAC_ADDRESS* PDOT11_MAC_ADDRESS;
+
+typedef enum _DOT11_PHY_TYPE {
+ dot11_phy_type_unknown = 0,
+ dot11_phy_type_any = 0,
+ dot11_phy_type_fhss = 1,
+ dot11_phy_type_dsss = 2,
+ dot11_phy_type_irbaseband = 3,
+ dot11_phy_type_ofdm = 4,
+ dot11_phy_type_hrdsss = 5,
+ dot11_phy_type_erp = 6,
+ dot11_phy_type_ht = 7,
+ dot11_phy_type_IHV_start = 0x80000000,
+ dot11_phy_type_IHV_end = 0xffffffff
+} DOT11_PHY_TYPE, *PDOT11_PHY_TYPE;
+
+typedef struct _DOT11_BSSID_LIST {
+ NDIS_OBJECT_HEADER Header;
+ ULONG uNumOfEntries;
+ ULONG uTotalNumOfEntries;
+ DOT11_MAC_ADDRESS BSSIDs[1];
+} DOT11_BSSID_LIST, *PDOT11_BSSID_LIST;
+
+#endif /*_INC_WINDOT11*/
diff --git a/mingw-w64-headers/include/winerror.h b/mingw-w64-headers/include/winerror.h
index ebc84ac..d9bb201 100644
--- a/mingw-w64-headers/include/winerror.h
+++ b/mingw-w64-headers/include/winerror.h
@@ -3055,6 +3055,8 @@
#define SCARD_W_EOF _HRESULT_TYPEDEF_(0x8010006DL)
#define SCARD_W_CANCELLED_BY_USER _HRESULT_TYPEDEF_(0x8010006EL)
#define SCARD_W_CARD_NOT_AUTHENTICATED _HRESULT_TYPEDEF_(0x8010006FL)
+#define SCARD_W_CACHE_ITEM_NOT_FOUND _HRESULT_TYPEDEF_(0x80100070L)
+#define SCARD_W_CACHE_ITEM_STALE _HRESULT_TYPEDEF_(0x80100071L)
#define COMADMIN_E_OBJECTERRORS _HRESULT_TYPEDEF_(0x80110401L)
#define COMADMIN_E_OBJECTINVALID _HRESULT_TYPEDEF_(0x80110402L)
#define COMADMIN_E_KEYMISSING _HRESULT_TYPEDEF_(0x80110403L)
@@ -3168,4 +3170,64 @@
#define COMADMIN_E_SAFERINVALID _HRESULT_TYPEDEF_(0x80110822L)
#define COMADMIN_E_REGISTRY_ACCESSDENIED _HRESULT_TYPEDEF_(0x80110823L)
#define COMADMIN_E_PARTITIONS_DISABLED _HRESULT_TYPEDEF_(0x80110824L)
+
+#if (_WIN32_WINNT >= 0x0600)
+#define FWP_E_CALLOUT_NOT_FOUND 0x80320001
+#define FWP_E_CONDITION_NOT_FOUND 0x80320002
+#define FWP_E_FILTER_NOT_FOUND 0x80320003
+#define FWP_E_LAYER_NOT_FOUND 0x80320004
+#define FWP_E_PROVIDER_NOT_FOUND 0x80320005
+#define FWP_E_PROVIDER_CONTEXT_NOT_FOUND 0x80320006
+#define FWP_E_SUBLAYER_NOT_FOUND 0x80320007
+#define FWP_E_NOT_FOUND 0x80320008
+#define FWP_E_ALREADY_EXISTS 0x80320009
+#define FWP_E_IN_USE 0x8032000A
+#define FWP_E_DYNAMIC_SESSION_IN_PROGRESS 0x8032000B
+#define FWP_E_WRONG_SESSION 0x8032000C
+#define FWP_E_NO_TXN_IN_PROGRESS 0x8032000D
+#define FWP_E_TXN_IN_PROGRESS 0x8032000E
+#define FWP_E_TXN_ABORTED 0x8032000F
+#define FWP_E_SESSION_ABORTED 0x80320010
+#define FWP_E_INCOMPATIBLE_TXN 0x80320011
+#define FWP_E_TIMEOUT 0x80320012
+#define FWP_E_NET_EVENTS_DISABLED 0x80320013
+#define FWP_E_INCOMPATIBLE_LAYER 0x80320014
+#define FWP_E_KM_CLIENTS_ONLY 0x80320015
+#define FWP_E_LIFETIME_MISMATCH 0x80320016
+#define FWP_E_BUILTIN_OBJECT 0x80320017
+#define FWP_E_TOO_MANY_CALLOUTS 0x80320018
+#define FWP_E_NOTIFICATION_DROPPED 0x80320019
+#define FWP_E_TRAFFIC_MISMATCH 0x8032001A
+#define FWP_E_INCOMPATIBLE_SA_STATE 0x8032001B
+#define FWP_E_NULL_POINTER 0x8032001C
+#define FWP_E_INVALID_ENUMERATOR 0x8032001D
+#define FWP_E_INVALID_FLAGS 0x8032001E
+#define FWP_E_INVALID_NET_MASK 0x8032001F
+#define FWP_E_INVALID_RANGE 0x80320020
+#define FWP_E_INVALID_INTERVAL 0x80320021
+#define FWP_E_ZERO_LENGTH_ARRAY 0x80320022
+#define FWP_E_NULL_DISPLAY_NAME 0x80320023
+#define FWP_E_INVALID_ACTION_TYPE 0x80320024
+#define FWP_E_INVALID_WEIGHT 0x80320025
+#define FWP_E_MATCH_TYPE_MISMATCH 0x80320026
+#define FWP_E_TYPE_MISMATCH 0x80320027
+#define FWP_E_OUT_OF_BOUNDS 0x80320028
+#define FWP_E_RESERVED 0x80320029
+#define FWP_E_DUPLICATE_CONDITION 0x8032002A
+#define FWP_E_DUPLICATE_KEYMOD 0x8032002B
+#define FWP_E_ACTION_INCOMPATIBLE_WITH_LAYER 0x8032002C
+#define FWP_E_ACTION_INCOMPATIBLE_WITH_SUBLAYER 0x8032002D
+#define FWP_E_CONTEXT_INCOMPATIBLE_WITH_LAYER 0x8032002E
+#define FWP_E_CONTEXT_INCOMPATIBLE_WITH_CALLOUT 0x8032002F
+#define FWP_E_INCOMPATIBLE_AUTH_METHOD 0x80320030
+#define FWP_E_INCOMPATIBLE_DH_GROUP 0x80320031L
+#define FWP_E_EM_NOT_SUPPORTED 0x80320032
+#define FWP_E_NEVER_MATCH 0x80320033
+#define FWP_E_PROVIDER_CONTEXT_MISMATCH 0x80320034
+#define FWP_E_INVALID_PARAMETER 0x80320035
+#define FWP_E_TOO_MANY_SUBLAYERS 0x80320036
+#define FWP_E_CALLOUT_NOTIFICATION_FAILED 0x80320037
+#define FWP_E_INVALID_AUTH_TRANSFORM 0x80320038
+#define FWP_E_INVALID_CIPHER_TRANSFORM 0x80320039
+#endif /*(_WIN32_WINNT >= 0x0600)*/
#endif // _WINERROR_
diff --git a/mingw-w64-headers/include/winevt.h b/mingw-w64-headers/include/winevt.h
new file mode 100644
index 0000000..2568b2b
--- /dev/null
+++ b/mingw-w64-headers/include/winevt.h
@@ -0,0 +1,576 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_WINEVT
+#define _INC_WINEVT
+#if (_WIN32_WINNT >= 0x0600)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum _EVT_CHANNEL_CLOCK_TYPE {
+ EvtChannelClockTypeSystemTime = 0,
+ EvtChannelClockTypeQPC = 1
+} EVT_CHANNEL_CLOCK_TYPE;
+
+typedef enum _EVT_CHANNEL_CONFIG_PROPERTY_ID {
+ EvtChannelConfigEnabled = 0,
+ EvtChannelConfigIsolation = 1,
+ EvtChannelConfigType = 2,
+ EvtChannelConfigOwningPublisher = 3,
+ EvtChannelConfigClassicEventlog = 4,
+ EvtChannelConfigAccess = 5,
+ EvtChannelLoggingConfigRetention = 6,
+ EvtChannelLoggingConfigAutoBackup = 7,
+ EvtChannelLoggingConfigMaxSize = 8,
+ EvtChannelLoggingConfigLogFilePath = 9,
+ EvtChannelPublishingConfigLevel = 10,
+ EvtChannelPublishingConfigKeywords = 11,
+ EvtChannelPublishingConfigControlGuid = 12,
+ EvtChannelPublishingConfigBufferSize = 13,
+ EvtChannelPublishingConfigMinBuffers = 14,
+ EvtChannelPublishingConfigMaxBuffers = 15,
+ EvtChannelPublishingConfigLatency = 16,
+ EvtChannelPublishingConfigClockType = 17,
+ EvtChannelPublishingConfigSidType = 18,
+ EvtChannelPublisherList = 19,
+ EvtChannelPublishingConfigFileMax = 20,
+ EvtChannelConfigPropertyIdEND = 21
+} EVT_CHANNEL_CONFIG_PROPERTY_ID;
+
+typedef enum _EVT_CHANNEL_ISOLATION_TYPE {
+ EvtChannelIsolationTypeApplication = 0,
+ EvtChannelIsolationTypeSystem = 1,
+ EvtChannelIsolationTypeCustom = 2
+} EVT_CHANNEL_ISOLATION_TYPE;
+
+typedef enum _EVT_CHANNEL_REFERENCE_FLAGS {
+ EvtChannelReferenceImported = 0x1
+} EVT_CHANNEL_REFERENCE_FLAGS;
+
+typedef enum _EVT_CHANNEL_SID_TYPE {
+ EvtChannelSidTypeNone = 0,
+ EvtChannelSidTypePublishing = 1
+} EVT_CHANNEL_SID_TYPE;
+
+typedef enum _EVT_CHANNEL_TYPE {
+ EvtChannelTypeAdmin = 0,
+ EvtChannelTypeOperational = 1,
+ EvtChannelTypeAnalytic = 2,
+ EvtChannelTypeDebug = 3
+} EVT_CHANNEL_TYPE;
+
+typedef enum _EVT_EVENT_METADATA_PROPERTY_ID {
+ EventMetadataEventID = 0,
+ EventMetadataEventVersion = 1,
+ EventMetadataEventChannel = 2,
+ EventMetadataEventLevel = 3,
+ EventMetadataEventOpcode = 4,
+ EventMetadataEventTask = 5,
+ EventMetadataEventKeyword = 6,
+ EventMetadataEventMessageID = 7,
+ EventMetadataEventTemplate = 8,
+ EvtEventMetadataPropertyIdEND = 9
+} EVT_EVENT_METADATA_PROPERTY_ID;
+
+typedef enum _EVT_EVENT_PROPERTY_ID {
+ EvtEventQueryIDs = 0,
+ EvtEventPath = 1,
+ EvtEventPropertyIdEND = 2
+} EVT_EVENT_PROPERTY_ID;
+
+typedef enum _EVT_EXPORTLOG_FLAGS {
+ EvtExportLogChannelPath = 0x1,
+ EvtExportLogFilePath = 0x2,
+ EvtExportLogTolerateQueryErrors = 0x1000
+} EVT_EXPORTLOG_FLAGS;
+
+typedef enum _EVT_FORMAT_MESSAGE_FLAGS {
+ EvtFormatMessageEvent = 1,
+ EvtFormatMessageLevel = 2,
+ EvtFormatMessageTask = 3,
+ EvtFormatMessageOpcode = 4,
+ EvtFormatMessageKeyword = 5,
+ EvtFormatMessageChannel = 6,
+ EvtFormatMessageProvider = 7,
+ EvtFormatMessageId = 8,
+ EvtFormatMessageXml = 9
+} EVT_FORMAT_MESSAGE_FLAGS;
+
+typedef enum _EVT_LOG_PROPERTY_ID {
+ EvtLogCreationTime = 0,
+ EvtLogLastAccessTime = 1,
+ EvtLogLastWriteTime = 2,
+ EvtLogFileSize = 3,
+ EvtLogAttributes = 4,
+ EvtLogNumberOfLogRecords = 5,
+ EvtLogOldestRecordNumber = 6,
+ EvtLogFull = 7
+} EVT_LOG_PROPERTY_ID;
+
+typedef enum _EVT_LOGIN_CLASS {
+ EvtRpcLogin = 1
+} EVT_LOGIN_CLASS;
+
+typedef enum _EVT_OPEN_LOG_FLAGS {
+ EvtOpenChannelPath = 0x1,
+ EvtOpenFilePath = 0x2
+} EVT_OPEN_LOG_FLAGS;
+
+typedef enum _EVT_PUBLISHER_METADATA_PROPERTY_ID {
+ EvtPublisherMetadataPublisherGuid = 0,
+ EvtPublisherMetadataResourceFilePath,
+ EvtPublisherMetadataParameterFilePath,
+ EvtPublisherMetadataMessageFilePath,
+ EvtPublisherMetadataHelpLink,
+ EvtPublisherMetadataPublisherMessageID,
+ EvtPublisherMetadataChannelReferences,
+ EvtPublisherMetadataChannelReferencePath,
+ EvtPublisherMetadataChannelReferenceIndex,
+ EvtPublisherMetadataChannelReferenceID,
+ EvtPublisherMetadataChannelReferenceFlags,
+ EvtPublisherMetadataChannelReferenceMessageID,
+ EvtPublisherMetadataLevels,
+ EvtPublisherMetadataLevelName,
+ EvtPublisherMetadataLevelValue,
+ EvtPublisherMetadataLevelMessageID,
+ EvtPublisherMetadataTasks,
+ EvtPublisherMetadataTaskName,
+ EvtPublisherMetadataTaskEventGuid,
+ EvtPublisherMetadataTaskValue,
+ EvtPublisherMetadataTaskMessageID,
+ EvtPublisherMetadataOpcodes,
+ EvtPublisherMetadataOpcodeName,
+ EvtPublisherMetadataOpcodeValue,
+ EvtPublisherMetadataOpcodeMessageID,
+ EvtPublisherMetadataKeywords,
+ EvtPublisherMetadataKeywordName,
+ EvtPublisherMetadataKeywordValue,
+ EvtPublisherMetadataKeywordMessageID,
+ EvtPublisherMetadataPropertyIdEND
+} EVT_PUBLISHER_METADATA_PROPERTY_ID;
+
+typedef enum _EVT_QUERY_FLAGS {
+ EvtQueryChannelPath = 0x1,
+ EvtQueryFilePath = 0x2,
+ EvtQueryForwardDirection = 0x100,
+ EvtQueryReverseDirection = 0x200,
+ EvtQueryTolerateQueryErrors = 0x1000
+} EVT_QUERY_FLAGS;
+
+typedef enum _EVT_QUERY_PROPERTY_ID {
+ EvtQueryNames = 0,
+ EvtQueryStatuses = 1,
+ EvtQueryPropertyIdEND = 2
+} EVT_QUERY_PROPERTY_ID;
+
+typedef enum _EVT_RENDER_CONTEXT_FLAGS {
+ EvtRenderContextValues = 0,
+ EvtRenderContextSystem = 1,
+ EvtRenderContextUser = 2
+} EVT_RENDER_CONTEXT_FLAGS;
+
+typedef enum _EVT_RENDER_FLAGS {
+ EvtRenderEventValues = 0,
+ EvtRenderEventXml = 1,
+ EvtRenderBookmark = 2
+} EVT_RENDER_FLAGS;
+
+typedef struct _EVT_RPC_LOGIN {
+ LPWSTR Server;
+ LPWSTR User;
+ LPWSTR Domain;
+ LPWSTR Password;
+ DWORD Flags;
+} EVT_RPC_LOGIN;
+
+typedef enum _EVT_RPC_LOGIN_FLAGS {
+ EvtRpcLoginAuthDefault = 0,
+ EvtRpcLoginAuthNegotiate = 1,
+ EvtRpcLoginAuthKerberos = 2,
+ EvtRpcLoginAuthNTLM = 3
+} EVT_RPC_LOGIN_FLAGS;
+
+typedef enum _EVT_SEEK_FLAGS {
+ EvtSeekRelativeToFirst = 1,
+ EvtSeekRelativeToLast = 2,
+ EvtSeekRelativeToCurrent = 3,
+ EvtSeekRelativeToBookmark = 4,
+ EvtSeekOriginMask = 7,
+ EvtSeekStrict = 0x10000
+} EVT_SEEK_FLAGS;
+
+typedef enum _EVT_SUBSCRIBE_FLAGS {
+ EvtSubscribeToFutureEvents = 1,
+ EvtSubscribeStartAtOldestRecord = 2,
+ EvtSubscribeStartAfterBookmark = 3,
+ EvtSubscribeOriginMask = 0x3,
+ EvtSubscribeTolerateQueryErrors = 0x1000,
+ EvtSubscribeStrict = 0x10000
+} EVT_SUBSCRIBE_FLAGS;
+
+typedef enum _EVT_SUBSCRIBE_NOTIFY_ACTION {
+ EvtSubscribeActionError = 0,
+ EvtSubscribeActionDeliver = 1
+} EVT_SUBSCRIBE_NOTIFY_ACTION;
+
+typedef enum _EVT_SYSTEM_PROPERTY_ID {
+ EvtSystemProviderName = 0,
+ EvtSystemProviderGuid,
+ EvtSystemEventID,
+ EvtSystemQualifiers,
+ EvtSystemLevel,
+ EvtSystemTask,
+ EvtSystemOpcode,
+ EvtSystemKeywords,
+ EvtSystemTimeCreated,
+ EvtSystemEventRecordId,
+ EvtSystemActivityID,
+ EvtSystemRelatedActivityID,
+ EvtSystemProcessID,
+ EvtSystemThreadID,
+ EvtSystemChannel,
+ EvtSystemComputer,
+ EvtSystemUserID,
+ EvtSystemVersion,
+ EvtSystemPropertyIdEND
+} EVT_SYSTEM_PROPERTY_ID;
+
+typedef enum _EVT_VARIANT_TYPE {
+ EvtVarTypeNull = 0,
+ EvtVarTypeString = 1,
+ EvtVarTypeAnsiString = 2,
+ EvtVarTypeSByte = 3,
+ EvtVarTypeByte = 4,
+ EvtVarTypeInt16 = 5,
+ EvtVarTypeUInt16 = 6,
+ EvtVarTypeInt32 = 7,
+ EvtVarTypeUInt32 = 8,
+ EvtVarTypeInt64 = 9,
+ EvtVarTypeUInt64 = 10,
+ EvtVarTypeSingle = 11,
+ EvtVarTypeDouble = 12,
+ EvtVarTypeBoolean = 13,
+ EvtVarTypeBinary = 14,
+ EvtVarTypeGuid = 15,
+ EvtVarTypeSizeT = 16,
+ EvtVarTypeFileTime = 17,
+ EvtVarTypeSysTime = 18,
+ EvtVarTypeSid = 19,
+ EvtVarTypeHexInt32 = 20,
+ EvtVarTypeHexInt64 = 21,
+ EvtVarTypeEvtHandle = 32,
+ EvtVarTypeEvtXml = 35
+} EVT_VARIANT_TYPE;
+
+typedef struct _EVT_VARIANT {
+ __MINGW_EXTENSION union {
+ WINBOOL BooleanVal;
+ INT8 SByteVal;
+ INT16 Int16Val;
+ INT32 Int32Val;
+ INT64 Int64Val;
+ UINT8 ByteVal;
+ UINT16 UInt16Val;
+ UINT32 UInt32Val;
+ UINT64 UInt64Val;
+ float SingleVal;
+ double DoubleVal;
+ ULONGLONG FileTimeVal;
+ SYSTEMTIME *SysTimeVal;
+ GUID *GuidVal;
+ LPCWSTR StringVal;
+ LPCSTR AnsiStringVal;
+ PBYTE BinaryVal;
+ PSID SidVal;
+ size_t SizeTVal;
+ EVT_HANDLE EvtHandleVal;
+ BOOL *BooleanArr;
+ INT8 *SByteArr;
+ INT16 *Int16Arr;
+ INT32 *Int32Arr;
+ INT64 *Int64Arr;
+ UINT8 *ByteArr;
+ UINT16 *UInt16Arr;
+ UINT32 *UInt32Arr;
+ UINT64 *UInt64Arr;
+ float *SingleArr;
+ double *DoubleArr;
+ FILETIME *FileTimeArr;
+ SYSTEMTIME *SysTimeArr;
+ GUID *GuidArr;
+ LPWSTR *StringArr;
+ LPSTR *AnsiStringArr;
+ PSID *SidArr;
+ size_t *SizeTArr;
+ LPCWSTR XmlVal;
+ LPCWSTR* XmlValArr;
+ };
+ DWORD Count;
+ DWORD Type;
+} EVT_VARIANT, *PEVT_VARIANT;
+
+typedef LPVOID EVT_HANDLE;
+typedef LPVOID EVT_OBJECT_ARRAY_PROPERTY_HANDLE;
+
+typedef DWORD ( WINAPI *EVT_SUBSCRIBE_CALLBACK )(
+ EVT_SUBSCRIBE_NOTIFY_ACTION Action,
+ PVOID UserContext,
+ EVT_HANDLE Event
+);
+
+WINBOOL WINAPI EvtArchiveExportedLog(
+ EVT_HANDLE Session,
+ LPCWSTR LogFilePath,
+ LCID Locale,
+ DWORD Flags
+);
+
+WINBOOL WINAPI EvtCancel(
+ EVT_HANDLE Object
+);
+
+WINBOOL WINAPI EvtClearLog(
+ EVT_HANDLE Session,
+ LPCWSTR ChannelPath,
+ LPCWSTR TargetFilePath,
+ DWORD Flags
+);
+
+WINBOOL WINAPI EvtClose(
+ EVT_HANDLE Object
+);
+
+EVT_HANDLE WINAPI EvtCreateBookmark(
+ LPCWSTR BookmarkXml
+);
+
+EVT_HANDLE WINAPI EvtCreateRenderContext(
+ DWORD ValuePathsCount,
+ LPCWSTR *ValuePaths,
+ DWORD Flags
+);
+
+WINBOOL WINAPI EvtExportLog(
+ EVT_HANDLE Session,
+ LPCWSTR Path,
+ LPCWSTR Query,
+ LPCWSTR TargetFilePath,
+ DWORD Flags
+);
+
+WINBOOL WINAPI EvtFormatMessage(
+ EVT_HANDLE PublisherMetadata,
+ EVT_HANDLE Event,
+ DWORD MessageId,
+ DWORD ValueCount,
+ PEVT_VARIANT Values,
+ DWORD Flags,
+ DWORD BufferSize,
+ LPWSTR Buffer,
+ PDWORD BufferUsed
+);
+
+WINBOOL WINAPI EvtGetChannelConfigProperty(
+ EVT_HANDLE ChannelConfig,
+ EVT_CHANNEL_CONFIG_PROPERTY_ID PropertyId,
+ DWORD Flags,
+ DWORD PropertyValueBufferSize,
+ PEVT_VARIANT PropertyValueBuffer,
+ PDWORD PropertyValueBufferUsed
+);
+
+WINBOOL WINAPI EvtGetEventInfo(
+ EVT_HANDLE Event,
+ EVT_EVENT_PROPERTY_ID PropertyId,
+ DWORD PropertyValueBufferSize,
+ PEVT_VARIANT PropertyValueBuffer,
+ PDWORD PropertyValueBufferUsed
+);
+
+WINBOOL WINAPI EvtGetEventMetadataProperty(
+ EVT_HANDLE EventMetadata,
+ EVT_EVENT_METADATA_PROPERTY_ID PropertyId,
+ DWORD Flags,
+ DWORD EventMetadataPropertyBufferSize,
+ PEVT_VARIANT EventMetadataPropertyBuffer,
+ PDWORD EventMetadataPropertyBufferUsed
+);
+
+DWORD WINAPI EvtGetExtendedStatus(
+ DWORD BufferSize,
+ LPWSTR Buffer,
+ PDWORD BufferUsed
+);
+
+WINBOOL WINAPI EvtGetLogInfo(
+ EVT_HANDLE Log,
+ EVT_LOG_PROPERTY_ID PropertyId,
+ DWORD PropertyValueBufferSize,
+ PEVT_VARIANT PropertyValueBuffer,
+ PDWORD PropertyValueBufferUsed
+);
+
+WINBOOL WINAPI EvtGetObjectArrayProperty(
+ EVT_OBJECT_ARRAY_PROPERTY_HANDLE ObjectArray,
+ DWORD PropertyId,
+ DWORD ArrayIndex,
+ DWORD Flags,
+ DWORD PropertyValueBufferSize,
+ PEVT_VARIANT PropertyValueBuffer,
+ PDWORD PropertyValueBufferUsed
+);
+
+WINBOOL WINAPI EvtGetObjectArraySize(
+ EVT_OBJECT_ARRAY_PROPERTY_HANDLE ObjectArray,
+ PDWORD ObjectArraySize
+);
+
+WINBOOL WINAPI EvtGetPublisherMetadataProperty(
+ EVT_HANDLE PublisherMetadata,
+ EVT_PUBLISHER_METADATA_PROPERTY_ID PropertyId,
+ DWORD Flags,
+ DWORD PublisherMetadataPropertyBufferSize,
+ PEVT_VARIANT PublisherMetadataPropertyBuffer,
+ PDWORD PublisherMetadataPropertyBufferUsed
+);
+
+WINBOOL WINAPI EvtGetQueryInfo(
+ EVT_HANDLE QueryOrSubscription,
+ EVT_QUERY_PROPERTY_ID PropertyId,
+ DWORD PropertyValueBufferSize,
+ PEVT_VARIANT PropertyValueBuffer,
+ PDWORD PropertyValueBufferUsed
+);
+
+WINBOOL WINAPI EvtNext(
+ EVT_HANDLE ResultSet,
+ DWORD EventArraySize,
+ EVT_HANDLE* EventArray,
+ DWORD Timeout,
+ DWORD Flags,
+ PDWORD Returned
+);
+
+WINBOOL WINAPI EvtNextChannelPath(
+ EVT_HANDLE ChannelEnum,
+ DWORD ChannelPathBufferSize,
+ LPWSTR ChannelPathBuffer,
+ PDWORD ChannelPathBufferUsed
+);
+
+EVT_HANDLE WINAPI EvtNextEventMetadata(
+ EVT_HANDLE EventMetadataEnum,
+ DWORD Flags
+);
+
+WINBOOL WINAPI EvtNextPublisherId(
+ EVT_HANDLE PublisherEnum,
+ DWORD PublisherIdBufferSize,
+ LPWSTR PublisherIdBuffer,
+ PDWORD PublisherIdBufferUsed
+);
+
+EVT_HANDLE WINAPI EvtOpenChannelConfig(
+ EVT_HANDLE Session,
+ LPCWSTR ChannelPath,
+ DWORD Flags
+);
+
+EVT_HANDLE WINAPI EvtOpenChannelEnum(
+ EVT_HANDLE Session,
+ DWORD Flags
+);
+
+EVT_HANDLE WINAPI EvtOpenEventMetadataEnum(
+ EVT_HANDLE PublisherMetadata,
+ DWORD Flags
+);
+
+EVT_HANDLE WINAPI EvtOpenLog(
+ EVT_HANDLE Session,
+ LPCWSTR Path,
+ DWORD Flags
+);
+
+EVT_HANDLE WINAPI EvtOpenPublisherEnum(
+ EVT_HANDLE Session,
+ DWORD Flags
+);
+
+EVT_HANDLE WINAPI EvtOpenPublisherMetadata(
+ EVT_HANDLE Session,
+ LPCWSTR PublisherIdentity,
+ LPCWSTR LogFilePath,
+ LCID Locale,
+ DWORD Flags
+);
+
+EVT_HANDLE WINAPI EvtOpenSession(
+ EVT_LOGIN_CLASS LoginClass,
+ PVOID Login,
+ DWORD Timeout,
+ DWORD Flags
+);
+
+EVT_HANDLE WINAPI EvtQuery(
+ EVT_HANDLE Session,
+ LPCWSTR Path,
+ LPCWSTR Query,
+ DWORD Flags
+);
+
+WINBOOL WINAPI EvtRender(
+ EVT_HANDLE Context,
+ EVT_HANDLE Fragment,
+ DWORD Flags,
+ DWORD BufferSize,
+ PVOID Buffer,
+ PDWORD BufferUsed,
+ PDWORD PropertyCount
+);
+
+WINBOOL WINAPI EvtSaveChannelConfig(
+ EVT_HANDLE ChannelConfig,
+ DWORD Flags
+);
+
+WINBOOL WINAPI EvtSeek(
+ EVT_HANDLE ResultSet,
+ LONGLONG Position,
+ EVT_HANDLE Bookmark,
+ DWORD Timeout,
+ DWORD Flags
+);
+
+WINBOOL WINAPI EvtSetChannelConfigProperty(
+ EVT_HANDLE ChannelConfig,
+ EVT_CHANNEL_CONFIG_PROPERTY_ID PropertyId,
+ DWORD Flags,
+ PEVT_VARIANT PropertyValue
+);
+
+EVT_HANDLE WINAPI EvtSubscribe(
+ EVT_HANDLE Session,
+ HANDLE SignalEvent,
+ LPCWSTR ChannelPath,
+ LPCWSTR Query,
+ EVT_HANDLE Bookmark,
+ PVOID context,
+ EVT_SUBSCRIBE_CALLBACK Callback,
+ DWORD Flags
+);
+
+WINBOOL WINAPI EvtUpdateBookmark(
+ EVT_HANDLE Bookmark,
+ EVT_HANDLE Event
+);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_TDH*/
diff --git a/mingw-w64-headers/include/winioctl.h b/mingw-w64-headers/include/winioctl.h
index c586987..15af592 100644
--- a/mingw-w64-headers/include/winioctl.h
+++ b/mingw-w64-headers/include/winioctl.h
@@ -1676,6 +1676,308 @@
#define COPYFILE_SIS_REPLACE 0x0002
#define COPYFILE_SIS_FLAGS 0x0003
+#if (_WIN32_WINNT >= 0x0600)
+/* FIXME: these do not belong here: they should be in
+ * ddk/classpnp.h as enum MEDIA_CHANGE_DETECTION_STATE
+ */
+#define MediaUnknown 0
+#define MediaPresent 1
+#define MediaNotPresent 2
+#define MediaUnavailable 3
+
+typedef struct _FILE_MAKE_COMPATIBLE_BUFFER {
+ BOOLEAN CloseDisc;
+} FILE_MAKE_COMPATIBLE_BUFFER, *PFILE_MAKE_COMPATIBLE_BUFFER;
+
+typedef struct _FILE_SET_DEFECT_MGMT_BUFFER {
+ BOOLEAN Disable;
+} FILE_SET_DEFECT_MGMT_BUFFER, *PFILE_SET_DEFECT_MGMT_BUFFER;
+
+typedef struct _FILE_QUERY_SPARING_BUFFER {
+ ULONG SparingUnitBytes;
+ BOOLEAN SoftwareSparing;
+ ULONG TotalSpareBlocks;
+ ULONG FreeSpareBlocks;
+} FILE_QUERY_SPARING_BUFFER, *PFILE_QUERY_SPARING_BUFFER;
+
+typedef struct _FILE_QUERY_ON_DISK_VOL_INFO_BUFFER {
+ LARGE_INTEGER DirectoryCount;
+ LARGE_INTEGER FileCount;
+ WORD FsFormatMajVersion;
+ WORD FsFormatMinVersion;
+ WCHAR FsFormatName[12];
+ LARGE_INTEGER FormatTime;
+ LARGE_INTEGER LastUpdateTime;
+ WCHAR CopyrightInfo[34];
+ WCHAR AbstractInfo[34];
+ WCHAR FormattingImplementationInfo[34];
+ WCHAR LastModifyingImplementationInfo[34];
+} FILE_QUERY_ON_DISK_VOL_INFO_BUFFER, *PFILE_QUERY_ON_DISK_VOL_INFO_BUFFER;
+
+#define SET_REPAIR_ENABLED 0x00000001
+#define SET_REPAIR_VOLUME_BITMAP_SCAN 0x00000002
+#define SET_REPAIR_DELETE_CROSSLINK 0x00000004
+#define SET_REPAIR_WARN_ABOUT_DATA_LOSS 0x00000008
+#define SET_REPAIR_DISABLED_AND_BUGCHECK_ON_CORRUPT 0x00000010
+#define SET_REPAIR_VALID_MASK 0x0000001F
+
+typedef enum _SHRINK_VOLUME_REQUEST_TYPES {
+ ShrinkPrepare,
+ ShrinkCommit,
+ ShrinkAbort
+} SHRINK_VOLUME_REQUEST_TYPES;
+
+typedef struct _SHRINK_VOLUME_INFORMATION {
+ SHRINK_VOLUME_REQUEST_TYPES ShrinkRequestType;
+ DWORDLONG Flags;
+ LONGLONG NewNumberOfSectors;
+} SHRINK_VOLUME_INFORMATION, *PSHRINK_VOLUME_INFORMATION;
+
+#define TXFS_RM_FLAG_LOGGING_MODE 0x00000001
+#define TXFS_RM_FLAG_RENAME_RM 0x00000002
+#define TXFS_RM_FLAG_LOG_CONTAINER_COUNT_MAX 0x00000004
+#define TXFS_RM_FLAG_LOG_CONTAINER_COUNT_MIN 0x00000008
+#define TXFS_RM_FLAG_LOG_GROWTH_INCREMENT_NUM_CONTAINERS 0x00000010
+#define TXFS_RM_FLAG_LOG_GROWTH_INCREMENT_PERCENT 0x00000020
+#define TXFS_RM_FLAG_LOG_AUTO_SHRINK_PERCENTAGE 0x00000040
+#define TXFS_RM_FLAG_LOG_NO_CONTAINER_COUNT_MAX 0x00000080
+#define TXFS_RM_FLAG_LOG_NO_CONTAINER_COUNT_MIN 0x00000100
+#define TXFS_RM_FLAG_GROW_LOG 0x00000400
+#define TXFS_RM_FLAG_SHRINK_LOG 0x00000800
+#define TXFS_RM_FLAG_ENFORCE_MINIMUM_SIZE 0x00001000
+#define TXFS_RM_FLAG_PRESERVE_CHANGES 0x00002000
+#define TXFS_RM_FLAG_RESET_RM_AT_NEXT_START 0x00004000
+#define TXFS_RM_FLAG_DO_NOT_RESET_RM_AT_NEXT_START 0x00008000
+#define TXFS_RM_FLAG_PREFER_CONSISTENCY 0x00010000
+#define TXFS_RM_FLAG_PREFER_AVAILABILITY 0x00020000
+
+#define TXFS_LOGGING_MODE_SIMPLE 1
+#define TXFS_LOGGING_MODE_FULL 2
+
+#define TXFS_TRANSACTION_STATE_NONE 0
+#define TXFS_TRANSACTION_STATE_ACTIVE 1
+#define TXFS_TRANSACTION_STATE_PREPARED 2
+#define TXFS_TRANSACTION_STATE_NOTACTIVE 3
+
+#define TXFS_MODIFY_RM_VALID_FLAGS (TXFS_RM_FLAG_LOGGING_MODE | \
+ TXFS_RM_FLAG_RENAME_RM | \
+ TXFS_RM_FLAG_LOG_CONTAINER_COUNT_MAX | \
+ TXFS_RM_FLAG_LOG_CONTAINER_COUNT_MIN | \
+ TXFS_RM_FLAG_LOG_GROWTH_INCREMENT_NUM_CONTAINERS | \
+ TXFS_RM_FLAG_LOG_GROWTH_INCREMENT_PERCENT | \
+ TXFS_RM_FLAG_LOG_AUTO_SHRINK_PERCENTAGE | \
+ TXFS_RM_FLAG_LOG_NO_CONTAINER_COUNT_MAX | \
+ TXFS_RM_FLAG_LOG_NO_CONTAINER_COUNT_MIN | \
+ TXFS_RM_FLAG_SHRINK_LOG | \
+ TXFS_RM_FLAG_GROW_LOG | \
+ TXFS_RM_FLAG_ENFORCE_MINIMUM_SIZE | \
+ TXFS_RM_FLAG_PRESERVE_CHANGES | \
+ TXFS_RM_FLAG_RESET_RM_AT_NEXT_START | \
+ TXFS_RM_FLAG_DO_NOT_RESET_RM_AT_NEXT_START | \
+ TXFS_RM_FLAG_PREFER_CONSISTENCY | \
+ TXFS_RM_FLAG_PREFER_AVAILABILITY)
+
+typedef struct _TXFS_MODIFY_RM {
+ ULONG Flags;
+ ULONG LogContainerCountMax;
+ ULONG LogContainerCountMin;
+ ULONG LogContainerCount;
+ ULONG LogGrowthIncrement;
+ ULONG LogAutoShrinkPercentage;
+ ULONGLONG Reserved;
+ USHORT LoggingMode;
+} TXFS_MODIFY_RM, *PTXFS_MODIFY_RM;
+
+#define TXFS_RM_STATE_NOT_STARTED 0
+#define TXFS_RM_STATE_STARTING 1
+#define TXFS_RM_STATE_ACTIVE 3
+#define TXFS_RM_STATE_SHUTTING_DOWN 4
+
+#define TXFS_QUERY_RM_INFORMATION_VALID_FLAGS \
+ (TXFS_RM_FLAG_LOG_GROWTH_INCREMENT_NUM_CONTAINERS | \
+ TXFS_RM_FLAG_LOG_GROWTH_INCREMENT_PERCENT | \
+ TXFS_RM_FLAG_LOG_NO_CONTAINER_COUNT_MAX | \
+ TXFS_RM_FLAG_LOG_NO_CONTAINER_COUNT_MIN | \
+ TXFS_RM_FLAG_RESET_RM_AT_NEXT_START | \
+ TXFS_RM_FLAG_DO_NOT_RESET_RM_AT_NEXT_START | \
+ TXFS_RM_FLAG_PREFER_CONSISTENCY | \
+ TXFS_RM_FLAG_PREFER_AVAILABILITY)
+
+typedef struct _TXFS_QUERY_RM_INFORMATION {
+ ULONG BytesRequired;
+ ULONGLONG TailLsn;
+ ULONGLONG CurrentLsn;
+ ULONGLONG ArchiveTailLsn;
+ ULONGLONG LogContainerSize;
+ LARGE_INTEGER HighestVirtualClock;
+ ULONG LogContainerCount;
+ ULONG LogContainerCountMax;
+ ULONG LogContainerCountMin;
+ ULONG LogGrowthIncrement;
+ ULONG LogAutoShrinkPercentage;
+ ULONG Flags;
+ USHORT LoggingMode;
+ USHORT Reserved;
+ ULONG RmState;
+ ULONGLONG LogCapacity;
+ ULONGLONG LogFree;
+ ULONGLONG TopsSize;
+ ULONGLONG TopsUsed;
+ ULONGLONG TransactionCount;
+ ULONGLONG OnePCCount;
+ ULONGLONG TwoPCCount;
+ ULONGLONG NumberLogFileFull;
+ ULONGLONG OldestTransactionAge;
+ GUID RMName;
+ ULONG TmLogPathOffset;
+} TXFS_QUERY_RM_INFORMATION, *PTXFS_QUERY_RM_INFORMATION;
+
+#define TXFS_ROLLFORWARD_REDO_FLAG_USE_LAST_REDO_LSN 0x01
+#define TXFS_ROLLFORWARD_REDO_FLAG_USE_LAST_VIRTUAL_CLOCK 0x02
+
+#define TXFS_ROLLFORWARD_REDO_VALID_FLAGS \
+ (TXFS_ROLLFORWARD_REDO_FLAG_USE_LAST_REDO_LSN | \
+ TXFS_ROLLFORWARD_REDO_FLAG_USE_LAST_VIRTUAL_CLOCK)
+
+typedef struct _TXFS_ROLLFORWARD_REDO_INFORMATION {
+ LARGE_INTEGER LastVirtualClock;
+ ULONGLONG LastRedoLsn;
+ ULONGLONG HighestRecoveryLsn;
+ ULONG Flags;
+} TXFS_ROLLFORWARD_REDO_INFORMATION, *PTXFS_ROLLFORWARD_REDO_INFORMATION;
+
+#define TXFS_START_RM_FLAG_LOG_CONTAINER_COUNT_MAX 0x00000001
+#define TXFS_START_RM_FLAG_LOG_CONTAINER_COUNT_MIN 0x00000002
+#define TXFS_START_RM_FLAG_LOG_CONTAINER_SIZE 0x00000004
+#define TXFS_START_RM_FLAG_LOG_GROWTH_INCREMENT_NUM_CONTAINERS 0x00000008
+#define TXFS_START_RM_FLAG_LOG_GROWTH_INCREMENT_PERCENT 0x00000010
+#define TXFS_START_RM_FLAG_LOG_AUTO_SHRINK_PERCENTAGE 0x00000020
+#define TXFS_START_RM_FLAG_LOG_NO_CONTAINER_COUNT_MAX 0x00000040
+#define TXFS_START_RM_FLAG_LOG_NO_CONTAINER_COUNT_MIN 0x00000080
+#define TXFS_START_RM_FLAG_RECOVER_BEST_EFFORT 0x00000200
+#define TXFS_START_RM_FLAG_LOGGING_MODE 0x00000400
+#define TXFS_START_RM_FLAG_PRESERVE_CHANGES 0x00000800
+#define TXFS_START_RM_FLAG_PREFER_CONSISTENCY 0x00001000
+#define TXFS_START_RM_FLAG_PREFER_AVAILABILITY 0x00002000
+
+#define TXFS_START_RM_VALID_FLAGS \
+ (TXFS_START_RM_FLAG_LOG_CONTAINER_COUNT_MAX | \
+ TXFS_START_RM_FLAG_LOG_CONTAINER_COUNT_MIN | \
+ TXFS_START_RM_FLAG_LOG_CONTAINER_SIZE | \
+ TXFS_START_RM_FLAG_LOG_GROWTH_INCREMENT_NUM_CONTAINERS | \
+ TXFS_START_RM_FLAG_LOG_GROWTH_INCREMENT_PERCENT | \
+ TXFS_START_RM_FLAG_LOG_AUTO_SHRINK_PERCENTAGE | \
+ TXFS_START_RM_FLAG_RECOVER_BEST_EFFORT | \
+ TXFS_START_RM_FLAG_LOG_NO_CONTAINER_COUNT_MAX | \
+ TXFS_START_RM_FLAG_LOGGING_MODE | \
+ TXFS_START_RM_FLAG_PRESERVE_CHANGES | \
+ TXFS_START_RM_FLAG_PREFER_CONSISTENCY | \
+ TXFS_START_RM_FLAG_PREFER_AVAILABILITY)
+
+typedef struct _TXFS_START_RM_INFORMATION {
+ ULONG Flags;
+ ULONGLONG LogContainerSize;
+ ULONG LogContainerCountMin;
+ ULONG LogContainerCountMax;
+ ULONG LogGrowthIncrement;
+ ULONG LogAutoShrinkPercentage;
+ ULONG TmLogPathOffset;
+ USHORT TmLogPathLength;
+ USHORT LoggingMode;
+ USHORT LogPathLength;
+ USHORT Reserved;
+ WCHAR LogPath[1];
+} TXFS_START_RM_INFORMATION, *PTXFS_START_RM_INFORMATION;
+
+typedef struct _TXFS_GET_METADATA_INFO_OUT {
+ __MINGW_EXTENSION struct {
+ LONGLONG LowPart;
+ LONGLONG HighPart;
+ } TxfFileId;
+ GUID LockingTransaction;
+ ULONGLONG LastLsn;
+ ULONG TransactionState;
+} TXFS_GET_METADATA_INFO_OUT, *PTXFS_GET_METADATA_INFO_OUT;
+
+#define TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY_FLAG_CREATED 0x00000001
+#define TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY_FLAG_DELETED 0x000000012
+
+typedef struct _TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY {
+ ULONGLONG Offset;
+ ULONG NameFlags;
+ LONGLONG FileId;
+ ULONG Reserved1;
+ ULONG Reserved2;
+ LONGLONG Reserved3;
+ WCHAR FileName[1];
+} TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY, *PTXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY;
+
+typedef struct _TXFS_LIST_TRANSACTION_LOCKED_FILES {
+ GUID KtmTransaction;
+ ULONGLONG NumberOfFiles;
+ ULONGLONG BufferSizeRequired;
+ ULONGLONG Offset;
+} TXFS_LIST_TRANSACTION_LOCKED_FILES, *PTXFS_LIST_TRANSACTION_LOCKED_FILES;
+
+typedef struct _TXFS_LIST_TRANSACTIONS_ENTRY {
+ GUID TransactionId;
+ ULONG TransactionState;
+ ULONG Reserved1;
+ ULONG Reserved2;
+ LONGLONG Reserved3;
+} TXFS_LIST_TRANSACTIONS_ENTRY, *PTXFS_LIST_TRANSACTIONS_ENTRY;
+
+typedef struct _TXFS_LIST_TRANSACTIONS {
+ ULONGLONG NumberOfTransactions;
+ ULONGLONG BufferSizeRequired;
+} TXFS_LIST_TRANSACTIONS, *PTXFS_LIST_TRANSACTIONS;
+
+typedef struct _TXFS_READ_BACKUP_INFORMATION_OUT {
+ __MINGW_EXTENSION union {
+ ULONG BufferLength;
+ UCHAR Buffer;
+ } DUMMYUNIONNAME;
+} TXFS_READ_BACKUP_INFORMATION_OUT, *PTXFS_READ_BACKUP_INFORMATION_OUT;
+
+typedef struct _TXFS_WRITE_BACKUP_INFORMATION {
+ UCHAR Buffer;
+} TXFS_WRITE_BACKUP_INFORMATION, *PTXFS_WRITE_BACKUP_INFORMATION;
+
+#define TXFS_TRANSACTED_VERSION_NONTRANSACTED 0xFFFFFFFE
+#define TXFS_TRANSACTED_VERSION_UNCOMMITTED 0xFFFFFFFF
+
+typedef struct _TXFS_GET_TRANSACTED_VERSION {
+ ULONG ThisBaseVersion;
+ ULONG LatestVersion;
+ USHORT ThisMiniVersion;
+ USHORT FirstMiniVersion;
+ USHORT LatestMiniVersion;
+} TXFS_GET_TRANSACTED_VERSION, *PTXFS_GET_TRANSACTED_VERSION;
+
+#define TXFS_SAVEPOINT_SET 1
+#define TXFS_SAVEPOINT_ROLLBACK 2
+#define TXFS_SAVEPOINT_CLEAR 4
+#define TXFS_SAVEPOINT_CLEAR_ALL 16
+
+typedef struct _TXFS_SAVEPOINT_INFORMATION {
+ HANDLE KtmTransaction;
+ ULONG ActionCode;
+ ULONG SavepointId;
+} TXFS_SAVEPOINT_INFORMATION, *PTXFS_SAVEPOINT_INFORMATION;
+
+typedef struct _TXFS_CREATE_MINIVERSION_INFO {
+ USHORT StructureVersion;
+ USHORT StructureLength;
+ ULONG BaseVersion;
+ USHORT MiniVersion;
+} TXFS_CREATE_MINIVERSION_INFO, *PTXFS_CREATE_MINIVERSION_INFO;
+
+typedef struct _TXFS_TRANSACTION_ACTIVE_INFO {
+ WINBOOL TransactionsActiveAtSnapshot;
+} TXFS_TRANSACTION_ACTIVE_INFO, *PTXFS_TRANSACTION_ACTIVE_INFO;
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
#endif /* _FILESYSTEMFSCTL_ */
diff --git a/mingw-w64-headers/include/winnls.h b/mingw-w64-headers/include/winnls.h
index 10dc718..d31414e 100644
--- a/mingw-w64-headers/include/winnls.h
+++ b/mingw-w64-headers/include/winnls.h
@@ -447,6 +447,9 @@
#define CAL_GREGORIAN_ARABIC 10
#define CAL_GREGORIAN_XLIT_ENGLISH 11
#define CAL_GREGORIAN_XLIT_FRENCH 12
+#if (_WIN32_WINNT >= 0x0600)
+#define CAL_UMALQURA 23
+#endif /* (_WIN32_WINNT >= 0x0600) */
#define LGRPID_WESTERN_EUROPE 0x0001
#define LGRPID_CENTRAL_EUROPE 0x0002
@@ -720,6 +723,321 @@
WINBASEAPI int WINAPI IdnToNameprepUnicode(DWORD dwFlags,LPCWSTR lpUnicodeCharStr,int cchUnicodeChar,LPWSTR lpNameprepCharStr,int cchNameprepChar);
WINBASEAPI int WINAPI IdnToUnicode(DWORD dwFlags,LPCWSTR lpASCIICharStr,int cchASCIIChar,LPWSTR lpUnicodeCharStr,int cchUnicodeChar);
+WINBASEAPI LANGID WINAPI SetThreadUILanguage(
+ LANGID LangId
+);
+
+#if (_WIN32_WINNT >= 0x0600)
+
+typedef struct _FILEMUIINFO {
+ DWORD dwSize;
+ DWORD dwVersion;
+ DWORD dwFileType;
+ BYTE pChecksum[16];
+ BYTE pServiceChecksum[16];
+ DWORD dwLanguageNameOffset;
+ DWORD dwTypeIDMainSize;
+ DWORD dwTypeIDMainOffset;
+ DWORD dwTypeNameMainOffset;
+ DWORD dwTypeIDMUISize;
+ DWORD dwTypeIDMUIOffset;
+ DWORD dwTypeNameMUIOffset;
+ BYTE abBuffer[8];
+} FILEMUIINFO, *PFILEMUIINFO;
+
+typedef struct _nlsversioninfoex {
+ DWORD dwNLSVersionInfoSize;
+ DWORD dwNLSVersion;
+ DWORD dwDefinedVersion;
+ DWORD dwEffectiveId;
+ GUID guidCustomVersion;
+} NLSVERSIONINFOEX, *LPNLSVERSIONINFOEX;
+
+WINBASEAPI int WINAPI CompareStringEx(
+ LPCWSTR lpLocaleName,
+ DWORD dwCmpFlags,
+ LPCWSTR lpString1,
+ int cchCount1,
+ LPCWSTR lpString2,
+ int cchCount2,
+ LPNLSVERSIONINFO lpVersionInformation,
+ LPVOID lpReserved,
+ LPARAM lParam
+);
+
+WINBASEAPI int WINAPI CompareStringOrdinal(
+ LPCWSTR lpString1,
+ int cchCount1,
+ LPCWSTR lpString2,
+ int cchCount2,
+ WINBOOL bIgnoreCase
+);
+
+typedef WINBOOL (CALLBACK *CALINFO_ENUMPROCEXEX)(
+ LPWSTR lpCalendarInfoString,
+ CALID Calendar,
+ LPWSTR lpReserved,
+ LPARAM lParam
+);
+
+typedef WINBOOL (CALLBACK *DATEFMT_ENUMPROCEXEX)(
+ LPWSTR lpDateFormatString,
+ CALID CalendarID,
+ LPARAM lParam
+);
+
+WINBASEAPI WINBOOL WINAPI EnumCalendarInfoExEx(
+ CALINFO_ENUMPROCEXEX pCalInfoEnumProcExEx,
+ LPCWSTR lpLocaleName,
+ CALID Calendar,
+ LPCWSTR lpReserved,
+ CALTYPE CalType,
+ LPARAM lParam
+);
+
+WINBASEAPI WINBOOL WINAPI EnumDateFormatsExEx(
+ DATEFMT_ENUMPROCEXEX lpDateFmtEnumProcExEx,
+ LPCWSTR lpLocaleName,
+ DWORD dwFlags,
+ LPARAM lParam
+);
+
+typedef WINBOOL (CALLBACK *LOCALE_ENUMPROCEX)(
+ LPWSTR lpLocaleString,
+ DWORD dwFlags,
+ LPARAM lParam
+);
+
+WINBASEAPI WINBOOL WINAPI EnumSystemLocalesEx(
+ LOCALE_ENUMPROCEX lpLocaleEnumProcEx,
+ DWORD dwFlags,
+ LPARAM lParam,
+ LPVOID lpReserved
+);
+
+typedef WINBOOL (CALLBACK *TIMEFMT_ENUMPROCEX)(
+ LPWSTR lpTimeFormatString,
+ LPARAM lParam
+);
+
+WINBASEAPI WINBOOL WINAPI EnumTimeFormatsEx(
+ TIMEFMT_ENUMPROCEX lpTimeFmtEnumProcEx,
+ LPCWSTR lpLocaleName,
+ DWORD dwFlags,
+ LPARAM lParam
+);
+
+WINBASEAPI int WINAPI FindNLSString(
+ LCID Locale,
+ DWORD dwFindNLSStringFlags,
+ LPCWSTR lpStringSource,
+ int cchSource,
+ LPCWSTR lpStringValue,
+ int cchValue,
+ LPINT pcchFound
+);
+
+WINBASEAPI int WINAPI FindNLSStringEx(
+ LPCWSTR lpLocaleName,
+ DWORD dwFindNLSStringFlags,
+ LPCWSTR lpStringSource,
+ int cchSource,
+ LPCWSTR lpStringValue,
+ int cchValue,
+ LPINT pcchFound,
+ LPNLSVERSIONINFO lpVersionInformation,
+ LPVOID lpReserved,
+ LPARAM lParam
+);
+
+WINBASEAPI int WINAPI GetDateFormatEx(
+ LPCWSTR lpLocaleName,
+ DWORD dwFlags,
+ const SYSTEMTIME *lpDate,
+ LPCWSTR lpFormat,
+ LPWSTR lpDateStr,
+ int cchDate,
+ LPCWSTR lpCalendar
+);
+
+WINBASEAPI int WINAPI GetDurationFormat(
+ LCID Locale,
+ DWORD dwFlags,
+ const SYSTEMTIME *lpDuration,
+ ULONGLONG ullDuration,
+ LPCWSTR lpFormat,
+ LPWSTR lpDurationStr,
+ int cchDuration
+);
+
+WINBASEAPI int WINAPI GetDurationFormatEx(
+ LPCWSTR lpLocaleName,
+ DWORD dwFlags,
+ const SYSTEMTIME *lpDuration,
+ ULONGLONG ullDuration,
+ LPCWSTR lpFormat,
+ LPWSTR lpDurationStr,
+ int cchDuration
+);
+
+WINBASEAPI WINBOOL WINAPI GetFileMUIInfo(
+ DWORD dwFlags,
+ PCWSTR pcwszFilePath,
+ PFILEMUIINFO pFileMUIInfo,
+ DWORD *pcbFileMUIInfo
+);
+
+WINBASEAPI WINBOOL WINAPI GetFileMUIPath(
+ DWORD dwFlags,
+ PCWSTR pcwszFilePath,
+ PWSTR pwszLanguage,
+ PULONG pcchLanguage,
+ PWSTR pwszFileMUIPath,
+ PULONG pcchFileMUIPath,
+ PULONGLONG pululEnumerator
+);
+
+WINBASEAPI int WINAPI GetLocaleInfoEx(
+ LPCWSTR lpLocaleName,
+ LCTYPE LCType,
+ LPWSTR lpLCData,
+ int cchData
+);
+
+WINBASEAPI WINBOOL WINAPI GetNLSVersion(
+ NLS_FUNCTION Function,
+ LCID Locale,
+ LPNLSVERSIONINFO lpVersionInformation
+);
+
+WINBASEAPI WINBOOL WINAPI GetNLSVersionEx(
+ NLS_FUNCTION function,
+ LPCWSTR lpLocaleName,
+ LPNLSVERSIONINFOEX lpVersionInformation
+);
+
+WINBASEAPI int WINAPI GetNumberFormatEx(
+ LPCWSTR lpLocaleName,
+ DWORD dwFlags,
+ LPCWSTR lpValue,
+ const NUMBERFMT *lpFormat,
+ LPWSTR lpNumberStr,
+ int cchNumber
+);
+
+WINBASEAPI int WINAPI GetStringScripts(
+ DWORD dwFlags,
+ LPCWSTR lpString,
+ int cchString,
+ LPWSTR lpScripts,
+ int cchScripts
+);
+
+WINBASEAPI int WINAPI GetSystemDefaultLocaleName(
+ LPWSTR lpLocaleName,
+ int cchLocaleName
+);
+
+typedef WCHAR *PZZWSTR; /*__nullnullterminated*/
+typedef CONST WCHAR *PCZZWSTR; /*__nullnullterminated*/
+
+WINBASEAPI WINBOOL WINAPI GetSystemPreferredUILanguages(
+ DWORD dwFlags,
+ PULONG pulNumLanguages,
+ PZZWSTR pwszLanguagesBuffer,
+ PULONG pcchLanguagesBuffer
+);
+
+WINBASEAPI WINBOOL WINAPI GetThreadPreferredUILanguages(
+ DWORD dwFlags,
+ PULONG pulNumLanguages,
+ PZZWSTR pwszLanguagesBuffer,
+ PULONG pcchLanguagesBuffer
+);
+
+WINBASEAPI LANGID WINAPI GetThreadUILanguage(void);
+
+WINBASEAPI WINBOOL WINAPI SetThreadPreferredUILanguages(
+ DWORD dwFlags,
+ PCZZWSTR pwszLanguagesBuffer,
+ PULONG pulNumLanguages
+);
+
+WINBASEAPI int WINAPI GetTimeFormatEx(
+ LPCWSTR lpLocaleName,
+ DWORD dwFlags,
+ const SYSTEMTIME *lpTime,
+ LPCWSTR lpFormat,
+ LPWSTR lpTimeStr,
+ int cchTime
+);
+
+WINBASEAPI WINBOOL WINAPI GetUILanguageInfo(
+ DWORD dwFlags,
+ PCZZWSTR pwmszLanguage,
+ PZZWSTR pwszFallbackLanguages,
+ PDWORD pcchFallbackLanguages,
+ PDWORD pdwAttributes
+);
+
+WINBASEAPI int WINAPI GetUserDefaultLocaleName(
+ LPWSTR lpLocaleName,
+ int cchLocaleName
+);
+
+WINBASEAPI WINBOOL WINAPI GetUserPreferredUILanguages(
+ DWORD dwFlags,
+ PULONG pulNumLanguages,
+ PZZWSTR pwszLanguagesBuffer,
+ PULONG pcchLanguagesBuffer
+);
+
+WINBASEAPI int WINAPI LCIDToLocaleName(
+ LCID Locale,
+ LPWSTR lpName,
+ int cchName,
+ DWORD dwFlags
+);
+
+WINBASEAPI int WINAPI LCMapStringEx(
+ LPCWSTR lpLocaleName,
+ DWORD dwMapFlags,
+ LPCWSTR lpSrcStr,
+ int cchSrc,
+ LPWSTR lpDestStr,
+ int cchDest,
+ LPNLSVERSIONINFO lpVersionInformation,
+ LPVOID lpReserved,
+ LPARAM lParam
+);
+
+WINBASEAPI LCID WINAPI LocaleNameToLCID(
+ LPCWSTR lpName,
+ DWORD dwFlags
+);
+
+WINBASEAPI int WINAPI NormalizeString(
+ NORM_FORM NormForm,
+ LPCWSTR lpSrcString,
+ int cwSrcLength,
+ LPWSTR lpDstString,
+ int cwDstLength
+);
+
+WINBASEAPI WINBOOL WINAPI RtlIsValidLocaleName(
+ LPCWSTR LocaleName,
+ ULONG Flags
+);
+
+WINBASEAPI WINBOOL VerifyScripts(
+ DWORD dwFlags,
+ LPCWSTR lpLocaleScripts,
+ int cchLocaleScripts,
+ LPCWSTR lpTestScripts,
+ int cchTestScripts
+);
+
+#endif /* (_WIN32_WINNT >= 0x0600) */
#endif
#ifdef __cplusplus
diff --git a/mingw-w64-headers/include/winreg.h b/mingw-w64-headers/include/winreg.h
index 0471a20..e0842f3 100644
--- a/mingw-w64-headers/include/winreg.h
+++ b/mingw-w64-headers/include/winreg.h
@@ -224,6 +224,228 @@
WINADVAPI LONG WINAPI RegSaveKeyExW(HKEY hKey,LPCWSTR lpFile,LPSECURITY_ATTRIBUTES lpSecurityAttributes,DWORD Flags);
WINADVAPI LONG WINAPI Wow64Win32ApiEntry (DWORD dwFuncNumber,DWORD dwFlag,DWORD dwRes);
+#if (_WIN32_WINNT >= 0x0600)
+
+#define RegCopyTree __MINGW_NAME_AW(RegCopyTree)
+WINADVAPI LONG WINAPI RegCopyTreeA(
+ HKEY hKeySrc,
+ LPCSTR lpSubKey,
+ HKEY hKeyDest
+);
+
+WINADVAPI LONG WINAPI RegCopyTreeW(
+ HKEY hKeySrc,
+ LPCWSTR lpSubKey,
+ HKEY hKeyDest
+);
+
+#define RegCreateKeyTransacted __MINGW_NAME_AW(RegCreateKeyTransacted)
+WINADVAPI LONG WINAPI RegCreateKeyTransactedA(
+ HKEY hKey,
+ LPCSTR lpSubKey,
+ DWORD Reserved,
+ LPSTR lpClass,
+ DWORD dwOptions,
+ REGSAM samDesired,
+ const LPSECURITY_ATTRIBUTES lpSecurityAttributes,
+ PHKEY phkResult,
+ LPDWORD lpdwDisposition,
+ HANDLE hTransaction,
+ PVOID pExtendedParemeter
+);
+
+WINADVAPI LONG WINAPI RegCreateKeyTransactedW(
+ HKEY hKey,
+ LPCWSTR lpSubKey,
+ DWORD Reserved,
+ LPWSTR lpClass,
+ DWORD dwOptions,
+ REGSAM samDesired,
+ const LPSECURITY_ATTRIBUTES lpSecurityAttributes,
+ PHKEY phkResult,
+ LPDWORD lpdwDisposition,
+ HANDLE hTransaction,
+ PVOID pExtendedParemeter
+);
+
+#define RegDeleteKeyEx __MINGW_NAME_AW(RegDeleteKeyEx)
+WINADVAPI LONG WINAPI RegDeleteKeyExA(
+ HKEY hKey,
+ LPCSTR lpSubKey,
+ REGSAM samDesired,
+ DWORD Reserved
+);
+
+WINADVAPI LONG WINAPI RegDeleteKeyExW(
+ HKEY hKey,
+ LPCWSTR lpSubKey,
+ REGSAM samDesired,
+ DWORD Reserved
+);
+
+#define RegDeleteKeyTransacted __MINGW_NAME_AW(RegDeleteKeyTransacted)
+WINADVAPI LONG WINAPI RegDeleteKeyTransactedA(
+ HKEY hKey,
+ LPCSTR lpSubKey,
+ REGSAM samDesired,
+ DWORD Reserved,
+ HANDLE hTransaction,
+ PVOID pExtendedParameter
+);
+
+WINADVAPI LONG WINAPI RegDeleteKeyTransactedW(
+ HKEY hKey,
+ LPCWSTR lpSubKey,
+ REGSAM samDesired,
+ DWORD Reserved,
+ HANDLE hTransaction,
+ PVOID pExtendedParameter
+);
+
+#define RegDeleteKeyValue __MINGW_NAME_AW(RegDeleteKeyValue)
+WINADVAPI LONG WINAPI RegDeleteKeyValueA(
+ HKEY hKey,
+ LPCSTR lpSubKey,
+ LPCSTR lpValueName
+);
+
+WINADVAPI LONG WINAPI RegDeleteKeyValueW(
+ HKEY hKey,
+ LPCWSTR lpSubKey,
+ LPCWSTR lpValueName
+);
+
+#define RegDeleteTree __MINGW_NAME_AW(RegDeleteTree)
+WINADVAPI LONG WINAPI RegDeleteTreeA(
+ HKEY hKey,
+ LPCSTR lpSubKey
+);
+
+WINADVAPI LONG WINAPI RegDeleteTreeW(
+ HKEY hKey,
+ LPCWSTR lpSubKey
+);
+
+WINADVAPI LONG WINAPI RegDisablePredefinedCacheEx(void);
+
+WINADVAPI LONG WINAPI RegDisableReflectionKey(
+ HKEY hBase
+);
+
+WINADVAPI LONG WINAPI RegEnableReflectionKey(
+ HKEY hBase
+);
+
+WINADVAPI LONG WINAPI RegGetValueA(
+ HKEY hkey,
+ LPCSTR lpSubKey,
+ LPCSTR lpValue,
+ DWORD dwFlags,
+ LPDWORD pdwType,
+ PVOID pvData,
+ LPDWORD pcbData
+);
+
+WINADVAPI LONG WINAPI RegGetValueWA(
+ HKEY hkey,
+ LPCWSTR lpSubKey,
+ LPCWSTR lpValue,
+ DWORD dwFlags,
+ LPDWORD pdwType,
+ PVOID pvData,
+ LPDWORD pcbData
+);
+
+#define RegGetValue __MINGW_NAME_AW(RegGetValue)
+
+WINADVAPI LONG WINAPI RegLoadAppKeyA(
+ LPCSTR lpFile,
+ PHKEY phkResult,
+ REGSAM samDesired,
+ DWORD dwOptions,
+ DWORD Reserved
+);
+
+WINADVAPI LONG WINAPI RegLoadAppKeyW(
+ LPCWSTR lpFile,
+ PHKEY phkResult,
+ REGSAM samDesired,
+ DWORD dwOptions,
+ DWORD Reserved
+);
+
+#define RegLoadAppKey __MINGW_NAME_AW(RegLoadAppKey)
+
+WINADVAPI LONG WINAPI RegLoadMUIStringA(
+ HKEY hKey,
+ LPCSTR pszValue,
+ LPSTR pszOutBuf,
+ DWORD cbOutBuf,
+ LPDWORD pcbData,
+ DWORD Flags,
+ LPCSTR pszDirectory
+);
+
+WINADVAPI LONG WINAPI RegLoadMUIStringW(
+ HKEY hKey,
+ LPCWSTR pszValue,
+ LPWSTR pszOutBuf,
+ DWORD cbOutBuf,
+ LPDWORD pcbData,
+ DWORD Flags,
+ LPCWSTR pszDirectory
+);
+
+#define RegLoadMUIString __MINGW_NAME_AW(RegLoadMUIString)
+
+WINADVAPI LONG WINAPI RegOpenKeyTransactedA(
+ HKEY hKey,
+ LPCSTR lpSubKey,
+ DWORD ulOptions,
+ REGSAM samDesired,
+ PHKEY phkResult,
+ HANDLE hTransaction,
+ PVOID pExtendedParameter
+);
+
+WINADVAPI LONG WINAPI RegOpenKeyTransactedW(
+ HKEY hKey,
+ LPCWSTR lpSubKey,
+ DWORD ulOptions,
+ REGSAM samDesired,
+ PHKEY phkResult,
+ HANDLE hTransaction,
+ PVOID pExtendedParameter
+);
+
+#define RegOpenKeyTransacted __MINGW_NAME_AW(RegOpenKeyTransacted)
+
+WINADVAPI LONG WINAPI RegQueryReflectionKey(
+ HKEY hBase,
+ WINBOOL *bIsReflectionDisabled
+);
+
+WINADVAPI LONG WINAPI RegSetKeyValueA(
+ HKEY hKey,
+ LPCSTR lpSubKey,
+ LPCSTR lpValueName,
+ DWORD dwType,
+ LPCVOID lpData,
+ DWORD cbData
+);
+
+WINADVAPI LONG WINAPI RegSetKeyValueW(
+ HKEY hKey,
+ LPCSTR lpSubKey,
+ LPCSTR lpValueName,
+ DWORD dwType,
+ LPCVOID lpData,
+ DWORD cbData
+);
+#define RegSetKeyValue __MINGW_NAME_AW(RegSetKeyValue)
+
+#endif /* (_WIN32_WINNT >= 0x0600) */
+
#ifdef __cplusplus
}
#endif
diff --git a/mingw-w64-headers/include/winsatcominterfacei.h b/mingw-w64-headers/include/winsatcominterfacei.h
new file mode 100644
index 0000000..efcafaa
--- /dev/null
+++ b/mingw-w64-headers/include/winsatcominterfacei.h
@@ -0,0 +1,33 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+
+#ifndef _INC_WINSATCOMINTERFACEI
+#define _INC_WINSATCOMINTERFACEI
+
+typedef enum _WINSAT_ASSESSMENT_STATE {
+ WINSAT_ASSESSMENT_STATE_MIN = 0,
+ WINSAT_ASSESSMENT_STATE_UNKNOWN = 0,
+ WINSAT_ASSESSMENT_STATE_VALID = 1,
+ WINSAT_ASSESSMENT_STATE_INCOHERENT_WITH_HARDWARE = 2,
+ WINSAT_ASSESSMENT_STATE_NOT_AVAILABLE = 3,
+ WINSAT_ASSESSMENT_STATE_INVALID = 4,
+ WINSAT_ASSESSMENT_STATE_MAX = 4
+} WINSAT_ASSESSMENT_STATE;
+
+typedef enum _WINSAT_ASSESSMENT_TYPE {
+ WINSAT_ASSESSMENT_MEMORY = 0,
+ WINSAT_ASSESSMENT_CPU = 1,
+ WINSAT_ASSESSMENT_DISK = 2,
+ WINSAT_ASSESSMENT_D3D = 3,
+ WINSAT_ASSESSMENT_GRAPHICS = 4
+} WINSAT_ASSESSMENT_TYPE;
+
+typedef enum _WINSAT_BITMAP_SIZE {
+ WINSAT_BITMAP_SIZE_SMALL = 0,
+ WINSAT_BITMAP_SIZE_NORMAL = 1
+} WINSAT_BITMAP_SIZE;
+
+#endif /*_INC_WINSATCOMINTERFACEI*/
diff --git a/mingw-w64-headers/include/winscard.h b/mingw-w64-headers/include/winscard.h
index 55bb03d..815f204 100644
--- a/mingw-w64-headers/include/winscard.h
+++ b/mingw-w64-headers/include/winscard.h
@@ -385,6 +385,54 @@
extern WINSCARDAPI LONG WINAPI GetOpenCardNameW(LPOPENCARDNAMEW);
extern WINSCARDAPI LONG WINAPI SCardDlgExtendedError(void);
+#if (_WIN32_WINNT >= 0x0600)
+LONG WINAPI SCardGetTransmitCount(
+ SCARDHANDLE hCard,
+ LPDWORD pcTransmitCount
+);
+
+LONG WINAPI SCardReadCacheA(
+ SCARDCONTEXT hContext,
+ UUID *CardIdentifier,
+ DWORD FreshnessCounter,
+ LPSTR LookupName,
+ PBYTE Data,
+ DWORD *DataLen
+);
+
+LONG WINAPI SCardReadCacheW(
+ SCARDCONTEXT hContext,
+ UUID *CardIdentifier,
+ DWORD FreshnessCounter,
+ LPWSTR LookupName,
+ PBYTE Data,
+ DWORD *DataLen
+);
+
+#define SCardReadCache __MINGW_NAME_AW(SCardReadCache)
+
+LONG WINAPI SCardWriteCacheA(
+ SCARDCONTEXT hContext,
+ UUID *CardIdentifier,
+ DWORD FreshnessCounter,
+ LPSTR LookupName,
+ PBYTE Data,
+ DWORD DataLen
+);
+
+LONG WINAPI SCardWriteCacheW(
+ SCARDCONTEXT hContext,
+ UUID *CardIdentifier,
+ DWORD FreshnessCounter,
+ LPWSTR LookupName,
+ PBYTE Data,
+ DWORD DataLen
+);
+
+#define SCardWriteCache __MINGW_NAME_AW(SCardWriteCache)
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
#ifdef __cplusplus
}
#endif
diff --git a/mingw-w64-headers/include/winsock2.h b/mingw-w64-headers/include/winsock2.h
index d14aaed..808ff21 100644
--- a/mingw-w64-headers/include/winsock2.h
+++ b/mingw-w64-headers/include/winsock2.h
@@ -39,6 +39,7 @@
#endif
#endif /* WINSOCK_API_LINKAGE */
#define WSAAPI WINAPI
+#define WSPAPI WINAPI
/* undefine macros from winsock.h */
#include <mingw_inc/_ws1_undef.h>
@@ -610,6 +611,7 @@
typedef struct sockaddr_storage SOCKADDR_STORAGE;
typedef struct sockaddr_storage *PSOCKADDR_STORAGE;
typedef struct sockaddr_storage *LPSOCKADDR_STORAGE;
+ typedef u_short ADDRESS_FAMILY;
#ifndef _tagBLOB_DEFINED
#define _tagBLOB_DEFINED
@@ -696,7 +698,7 @@
typedef struct _SOCKET_ADDRESS_LIST {
INT iAddressCount;
SOCKET_ADDRESS Address[1];
- } SOCKET_ADDRESS_LIST,*LPSOCKET_ADDRESS_LIST;
+ } SOCKET_ADDRESS_LIST,*PSOCKET_ADDRESS_LIST,*LPSOCKET_ADDRESS_LIST;
typedef struct _AFPROTOCOLS {
INT iAddressFamily;
@@ -771,6 +773,15 @@
#define LUP_FLUSHCACHE 0x1000
#define LUP_FLUSHPREVIOUS 0x2000
+#define LUP_RETURN_PREFERRED_NAMES 0x10000
+#define LUP_ADDRCONFIG 0x100000
+#define LUP_DUAL_ADDR 0x200000
+
+#define LUP_SECURE 0x8000
+
+#define LUP_NON_AUTHORITATIVE 0x4000
+#define LUP_RES_RESERVICE 0x8000
+
#define RESULT_IS_ALIAS 0x0001
#define RESULT_IS_ADDED 0x0010
#define RESULT_IS_CHANGED 0x0020
@@ -1074,6 +1085,117 @@
#define WSAGETSELECTEVENT(lParam) LOWORD(lParam)
#define WSAGETSELECTERROR(lParam) HIWORD(lParam)
+#if (_WIN32_WINNT >= 0x0600)
+typedef struct _WSANAMESPACE_INFOEXA {
+ GUID NSProviderId;
+ DWORD dwNameSpace;
+ WINBOOL fActive;
+ DWORD dwVersion;
+ LPSTR lpszIdentifier;
+ BLOB ProviderSpecific;
+} WSANAMESPACE_INFOEXA, *PWSANAMESPACE_INFOEXA, *LPWSANAMESPACE_INFOEXA;
+
+typedef struct _WSANAMESPACE_INFOEXW {
+ GUID NSProviderId;
+ DWORD dwNameSpace;
+ WINBOOL fActive;
+ DWORD dwVersion;
+ LPWSTR lpszIdentifier;
+ BLOB ProviderSpecific;
+} WSANAMESPACE_INFOEXW, *PWSANAMESPACE_INFOEXW, *LPWSANAMESPACE_INFOEXW;
+
+__MINGW_TYPEDEF_AW(WSANAMESPACE_INFOEX)
+__MINGW_TYPEDEF_AW(PWSANAMESPACE_INFOEX)
+__MINGW_TYPEDEF_AW(LPWSANAMESPACE_INFOEX)
+
+typedef struct _WSAQUERYSET2A {
+ DWORD dwSize;
+ LPSTR lpszServiceInstanceName;
+ LPWSAVERSION lpVersion;
+ LPSTR lpszComment;
+ DWORD dwNameSpace;
+ LPGUID lpNSProviderId;
+ LPSTR lpszContext;
+ DWORD dwNumberOfProtocols;
+ LPAFPROTOCOLS lpafpProtocols;
+ LPSTR lpszQueryString;
+ DWORD dwNumberOfCsAddrs;
+ LPCSADDR_INFO lpcsaBuffer;
+ DWORD dwOutputFlags;
+ LPBLOB lpBlob;
+} WSAQUERYSET2A, *PWSAQUERYSET2A, *LPWSAQUERYSET2A;
+
+typedef struct _WSAQUERYSET2W {
+ DWORD dwSize;
+ LPWSTR lpszServiceInstanceName;
+ LPWSAVERSION lpVersion;
+ LPWSTR lpszComment;
+ DWORD dwNameSpace;
+ LPGUID lpNSProviderId;
+ LPTSTR lpszContext;
+ DWORD dwNumberOfProtocols;
+ LPAFPROTOCOLS lpafpProtocols;
+ LPWSTR lpszQueryString;
+ DWORD dwNumberOfCsAddrs;
+ LPCSADDR_INFO lpcsaBuffer;
+ DWORD dwOutputFlags;
+ LPBLOB lpBlob;
+} WSAQUERYSET2W, *PWSAQUERYSET2W, *LPWSAQUERYSET2W;
+
+typedef struct pollfd {
+ SOCKET fd;
+ short events;
+ short revents;
+} WSAPOLLFD, *PWSAPOLLFD, *LPWSAPOLLFD;
+
+WINSOCK_API_LINKAGE WINBOOL PASCAL WSAConnectByList(
+ SOCKET s,
+ PSOCKET_ADDRESS_LIST SocketAddressList,
+ LPDWORD LocalAddressLength,
+ LPSOCKADDR LocalAddress,
+ LPDWORD RemoteAddressLength,
+ LPSOCKADDR RemoteAddress,
+ const struct timeval *timeout,
+ LPWSAOVERLAPPED Reserved
+);
+
+WINSOCK_API_LINKAGE WINBOOL PASCAL WSAConnectByNameA(
+ SOCKET s,
+ LPSTR nodename,
+ LPSTR servicename,
+ LPDWORD LocalAddressLength,
+ LPSOCKADDR LocalAddress,
+ LPDWORD RemoteAddressLength,
+ LPSOCKADDR RemoteAddress,
+ const struct timeval *timeout,
+ LPWSAOVERLAPPED Reserved
+);
+
+WINSOCK_API_LINKAGE WINBOOL PASCAL WSAConnectByNameW(
+ SOCKET s,
+ LPWSTR nodename,
+ LPWSTR servicename,
+ LPDWORD LocalAddressLength,
+ LPSOCKADDR LocalAddress,
+ LPDWORD RemoteAddressLength,
+ LPSOCKADDR RemoteAddress,
+ const struct timeval *timeout,
+ LPWSAOVERLAPPED Reserved
+);
+#define WSAConnectByName __MINGW_NAME_AW(WSAConnectByName)
+
+INT WSPAPI WSAEnumNameSpaceProvidersExA(
+ LPDWORD lpdwBufferLength,
+ LPWSANAMESPACE_INFOEXA lpnspBuffer
+);
+
+INT WSPAPI WSAEnumNameSpaceProvidersExW(
+ LPDWORD lpdwBufferLength,
+ LPWSANAMESPACE_INFOEXW lpnspBuffer
+);
+#define WSAEnumNameSpaceProvidersEx __MINGW_NAME_AW(WSAEnumNameSpaceProvidersEx)
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
#ifdef __cplusplus
}
#endif
@@ -1086,4 +1208,6 @@
#include <wsipv6ok.h>
#endif
+#include <mswsock.h>
+
#endif /* _WINSOCK2API_ */
diff --git a/mingw-w64-headers/include/winspool.h b/mingw-w64-headers/include/winspool.h
index f2c7b8f..d8ff5c5 100644
--- a/mingw-w64-headers/include/winspool.h
+++ b/mingw-w64-headers/include/winspool.h
@@ -1350,10 +1350,49 @@
#if (_WIN32_WINNT >= 0x0600)
#define AddPrinterConnection2 __MINGW_NAME_AW(AddPrinterConnection2)
+#define DeletePrinterDriverPackage __MINGW_NAME_AW(DeletePrinterDriverPackage)
+#define DocumentEvent __MINGW_NAME_AW(DocumentEvent)
#define PRINTER_CONNECTION_MISMATCH 0x00000020
#define PRINTER_CONNECTION_NO_UI 0x00000040
+typedef enum tagPRINTER_OPTION_FLAGS {
+ PRINTER_OPTION_NO_CACHE,
+ PRINTER_OPTION_CACHE,
+ PRINTER_OPTION_CLIENT_CHANGE
+} PRINTER_OPTION_FLAGS;
+
+typedef enum tagEPrintXPSJobOperation {
+ kJobProduction,
+ kJobConsumption
+} EPrintXPSJobOperation;
+
+typedef enum tagEPrintXPSJobProgress {
+ kAddingDocumentSequence,
+ kDocumentSequenceAdded,
+ kAddingFixedDocument,
+ kFixedDocumentAdded,
+ kAddingFixedPage,
+ kFixedPageAdded,
+ kResourceAdded,
+ kFontAdded,
+ kImageAdded,
+ kXpsDocumentCommitted
+} EPrintXPSJobProgress;
+
+typedef enum tagMxdcS0PageEnums {
+ MXDC_RESOURCE_TTF,
+ MXDC_RESOURCE_JPEG,
+ MXDC_RESOURCE_PNG,
+ MXDC_RESOURCE_TIFF,
+ MXDC_RESOURCE_WDP,
+ MXDC_RESOURCE_DICTIONARY,
+ MXDC_RESOURCE_ICC_PROFILE,
+ MXDC_RESOURCE_JPEG_THUMBNAIL,
+ MXDC_RESOURCE_PNG_THUMBNAIL,
+ MXDC_RESOURCE_MAX
+} MXDC_S0_PAGE_ENUMS;
+
typedef struct _PRINTER_CONNECTION_INFO_1 {
DWORD dwFlags;
LPTSTR pszDriverName;
@@ -1362,6 +1401,285 @@
WINBOOL AddPrinterConnection2W(HWND hWnd,LPCWSTR pszName,DWORD dwLevel,PVOID pConnectionInfo);
WINBOOL AddPrinterConnection2A(HWND hWnd,LPCSTR pszName,DWORD dwLevel,PVOID pConnectionInfo); /*Not supported and returns ERROR_NOT_SUPPORTED.*/
+HRESULT WINAPI DeletePrinterDriverPackageA(
+ LPCSTR pszServer,
+ LPCSTR pszInfPath,
+ LPCSTR pszEnvironment
+);
+
+HRESULT WINAPI DeletePrinterDriverPackageW(
+ LPCWSTR pszServer,
+ LPCWSTR pszInfPath,
+ LPCWSTR pszEnvironment
+);
+
+HRESULT DocumentEventA(
+ HANDLE hPrinter,
+ HDC hdc,
+ INT iEsc,
+ ULONG cbIn,
+ PVOID pvIn,
+ ULONG cbOut,
+ PVOID pvOut
+);
+
+HRESULT DocumentEventW(
+ HANDLE hPrinter,
+ HDC hdc,
+ INT iEsc,
+ ULONG cbIn,
+ PVOID pvIn,
+ ULONG cbOut,
+ PVOID pvOut
+);
+
+typedef struct _DRIVER_INFO_8W {
+ DWORD cVersion;
+ LPWSTR pName;
+ LPWSTR pEnvironment;
+ LPWSTR pDriverPath;
+ LPWSTR pDataFile;
+ LPWSTR pConfigFile;
+ LPWSTR pHelpFile;
+ LPWSTR pDependentFiles;
+ LPWSTR pMonitorName;
+ LPWSTR pDefaultDataType;
+ LPWSTR pszzPreviousNames;
+ FILETIME ftDriverDate;
+ DWORDLONG dwlDriverVersion;
+ LPWSTR pszMfgName;
+ LPWSTR pszOEMUrl;
+ LPWSTR pszHardwareID;
+ LPWSTR pszProvider;
+ LPWSTR pszPrintProcessor;
+ LPWSTR pszVendorSetup;
+ LPWSTR pszzColorProfiles;
+ LPWSTR pszInfPath;
+ DWORD dwPrinterDriverAttributes;
+ LPWSTR pszzCoreDriverDependencies;
+ FILETIME ftMinInboxDriverVerDate;
+ DWORDLONG dwlMinInboxDriverVerVersion;
+} DRIVER_INFO_8W, *PDRIVER_INFO_8W, *LPDRIVER_INFO_8W;
+
+typedef struct _DRIVER_INFO_8A {
+ DWORD cVersion;
+ LPSTR pName;
+ LPSTR pEnvironment;
+ LPSTR pDriverPath;
+ LPSTR pDataFile;
+ LPSTR pConfigFile;
+ LPSTR pHelpFile;
+ LPSTR pDependentFiles;
+ LPSTR pMonitorName;
+ LPSTR pDefaultDataType;
+ LPSTR pszzPreviousNames;
+ FILETIME ftDriverDate;
+ DWORDLONG dwlDriverVersion;
+ LPSTR pszMfgName;
+ LPSTR pszOEMUrl;
+ LPSTR pszHardwareID;
+ LPSTR pszProvider;
+ LPSTR pszPrintProcessor;
+ LPSTR pszVendorSetup;
+ LPSTR pszzColorProfiles;
+ LPSTR pszInfPath;
+ DWORD dwPrinterDriverAttributes;
+ LPSTR pszzCoreDriverDependencies;
+ FILETIME ftMinInboxDriverVerDate;
+ DWORDLONG dwlMinInboxDriverVerVersion;
+} DRIVER_INFO_8A, *PDRIVER_INFO_8A, *LPDRIVER_INFO_8A;
+
+typedef struct _FORM_INFO_2A {
+ DWORD Flags;
+ LPSTR pName;
+ SIZEL Size;
+ RECTL ImageableArea;
+ LPCSTR pKeyword;
+ DWORD StringType;
+ LPCSTR pMuiDll;
+ DWORD dwResourceId;
+ LPCSTR pDisplayName;
+ LANGID wLangId;
+} FORM_INFO_2A, *PFORM_INFO_2A;
+
+typedef struct _FORM_INFO_2W {
+ DWORD Flags;
+ LPWSTR pName;
+ SIZEL Size;
+ RECTL ImageableArea;
+ LPCSTR pKeyword;
+ DWORD StringType;
+ LPCWSTR pMuiDll;
+ DWORD dwResourceId;
+ LPCWSTR pDisplayName;
+ LANGID wLangId;
+} FORM_INFO_2W, *PFORM_INFO_2W;
+
+__MINGW_TYPEDEF_AW(DRIVER_INFO_8)
+__MINGW_TYPEDEF_AW(PDRIVER_INFO_8)
+__MINGW_TYPEDEF_AW(LPDRIVER_INFO_8)
+__MINGW_TYPEDEF_AW(FORM_INFO_2)
+__MINGW_TYPEDEF_AW(PFORM_INFO_2)
+
+typedef struct _PRINTPROCESSOR_CAPS_2 {
+ DWORD dwLevel;
+ DWORD dwNupOptions;
+ DWORD dwPageOrderFlags;
+ DWORD dwNumberOfCopies;
+ DWORD dwNupDirectionCaps;
+ DWORD dwNupBorderCaps;
+ DWORD dwBookletHandlingCaps;
+ DWORD dwDuplexHandlingCaps;
+ DWORD dwScalingCaps;
+} PRINTPROCESSOR_CAPS_2, *PPRINTPROCESSOR_CAPS_2;
+
+HRESULT ReportJobProcessingProgress(
+ HANDLE printerHandle,
+ ULONG jobId,
+ EPrintXPSJobOperation jobOperation,
+ EPrintXPSJobProgress jobProgress
+);
+
+typedef struct _CORE_PRINTER_DRIVERA {
+ GUID CoreDriverGUID;
+ FILETIME ftDriverDate;
+ DWORDLONG dwlDriverVersion;
+ CHAR szPackageID[MAX_PATH];
+} CORE_PRINTER_DRIVERA, *PCORE_PRINTER_DRIVERA;
+
+typedef struct _CORE_PRINTER_DRIVERW {
+ GUID CoreDriverGUID;
+ FILETIME ftDriverDate;
+ DWORDLONG dwlDriverVersion;
+ WCHAR szPackageID[MAX_PATH];
+} CORE_PRINTER_DRIVERW, *PCORE_PRINTER_DRIVERW;
+
+typedef struct _PRINTER_OPTIONS {
+ UINT cbSize;
+ DWORD dwFlags;
+} PRINTER_OPTIONS, *PPRINTER_OPTIONS;
+
+__MINGW_TYPEDEF_AW(CORE_PRINTER_DRIVER)
+__MINGW_TYPEDEF_AW(PCORE_PRINTER_DRIVER)
+#define GetCorePrinterDrivers __MINGW_NAME_AW(GetCorePrinterDrivers)
+#define GetPrinterDriver2 __MINGW_NAME_AW(GetPrinterDriver2)
+#define GetPrinterDriverPackagePath __MINGW_NAME_AW(GetPrinterDriverPackagePath)
+#define GetSpoolFileHandle __MINGW_NAME_AW(GetSpoolFileHandle)
+
+HRESULT WINAPI GetCorePrinterDriversA(
+ LPCSTR pszServer,
+ LPCSTR pszEnvironment,
+ LPCSTR pszzCoreDriverDependencies,
+ DWORD cCorePrinterDrivers,
+ PCORE_PRINTER_DRIVERA pCorePrinterDrivers
+);
+
+HRESULT WINAPI GetCorePrinterDriversW(
+ LPCWSTR pszServer,
+ LPCWSTR pszEnvironment,
+ LPCWSTR pszzCoreDriverDependencies,
+ DWORD cCorePrinterDrivers,
+ PCORE_PRINTER_DRIVERW pCorePrinterDrivers
+);
+
+/*Unsupported*/
+WINBOOL WINAPI GetPrinterDriver2A(
+ HWND hWnd,
+ HANDLE hPrinter,
+ LPSTR pEnvironment,
+ DWORD Level,
+ LPBYTE pDriverInfo,
+ DWORD cbBuf,
+ LPDWORD pcbNeeded
+);
+
+WINBOOL WINAPI GetPrinterDriver2W(
+ HWND hWnd,
+ HANDLE hPrinter,
+ LPWSTR pEnvironment,
+ DWORD Level,
+ LPBYTE pDriverInfo,
+ DWORD cbBuf,
+ LPDWORD pcbNeeded
+);
+
+HRESULT WINAPI GetPrinterDriverPackagePathA(
+ LPCSTR pszServer,
+ LPCSTR pszEnvironment,
+ LPCSTR pszLanguage,
+ LPCSTR pszPackageID,
+ LPSTR pszDriverPackageCab,
+ DWORD cchDriverPackageCab,
+ LPDWORD pcchRequiredSize
+);
+
+HRESULT WINAPI GetPrinterDriverPackagePathW(
+ LPCWSTR pszServer,
+ LPCWSTR pszEnvironment,
+ LPCWSTR pszLanguage,
+ LPCWSTR pszPackageID,
+ LPWSTR pszDriverPackageCab,
+ DWORD cchDriverPackageCab,
+ LPDWORD pcchRequiredSize
+);
+
+HANDLE WINAPI GetSpoolFileHandleA(
+ HANDLE hPrinter
+);
+
+HANDLE WINAPI GetSpoolFileHandleW(
+ HANDLE hPrinter
+);
+
+HANDLE WINAPI CommitSpoolData(
+ HANDLE hPrinter,
+ HANDLE hSpoolFile,
+ DWORD cbCommit
+);
+
+WINBOOL WINAPI CloseSpoolFileHandle(
+ HANDLE hPrinter,
+ HANDLE hSpoolFile
+);
+
+WINBOOL WINAPI OpenPrinter2A(
+ LPCSTR pPrinterName,
+ LPHANDLE phPrinter,
+ LPPRINTER_DEFAULTS pDefault,
+ PPRINTER_OPTIONS pOptions
+);
+
+WINBOOL WINAPI OpenPrinter2W(
+ LPCWSTR pPrinterName,
+ LPHANDLE phPrinter,
+ LPPRINTER_DEFAULTS pDefault,
+ PPRINTER_OPTIONS pOptions
+);
+
+#define OpenPrinter2 __MINGW_NAME_AW(OpenPrinter2)
+
+HRESULT WINAPI UploadPrinterDriverPackageA(
+ LPCSTR pszServer,
+ LPCSTR pszInfPath,
+ LPCSTR pszEnvironment,
+ DWORD dwFlags,
+ HWND hwnd,
+ LPSTR pszDestInfPath,
+ PULONG pcchDestInfPath
+);
+
+HRESULT WINAPI UploadPrinterDriverPackageW(
+ LPCWSTR pszServer,
+ LPCWSTR pszInfPath,
+ LPCWSTR pszEnvironment,
+ DWORD dwFlags,
+ HWND hwnd,
+ LPWSTR pszDestInfPath,
+ PULONG pcchDestInfPath
+);
+
+#define UploadPrinterDriverPackage __MINGW_NAME_AW(UploadPrinterDriverPackage)
+
#endif /*(_WIN32_WINNT >= 0x0600)*/
#ifdef __cplusplus
diff --git a/mingw-w64-headers/include/winsvc.h b/mingw-w64-headers/include/winsvc.h
index 94a88b8..51a8785 100644
--- a/mingw-w64-headers/include/winsvc.h
+++ b/mingw-w64-headers/include/winsvc.h
@@ -328,6 +328,147 @@
WINADVAPI WINBOOL WINAPI StartServiceW(SC_HANDLE hService,DWORD dwNumServiceArgs,LPCWSTR *lpServiceArgVectors);
WINADVAPI WINBOOL WINAPI UnlockServiceDatabase(SC_LOCK ScLock);
+#if (_WIN32_WINNT >= 0x0600)
+
+typedef VOID( CALLBACK * PFN_SC_NOTIFY_CALLBACK ) (
+ PVOID pParameter
+);
+
+typedef struct _SERVICE_CONTROL_STATUS_REASON_PARAMSA {
+ DWORD dwReason;
+ LPSTR pszComment;
+ SERVICE_STATUS_PROCESS ServiceStatus;
+} SERVICE_CONTROL_STATUS_REASON_PARAMSA, *PSERVICE_CONTROL_STATUS_REASON_PARAMSA;
+
+typedef struct _SERVICE_CONTROL_STATUS_REASON_PARAMSW {
+ DWORD dwReason;
+ LPWSTR pszComment;
+ SERVICE_STATUS_PROCESS ServiceStatus;
+} SERVICE_CONTROL_STATUS_REASON_PARAMSW, *PSERVICE_CONTROL_STATUS_REASON_PARAMSW;
+
+__MINGW_TYPEDEF_AW(SERVICE_CONTROL_STATUS_REASON_PARAMS)
+__MINGW_TYPEDEF_AW(PSERVICE_CONTROL_STATUS_REASON_PARAMS)
+
+#define SERVICE_STOP_REASON_FLAG_CUSTOM 0x20000000
+#define SERVICE_STOP_REASON_FLAG_PLANNED 0x40000000
+#define SERVICE_STOP_REASON_FLAG_UNPLANNED 0x10000000
+
+#define SERVICE_STOP_REASON_MAJOR_APPLICATION 0x00050000
+#define SERVICE_STOP_REASON_MAJOR_HARDWARE 0x00020000
+#define SERVICE_STOP_REASON_MAJOR_NONE 0x00060000
+#define SERVICE_STOP_REASON_MAJOR_OPERATINGSYSTEM 0x00030000
+#define SERVICE_STOP_REASON_MAJOR_OTHER 0x00010000
+#define SERVICE_STOP_REASON_MAJOR_SOFTWARE 0x00040000
+
+#define SERVICE_STOP_REASON_MINOR_DISK 0x00000008
+#define SERVICE_STOP_REASON_MINOR_ENVIRONMENT 0x0000000a
+#define SERVICE_STOP_REASON_MINOR_HARDWARE_DRIVER 0x0000000b
+#define SERVICE_STOP_REASON_MINOR_HUNG 0x00000006
+#define SERVICE_STOP_REASON_MINOR_INSTALLATION 0x00000003
+#define SERVICE_STOP_REASON_MINOR_MAINTENANCE 0x00000002
+#define SERVICE_STOP_REASON_MINOR_MMC 0x00000016
+#define SERVICE_STOP_REASON_MINOR_NETWORK_CONNECTIVITY 0x00000011
+#define SERVICE_STOP_REASON_MINOR_NETWORKCARD 0x00000009
+#define SERVICE_STOP_REASON_MINOR_NONE 0x00060000
+#define SERVICE_STOP_REASON_MINOR_OTHER 0x00000001
+#define SERVICE_STOP_REASON_MINOR_OTHERDRIVER 0x0000000c
+#define SERVICE_STOP_REASON_MINOR_RECONFIG 0x00000005
+#define SERVICE_STOP_REASON_MINOR_SECURITY 0x00000010
+#define SERVICE_STOP_REASON_MINOR_SECURITYFIX 0x0000000f
+#define SERVICE_STOP_REASON_MINOR_SECURITYFIX_UNINSTALL 0x00000015
+#define SERVICE_STOP_REASON_MINOR_SERVICEPACK 0x0000000d
+#define SERVICE_STOP_REASON_MINOR_SERVICEPACK_UNINSTALL 0x00000013
+#define SERVICE_STOP_REASON_MINOR_SOFTWARE_UPDATE 0x0000000e
+#define SERVICE_STOP_REASON_MINOR_SOFTWARE_UPDATE_UNINSTALL 0x0000000e
+#define SERVICE_STOP_REASON_MINOR_UNSTABLE 0x00000007
+#define SERVICE_STOP_REASON_MINOR_UPGRADE 0x00000004
+#define SERVICE_STOP_REASON_MINOR_WMI 0x00000012
+
+typedef struct _SERVICE_NOTIFYA {
+ DWORD dwVersion;
+ PFN_SC_NOTIFY_CALLBACK pfnNotifyCallback;
+ PVOID pContext;
+ DWORD dwNotificationStatus;
+ SERVICE_STATUS_PROCESS ServiceStatus;
+ DWORD dwNotificationTriggered;
+ LPSTR pszServiceNames;
+} SERVICE_NOTIFYA, *PSERVICE_NOTIFYA;
+
+typedef struct _SERVICE_NOTIFYW {
+ DWORD dwVersion;
+ PFN_SC_NOTIFY_CALLBACK pfnNotifyCallback;
+ PVOID pContext;
+ DWORD dwNotificationStatus;
+ SERVICE_STATUS_PROCESS ServiceStatus;
+ DWORD dwNotificationTriggered;
+ LPWSTR pszServiceNames;
+} SERVICE_NOTIFYW, *PSERVICE_NOTIFYW;
+
+__MINGW_TYPEDEF_AW(SERVICE_NOTIFY)
+__MINGW_TYPEDEF_AW(PSERVICE_NOTIFY)
+
+typedef struct _SERVICE_DELAYED_AUTO_START_INFO {
+ WINBOOL fDelayedAutostart;
+} SERVICE_DELAYED_AUTO_START_INFO, *LPSERVICE_DELAYED_AUTO_START_INFO;
+
+typedef struct _SERVICE_FAILURE_ACTIONS_FLAG {
+ WINBOOL fFailureActionsOnNonCrashFailures;
+} SERVICE_FAILURE_ACTIONS_FLAG, *LPSERVICE_FAILURE_ACTIONS_FLAG;
+
+typedef struct _SERVICE_PRESHUTDOWN_INFO {
+ DWORD dwPreshutdownTimeout;
+} SERVICE_PRESHUTDOWN_INFO, *LPSERVICE_PRESHUTDOWN_INFO;
+
+typedef struct _SERVICE_REQUIRED_PRIVILEGES_INFOA {
+ LPSTR pmszRequiredPrivileges;
+} SERVICE_REQUIRED_PRIVILEGES_INFOA, *LPSERVICE_REQUIRED_PRIVILEGES_INFOA;
+
+typedef struct _SERVICE_REQUIRED_PRIVILEGES_INFOW {
+ LPWSTR pmszRequiredPrivileges;
+} SERVICE_REQUIRED_PRIVILEGES_INFOW, *LPSERVICE_REQUIRED_PRIVILEGES_INFOW;
+
+__MINGW_TYPEDEF_AW(SERVICE_REQUIRED_PRIVILEGES_INFO)
+
+#define SERVICE_SID_TYPE_NONE 0x00000000
+#define SERVICE_SID_TYPE_RESTRICTED 0x00000003
+#define SERVICE_SID_TYPE_UNRESTRICTED 0x00000001
+
+typedef struct _SERVICE_SID_INFO {
+ DWORD dwServiceSidType;
+} SERVICE_SID_INFO, *LPSERVICE_SID_INFO;
+
+WINADVAPI WINBOOL WINAPI ControlServiceExA(
+ SC_HANDLE hService,
+ DWORD dwControl,
+ DWORD dwInfoLevel,
+ PVOID pControlParams
+);
+
+WINADVAPI WINBOOL WINAPI ControlServiceExW(
+ SC_HANDLE hService,
+ DWORD dwControl,
+ DWORD dwInfoLevel,
+ PVOID pControlParams
+);
+
+#define ControlServiceEx __MINGW_NAME_AW(ControlServiceEx)
+
+#define NotifyServiceStatusChange __MINGW_NAME_AW(NotifyServiceStatusChange)
+
+DWORD WINAPI NotifyServiceStatusChangeA(
+ SC_HANDLE hService,
+ DWORD dwNotifyMask,
+ PSERVICE_NOTIFYA pNotifyBuffer
+);
+
+DWORD WINAPI NotifyServiceStatusChangeW(
+ SC_HANDLE hService,
+ DWORD dwNotifyMask,
+ PSERVICE_NOTIFYW pNotifyBuffer
+);
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
#ifdef __cplusplus
}
#endif
diff --git a/mingw-w64-headers/include/winsxs.h b/mingw-w64-headers/include/winsxs.h
new file mode 100644
index 0000000..a29b299
--- /dev/null
+++ b/mingw-w64-headers/include/winsxs.h
@@ -0,0 +1,94 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_WINSXS
+#define _INC_WINSXS
+#if (_WIN32_WINNT >= 0x0600)
+
+typedef enum ASM_CMP_FLAGS {
+ ASM_CMPF_NAME = 0x1,
+ ASM_CMPF_MAJOR_VERSION = 0x2,
+ ASM_CMPF_MINOR_VERSION = 0x4,
+ ASM_CMPF_BUILD_NUMBER = 0x8,
+ ASM_CMPF_REVISION_NUMBER = 0x10,
+ ASM_CMPF_PUBLIC_KEY_TOKEN = 0x20,
+ ASM_CMPF_CULTURE = 0x40,
+ ASM_CMPF_CUSTOM = 0x80,
+ ASM_CMPF_ALL,
+ ASM_CMPF_DEFAULT = 0x100
+} ASM_CMP_FLAGS ;
+
+typedef enum ASM_NAME {
+ ASM_NAME_PUBLIC_KEY,
+ ASM_NAME_PUBLIC_KEY_TOKEN,
+ ASM_NAME_HASH_VALUE,
+ ASM_NAME_NAME,
+ ASM_NAME_MAJOR_VERSION,
+ ASM_NAME_MINOR_VERSION,
+ ASM_NAME_BUILD_NUMBER,
+ ASM_NAME_REVISION_NUMBER,
+ ASM_NAME_CULTURE,
+ ASM_NAME_PROCESSOR_ID_ARRAY,
+ ASM_NAME_OSINFO_ARRAY,
+ ASM_NAME_HASH_ALGID,
+ ASM_NAME_ALIAS,
+ ASM_NAME_CODEBASE_URL,
+ ASM_NAME_CODEBASE_LASTMOD,
+ ASM_NAME_NULL_PUBLIC_KEY,
+ ASM_NAME_NULL_PUBLIC_KEY_TOKEN,
+ ASM_NAME_CUSTOM,
+ ASM_NAME_NULL_CUSTOM,
+ ASM_NAME_MVID,
+ ASM_NAME_MAX_PARAMS
+} ASM_NAME ;
+
+typedef enum _CREATE_ASM_NAME_OBJ_FLAGS {
+ CANOF_PARSE_DISPLAY_NAME = 0x1,
+ CANOF_SET_DEFAULT_VALUES = 0x2
+} CREATE_ASM_NAME_OBJ_FLAGS ;
+
+typedef struct _ASSEMBLY_INFO {
+ ULONG cbAssemblyInfo;
+ DWORD dwAssemblyFlags;
+ ULARGE_INTEGER uliAssemblySizeInKB;
+ LPWSTR pszCurrentAssemblyPathBuf;
+ ULONG cchBuf;
+} ASSEMBLY_INFO;
+
+typedef enum {
+ ASM_DISPLAYF_VERSION = 0x1,
+ ASM_DISPLAYF_CULTURE = 0x2,
+ ASM_DISPLAYF_PUBLIC_KEY_TOKEN = 0x4,
+ ASM_DISPLAYF_PUBLIC_KEY = 0x8,
+ ASM_DISPLAYF_CUSTOM = 0x10,
+ ASM_DISPLAYF_PROCESSORARCHITECTURE = 0x20,
+ ASM_DISPLAYF_LANGUAGEID = 0x40
+} ASM_DISPLAY_FLAGS;
+
+typedef struct _FUSION_INSTALL_REFERENCE {
+ DWORD cbSize;
+ DWORD dwFlags;
+ GUID guidScheme;
+ LPCWSTR szIdentifier;
+ LPCWSTR szNonCannonicalData;
+} FUSION_INSTALL_REFERENCE , *LPFUSION_INSTALL_REFERENCE;
+
+/* in sxs.dll but not in any headers
+HRESULT STDAPI CreateAssemblyCache(
+ IAssemblyCache **ppAsmCache,
+ DWORD dwReserved
+);
+
+HRESULT STDAPI CreateAssemblyNameObject(
+ LPASSEMBLYNAME **ppAssemblyNameObj,
+ LPCWSTR szAssemblyName,
+ DWORD dwFlags,
+ LPVOID pvReserved
+);
+
+*/
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_WINSXS*/
diff --git a/mingw-w64-headers/include/wintrust.h b/mingw-w64-headers/include/wintrust.h
index f9937c0..abff06a 100644
--- a/mingw-w64-headers/include/wintrust.h
+++ b/mingw-w64-headers/include/wintrust.h
@@ -603,6 +603,17 @@
#endif
+HRESULT WINAPI WTHelperCertCheckValidSignature(
+ CRYPT_PROVIDER_DATA *pProvData
+);
+
+#if (_WIN32_WINNT >= 0x0600)
+void WINAPI WintrustSetDefaultIncludePEPageHashes(
+ WINBOOL fIncludePEPageHashes
+);
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
#ifdef __cplusplus
}
#endif
diff --git a/mingw-w64-headers/include/winuser.h b/mingw-w64-headers/include/winuser.h
index f2929f6..1177b45 100644
--- a/mingw-w64-headers/include/winuser.h
+++ b/mingw-w64-headers/include/winuser.h
@@ -5303,6 +5303,54 @@
WINUSERAPI UINT WINAPI GetRawInputDeviceList(PRAWINPUTDEVICELIST pRawInputDeviceList,PUINT puiNumDevices,UINT cbSize);
WINUSERAPI LRESULT WINAPI DefRawInputProc(PRAWINPUT *paRawInput,INT nInput,UINT cbSizeHeader);
+#if (_WIN32_WINNT >= 0x0600)
+typedef struct _AUDIODESCRIPTION {
+ UINT cbSize;
+ BOOL Enabled;
+ LCID Locale;
+} AUDIODESCRIPTION, *PAUDIODESCRIPTION;
+
+#define CreateDesktopEx __MINGW_NAME_AW(CreateDesktopEx)
+
+HDESK WINAPI CreateDesktopExA(
+ LPCSTR lpszDesktop,
+ LPCSTR lpszDevice,
+ DEVMODE *pDevmode,
+ DWORD dwFlags,
+ ACCESS_MASK dwDesiredAccess,
+ LPSECURITY_ATTRIBUTES lpsa,
+ ULONG ulHeapSize,
+ PVOID pvoid
+);
+
+HDESK WINAPI CreateDesktopExW(
+ LPCWSTR lpszDesktop,
+ LPCWSTR lpszDevice,
+ DEVMODE *pDevmode,
+ DWORD dwFlags,
+ ACCESS_MASK dwDesiredAccess,
+ LPSECURITY_ATTRIBUTES lpsa,
+ ULONG ulHeapSize,
+ PVOID pvoid
+);
+
+WINBOOL WINAPI ShutdownBlockReasonCreate(
+ HWND hWnd,
+ LPCWSTR pwszReason
+);
+
+WINBOOL WINAPI ShutdownBlockReasonDestroy(
+ HWND hWnd
+);
+
+WINBOOL WINAPI ShutdownBlockReasonQuery(
+ HWND hWnd,
+ LPWSTR pwszBuff,
+ DWORD *pcchBuff
+);
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
#endif /* NOUSER */
#ifdef __cplusplus
diff --git a/mingw-w64-headers/include/wlanapi.h b/mingw-w64-headers/include/wlanapi.h
new file mode 100644
index 0000000..cc96702
--- /dev/null
+++ b/mingw-w64-headers/include/wlanapi.h
@@ -0,0 +1,718 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_WLANAPI
+#define _INC_WLANAPI
+#include <windot11.h>
+#include <eaptypes.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef DWORD WLAN_REASON_CODE, *PWLAN_REASON_CODE;
+
+typedef struct _DOT11_NETWORK {
+ DOT11_SSID dot11Ssid;
+ DOT11_BSS_TYPE dot11BssType;
+} DOT11_NETWORK, *PDOT11_NETWORK;
+
+typedef enum _DOT11_RADIO_STATE {
+ dot11_radio_state_unknown,
+ dot11_radio_state_on,
+ dot11_radio_state_off
+} DOT11_RADIO_STATE, *PDOT11_RADIO_STATE;
+
+typedef enum _WLAN_INTERFACE_STATE {
+ wlan_interface_state_not_ready = 0,
+ wlan_interface_state_connected = 1,
+ wlan_interface_state_ad_hoc_network_formed = 2,
+ wlan_interface_state_disconnecting = 3,
+ wlan_interface_state_disconnected = 4,
+ wlan_interface_state_associating = 5,
+ wlan_interface_state_discovering = 6,
+ wlan_interface_state_authenticating = 7
+} WLAN_INTERFACE_STATE, *PWLAN_INTERFACE_STATE;
+
+typedef enum _WLAN_CONNECTION_MODE {
+ wlan_connection_mode_profile,
+ wlan_connection_mode_temporary_profile,
+ wlan_connection_mode_discovery_secure,
+ wlan_connection_mode_discovery_unsecure,
+ wlan_connection_mode_auto,
+ wlan_connection_mode_invalid
+} WLAN_CONNECTION_MODE, *PWLAN_CONNECTION_MODE;
+
+typedef enum _WLAN_INTERFACE_TYPE {
+ wlan_interface_type_emulated_802_11 = 0,
+ wlan_interface_type_native_802_11,
+ wlan_interface_type_invalid
+} WLAN_INTERFACE_TYPE, *PWLAN_INTERFACE_TYPE;
+
+typedef enum _WLAN_INTF_OPCODE {
+ wlan_intf_opcode_autoconf_start = 0x000000000,
+ wlan_intf_opcode_autoconf_enabled,
+ wlan_intf_opcode_background_scan_enabled,
+ wlan_intf_opcode_media_streaming_mode,
+ wlan_intf_opcode_radio_state,
+ wlan_intf_opcode_bss_type,
+ wlan_intf_opcode_interface_state,
+ wlan_intf_opcode_current_connection,
+ wlan_intf_opcode_channel_number,
+ wlan_intf_opcode_supported_infrastructure_auth_cipher_pairs,
+ wlan_intf_opcode_supported_adhoc_auth_cipher_pairs,
+ wlan_intf_opcode_supported_country_or_region_string_list,
+ wlan_intf_opcode_current_operation_mode,
+ wlan_intf_opcode_supported_safe_mode,
+ wlan_intf_opcode_certified_safe_mode,
+ wlan_intf_opcode_hosted_network_capable,
+ wlan_intf_opcode_autoconf_end = 0x0fffffff,
+ wlan_intf_opcode_msm_start = 0x10000100,
+ wlan_intf_opcode_statistics,
+ wlan_intf_opcode_rssi,
+ wlan_intf_opcode_msm_end = 0x1fffffff,
+ wlan_intf_opcode_security_start = 0x20010000,
+ wlan_intf_opcode_security_end = 0x2fffffff,
+ wlan_intf_opcode_ihv_start = 0x30000000,
+ wlan_intf_opcode_ihv_end = 0x3fffffff
+} WLAN_INTF_OPCODE, *PWLAN_INTF_OPCODE;
+
+typedef enum _WLAN_OPCODE_VALUE_TYPE {
+ wlan_opcode_value_type_query_only = 0,
+ wlan_opcode_value_type_set_by_group_policy = 1,
+ wlan_opcode_value_type_set_by_user = 2,
+ wlan_opcode_value_type_invalid = 3
+} WLAN_OPCODE_VALUE_TYPE, *PWLAN_OPCODE_VALUE_TYPE;
+
+typedef enum _WLAN_POWER_SETTING {
+ wlan_power_setting_no_saving,
+ wlan_power_setting_low_saving,
+ wlan_power_setting_medium_saving,
+ wlan_power_setting_maximum_saving,
+ wlan_power_setting_invalid
+} WLAN_POWER_SETTING, *PWLAN_POWER_SETTING;
+
+typedef struct _WLAN_ASSOCIATION_ATTRIBUTES {
+ DOT11_SSID dot11Ssid;
+ DOT11_BSS_TYPE dot11BssType;
+ DOT11_MAC_ADDRESS dot11Bssid;
+ DOT11_PHY_TYPE dot11PhyType;
+ ULONG uDot11PhyIndex;
+ WLAN_SIGNAL_QUALITY wlanSignalQuality;
+ ULONG ulRxRate;
+ ULONG ulTxRate;
+} WLAN_ASSOCIATION_ATTRIBUTES, *PWLAN_ASSOCIATION_ATTRIBUTES;
+
+typedef struct _WLAN_AUTH_CIPHER_PAIR_LIST {
+ DWORD dwNumberOfItems;
+ DOT11_AUTH_CIPHER_PAIR pAuthCipherPairList;
+} WLAN_AUTH_CIPHER_PAIR_LIST, *PWLAN_AUTH_CIPHER_PAIR_LIST;
+
+typedef struct _WLAN_NOTIFICATION_DATA {
+ DWORD NotificationSource;
+ DWORD NotificationCode;
+ GUID InterfaceGuid;
+ DWORD dwDataSize;
+ PVOID pData;
+} WLAN_NOTIFICATION_DATA, *PWLAN_NOTIFICATION_DATA;
+
+#define WLAN_MAX_PHY_TYPE_NUMBER 8
+
+typedef struct _WLAN_AVAILABLE_NETWORK {
+ WCHAR strProfileName[256];
+ DOT11_SSID dot11Ssid;
+ DOT11_BSS_TYPE dot11BssType;
+ ULONG uNumberOfBssids;
+ WINBOOL bNetworkConnectable;
+ WLAN_REASON_CODE wlanNotConnectableReason;
+ ULONG uNumberOfPhyTypes;
+ DOT11_PHY_TYPE dot11PhyTypes[WLAN_MAX_PHY_TYPE_NUMBER];
+ WINBOOL bMorePhyTypes;
+ WLAN_SIGNAL_QUALITY wlanSignalQuality;
+ WINBOOL bSecurityEnabled;
+ DOT11_AUTH_ALGORITHM dot11DefaultAuthAlgorithm;
+ DOT11_CIPHER_ALGORITHM dot11DefaultCipherAlgorithm;
+ DWORD dwFlags;
+ DWORD dwReserved;
+} WLAN_AVAILABLE_NETWORK, *PWLAN_AVAILABLE_NETWORK;
+
+typedef struct _WLAN_AVAILABLE_NETWORK_LIST {
+ DWORD dwNumberOfItems;
+ DWORD dwIndex;
+ WLAN_AVAILABLE_NETWORK Network[1];
+} WLAN_AVAILABLE_NETWORK_LIST, *PWLAN_AVAILABLE_NETWORK_LIST;
+
+typedef struct _WLAN_BSS_LIST {
+ DWORD dwTotalSize;
+ DWORD dwNumberOfItems;
+ WLAN_BSS_ENTRY wlanBssEntries[1];
+} WLAN_BSS_LIST, *PWLAN_BSS_LIST;
+
+typedef struct _WLAN_SECURITY_ATTRIBUTES {
+ WINBOOL bSecurityEnabled;
+ WINBOOL bOneXEnabled;
+ DOT11_AUTH_ALGORITHM dot11AuthAlgorithm;
+ DOT11_CIPHER_ALGORITHM dot11CipherAlgorithm;
+} WLAN_SECURITY_ATTRIBUTES, *PWLAN_SECURITY_ATTRIBUTES;
+
+typedef struct _WLAN_CONNECTION_ATTRIBUTES {
+ WLAN_INTERFACE_STATE isState;
+ WLAN_CONNECTION_MODE wlanConnectionMode;
+ WCHAR strProfileName[256];
+ WLAN_ASSOCIATION_ATTRIBUTES wlanAssociationAttributes;
+ WLAN_SECURITY_ATTRIBUTES wlanSecurityAttributes;
+} WLAN_CONNECTION_ATTRIBUTES, *PWLAN_CONNECTION_ATTRIBUTES;
+
+/* Assuming stdcall */
+typedef VOID (CALLBAC *WLAN_NOTIFICATION_CALLBACK)(
+ PWLAN_NOTIFICATION_DATA ,
+ PVOID
+);
+
+#define WLAN_MAX_NAME_LENGTH 256
+
+typedef struct _WLAN_CONNECTION_NOTIFICATION_DATA {
+ WLAN_CONNECTION_MODE wlanConnectionMode;
+ WCHAR strProfileName[WLAN_MAX_NAME_LENGTH];
+ DOT11_SSID dot11Ssid;
+ DOT11_BSS_TYPE dot11BssType;
+ BOOL bSecurityEnabled;
+ WLAN_REASON_CODE wlanReasonCode;
+ DWORD dwFlags;
+ WCHAR strProfileXml[1];
+} WLAN_CONNECTION_NOTIFICATION_DATA, *PWLAN_CONNECTION_NOTIFICATION_DATA;
+
+#define WLAN_CONNECTION_HIDDEN_NETWORK 0x00000001
+#define WLAN_CONNECTION_ADHOC_JOIN_ONLY 0x00000002
+#define WLAN_CONNECTION_IGNORE_PRIVACY_BIT 0x00000004
+#define WLAN_CONNECTION_EAPOL_PASSTHROUGH 0x00000008
+
+typedef struct _WLAN_CONNECTION_PARAMETERS {
+ WLAN_CONNECTION_MODE wlanConnectionMode;
+ LPCWSTR strProfile;
+ PDOT11_SSID pDot11Ssid;
+ PDOT11_BSSID_LIST pDesiredBssidList;
+ DOT11_BSS_TYPE dot11BssType;
+ DWORD dwFlags;
+} WLAN_CONNECTION_PARAMETERS, *PWLAN_CONNECTION_PARAMETERS;
+
+typedef struct _WLAN_INTERFACE_INFO {
+ GUID InterfaceGuid;
+ WCHAR strInterfaceDescription[256];
+ WLAN_INTERFACE_STATE isState;
+} WLAN_INTERFACE_INFO, *PWLAN_INTERFACE_INFO;
+
+typedef struct _WLAN_INTERFACE_INFO_LIST {
+ DWORD dwNumberOfItems;
+ DWORD dwIndex;
+ WLAN_INTERFACE_INFO InterfaceInfo[];
+} WLAN_INTERFACE_INFO_LIST, *PWLAN_INTERFACE_INFO_LIST;
+
+typedef struct _WLAN_PROFILE_INFO {
+ WCHAR strProfileName[256];
+ DWORD dwFlags;
+} WLAN_PROFILE_INFO, *PWLAN_PROFILE_INFO;
+
+typedef struct _WLAN_PROFILE_INFO_LIST {
+ DWORD dwNumberOfItems;
+ DWORD dwIndex;
+ WLAN_PROFILE_INFO ProfileInfo[1];
+} WLAN_PROFILE_INFO_LIST, *PWLAN_PROFILE_INFO_LIST;
+
+PVOID WINAPI WlanAllocateMemory(
+ DWORD dwMemorySize
+);
+
+DWORD WINAPI WlanCloseHandle(
+ HANDLE hClientHandle,
+ PVOID pReserved
+);
+
+DWORD WINAPI WlanConnect(
+ HANDLE hClientHandle,
+ const GUID *pInterfaceGuid,
+ const PWLAN_CONNECTION_PARAMETERS pConnectionParameters,
+ PVOID pReserved
+);
+
+DWORD WINAPI WlanDeleteProfile(
+ HANDLE hClientHandle,
+ const GUID *pInterfaceGuid,
+ LPCWSTR strProfileName,
+ PVOID pReserved
+);
+
+DWORD WINAPI WlanDisconnect(
+ HANDLE hClientHandle,
+ const GUID *pInterfaceGuid,
+ PVOID pReserved
+);
+
+DWORD WINAPI WlanEnumInterfaces(
+ HANDLE hClientHandle,
+ PVOID pReserved,
+ PWLAN_INTERFACE_INFO_LIST *ppInterfaceList
+);
+
+VOID WINAPI WlanFreeMemory(
+ PVOID pMemory
+);
+
+DWORD WINAPI WlanGetAvailableNetworkList(
+ HANDLE hClientHandle,
+ const GUID *pInterfaceGuid,
+ DWORD dwFlags,
+ PVOID pReserved,
+ PWLAN_AVAILABLE_NETWORK_LIST *ppAvailableNetworkList
+);
+
+DWORD WINAPI WlanGetProfile(
+ HANDLE hClientHandle,
+ const GUID *pInterfaceGuid,
+ LPCWSTR strProfileName,
+ PVOID pReserved,
+ LPWSTR *pstrProfileXml,
+ DWORD *pdwFlags,
+ PDWORD pdwGrantedAccess
+);
+
+DWORD WINAPI WlanGetProfileList(
+ HANDLE hClientHandle,
+ const GUID *pInterfaceGuid,
+ PVOID pReserved,
+ PWLAN_PROFILE_INFO_LIST *ppProfileList
+);
+
+DWORD WINAPI WlanOpenHandle(
+ DWORD dwClientVersion,
+ PVOID pReserved,
+ PDWORD pdwNegotiatedVersion,
+ PHANDLE phClientHandle
+);
+
+DWORD WINAPI WlanQueryInterface(
+ HANDLE hClientHandle,
+ const GUID *pInterfaceGuid,
+ WLAN_INTF_OPCODE OpCode,
+ PVOID pReserved,
+ PDWORD pdwDataSize,
+ PVOID *ppData,
+ PWLAN_OPCODE_VALUE_TYPE pWlanOpcodeValueType
+);
+
+DWORD WINAPI WlanReasonCodeToString(
+ DWORD dwReasonCode,
+ DWORD dwBufferSize,
+ PWCHAR pStringBuffer,
+ PVOID pReserved
+);
+
+DWORD WINAPI WlanRegisterNotification(
+ HANDLE hClientHandle,
+ DWORD dwNotifSource,
+ WINBOOL bIgnoreDuplicate,
+ WLAN_NOTIFICATION_CALLBACK funcCallback,
+ PVOID pCallbackContext,
+ PVOID pReserved,
+ PDWORD pdwPrevNotifSource
+);
+
+DWORD WINAPI WlanScan(
+ HANDLE hClientHandle,
+ const GUID *pInterfaceGuid,
+ const PDOT11_SSID pDot11Ssid,
+ const PWLAN_RAW_DATA pIeData,
+ PVOID pReserved
+);
+
+DWORD WINAPI WlanSetInterface(
+ HANDLE hClientHandle,
+ const GUID *pInterfaceGuid,
+ WLAN_INTF_OPCODE OpCode,
+ DWORD dwDataSize,
+ const PVOID pData,
+ PVOID pReserved
+);
+
+DWORD WINAPI WlanSetProfile(
+ HANDLE hClientHandle,
+ const GUID *pInterfaceGuid,
+ DWORD dwFlags,
+ LPCWSTR strProfileXml,
+ LPCWSTR strAllUserProfileSecurity,
+ WINBOOL bOverwrite,
+ PVOID pReserved,
+ DWORD *pdwReasonCode
+);
+
+DWORD WINAPI WlanSetProfileEapXmlUserData(
+ HANDLE hClientHandle,
+ const GUID *pInterfaceGuid,
+ LPCWSTR strProfileName,
+ DWORD dwFlags,
+ LPCWSTR strEapXmlUserData,
+ PVOID pReserved
+);
+
+DWORD WINAPI WlanSetProfileList(
+ HANDLE hClientHandle,
+ const GUID *pInterfaceGuid,
+ DWORD dwItems,
+ LPCWSTR *strProfileNames,
+ PVOID pReserved
+);
+
+DWORD WINAPI WlanSetProfilePosition(
+ HANDLE hClientHandle,
+ const GUID *pInterfaceGuid,
+ LPCWSTR strProfileName,
+ DWORD dwPosition,
+ PVOID pReserved
+);
+
+#if (_WIN32_WINNT >= 0x0600)
+typedef char[3] DOT11_COUNTRY_OR_REGION_STRING;
+
+typedef enum _WLAN_AUTOCONF_OPCODE {
+ wlan_autoconf_opcode_start = 0,
+ wlan_autoconf_opcode_show_denied_networks = 1,
+ wlan_autoconf_opcode_power_setting = 2,
+ wlan_autoconf_opcode_only_use_gp_profiles_for_allowed_networks = 3,
+ wlan_autoconf_opcode_allow_explicit_creds = 4,
+ wlan_autoconf_opcode_block_period = 5,
+ wlan_autoconf_opcode_allow_virtual_station_extensibility = 6,
+ wlan_autoconf_opcode_end = 7
+} WLAN_AUTOCONF_OPCODE, *PWLAN_AUTOCONF_OPCODE;
+
+typedef enum _WL_DISPLAY_PAGES {
+ WLConnectionPage,
+ WLSecurityPage
+} WL_DISPLAY_PAGES, *PWL_DISPLAY_PAGES;
+
+typedef enum _WLAN_ADHOC_NETWORK_STATE {
+ wlan_adhoc_network_state_formed = 0,
+ wlan_adhoc_network_state_connected = 1
+} WLAN_ADHOC_NETWORK_STATE;
+
+typedef enum _WLAN_IHV_CONTROL_TYPE {
+ wlan_ihv_control_type_service,
+ wlan_ihv_control_type_driver
+} WLAN_IHV_CONTROL_TYPE, *PWLAN_IHV_CONTROL_TYPE;
+
+typedef enum _WLAN_FILTER_LIST_TYPE {
+ wlan_filter_list_type_gp_permit,
+ wlan_filter_list_type_gp_deny,
+ wlan_filter_list_type_user_permit,
+ wlan_filter_list_type_user_deny
+} WLAN_FILTER_LIST_TYPE, *PWLAN_FILTER_LIST_TYPE;
+
+typedef enum _WLAN_SECURABLE_OBJECT {
+ wlan_secure_permit_list = 0,
+ wlan_secure_deny_list = 1,
+ wlan_secure_ac_enabled = 2,
+ wlan_secure_bc_scan_enabled = 3,
+ wlan_secure_bss_type = 4,
+ wlan_secure_show_denied = 5,
+ wlan_secure_interface_properties = 6,
+ wlan_secure_ihv_control = 7,
+ wlan_secure_all_user_profiles_order = 8,
+ wlan_secure_add_new_all_user_profiles = 9,
+ wlan_secure_add_new_per_user_profiles = 10,
+ wlan_secure_media_streaming_mode_enabled = 11,
+ wlan_secure_current_operation_mode = 12,
+ wlan_secure_get_plaintext_key = 13,
+ wlan_secure_hosted_network_elevated_access = 14
+} WLAN_SECURABLE_OBJECT, *PWLAN_SECURABLE_OBJECT;
+
+typedef struct _DOT11_NETWORK_LIST {
+ DWORD dwNumberOfItems;
+ DWORD dwIndex;
+ DOT11_NETWORK Network[1];
+} DOT11_NETWORK_LIST, *PDOT11_NETWORK_LIST;
+
+typedef struct _WLAN_BSS_ENTRY {
+ DOT11_SSID dot11Ssid;
+ ULONG uPhyId;
+ DOT11_MAC_ADDRESS dot11Bssid;
+ DOT11_BSS_TYPE dot11BssType;
+ DOT11_PHY_TYPE dot11BssPhyType;
+ LONG lRssi;
+ ULONG uLinkQuality;
+ BOOLEAN bInRegDomain;
+ USHORT usBeaconPeriod;
+ ULONGLONG ullTimestamp;
+ ULONGLONG ullHostTimestamp;
+ USHORT usCapabilityInformation;
+ ULONG ulChCenterFrequency;
+ WLAN_RATE_SET wlanRateSet;
+ ULONG ulIeOffset;
+ ULONG ulIeSize;
+} WLAN_BSS_ENTRY, *PWLAN_BSS_ENTRY;
+
+typedef struct _WLAN_COUNTRY_OR_REGION_STRING_LIST {
+ DWORD dwNumberOfItems;
+ DOT11_COUNTRY_OR_REGION_STRING pCountryOrRegionStringList[1];
+} WLAN_COUNTRY_OR_REGION_STRING_LIST, *PWLAN_COUNTRY_OR_REGION_STRING_LIST;
+
+#define WLAN_MAX_PHY_INDEX 64
+
+typedef struct _WLAN_INTERFACE_CAPABILITY {
+ WLAN_INTERFACE_TYPE interfaceType;
+ WINBOOL bDot11DSupported;
+ DWORD dwMaxDesiredSsidListSize;
+ DWORD dwMaxDesiredBssidListSize;
+ DWORD dwNumberOfSupportedPhys;
+ DOT11_PHY_TYPE dot11PhyTypes[WLAN_MAX_PHY_INDEX];
+} WLAN_INTERFACE_CAPABILITY, *PWLAN_INTERFACE_CAPABILITY;
+
+typedef struct _WLAN_MAC_FRAME_STATISTICS {
+ ULONGLONG ullTransmittedFrameCount;
+ ULONGLONG ullReceivedFrameCount;
+ ULONGLONG ullWEPExcludedCount;
+ ULONGLONG ullTKIPLocalMICFailures;
+ ULONGLONG ullTKIPReplays;
+ ULONGLONG ullTKIPICVErrorCount;
+ ULONGLONG ullCCMPReplays;
+ ULONGLONG ullCCMPDecryptErrors;
+ ULONGLONG ullWEPUndecryptableCount;
+ ULONGLONG ullWEPICVErrorCount;
+ ULONGLONG ullDecryptSuccessCount;
+ ULONGLONG ullDecryptFailureCount;
+} WLAN_MAC_FRAME_STATISTICS, *PWLAN_MAC_FRAME_STATISTICS;
+
+typedef struct _WLAN_MSM_NOTIFICATION_DATA {
+ WLAN_CONNECTION_MODE wlanConnectionMode;
+ WCHAR strProfileName[WLAN_MAX_NAME_LENGTH];
+ DOT11_SSID dot11Ssid;
+ DOT11_BSS_TYPE dot11BssType;
+ DOT11_MAC_ADDRESS dot11MacAddr;
+ BOOL bSecurityEnabled;
+ BOOL bFirstPeer;
+ BOOL bLastPeer;
+ WLAN_REASON_CODE wlanReasonCode;
+} WLAN_MSM_NOTIFICATION_DATA, *PWLAN_MSM_NOTIFICATION_DATA;
+
+typedef struct _WLAN_PHY_FRAME_STATISTICS {
+ ULONGLONG ullTransmittedFrameCount;
+ ULONGLONG ullMulticastTransmittedFrameCount;
+ ULONGLONG ullFailedCount;
+ ULONGLONG ullRetryCount;
+ ULONGLONG ullMultipleRetryCount;
+ ULONGLONG ullMaxTXLifetimeExceededCount;
+ ULONGLONG ullTransmittedFragmentCount;
+ ULONGLONG ullRTSSuccessCount;
+ ULONGLONG ullRTSFailureCount;
+ ULONGLONG ullACKFailureCount;
+ ULONGLONG ullReceivedFrameCount;
+ ULONGLONG ullMulticastReceivedFrameCount;
+ ULONGLONG ullPromiscuousReceivedFrameCount;
+ ULONGLONG ullMaxRXLifetimeExceededCount;
+ ULONGLONG ullFrameDuplicateCount;
+ ULONGLONG ullReceivedFragmentCount;
+ ULONGLONG ullPromiscuousReceivedFragmentCount;
+ ULONGLONG ullFCSErrorCount;
+} WLAN_PHY_FRAME_STATISTICS, *PWLAN_PHY_FRAME_STATISTICS;
+
+typedef struct _WLAN_PHY_RADIO_STATE {
+ DWORD dwPhyIndex;
+ DOT11_RADIO_STATE dot11SoftwareRadioState;
+ DOT11_RADIO_STATE dot11HardwareRadioState;
+} WLAN_PHY_RADIO_STATE, *PWLAN_PHY_RADIO_STATE;
+
+typedef struct _WLAN_RADIO_STATE {
+ DWORD dwNumberOfPhys;
+ WLAN_PHY_RADIO_STATE PhyRadioState[64];
+} WLAN_RADIO_STATE, *PWLAN_RADIO_STATE;
+
+#define DOT11_RATE_SET_MAX_LENGTH 126
+
+typedef struct _WLAN_RATE_SET {
+ ULONG uRateSetLength;
+ USHORT usRateSet[DOT11_RATE_SET_MAX_LENGTH];
+} WLAN_RATE_SET, *PWLAN_RATE_SET;
+
+#define DOT11_PSD_IE_MAX_DATA_SIZE 240
+#define DOT11_PSD_IE_MAX_ENTRY_NUMBER 5
+
+typedef struct _WLAN_RAW_DATA {
+ DWORD dwDataSize;
+ BYTE DataBlob[1];
+} WLAN_RAW_DATA, *PWLAN_RAW_DATA;
+
+typedef struct _WLAN_RAW_DATA_LIST {
+ DWORD dwTotalSize;
+ DWORD dwNumberOfItems;
+ __MINGW_EXTENSION struct {
+ DWORD dwDataOffset;
+ DWORD dwDataSize;
+ } DataList[1];
+} WLAN_RAW_DATA_LIST, *PWLAN_RAW_DATA_LIST;
+
+typedef struct _WLAN_STATISTICS {
+ ULONGLONG ullFourWayHandshakeFailures;
+ ULONGLONG ullTKIPCounterMeasuresInvoked;
+ ULONGLONG ullReserved;
+ WLAN_MAC_FRAME_STATISTICS MacUcastCounters;
+ WLAN_MAC_FRAME_STATISTICS MacMcastCounters;
+ DWORD dwNumberOfPhys;
+ WLAN_PHY_FRAME_STATISTICS PhyCounters[1];
+} WLAN_STATISTICS, *PWLAN_STATISTICS;
+
+DWORD WINAPI WlanExtractPsdIEDataList(
+ HANDLE hClientHandle,
+ DWORD dwIeDataSize,
+ const PBYTE pRawIeData,
+ LPCWSTR strFormat,
+ PVOID pReserved,
+ PWLAN_RAW_DATA_LIST *ppPsdIEDataList
+);
+
+DWORD WINAPI WlanGetFilterList(
+ HANDLE hClientHandle,
+ WLAN_FILTER_LIST_TYPE wlanFilterListType,
+ PVOID pReserved,
+ PDOT11_NETWORK_LIST *ppNetworkList
+);
+
+DWORD WINAPI WlanGetInterfaceCapability(
+ HANDLE hClientHandle,
+ const GUID *pInterfaceGuid,
+ PVOID pReserved,
+ PWLAN_INTERFACE_CAPABILITY *ppCapability
+);
+
+DWORD WINAPI WlanGetNetworkBssList(
+ HANDLE hClientHandle,
+ const GUID *pInterfaceGuid,
+ const PDOT11_SSID pDot11Ssid,
+ DOT11_BSS_TYPE dot11BssType,
+ WINBOOL bSecurityEnabled,
+ PVOID pReserved,
+ PWLAN_BSS_LIST *ppWlanBssList
+);
+
+DWORD WINAPI WlanGetProfileCustomUserData(
+ HANDLE hClientHandle,
+ const GUID *pInterfaceGuid,
+ LPCWSTR strProfileName,
+ PVOID pReserved,
+ DWORD *pdwDataSize,
+ PBYTE *ppData
+);
+
+DWORD WINAPI WlanGetSecuritySettings(
+ HANDLE hClientHandle,
+ WLAN_SECURABLE_OBJECT SecurableObject,
+ PWLAN_OPCODE_VALUE_TYPE pValueType,
+ LPWSTR *pstrCurrentSDDL,
+ PDWORD pdwGrantedAccess
+);
+
+DWORD WINAPI WlanIhvControl(
+ HANDLE hClientHandle,
+ const GUID *pInterfaceGuid,
+ WLAN_IHV_CONTROL_TYPE Type,
+ DWORD dwInBufferSize,
+ PVOID pInBuffer,
+ DWORD dwOutBufferSize,
+ PVOID pOutBuffer,
+ PDWORD pdwBytesReturned
+);
+
+DWORD WINAPI WlanQueryAutoConfigParameter(
+ HANDLE hClientHandle,
+ WLAN_AUTOCONF_OPCODE OpCode,
+ PVOID pReserved,
+ PDWORD pdwDataSize,
+ PVOID ppData,
+ PWLAN_OPCODE_VALUE_TYPE pWlanOpcodeValueType
+);
+
+DWORD WINAPI WlanRenameProfile(
+ HANDLE hClientHandle,
+ const GUID *pInterfaceGuid,
+ LPCWSTR strOldProfileName,
+ LPCWSTR strNewProfileName,
+ PVOID pReserved
+);
+
+#define WLAN_PROFILE_USER 0x00000002
+#define WLAN_PROFILE_CONNECTION_MODE_SET_BY_CLIENT 0x00010000
+#define WLAN_PROFILE_CONNECTION_MODE_AUTO 0x00020000
+
+DWORD WINAPI WlanSaveTemporaryProfile(
+ HANDLE hClientHandle,
+ const GUID *pInterfaceGuid,
+ LPCWSTR strProfileName,
+ LPCWSTR strAllUserProfileSecurity,
+ DWORD dwFlags,
+ WINBOOL bOverWrite,
+ PVOID pReserved
+);
+
+DWORD WINAPI WlanSetAutoConfigParameter(
+ HANDLE hClientHandle,
+ WLAN_AUTOCONF_OPCODE OpCode,
+ DWORD dwDataSize,
+ const PVOID pData,
+ PVOID pReserved
+);
+
+DWORD WINAPI WlanSetFilterList(
+ HANDLE hClientHandle,
+ WLAN_FILTER_LIST_TYPE wlanFilterListType,
+ const PDOT11_NETWORK_LIST pNetworkList,
+ PVOID pReserved
+);
+
+DWORD WINAPI WlanSetProfileCustomUserData(
+ HANDLE hClientHandle,
+ const GUID *pInterfaceGuid,
+ LPCWSTR strProfileName,
+ DWORD dwDataSize,
+ const PBYTE pData,
+ PVOID pReserved
+);
+
+DWORD WlanSetProfileEapUserData(
+ HANDLE hClientHandle,
+ const GUID *pInterfaceGuid,
+ LPCWSTR strProfileName,
+ EAP_METHOD_TYPE eapType,
+ DWORD dwFlags,
+ DWORD dwEapUserDataSize,
+ const LPBYTE pbEapUserData,
+ PVOID pReserved
+);
+
+DWORD WINAPI WlanSetPsdIEDataList(
+ HANDLE hClientHandle,
+ LPCWSTR strFormat,
+ const PWLAN_RAW_DATA_LIST pPsdIEDataList,
+ PVOID pReserved
+);
+
+DWORD WINAPI WlanSetSecuritySettings(
+ HANDLE hClientHandle,
+ WLAN_SECURABLE_OBJECT SecurableObject,
+ LPCWSTR strModifiedSDDL
+);
+
+DWORD WINAPI WlanUIEditProfile(
+ DWORD dwClientVersion,
+ LPCWSTR wstrProfileName,
+ GUID *pInterfaceGuid,
+ HWND hWnd,
+ WL_DISPLAY_PAGES wlStartPage,
+ PVOID pReserved,
+ PWLAN_REASON_CODE *pWlanReasonCode
+);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_WLANAPI*/
diff --git a/mingw-w64-headers/include/wlantypes.h b/mingw-w64-headers/include/wlantypes.h
new file mode 100644
index 0000000..eff7707
--- /dev/null
+++ b/mingw-w64-headers/include/wlantypes.h
@@ -0,0 +1,73 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_WLANTYPES
+#define _INC_WLANTYPES
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define DOT11_SSID_MAX_LENGTH 32
+
+typedef enum _DOT11_CIPHER_ALGORITHM {
+ DOT11_CIPHER_ALGO_NONE = 0x00,
+ DOT11_CIPHER_ALGO_WEP40 = 0x01,
+ DOT11_CIPHER_ALGO_TKIP = 0x02,
+ DOT11_CIPHER_ALGO_CCMP = 0x04,
+ DOT11_CIPHER_ALGO_WEP104 = 0x05,
+ DOT11_CIPHER_ALGO_WPA_USE_GROUP = 0x100,
+ DOT11_CIPHER_ALGO_RSN_USE_GROUP = 0x100,
+ DOT11_CIPHER_ALGO_WEP = 0x101,
+ DOT11_CIPHER_ALGO_IHV_START = 0x80000000,
+ DOT11_CIPHER_ALGO_IHV_END = 0xffffffff
+} DOT11_CIPHER_ALGORITHM, *PDOT11_CIPHER_ALGORITHM;
+
+typedef enum _DOT11_AUTH_ALGORITHM {
+ DOT11_AUTH_ALGO_80211_OPEN = 1,
+ DOT11_AUTH_ALGO_80211_SHARED_KEY = 2,
+ DOT11_AUTH_ALGO_WPA = 3,
+ DOT11_AUTH_ALGO_WPA_PSK = 4,
+ DOT11_AUTH_ALGO_WPA_NONE = 5,
+ DOT11_AUTH_ALGO_RSNA = 6,
+ DOT11_AUTH_ALGO_RSNA_PSK = 7,
+ DOT11_AUTH_ALGO_IHV_START = 0x80000000,
+ DOT11_AUTH_ALGO_IHV_END = 0xffffffff
+} DOT11_AUTH_ALGORITHM, *PDOT11_AUTH_ALGORITHM;
+
+typedef enum _DOT11_CIPHER_ALGORITHM {
+ DOT11_CIPHER_ALGO_NONE = 0x00,
+ DOT11_CIPHER_ALGO_WEP40 = 0x01,
+ DOT11_CIPHER_ALGO_TKIP = 0x02,
+ DOT11_CIPHER_ALGO_CCMP = 0x04,
+ DOT11_CIPHER_ALGO_WEP104 = 0x05,
+ DOT11_CIPHER_ALGO_WPA_USE_GROUP = 0x100,
+ DOT11_CIPHER_ALGO_RSN_USE_GROUP = 0x100,
+ DOT11_CIPHER_ALGO_WEP = 0x101,
+ DOT11_CIPHER_ALGO_IHV_START = 0x80000000,
+ DOT11_CIPHER_ALGO_IHV_END = 0xffffffff
+} DOT11_CIPHER_ALGORITHM, *PDOT11_CIPHER_ALGORITHM;
+
+typedef enum _DOT11_BSS_TYPE {
+ dot11_BSS_type_infrastructure = 1,
+ dot11_BSS_type_independent = 2,
+ dot11_BSS_type_any = 3
+} DOT11_BSS_TYPE, *PDOT11_BSS_TYPE;
+
+typedef struct _DOT11_AUTH_CIPHER_PAIR {
+ DOT11_AUTH_ALGORITHM AuthAlgoId;
+ DOT11_CIPHER_ALGORITHM CipherAlgoId;
+} DOT11_AUTH_CIPHER_PAIR, *PDOT11_AUTH_CIPHER_PAIR;
+
+typedef struct _DOT11_SSID {
+ ULONG uSSIDLength;
+ UCHAR ucSSID[DOT11_SSID_MAX_LENGTH];
+} DOT11_SSID, *PDOT11_SSID;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*_INC_WLANTYPES*/
diff --git a/mingw-w64-headers/include/wmcontainer.h b/mingw-w64-headers/include/wmcontainer.h
new file mode 100644
index 0000000..af16bc4
--- /dev/null
+++ b/mingw-w64-headers/include/wmcontainer.h
@@ -0,0 +1,594 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_WMCONTAINER
+#define _INC_WMCONTAINER
+#include <propsys.h>
+#include <mfidl.h>
+
+#if (_WIN32_WINNT >= 0x0600)
+
+#ifdef __IMFASFSplitter_FWD_DEFINED__
+#define __IMFASFSplitter_FWD_DEFINED__
+typedef struct IMFASFSplitter IMFASFSplitter;
+#endif
+
+typedef struct IMFASFContentInfo IMFASFContentInfo;
+typedef struct IMFASFProfile IMFASFProfile;
+typedef struct IMFActivate IMFActivate;
+
+#ifndef __MFTIME_DEFINED__
+#define __MFTIME_DEFINED__
+__MINGW_EXTENSION typedef LONGLONG MFTIME;
+#endif
+
+typedef enum ASF_SELECTION_STATUS {
+ ASF_STATUS_NOTSELECTED = 0,
+ ASF_STATUS_CLEANPOINTSONLY = 1,
+ ASF_STATUS_ALLDATAUNITS = 2
+} ASF_SELECTION_STATUS;
+
+typedef enum ASF_STATUSFLAGS {
+ ASF_STATUSFLAGS_INCOMPLETE = 0x00000001,
+ ASF_STATUSFLAGS_NONFATAL_ERROR = 0x00000002
+} ASF_STATUSFLAGS;
+
+typedef enum MFASF_MULTIPLEXERFLAGS {
+ MFASF_MULTIPLEXER_AUTOADJUST_BITRATE = 0x00000001
+} MFASF_MULTIPLEXERFLAGS;
+
+typedef enum MFASF_SPLITTERFLAGS {
+ MFASF_SPLITTER_REVERSE = 0x00000001,
+ MFASF_SPLITTER_WMDRM = 0x00000002
+} MFASF_SPLITTERFLAGS;
+
+typedef enum MFASF_STREAMSELECTORFLAGS {
+ MFASF_STREAMSELECTOR_DISABLE_THINNING = 0x00000001,
+ MFASF_STREAMSELECTOR_USE_AVERAGE_BITRATE = 0x00000002
+} MFASF_STREAMSELECTORFLAGS;
+
+typedef struct ASF_MUX_STATISTICS {
+ DWORD cFramesWritten;
+ DWORD cFramesDropped;
+} ASF_MUX_STATISTICS;
+
+typedef struct _ASF_INDEX_IDENTIFIER {
+ GUID guidIndexType;
+ WORD wStreamNumber;
+} ASF_INDEX_IDENTIFIER;
+
+typedef struct _ASF_INDEX_DESCRIPTOR {
+ ASF_INDEX_IDENTIFIER Identifier;
+ WORD cPerEntryBytes;
+ WCHAR szDescription[32];
+ DWORD dwInterval;
+} ASF_INDEX_DESCRIPTOR;
+
+#undef INTERFACE
+#define INTERFACE IMFASFMutualExclusion
+DECLARE_INTERFACE_(IMFASFMutualExclusion,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFASFMutualExclusion methods */
+ STDMETHOD_(HRESULT,AddRecord)(THIS_ DWORD *pdwRecordNumber) PURE;
+ STDMETHOD_(HRESULT,AddStreamForRecord)(THIS_ DWORD dwRecordNumber,WORD wStreamNumber) PURE;
+ STDMETHOD_(HRESULT,Clone)(THIS_ IMFASFMutualExclusion **ppIMutex) PURE;
+ STDMETHOD_(HRESULT,GetRecordCount)(THIS_ DWORD *pdwRecordCount) PURE;
+ STDMETHOD_(HRESULT,GetStreamsForRecord)(THIS_ DWORD dwRecordNumber,WORD *pwStreamNumArray,DWORD *pcStreams) PURE;
+ STDMETHOD_(HRESULT,GetType)(THIS_ GUID *pguidType) PURE;
+ STDMETHOD_(HRESULT,RemoveRecord)(THIS_ DWORD dwRecordNumber) PURE;
+ STDMETHOD_(HRESULT,RemoveStreamFromRecord)(THIS_ DWORD dwRecordNumber,WORD wStreamNumber) PURE;
+ STDMETHOD_(HRESULT,SetType)(THIS_ REFGUID guidType) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IMFASFMutualExclusion_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFASFMutualExclusion_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFASFMutualExclusion_Release(This) (This)->pVtbl->Release(This)
+#define IMFASFMutualExclusion_AddRecord(This,pdwRecordNumber) (This)->lpVtbl->AddRecord(This,pdwRecordNumber)
+#define IMFASFMutualExclusion_AddStreamForRecord(This,dwRecordNumber,wStreamNumber) (This)->lpVtbl->AddStreamForRecord(This,dwRecordNumber,wStreamNumber)
+#define IMFASFMutualExclusion_Clone(This,ppIMutex) (This)->lpVtbl->Clone(This,ppIMutex)
+#define IMFASFMutualExclusion_GetRecordCount(This,pdwRecordCount) (This)->lpVtbl->GetRecordCount(This,pdwRecordCount)
+#define IMFASFMutualExclusion_GetStreamsForRecord(This,dwRecordNumber,pwStreamNumArray,pcStreams) (This)->lpVtbl->GetStreamsForRecord(This,dwRecordNumber,pwStreamNumArray,pcStreams)
+#define IMFASFMutualExclusion_GetType(This,pguidType) (This)->lpVtbl->GetType(This,pguidType)
+#define IMFASFMutualExclusion_RemoveRecord(This,dwRecordNumber) (This)->lpVtbl->RemoveRecord(This,dwRecordNumber)
+#define IMFASFMutualExclusion_RemoveStreamFromRecord(This,dwRecordNumber,wStreamNumber) (This)->lpVtbl->RemoveStreamFromRecord(This,dwRecordNumber,wStreamNumber)
+#define IMFASFMutualExclusion_SetType(This,guidType) (This)->lpVtbl->SetType(This,guidType)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IMFASFStreamPrioritization
+DECLARE_INTERFACE_(IMFASFStreamPrioritization,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFASFStreamPrioritization methods */
+ STDMETHOD_(HRESULT,AddStream)(THIS_ WORD wStreamNumber,WORD wStreamFlags) PURE;
+ STDMETHOD_(HRESULT,Clone)(THIS_ IMFASFStreamPrioritization **ppIStreamPrioritization) PURE;
+ STDMETHOD_(HRESULT,GetStream)(THIS_ DWORD dwStreamIndex,WORD *pwStreamNumber,WORD *pwStreamFlags) PURE;
+ STDMETHOD_(HRESULT,GetStreamCount)(THIS_ DWORD dwStreamIndex) PURE;
+ STDMETHOD_(HRESULT,RemoveStream)(THIS_ DWORD dwStreamIndex) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IMFASFStreamPrioritization_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFASFStreamPrioritization_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFASFStreamPrioritization_Release(This) (This)->pVtbl->Release(This)
+#define IMFASFStreamPrioritization_AddStream(This,wStreamNumber,wStreamFlags) (This)->lpVtbl->AddStream(This,wStreamNumber,wStreamFlags)
+#define IMFASFStreamPrioritization_Clone(This,ppIStreamPrioritization) (This)->lpVtbl->Clone(This,ppIStreamPrioritization)
+#define IMFASFStreamPrioritization_GetStream(This,dwStreamIndex,pwStreamNumber,pwStreamFlags) (This)->lpVtbl->GetStream(This,dwStreamIndex,pwStreamNumber,pwStreamFlags)
+#define IMFASFStreamPrioritization_GetStreamCount(This,dwStreamIndex) (This)->lpVtbl->GetStreamCount(This,dwStreamIndex)
+#define IMFASFStreamPrioritization_RemoveStream(This,dwStreamIndex) (This)->lpVtbl->RemoveStream(This,dwStreamIndex)
+#endif /*COBJMACROS*/
+
+
+#undef INTERFACE
+#define INTERFACE IMFASFSplitter
+DECLARE_INTERFACE_(IMFASFSplitter,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFASFSplitter methods */
+ STDMETHOD_(HRESULT,Flush)(THIS) PURE;
+ STDMETHOD_(HRESULT,GetFlags)(THIS_ DWORD *pdwFlags) PURE;
+ STDMETHOD_(HRESULT,GetLastSendTime)(THIS_ DWORD *pdwLastSendTime) PURE;
+ STDMETHOD_(HRESULT,GetNextSample)(THIS_ DWORD *pdwStatusFlags,WORD *pwStreamNumber,IMFSample **ppISample) PURE;
+ STDMETHOD_(HRESULT,GetSelectedStreams)(THIS_ WORD *pwStreamNumbers,WORD *pwNumStreams) PURE;
+ STDMETHOD_(HRESULT,Initialize)(THIS_ IMFASFContentInfo *pIContentInfo) PURE;
+ STDMETHOD_(HRESULT,ParseData)(THIS_ IMFMediaBuffer *pIBuffer,DWORD cbBufferOffset,DWORD cbLength) PURE;
+ STDMETHOD_(HRESULT,SelectStreams)(THIS_ WORD *pwStreamNumbers,WORD wNumStreams) PURE;
+ STDMETHOD_(HRESULT,SetFlags)(THIS_ DWORD dwFlags) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IMFASFSplitter_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFASFSplitter_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFASFSplitter_Release(This) (This)->pVtbl->Release(This)
+#define IMFASFSplitter_Flush() (This)->lpVtbl->Flush(This)
+#define IMFASFSplitter_GetFlags(This,pdwFlags) (This)->lpVtbl->GetFlags(This,pdwFlags)
+#define IMFASFSplitter_GetLastSendTime(This,pdwLastSendTime) (This)->lpVtbl->GetLastSendTime(This,pdwLastSendTime)
+#define IMFASFSplitter_GetNextSample(This,pdwStatusFlags,pwStreamNumber,ppISample) (This)->lpVtbl->GetNextSample(This,pdwStatusFlags,pwStreamNumber,ppISample)
+#define IMFASFSplitter_GetSelectedStreams(This,pwStreamNumbers,pwNumStreams) (This)->lpVtbl->GetSelectedStreams(This,pwStreamNumbers,pwNumStreams)
+#define IMFASFSplitter_Initialize(This,pIContentInfo) (This)->lpVtbl->Initialize(This,pIContentInfo)
+#define IMFASFSplitter_ParseData(This,pIBuffer,cbBufferOffset,cbLength) (This)->lpVtbl->ParseData(This,pIBuffer,cbBufferOffset,cbLength)
+#define IMFASFSplitter_SelectStreams(This,pwStreamNumbers,wNumStreams) (This)->lpVtbl->SelectStreams(This,pwStreamNumbers,wNumStreams)
+#define IMFASFSplitter_SetFlags(This,dwFlags) (This)->lpVtbl->SetFlags(This,dwFlags)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IMFASFContentInfo
+DECLARE_INTERFACE_(IMFASFContentInfo,IMFAttributes)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFAttributes methods */
+ STDMETHOD_(HRESULT,Compare)(THIS_ IMFAttributes *pTheirs,MF_ATTRIBUTES_MATCH_TYPE MatchType,BOOL *pbResult) PURE;
+ STDMETHOD_(HRESULT,CompareItem)(THIS_ REFGUID guidKey,REFPROPVARIANT Value,BOOL *pbResult) PURE;
+ STDMETHOD_(HRESULT,CopyAllItems)(THIS_ IMFAttributes *pDest) PURE;
+ STDMETHOD_(HRESULT,DeleteAllItems)(THIS) PURE;
+ STDMETHOD_(HRESULT,DeleteItem)(THIS_ REFGUID guidKey) PURE;
+ STDMETHOD_(HRESULT,GetAllocatedBlob)(THIS_ REFGUID guidKey,UINT8 **ppBuf,UINT32 *pcbSize) PURE;
+ STDMETHOD_(HRESULT,GetAllocatedString)(THIS_ REFGUID guidKey,LPWSTR *ppwszValue,UINT32 *pcchLength) PURE;
+ STDMETHOD_(HRESULT,GetBlob)(THIS_ REFGUID guidKey,UINT8 *pBuf,UINT32 cbBufSize,UINT32 *pcbBlobSize) PURE;
+ STDMETHOD_(HRESULT,GetBlobSize)(THIS_ REFGUID guidKey,UINT32 *pcbBlobSize) PURE;
+ STDMETHOD_(HRESULT,GetCount)(THIS_ UINT32 *pcItems) PURE;
+ STDMETHOD_(HRESULT,GetDouble)(THIS_ REFGUID guidKey,double *pfValue) PURE;
+ STDMETHOD_(HRESULT,GetGUID)(THIS_ REFGUID guidKey,GUID *pguidValue) PURE;
+ STDMETHOD_(HRESULT,GetItem)(THIS_ REFGUID guidKey,PROPVARIANT *pValue) PURE;
+ STDMETHOD_(HRESULT,GetItemByIndex)(THIS_ UINT32 unIndex,GUID *pguidKey,PROPVARIANT *pValue) PURE;
+ STDMETHOD_(HRESULT,GetItemType)(THIS_ REFGUID guidKey,MF_ATTRIBUTE_TYPE *pType) PURE;
+ STDMETHOD_(HRESULT,GetString)(THIS_ REFGUID guidKey,LPWSTR pwszValue,UINT32 cchBufSize,UINT32 *pcchLength) PURE;
+ STDMETHOD_(HRESULT,GetStringLength)(THIS_ REFGUID guidKey,UINT32 *pcchLength) PURE;
+ STDMETHOD_(HRESULT,GetUINT32)(THIS_ REFGUID guidKey,UINT32 *punValue) PURE;
+ STDMETHOD_(HRESULT,GetUINT64)(THIS_ REFGUID guidKey,UINT64 *punValue) PURE;
+ STDMETHOD_(HRESULT,GetUnknown)(THIS_ REFGUID guidKey,REFIID riid,LPVOID *ppv) PURE;
+ STDMETHOD_(HRESULT,LockStore)(THIS) PURE;
+ STDMETHOD_(HRESULT,SetBlob)(THIS_ REFGUID guidKey,const UINT8 *pBuf,UINT32 cbBufSize) PURE;
+ STDMETHOD_(HRESULT,SetDouble)(THIS_ REFGUID guidKey,double fValue) PURE;
+ STDMETHOD_(HRESULT,SetGUID)(THIS_ REFGUID guidKey,REFGUID guidValue) PURE;
+ STDMETHOD_(HRESULT,SetItem)(THIS_ REFGUID guidKey,REFPROPVARIANT Value) PURE;
+ STDMETHOD_(HRESULT,SetString)(THIS_ REFGUID guidKey,LPCWSTR wszValue) PURE;
+ STDMETHOD_(HRESULT,SetUINT32)(THIS_ REFGUID guidKey,UINT32 unValue) PURE;
+ STDMETHOD_(HRESULT,SetUINT64)(THIS_ REFGUID guidKey,UINT64 unValue) PURE;
+ STDMETHOD_(HRESULT,SetUnknown)(THIS_ REFGUID guidKey,IUnknown *pUnknown) PURE;
+ STDMETHOD_(HRESULT,UnlockStore)(THIS) PURE;
+
+ /* IMFASFContentInfo methods */
+ STDMETHOD_(HRESULT,GenerateHeader)(THIS_ IMFMediaBuffer *pIHeader,DWORD *pcbHeader) PURE;
+ STDMETHOD_(HRESULT,GeneratePresentationDescriptor)(THIS_ IMFPresentationDescriptor **ppIPresentationDescriptor) PURE;
+ STDMETHOD_(HRESULT,GetEncodingConfigurationPropertyStore)(THIS_ WORD wStreamNumber,IPropertyStore **ppIStore) PURE;
+ STDMETHOD_(HRESULT,GetHeaderSize)(THIS_ IMFMediaBuffer *pIStartOfContent,QWORD *cbHeaderSize) PURE;
+ STDMETHOD_(HRESULT,GetProfile)(THIS_ IMFASFProfile **ppIProfile) PURE;
+ STDMETHOD_(HRESULT,ParseHeader)(THIS_ IMFMediaBuffer *pIHeaderBuffer,QWORD cbOffsetWithinHeader) PURE;
+ STDMETHOD_(HRESULT,SetProfile)(THIS_ IMFASFProfile *pIProfile) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IMFASFContentInfo_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFASFContentInfo_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFASFContentInfo_Release(This) (This)->pVtbl->Release(This)
+#define IMFASFContentInfo_Compare(This,pTheirs,MatchType,pbResult) (This)->lpVtbl->Compare(This,pTheirs,MatchType,pbResult)
+#define IMFASFContentInfo_CompareItem(This,guidKey,Value,pbResult) (This)->lpVtbl->CompareItem(This,guidKey,Value,pbResult)
+#define IMFASFContentInfo_CopyAllItems(This,pDest) (This)->lpVtbl->CopyAllItems(This,pDest)
+#define IMFASFContentInfo_DeleteAllItems() (This)->lpVtbl->DeleteAllItems(This)
+#define IMFASFContentInfo_DeleteItem(This,guidKey) (This)->lpVtbl->DeleteItem(This,guidKey)
+#define IMFASFContentInfo_GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) (This)->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize)
+#define IMFASFContentInfo_GetAllocatedString(This,guidKey,ppwszValue,pcchLength) (This)->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength)
+#define IMFASFContentInfo_GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) (This)->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize)
+#define IMFASFContentInfo_GetBlobSize(This,guidKey,pcbBlobSize) (This)->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize)
+#define IMFASFContentInfo_GetCount(This,pcItems) (This)->lpVtbl->GetCount(This,pcItems)
+#define IMFASFContentInfo_GetDouble(This,guidKey,pfValue) (This)->lpVtbl->GetDouble(This,guidKey,pfValue)
+#define IMFASFContentInfo_GetGUID(This,guidKey,pguidValue) (This)->lpVtbl->GetGUID(This,guidKey,pguidValue)
+#define IMFASFContentInfo_GetItem(This,guidKey,pValue) (This)->lpVtbl->GetItem(This,guidKey,pValue)
+#define IMFASFContentInfo_GetItemByIndex(This,unIndex,pguidKey,pValue) (This)->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue)
+#define IMFASFContentInfo_GetItemType(This,guidKey,pType) (This)->lpVtbl->GetItemType(This,guidKey,pType)
+#define IMFASFContentInfo_GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) (This)->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength)
+#define IMFASFContentInfo_GetStringLength(This,guidKey,pcchLength) (This)->lpVtbl->GetStringLength(This,guidKey,pcchLength)
+#define IMFASFContentInfo_GetUINT32(This,guidKey,punValue) (This)->lpVtbl->GetUINT32(This,guidKey,punValue)
+#define IMFASFContentInfo_GetUINT64(This,guidKey,punValue) (This)->lpVtbl->GetUINT64(This,guidKey,punValue)
+#define IMFASFContentInfo_GetUnknown(This,guidKey,riid,ppv) (This)->lpVtbl->GetUnknown(This,guidKey,riid,ppv)
+#define IMFASFContentInfo_LockStore() (This)->lpVtbl->LockStore(This)
+#define IMFASFContentInfo_SetBlob(This,guidKey,pBuf,cbBufSize) (This)->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize)
+#define IMFASFContentInfo_SetDouble(This,guidKey,fValue) (This)->lpVtbl->SetDouble(This,guidKey,fValue)
+#define IMFASFContentInfo_SetGUID(This,guidKey,guidValue) (This)->lpVtbl->SetGUID(This,guidKey,guidValue)
+#define IMFASFContentInfo_SetItem(This,guidKey,Value) (This)->lpVtbl->SetItem(This,guidKey,Value)
+#define IMFASFContentInfo_SetString(This,guidKey,wszValue) (This)->lpVtbl->SetString(This,guidKey,wszValue)
+#define IMFASFContentInfo_SetUINT32(This,guidKey,unValue) (This)->lpVtbl->SetUINT32(This,guidKey,unValue)
+#define IMFASFContentInfo_SetUINT64(This,guidKey,unValue) (This)->lpVtbl->SetUINT64(This,guidKey,unValue)
+#define IMFASFContentInfo_SetUnknown(This,guidKey,pUnknown) (This)->lpVtbl->SetUnknown(This,guidKey,pUnknown)
+#define IMFASFContentInfo_UnlockStore() (This)->lpVtbl->UnlockStore(This)
+#define IMFASFContentInfo_GenerateHeader(This,pIHeader,pcbHeader) (This)->lpVtbl->GenerateHeader(This,pIHeader,pcbHeader)
+#define IMFASFContentInfo_GeneratePresentationDescriptor(This,ppIPresentationDescriptor) (This)->lpVtbl->GeneratePresentationDescriptor(This,ppIPresentationDescriptor)
+#define IMFASFContentInfo_GetEncodingConfigurationPropertyStore(This,wStreamNumber,ppIStore) (This)->lpVtbl->GetEncodingConfigurationPropertyStore(This,wStreamNumber,ppIStore)
+#define IMFASFContentInfo_GetHeaderSize(This,pIStartOfContent,cbHeaderSize) (This)->lpVtbl->GetHeaderSize(This,pIStartOfContent,cbHeaderSize)
+#define IMFASFContentInfo_GetProfile(This,ppIProfile) (This)->lpVtbl->GetProfile(This,ppIProfile)
+#define IMFASFContentInfo_ParseHeader(This,pIHeaderBuffer,cbOffsetWithinHeader) (This)->lpVtbl->ParseHeader(This,pIHeaderBuffer,cbOffsetWithinHeader)
+#define IMFASFContentInfo_SetProfile(This,pIProfile) (This)->lpVtbl->SetProfile(This,pIProfile)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IMFASFStreamConfig
+DECLARE_INTERFACE_(IMFASFStreamConfig,IMFAttributes)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFAttributes methods */
+ STDMETHOD_(HRESULT,Compare)(THIS_ IMFAttributes *pTheirs,MF_ATTRIBUTES_MATCH_TYPE MatchType,BOOL *pbResult) PURE;
+ STDMETHOD_(HRESULT,CompareItem)(THIS_ REFGUID guidKey,REFPROPVARIANT Value,BOOL *pbResult) PURE;
+ STDMETHOD_(HRESULT,CopyAllItems)(THIS_ IMFAttributes *pDest) PURE;
+ STDMETHOD_(HRESULT,DeleteAllItems)(THIS) PURE;
+ STDMETHOD_(HRESULT,DeleteItem)(THIS_ REFGUID guidKey) PURE;
+ STDMETHOD_(HRESULT,GetAllocatedBlob)(THIS_ REFGUID guidKey,UINT8 **ppBuf,UINT32 *pcbSize) PURE;
+ STDMETHOD_(HRESULT,GetAllocatedString)(THIS_ REFGUID guidKey,LPWSTR *ppwszValue,UINT32 *pcchLength) PURE;
+ STDMETHOD_(HRESULT,GetBlob)(THIS_ REFGUID guidKey,UINT8 *pBuf,UINT32 cbBufSize,UINT32 *pcbBlobSize) PURE;
+ STDMETHOD_(HRESULT,GetBlobSize)(THIS_ REFGUID guidKey,UINT32 *pcbBlobSize) PURE;
+ STDMETHOD_(HRESULT,GetCount)(THIS_ UINT32 *pcItems) PURE;
+ STDMETHOD_(HRESULT,GetDouble)(THIS_ REFGUID guidKey,double *pfValue) PURE;
+ STDMETHOD_(HRESULT,GetGUID)(THIS_ REFGUID guidKey,GUID *pguidValue) PURE;
+ STDMETHOD_(HRESULT,GetItem)(THIS_ REFGUID guidKey,PROPVARIANT *pValue) PURE;
+ STDMETHOD_(HRESULT,GetItemByIndex)(THIS_ UINT32 unIndex,GUID *pguidKey,PROPVARIANT *pValue) PURE;
+ STDMETHOD_(HRESULT,GetItemType)(THIS_ REFGUID guidKey,MF_ATTRIBUTE_TYPE *pType) PURE;
+ STDMETHOD_(HRESULT,GetString)(THIS_ REFGUID guidKey,LPWSTR pwszValue,UINT32 cchBufSize,UINT32 *pcchLength) PURE;
+ STDMETHOD_(HRESULT,GetStringLength)(THIS_ REFGUID guidKey,UINT32 *pcchLength) PURE;
+ STDMETHOD_(HRESULT,GetUINT32)(THIS_ REFGUID guidKey,UINT32 *punValue) PURE;
+ STDMETHOD_(HRESULT,GetUINT64)(THIS_ REFGUID guidKey,UINT64 *punValue) PURE;
+ STDMETHOD_(HRESULT,GetUnknown)(THIS_ REFGUID guidKey,REFIID riid,LPVOID *ppv) PURE;
+ STDMETHOD_(HRESULT,LockStore)(THIS) PURE;
+ STDMETHOD_(HRESULT,SetBlob)(THIS_ REFGUID guidKey,const UINT8 *pBuf,UINT32 cbBufSize) PURE;
+ STDMETHOD_(HRESULT,SetDouble)(THIS_ REFGUID guidKey,double fValue) PURE;
+ STDMETHOD_(HRESULT,SetGUID)(THIS_ REFGUID guidKey,REFGUID guidValue) PURE;
+ STDMETHOD_(HRESULT,SetItem)(THIS_ REFGUID guidKey,REFPROPVARIANT Value) PURE;
+ STDMETHOD_(HRESULT,SetString)(THIS_ REFGUID guidKey,LPCWSTR wszValue) PURE;
+ STDMETHOD_(HRESULT,SetUINT32)(THIS_ REFGUID guidKey,UINT32 unValue) PURE;
+ STDMETHOD_(HRESULT,SetUINT64)(THIS_ REFGUID guidKey,UINT64 unValue) PURE;
+ STDMETHOD_(HRESULT,SetUnknown)(THIS_ REFGUID guidKey,IUnknown *pUnknown) PURE;
+ STDMETHOD_(HRESULT,UnlockStore)(THIS) PURE;
+
+ /* IMFASFStreamConfig methods */
+ STDMETHOD_(HRESULT,AddPayloadExtension)(THIS_ GUID guidExtensionSystemID,WORD cbExtensionDataSize,BYTE *pbExtensionSystemInfo,DWORD cbExtensionSystemInfo) PURE;
+ STDMETHOD_(HRESULT,Clone)(THIS_ IMFASFStreamConfig **ppIStreamConfig) PURE;
+ STDMETHOD_(HRESULT,GetMediaType)(THIS_ IMFMediaType **ppIMediaType) PURE;
+ STDMETHOD_(HRESULT,GetPayloadExtension)(THIS_ WORD wPayloadExtensionNumber,GUID *pguidExtensionSystemID,WORD *pcbExtensionDataSize,BYTE *pbExtensionSystemInfo,DWORD *pcbExtensionSystemInfo) PURE;
+ STDMETHOD_(HRESULT,GetPayloadExtensionCount)(THIS_ WORD *pcPayloadExtensions) PURE;
+ STDMETHOD_(WORD,GetStreamNumber)(THIS) PURE;
+ STDMETHOD_(HRESULT,GetStreamType)(THIS_ GUID *pguidStreamType) PURE;
+ STDMETHOD_(HRESULT,RemoveAllPayloadExtensions)(THIS) PURE;
+ STDMETHOD_(HRESULT,SetMediaType)(THIS_ IMFMediaType *pIMediaType) PURE;
+ STDMETHOD_(HRESULT,SetStreamNumber)(THIS_ WORD wStreamNum) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IMFASFStreamConfig_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFASFStreamConfig_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFASFStreamConfig_Release(This) (This)->pVtbl->Release(This)
+#define IMFASFStreamConfig_Compare(This,pTheirs,MatchType,pbResult) (This)->lpVtbl->Compare(This,pTheirs,MatchType,pbResult)
+#define IMFASFStreamConfig_CompareItem(This,guidKey,Value,pbResult) (This)->lpVtbl->CompareItem(This,guidKey,Value,pbResult)
+#define IMFASFStreamConfig_CopyAllItems(This,pDest) (This)->lpVtbl->CopyAllItems(This,pDest)
+#define IMFASFStreamConfig_DeleteAllItems() (This)->lpVtbl->DeleteAllItems(This)
+#define IMFASFStreamConfig_DeleteItem(This,guidKey) (This)->lpVtbl->DeleteItem(This,guidKey)
+#define IMFASFStreamConfig_GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) (This)->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize)
+#define IMFASFStreamConfig_GetAllocatedString(This,guidKey,ppwszValue,pcchLength) (This)->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength)
+#define IMFASFStreamConfig_GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) (This)->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize)
+#define IMFASFStreamConfig_GetBlobSize(This,guidKey,pcbBlobSize) (This)->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize)
+#define IMFASFStreamConfig_GetCount(This,pcItems) (This)->lpVtbl->GetCount(This,pcItems)
+#define IMFASFStreamConfig_GetDouble(This,guidKey,pfValue) (This)->lpVtbl->GetDouble(This,guidKey,pfValue)
+#define IMFASFStreamConfig_GetGUID(This,guidKey,pguidValue) (This)->lpVtbl->GetGUID(This,guidKey,pguidValue)
+#define IMFASFStreamConfig_GetItem(This,guidKey,pValue) (This)->lpVtbl->GetItem(This,guidKey,pValue)
+#define IMFASFStreamConfig_GetItemByIndex(This,unIndex,pguidKey,pValue) (This)->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue)
+#define IMFASFStreamConfig_GetItemType(This,guidKey,pType) (This)->lpVtbl->GetItemType(This,guidKey,pType)
+#define IMFASFStreamConfig_GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) (This)->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength)
+#define IMFASFStreamConfig_GetStringLength(This,guidKey,pcchLength) (This)->lpVtbl->GetStringLength(This,guidKey,pcchLength)
+#define IMFASFStreamConfig_GetUINT32(This,guidKey,punValue) (This)->lpVtbl->GetUINT32(This,guidKey,punValue)
+#define IMFASFStreamConfig_GetUINT64(This,guidKey,punValue) (This)->lpVtbl->GetUINT64(This,guidKey,punValue)
+#define IMFASFStreamConfig_GetUnknown(This,guidKey,riid,ppv) (This)->lpVtbl->GetUnknown(This,guidKey,riid,ppv)
+#define IMFASFStreamConfig_LockStore() (This)->lpVtbl->LockStore(This)
+#define IMFASFStreamConfig_SetBlob(This,guidKey,pBuf,cbBufSize) (This)->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize)
+#define IMFASFStreamConfig_SetDouble(This,guidKey,fValue) (This)->lpVtbl->SetDouble(This,guidKey,fValue)
+#define IMFASFStreamConfig_SetGUID(This,guidKey,guidValue) (This)->lpVtbl->SetGUID(This,guidKey,guidValue)
+#define IMFASFStreamConfig_SetItem(This,guidKey,Value) (This)->lpVtbl->SetItem(This,guidKey,Value)
+#define IMFASFStreamConfig_SetString(This,guidKey,wszValue) (This)->lpVtbl->SetString(This,guidKey,wszValue)
+#define IMFASFStreamConfig_SetUINT32(This,guidKey,unValue) (This)->lpVtbl->SetUINT32(This,guidKey,unValue)
+#define IMFASFStreamConfig_SetUINT64(This,guidKey,unValue) (This)->lpVtbl->SetUINT64(This,guidKey,unValue)
+#define IMFASFStreamConfig_SetUnknown(This,guidKey,pUnknown) (This)->lpVtbl->SetUnknown(This,guidKey,pUnknown)
+#define IMFASFStreamConfig_UnlockStore() (This)->lpVtbl->UnlockStore(This)
+#define IMFASFStreamConfig_AddPayloadExtension(This,guidExtensionSystemID,cbExtensionDataSize,pbExtensionSystemInfo,cbExtensionSystemInfo) (This)->lpVtbl->AddPayloadExtension(This,guidExtensionSystemID,cbExtensionDataSize,pbExtensionSystemInfo,cbExtensionSystemInfo)
+#define IMFASFStreamConfig_Clone(This,ppIStreamConfig) (This)->lpVtbl->Clone(This,ppIStreamConfig)
+#define IMFASFStreamConfig_GetMediaType(This,ppIMediaType) (This)->lpVtbl->GetMediaType(This,ppIMediaType)
+#define IMFASFStreamConfig_GetPayloadExtension(This,wPayloadExtensionNumber,pguidExtensionSystemID,pcbExtensionDataSize,pbExtensionSystemInfo,pcbExtensionSystemInfo) (This)->lpVtbl->GetPayloadExtension(This,wPayloadExtensionNumber,pguidExtensionSystemID,pcbExtensionDataSize,pbExtensionSystemInfo,pcbExtensionSystemInfo)
+#define IMFASFStreamConfig_GetPayloadExtensionCount(This,pcPayloadExtensions) (This)->lpVtbl->GetPayloadExtensionCount(This,pcPayloadExtensions)
+#define IMFASFStreamConfig_GetStreamNumber() (This)->lpVtbl->GetStreamNumber(This)
+#define IMFASFStreamConfig_GetStreamType(This,pguidStreamType) (This)->lpVtbl->GetStreamType(This,pguidStreamType)
+#define IMFASFStreamConfig_RemoveAllPayloadExtensions() (This)->lpVtbl->RemoveAllPayloadExtensions(This)
+#define IMFASFStreamConfig_SetMediaType(This,pIMediaType) (This)->lpVtbl->SetMediaType(This,pIMediaType)
+#define IMFASFStreamConfig_SetStreamNumber(This,wStreamNum) (This)->lpVtbl->SetStreamNumber(This,wStreamNum)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IMFASFProfile
+DECLARE_INTERFACE_(IMFASFProfile,IMFAttributes)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFAttributes methods */
+ STDMETHOD_(HRESULT,Compare)(THIS_ IMFAttributes *pTheirs,MF_ATTRIBUTES_MATCH_TYPE MatchType,BOOL *pbResult) PURE;
+ STDMETHOD_(HRESULT,CompareItem)(THIS_ REFGUID guidKey,REFPROPVARIANT Value,BOOL *pbResult) PURE;
+ STDMETHOD_(HRESULT,CopyAllItems)(THIS_ IMFAttributes *pDest) PURE;
+ STDMETHOD_(HRESULT,DeleteAllItems)(THIS) PURE;
+ STDMETHOD_(HRESULT,DeleteItem)(THIS_ REFGUID guidKey) PURE;
+ STDMETHOD_(HRESULT,GetAllocatedBlob)(THIS_ REFGUID guidKey,UINT8 **ppBuf,UINT32 *pcbSize) PURE;
+ STDMETHOD_(HRESULT,GetAllocatedString)(THIS_ REFGUID guidKey,LPWSTR *ppwszValue,UINT32 *pcchLength) PURE;
+ STDMETHOD_(HRESULT,GetBlob)(THIS_ REFGUID guidKey,UINT8 *pBuf,UINT32 cbBufSize,UINT32 *pcbBlobSize) PURE;
+ STDMETHOD_(HRESULT,GetBlobSize)(THIS_ REFGUID guidKey,UINT32 *pcbBlobSize) PURE;
+ STDMETHOD_(HRESULT,GetCount)(THIS_ UINT32 *pcItems) PURE;
+ STDMETHOD_(HRESULT,GetDouble)(THIS_ REFGUID guidKey,double *pfValue) PURE;
+ STDMETHOD_(HRESULT,GetGUID)(THIS_ REFGUID guidKey,GUID *pguidValue) PURE;
+ STDMETHOD_(HRESULT,GetItem)(THIS_ REFGUID guidKey,PROPVARIANT *pValue) PURE;
+ STDMETHOD_(HRESULT,GetItemByIndex)(THIS_ UINT32 unIndex,GUID *pguidKey,PROPVARIANT *pValue) PURE;
+ STDMETHOD_(HRESULT,GetItemType)(THIS_ REFGUID guidKey,MF_ATTRIBUTE_TYPE *pType) PURE;
+ STDMETHOD_(HRESULT,GetString)(THIS_ REFGUID guidKey,LPWSTR pwszValue,UINT32 cchBufSize,UINT32 *pcchLength) PURE;
+ STDMETHOD_(HRESULT,GetStringLength)(THIS_ REFGUID guidKey,UINT32 *pcchLength) PURE;
+ STDMETHOD_(HRESULT,GetUINT32)(THIS_ REFGUID guidKey,UINT32 *punValue) PURE;
+ STDMETHOD_(HRESULT,GetUINT64)(THIS_ REFGUID guidKey,UINT64 *punValue) PURE;
+ STDMETHOD_(HRESULT,GetUnknown)(THIS_ REFGUID guidKey,REFIID riid,LPVOID *ppv) PURE;
+ STDMETHOD_(HRESULT,LockStore)(THIS) PURE;
+ STDMETHOD_(HRESULT,SetBlob)(THIS_ REFGUID guidKey,const UINT8 *pBuf,UINT32 cbBufSize) PURE;
+ STDMETHOD_(HRESULT,SetDouble)(THIS_ REFGUID guidKey,double fValue) PURE;
+ STDMETHOD_(HRESULT,SetGUID)(THIS_ REFGUID guidKey,REFGUID guidValue) PURE;
+ STDMETHOD_(HRESULT,SetItem)(THIS_ REFGUID guidKey,REFPROPVARIANT Value) PURE;
+ STDMETHOD_(HRESULT,SetString)(THIS_ REFGUID guidKey,LPCWSTR wszValue) PURE;
+ STDMETHOD_(HRESULT,SetUINT32)(THIS_ REFGUID guidKey,UINT32 unValue) PURE;
+ STDMETHOD_(HRESULT,SetUINT64)(THIS_ REFGUID guidKey,UINT64 unValue) PURE;
+ STDMETHOD_(HRESULT,SetUnknown)(THIS_ REFGUID guidKey,IUnknown *pUnknown) PURE;
+ STDMETHOD_(HRESULT,UnlockStore)(THIS) PURE;
+
+ /* IMFASFProfile methods */
+ STDMETHOD_(HRESULT,AddMutualExclusion)(THIS_ IMFASFMutualExclusion *pIMutex) PURE;
+ STDMETHOD_(HRESULT,AddStreamPrioritization)(THIS_ IMFASFStreamPrioritization *pIStreamPrioritization) PURE;
+ STDMETHOD_(HRESULT,Clone)(THIS_ IMFASFProfile **ppIProfile) PURE;
+ STDMETHOD_(HRESULT,CreateMutualExclusion)(THIS_ IMFASFMutualExclusion **ppIMutex) PURE;
+ STDMETHOD_(HRESULT,CreateStream)(THIS_ IMFMediaType *pIMediaType,IMFASFStreamConfig **ppIStream) PURE;
+ STDMETHOD_(HRESULT,CreateStreamPrioritization)(THIS_ IMFASFStreamPrioritization **ppIStreamPrioritization) PURE;
+ STDMETHOD_(HRESULT,GetMutualExclusion)(THIS_ DWORD dwMutexIndex,IMFASFMutualExclusion **ppIMutex) PURE;
+ STDMETHOD_(HRESULT,GetMutualExclusionCount)(THIS_ DWORD *pcMutexs) PURE;
+ STDMETHOD_(HRESULT,GetStream)(THIS_ DWORD dwStreamIndex,WORD *pwStreamNumber,IMFASFStreamConfig **ppIStream) PURE;
+ STDMETHOD_(HRESULT,GetStreamByNumber)(THIS_ WORD wStreamNumber,IMFASFStreamConfig **ppIStream) PURE;
+ STDMETHOD_(HRESULT,GetStreamCount)(THIS_ DWORD *pcStreams) PURE;
+ STDMETHOD_(HRESULT,GetStreamPrioritization)(THIS_ IMFASFStreamPrioritization **ppIStreamPrioritization) PURE;
+ STDMETHOD_(HRESULT,RemoveMutualExclusion)(THIS_ DWORD dwMutexIndex) PURE;
+ STDMETHOD_(HRESULT,RemoveStream)(THIS_ WORD wStreamNumber) PURE;
+ STDMETHOD_(HRESULT,RemoveStreamPrioritization)(THIS) PURE;
+ STDMETHOD_(HRESULT,SetStream)(THIS_ IMFASFStreamConfig *pIStream) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IMFASFProfile_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFASFProfile_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFASFProfile_Release(This) (This)->pVtbl->Release(This)
+#define IMFASFProfile_Compare(This,pTheirs,MatchType,pbResult) (This)->lpVtbl->Compare(This,pTheirs,MatchType,pbResult)
+#define IMFASFProfile_CompareItem(This,guidKey,Value,pbResult) (This)->lpVtbl->CompareItem(This,guidKey,Value,pbResult)
+#define IMFASFProfile_CopyAllItems(This,pDest) (This)->lpVtbl->CopyAllItems(This,pDest)
+#define IMFASFProfile_DeleteAllItems() (This)->lpVtbl->DeleteAllItems(This)
+#define IMFASFProfile_DeleteItem(This,guidKey) (This)->lpVtbl->DeleteItem(This,guidKey)
+#define IMFASFProfile_GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) (This)->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize)
+#define IMFASFProfile_GetAllocatedString(This,guidKey,ppwszValue,pcchLength) (This)->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength)
+#define IMFASFProfile_GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) (This)->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize)
+#define IMFASFProfile_GetBlobSize(This,guidKey,pcbBlobSize) (This)->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize)
+#define IMFASFProfile_GetCount(This,pcItems) (This)->lpVtbl->GetCount(This,pcItems)
+#define IMFASFProfile_GetDouble(This,guidKey,pfValue) (This)->lpVtbl->GetDouble(This,guidKey,pfValue)
+#define IMFASFProfile_GetGUID(This,guidKey,pguidValue) (This)->lpVtbl->GetGUID(This,guidKey,pguidValue)
+#define IMFASFProfile_GetItem(This,guidKey,pValue) (This)->lpVtbl->GetItem(This,guidKey,pValue)
+#define IMFASFProfile_GetItemByIndex(This,unIndex,pguidKey,pValue) (This)->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue)
+#define IMFASFProfile_GetItemType(This,guidKey,pType) (This)->lpVtbl->GetItemType(This,guidKey,pType)
+#define IMFASFProfile_GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) (This)->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength)
+#define IMFASFProfile_GetStringLength(This,guidKey,pcchLength) (This)->lpVtbl->GetStringLength(This,guidKey,pcchLength)
+#define IMFASFProfile_GetUINT32(This,guidKey,punValue) (This)->lpVtbl->GetUINT32(This,guidKey,punValue)
+#define IMFASFProfile_GetUINT64(This,guidKey,punValue) (This)->lpVtbl->GetUINT64(This,guidKey,punValue)
+#define IMFASFProfile_GetUnknown(This,guidKey,riid,ppv) (This)->lpVtbl->GetUnknown(This,guidKey,riid,ppv)
+#define IMFASFProfile_LockStore() (This)->lpVtbl->LockStore(This)
+#define IMFASFProfile_SetBlob(This,guidKey,pBuf,cbBufSize) (This)->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize)
+#define IMFASFProfile_SetDouble(This,guidKey,fValue) (This)->lpVtbl->SetDouble(This,guidKey,fValue)
+#define IMFASFProfile_SetGUID(This,guidKey,guidValue) (This)->lpVtbl->SetGUID(This,guidKey,guidValue)
+#define IMFASFProfile_SetItem(This,guidKey,Value) (This)->lpVtbl->SetItem(This,guidKey,Value)
+#define IMFASFProfile_SetString(This,guidKey,wszValue) (This)->lpVtbl->SetString(This,guidKey,wszValue)
+#define IMFASFProfile_SetUINT32(This,guidKey,unValue) (This)->lpVtbl->SetUINT32(This,guidKey,unValue)
+#define IMFASFProfile_SetUINT64(This,guidKey,unValue) (This)->lpVtbl->SetUINT64(This,guidKey,unValue)
+#define IMFASFProfile_SetUnknown(This,guidKey,pUnknown) (This)->lpVtbl->SetUnknown(This,guidKey,pUnknown)
+#define IMFASFProfile_UnlockStore() (This)->lpVtbl->UnlockStore(This)
+#define IMFASFProfile_AddMutualExclusion(This,pIMutex) (This)->lpVtbl->AddMutualExclusion(This,pIMutex)
+#define IMFASFProfile_AddStreamPrioritization(This,pIStreamPrioritization) (This)->lpVtbl->AddStreamPrioritization(This,pIStreamPrioritization)
+#define IMFASFProfile_Clone(This,ppIProfile) (This)->lpVtbl->Clone(This,ppIProfile)
+#define IMFASFProfile_CreateMutualExclusion(This,ppIMutex) (This)->lpVtbl->CreateMutualExclusion(This,ppIMutex)
+#define IMFASFProfile_CreateStream(This,pIMediaType,ppIStream) (This)->lpVtbl->CreateStream(This,pIMediaType,ppIStream)
+#define IMFASFProfile_CreateStreamPrioritization(This,ppIStreamPrioritization) (This)->lpVtbl->CreateStreamPrioritization(This,ppIStreamPrioritization)
+#define IMFASFProfile_GetMutualExclusion(This,dwMutexIndex,ppIMutex) (This)->lpVtbl->GetMutualExclusion(This,dwMutexIndex,ppIMutex)
+#define IMFASFProfile_GetMutualExclusionCount(This,pcMutexs) (This)->lpVtbl->GetMutualExclusionCount(This,pcMutexs)
+#define IMFASFProfile_GetStream(This,dwStreamIndex,pwStreamNumber,ppIStream) (This)->lpVtbl->GetStream(This,dwStreamIndex,pwStreamNumber,ppIStream)
+#define IMFASFProfile_GetStreamByNumber(This,wStreamNumber,ppIStream) (This)->lpVtbl->GetStreamByNumber(This,wStreamNumber,ppIStream)
+#define IMFASFProfile_GetStreamCount(This,pcStreams) (This)->lpVtbl->GetStreamCount(This,pcStreams)
+#define IMFASFProfile_GetStreamPrioritization(This,ppIStreamPrioritization) (This)->lpVtbl->GetStreamPrioritization(This,ppIStreamPrioritization)
+#define IMFASFProfile_RemoveMutualExclusion(This,dwMutexIndex) (This)->lpVtbl->RemoveMutualExclusion(This,dwMutexIndex)
+#define IMFASFProfile_RemoveStream(This,wStreamNumber) (This)->lpVtbl->RemoveStream(This,wStreamNumber)
+#define IMFASFProfile_RemoveStreamPrioritization() (This)->lpVtbl->RemoveStreamPrioritization(This)
+#define IMFASFProfile_SetStream(This,pIStream) (This)->lpVtbl->SetStream(This,pIStream)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IMFASFIndexer
+DECLARE_INTERFACE_(IMFASFIndexer,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFASFIndexer methods */
+ STDMETHOD_(HRESULT,CommitIndex)(THIS_ IMFASFContentInfo *pIContentInfo) PURE;
+ STDMETHOD_(HRESULT,GenerateIndexEntries)(THIS_ IMFSample *pIASFPacketSample) PURE;
+ STDMETHOD_(HRESULT,GetCompletedIndex)(THIS_ IMFMediaBuffer *pIIndexBuffer,QWORD cbOffsetWithinIndex) PURE;
+ STDMETHOD_(HRESULT,GetFlags)(THIS_ DWORD *pdwFlags) PURE;
+ STDMETHOD_(HRESULT,GetIndexByteStreamCount)(THIS_ DWORD *pcByteStreams) PURE;
+ STDMETHOD_(HRESULT,GetIndexPosition)(THIS_ IMFASFContentInfo *pIContentInfo,QWORD *pcbIndexOffset) PURE;
+ STDMETHOD_(HRESULT,GetIndexStatus)(THIS_ ASF_INDEX_IDENTIFIER *pIndexIdentifier,WINBOOL *pfIsIndexed,BYTE *pbIndexDescriptor,DWORD *pcbIndexDescriptor) PURE;
+ STDMETHOD_(HRESULT,GetIndexWriteSpace)(THIS_ QWORD *pcbIndexWriteSpace) PURE;
+ STDMETHOD_(HRESULT,GetSeekPositionForValue)(THIS_ const PROPVARIANT *pvarValue,ASF_INDEX_IDENTIFIER *pIndexIdentifier,QWORD *pcbOffsetWithinData,MFTIME *phnsApproxTime,DWORD *pdwPayloadNumberOfStreamWithinPacket) PURE;
+ STDMETHOD_(HRESULT,Initialize)(THIS_ IMFASFContentInfo *pIContentInfo) PURE;
+ STDMETHOD_(HRESULT,SetFlags)(THIS_ DWORD dwFlags) PURE;
+ STDMETHOD_(HRESULT,SetIndexByteStreams)(THIS_ IMFByteStream **ppIByteStreams,DWORD cByteStreams) PURE;
+ STDMETHOD_(HRESULT,SetIndexStatus)(THIS_ BYTE *pIndexDescriptor,DWORD cbIndexDescriptor,WINBOOL fGenerateIndex) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IMFASFIndexer_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFASFIndexer_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFASFIndexer_Release(This) (This)->pVtbl->Release(This)
+#define IMFASFIndexer_CommitIndex(This,pIContentInfo) (This)->lpVtbl->CommitIndex(This,pIContentInfo)
+#define IMFASFIndexer_GenerateIndexEntries(This,pIASFPacketSample) (This)->lpVtbl->GenerateIndexEntries(This,pIASFPacketSample)
+#define IMFASFIndexer_GetCompletedIndex(This,pIIndexBuffer,cbOffsetWithinIndex) (This)->lpVtbl->GetCompletedIndex(This,pIIndexBuffer,cbOffsetWithinIndex)
+#define IMFASFIndexer_GetFlags(This,pdwFlags) (This)->lpVtbl->GetFlags(This,pdwFlags)
+#define IMFASFIndexer_GetIndexByteStreamCount(This,pcByteStreams) (This)->lpVtbl->GetIndexByteStreamCount(This,pcByteStreams)
+#define IMFASFIndexer_GetIndexPosition(This,pIContentInfo,pcbIndexOffset) (This)->lpVtbl->GetIndexPosition(This,pIContentInfo,pcbIndexOffset)
+#define IMFASFIndexer_GetIndexStatus(This,pIndexIdentifier,pfIsIndexed,pbIndexDescriptor,pcbIndexDescriptor) (This)->lpVtbl->GetIndexStatus(This,pIndexIdentifier,pfIsIndexed,pbIndexDescriptor,pcbIndexDescriptor)
+#define IMFASFIndexer_GetIndexWriteSpace(This,pcbIndexWriteSpace) (This)->lpVtbl->GetIndexWriteSpace(This,pcbIndexWriteSpace)
+#define IMFASFIndexer_GetSeekPositionForValue(This,pvarValue,pIndexIdentifier,pcbOffsetWithinData,phnsApproxTime,pdwPayloadNumberOfStreamWithinPacket) (This)->lpVtbl->GetSeekPositionForValue(This,pvarValue,pIndexIdentifier,pcbOffsetWithinData,phnsApproxTime,pdwPayloadNumberOfStreamWithinPacket)
+#define IMFASFIndexer_Initialize(This,pIContentInfo) (This)->lpVtbl->Initialize(This,pIContentInfo)
+#define IMFASFIndexer_SetFlags(This,dwFlags) (This)->lpVtbl->SetFlags(This,dwFlags)
+#define IMFASFIndexer_SetIndexByteStreams(This,ppIByteStreams,cByteStreams) (This)->lpVtbl->SetIndexByteStreams(This,ppIByteStreams,cByteStreams)
+#define IMFASFIndexer_SetIndexStatus(This,pIndexDescriptor,cbIndexDescriptor,fGenerateIndex) (This)->lpVtbl->SetIndexStatus(This,pIndexDescriptor,cbIndexDescriptor,fGenerateIndex)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IMFASFMultiplexer
+DECLARE_INTERFACE_(IMFASFMultiplexer,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IMFASFMultiplexer methods */
+ STDMETHOD_(HRESULT,End)(THIS_ IMFASFContentInfo *pIContentInfo) PURE;
+ STDMETHOD_(HRESULT,Flush)(THIS) PURE;
+ STDMETHOD_(HRESULT,GetFlags)(THIS_ DWORD *pdwFlags) PURE;
+ STDMETHOD_(HRESULT,GetNextPacket)(THIS_ DWORD *pdwStatusFlags,IMFSample **ppIPacket) PURE;
+ STDMETHOD_(HRESULT,GetStatistics)(THIS_ WORD wStreamNumber,ASF_MUX_STATISTICS *pMuxStats) PURE;
+ STDMETHOD_(HRESULT,Initialize)(THIS_ IMFASFContentInfo *pIContentInfo) PURE;
+ STDMETHOD_(HRESULT,ProcessSample)(THIS_ WORD wStreamNumber,IMFSample *pISample,LONGLONG hnsTimestampAdjust) PURE;
+ STDMETHOD_(HRESULT,SetFlags)(THIS_ DWORD dwFlags) PURE;
+ STDMETHOD_(HRESULT,SetSyncTolerance)(THIS_ DWORD msSyncTolerance) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IMFASFMultiplexer_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFASFMultiplexer_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IMFASFMultiplexer_Release(This) (This)->pVtbl->Release(This)
+#define IMFASFMultiplexer_End(This,pIContentInfo) (This)->lpVtbl->End(This,pIContentInfo)
+#define IMFASFMultiplexer_Flush() (This)->lpVtbl->Flush(This)
+#define IMFASFMultiplexer_GetFlags(This,pdwFlags) (This)->lpVtbl->GetFlags(This,pdwFlags)
+#define IMFASFMultiplexer_GetNextPacket(This,pdwStatusFlags,ppIPacket) (This)->lpVtbl->GetNextPacket(This,pdwStatusFlags,ppIPacket)
+#define IMFASFMultiplexer_GetStatistics(This,wStreamNumber,pMuxStats) (This)->lpVtbl->GetStatistics(This,wStreamNumber,pMuxStats)
+#define IMFASFMultiplexer_Initialize(This,pIContentInfo) (This)->lpVtbl->Initialize(This,pIContentInfo)
+#define IMFASFMultiplexer_ProcessSample(This,wStreamNumber,pISample,hnsTimestampAdjust) (This)->lpVtbl->ProcessSample(This,wStreamNumber,pISample,hnsTimestampAdjust)
+#define IMFASFMultiplexer_SetFlags(This,dwFlags) (This)->lpVtbl->SetFlags(This,dwFlags)
+#define IMFASFMultiplexer_SetSyncTolerance(This,msSyncTolerance) (This)->lpVtbl->SetSyncTolerance(This,msSyncTolerance)
+#endif /*COBJMACROS*/
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+HRESULT WINAPI MFCreateASFSplitter(IMFASFSplitter **ppISplitter);
+HRESULT WINAPI MFCreateAttributes(IMFAttributes **ppMFAttributes,UINT32 cInitialSize);
+HRESULT WINAPI MFCreateWMAEncoderActivate(IMFMediaType *pMediaType,IPropertyStore *pEncodingConfigurationProperties,IMFActivate **ppActivate);
+HRESULT WINAPI MFCreateWMVEncoderActivate(IMFMediaType *pMediaType,IPropertyStore *pEncodingConfigurationProperties,IMFActivate **ppActivate);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* (_WIN32_WINNT >= 0x0600) */
+#endif /*_INC_WMCONTAINER*/
diff --git a/mingw-w64-headers/include/ws2bth.h b/mingw-w64-headers/include/ws2bth.h
new file mode 100644
index 0000000..f92c6e9
--- /dev/null
+++ b/mingw-w64-headers/include/ws2bth.h
@@ -0,0 +1,51 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_WS2BTH
+#define _INC_WS2BTH
+#include <bthsdpdef.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct _BTH_QUERY_SERVICE {
+ ULONG type;
+ ULONG serviceHandle;
+ SdpQueryUuid uuids[MAX_UUIDS_IN_QUERY];
+ ULONG numRange;
+ SdpAttributeRange pRange[1];
+} BTH_QUERY_SERVICE, *PBTH_QUERY_SERVICE;
+
+typedef struct _BTH_QUERY_DEVICE {
+ ULONG LAP;
+ UCHAR length;
+} BTH_QUERY_DEVICE, *PBTH_QUERY_DEVICE;
+
+typedef struct _BTH_RADIO_IN_RANGE {
+ BTH_DEVICE_INFO deviceInfo;
+ ULONG previousDeviceFlags;
+} BTH_RADIO_IN_RANGE, *PBTH_RADIO_IN_RANGE;
+
+typedef struct _BTH_SET_SERVICE {
+ PULONG pSdpVersion;
+ HANDLE *pRecordHandle;
+ ULONG fCodService;
+ ULONG Reserved[5];
+ ULONG ulRecordLength;
+ UCHAR pRecord[1];
+} BTH_SET_SERVICE, *PBTH_SET_SERVICE;
+
+typedef struct _SOCKADDR_BTH {
+ USHORT addressFamily;
+ BTH_ADDR btAddr;
+ GUID serviceClassId;
+ ULONG port;
+} SOCKADDR_BTH, *PSOCKADDR_BTH;
+
+#ifdef __cplusplus
+}
+#endif
+#endif /*_INC_WS2BTH*/
diff --git a/mingw-w64-headers/include/ws2ipdef.h b/mingw-w64-headers/include/ws2ipdef.h
new file mode 100644
index 0000000..1c94083
--- /dev/null
+++ b/mingw-w64-headers/include/ws2ipdef.h
@@ -0,0 +1,56 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_WS2IPDEF
+#define _INC_WS2IPDEF
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum _MULTICAST_MODE_TYPE {
+ MCAST_INCLUDE = 0,
+ MCAST_EXCLUDE
+} MULTICAST_MODE_TYPE;
+
+#if (_WIN32_WINNT >= 0x0600)
+
+typedef struct _sockaddr_in6_pair {
+ PSOCKADDR_IN6 SourceAddress;
+ PSOCKADDR_IN6 DestinationAddress;
+} SOCKADDR_IN6_PAIR, *PSOCKADDR_IN6_PAIR;
+
+typedef union _SOCKADDR_INET {
+ SOCKADDR_IN Ipv4;
+ SOCKADDR_IN6 Ipv6;
+ ADDRESS_FAMILY si_family;
+} SOCKADDR_INET, *PSOCKADDR_INET;
+
+typedef struct group_filter {
+ ULONG gf_interface;
+ SOCKADDR_STORAGE gf_group;
+ MULTICAST_MODE_TYPE gf_fmode;
+ ULONG gf_numsrc;
+ SOCKADDR_STORAGE gf_slist[1];
+} GROUP_FILTER, *PGROUP_FILTER;
+
+typedef struct group_req {
+ ULONG gr_interface;
+ SOCKADDR_STORAGE gr_group;
+} GROUP_REQ, *PGROUP_REQ;
+
+typedef struct group_source_req {
+ ULONG gsr_interface;
+ SOCKADDR_STORAGE gsr_group;
+ SOCKADDR_STORAGE gsr_source;
+} GROUP_SOURCE_REQ, *PGROUP_SOURCE_REQ;
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*_INC_WS2IPDEF*/
diff --git a/mingw-w64-headers/include/ws2spi.h b/mingw-w64-headers/include/ws2spi.h
index 6767b0e..41ded25 100644
--- a/mingw-w64-headers/include/ws2spi.h
+++ b/mingw-w64-headers/include/ws2spi.h
@@ -227,6 +227,220 @@
INT WSAAPI NSPStartup(LPGUID lpProviderId,LPNSP_ROUTINE lpnspRoutines);
+#if (_WIN32_WINNT >= 0x0600)
+
+typedef int (WSAAPI *LPNSPV2CLEANUP)(
+ LPGUID lpProviderId,
+ LPVOID pvClientSessionArg
+);
+
+typedef int (WSAAPI *LPNSPV2CLIENTSESSIONRUNDOWN)(
+ LPGUID lpProviderId,
+ LPVOID pvClientSessionArg
+);
+
+typedef int (WSAAPI *LPNSPV2LOOKUPSERVICEBEGIN)(
+ LPGUID lpProviderId,
+ LPWSAQUERYSET2W lpqsRestrictions,
+ DWORD dwControlFlags,
+ LPVOID lpvClientSessionArg,
+ LPHANDLE lphLookup
+);
+
+typedef int (WSAAPI *LPNSPV2LOOKUPSERVICEEND)(
+ HANDLE hLookup
+);
+
+typedef int (WSAAPI *LPNSPV2LOOKUPSERVICENEXTEX)(
+ HANDLE hAsyncCall,
+ HANDLE hLookup,
+ DWORD dwControlFlags,
+ LPDWORD lpdwBufferLength,
+ LPWSAQUERYSET2W lpqsResults
+);
+
+typedef int (WSAAPI *LPNSPV2SETSERVICEEX)(
+ HANDLE hAsyncCall,
+ LPGUID lpProviderId,
+ LPWSAQUERYSET2W lpqsRegInfo,
+ WSAESETSERVICEOP essOperation,
+ DWORD dwControlFlags,
+ LPVOID lpvClientSessionArg
+);
+
+typedef int (WSAAPI *LPNSPV2STARTUP)(
+ LPGUID lpProviderId,
+ LPVOID *ppvClientSessionArg
+);
+
+typedef struct _NSPV2_ROUTINE {
+ DWORD cbSize;
+ DWORD dwMajorVersion;
+ DWORD dwMinorVersion;
+ LPNSPV2STARTUP NSPv2Startup;
+ LPNSPV2CLEANUP NSPv2Cleanup;
+ LPNSPV2LOOKUPSERVICEBEGIN NSPv2LookupServiceBegin;
+ LPNSPV2LOOKUPSERVICENEXTEX NSPv2LookupServiceNextEx;
+ LPNSPV2LOOKUPSERVICEEND NSPv2LookupServiceEnd;
+ LPNSPV2SETSERVICEEX NSPv2SetServiceEx;
+ LPNSPV2CLIENTSESSIONRUNDOWN NSPv2ClientSessionRundown;
+} NSPV2_ROUTINE, *PNSPV2_ROUTINE, *LPCNSPV2_ROUTINE;
+
+typedef enum _WSC_PROVIDER_INFO_TYPE {
+ ProviderInfoLspCategories,
+ ProviderInfoAudit
+} WSC_PROVIDER_INFO_TYPE;
+
+typedef struct _WSC_PROVIDER_AUDIT_INFO {
+ DWORD RecordSize;
+ PVOID Reserved;
+} WSC_PROVIDER_AUDIT_INFO, *PWSC_PROVIDER_AUDIT_INFO;
+
+INT WSAAPI WSAAdvertiseProvider(
+ const GUID *puuidProviderId,
+ const LPCNSPV2_ROUTINE *pNSPv2Routine
+);
+
+INT WSPAPI WSAProviderCompleteAsyncCall(
+ HANDLE hAsyncCall,
+ INT iRetCode
+);
+
+INT WSPAPI WSAUnadvertiseProvider(
+ const GUID *puuidProviderId
+);
+
+int WSPAPI WSCGetApplicationCategory(
+ LPCWSTR Path,
+ DWORD PathLength,
+ LPCWSTR Extra,
+ DWORD ExtraLength,
+ DWORD *pPermittedLspCategories,
+ LPINT lpErrno
+);
+
+int WSPAPI WSCGetProviderInfo(
+ LPGUID lpProviderId,
+ WSC_PROVIDER_INFO_TYPE InfoType,
+ PBYTE Info,
+ size_t *InfoSize,
+ DWORD Flags,
+ LPINT lpErrno
+);
+
+int WSPAPI WSCInstallProviderAndChains(
+ const LPGUID lpProviderId,
+ const LPWSTR lpszProviderDllPath,
+ const LPWSTR lpszLspName,
+ DWORD dwServiceFlags,
+ const LPWSAPROTOCOL_INFO lpProtocolInfoList,
+ DWORD dwNumberOfEntries,
+ LPDWORD lpdwCatalogEntryId,
+ LPINT lpErrno
+);
+
+int WSPAPI WSCSetApplicationCategory(
+ LPCWSTR Path,
+ DWORD PathLength,
+ LPCWSTR Extra,
+ DWORD ExtraLength,
+ DWORD PermittedLspCategories,
+ DWORD *pPrevPermLspCat,
+ LPINT lpErrno
+);
+
+int WSPAPI WSCSetProviderInfo(
+ LPGUID lpProviderId,
+ WSC_PROVIDER_INFO_TYPE InfoType,
+ PBYTE Info,
+ size_t InfoSize,
+ DWORD Flags,
+ LPINT lpErrno
+);
+
+int WSAAPI WSCInstallNameSpaceEx(
+ LPWSTR lpszIdentifier,
+ LPWSTR lpszPathName,
+ DWORD dwNameSpace,
+ DWORD dwVersion,
+ LPGUID lpProviderId,
+ LPBLOB lpProviderInfo
+);
+
+#ifdef _WIN64
+int WSPAPI WSCDeinstallProvider32(
+ LPGUID lpProviderId,
+ LPINT lpErrno
+);
+
+int WSPAPI WSCEnableNSProvider32(
+ LPGUID lpProviderId,
+ WINBOOL fEnable
+);
+
+INT WSPAPI WSCEnumNameSpaceProviders32(
+ LPDWORD lpdwBufferLength,
+ LPWSANAMESPACE_INFOW lpnspBuffer
+);
+
+INT WSPAPI WSCEnumNameSpaceProvidersEx32(
+ LPDWORD lpdwBufferLength,
+ LPWSANAMESPACE_INFOEXW lpnspBuffer
+);
+
+int WSPAPI WSCGetProviderInfo32(
+ LPGUID lpProviderId,
+ WSC_PROVIDER_INFO_TYPE InfoType,
+ PBYTE Info,
+ size_t *InfoSize,
+ DWORD Flags,
+ LPINT lpErrno
+);
+
+int WSAAPI WSCInstallNameSpaceEx32(
+ LPWSTR lpszIdentifier,
+ LPWSTR lpszPathName,
+ DWORD dwNameSpace,
+ DWORD dwVersion,
+ LPGUID lpProviderId,
+ LPBLOB lpProviderInfo
+);
+
+int WSPAPI WSCInstallProviderAndChains64_32(
+ const LPGUID lpProviderId,
+ const LPWSTR lpszProviderDllPath,
+ const LPWSTR lpszProviderDllPath32,
+ const LPWSTR lpszLspName,
+ DWORD dwServiceFlags,
+ const LPWSAPROTOCOL_INFO lpProtocolInfoList,
+ DWORD dwNumberOfEntries,
+ LPDWORD lpdwCatalogEntryId,
+ LPINT lpErrno
+);
+
+int WSPAPI WSCSetProviderInfo32(
+ LPGUID lpProviderId,
+ WSC_PROVIDER_INFO_TYPE InfoType,
+ PBYTE Info,
+ size_t InfoSize,
+ DWORD Flags,
+ LPINT lpErrno
+);
+
+int WSPAPI WSCWriteNameSpaceOrder32(
+ LPGUID lpProviderId,
+ DWORD dwNumberOfEntries
+);
+
+int WSPAPI WSCWriteProviderOrder32(
+ LPDWORD lpwdCatalogEntryId,
+ DWORD dwNumberOfEntries
+);
+
+#endif /* _WIN64*/
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
#ifdef __cplusplus
}
#endif
diff --git a/mingw-w64-headers/include/ws2tcpip.h b/mingw-w64-headers/include/ws2tcpip.h
index 5967e44..7b634e3 100644
--- a/mingw-w64-headers/include/ws2tcpip.h
+++ b/mingw-w64-headers/include/ws2tcpip.h
@@ -8,10 +8,6 @@
#include <_mingw_unicode.h>
-#if __GNUC__ >=3
-#pragma GCC system_header
-#endif
-
#include <winsock2.h>
#include <mingw_inc/_ip_mreq1.h>
@@ -31,9 +27,6 @@
#define IP_MSFILTER_SIZE(numsrc) (sizeof(struct ip_msfilter)-sizeof(struct in_addr) + (numsrc)*sizeof(struct in_addr))
-#define MCAST_INCLUDE 0
-#define MCAST_EXCLUDE 1
-
#define SIO_GET_INTERFACE_LIST _IOR('t',127,u_long)
#define SIO_GET_INTERFACE_LIST_EX _IOR('t',126,u_long)
@@ -105,6 +98,8 @@
typedef struct sockaddr_in6 *PSOCKADDR_IN6;
typedef struct sockaddr_in6 *LPSOCKADDR_IN6;
+#include <ws2ipdef.h>
+
#define SS_PORT(ssp) (((struct sockaddr_in*)(ssp))->sin_port)
#define IN6ADDR_ANY_INIT { 0 }
@@ -341,6 +336,8 @@
#define NI_NUMERICSERV 0x08
#define NI_DGRAM 0x10
+#include <mstcpip.h>
+
#if (_WIN32_WINNT >= 0x0600)
#define addrinfoEx __MINGW_NAME_AW(addrinfoEx)
#define PADDRINFOEX __MINGW_NAME_AW(PADDRINFOEX)
@@ -378,10 +375,76 @@
typedef PVOID LOOKUPSERVICE_COMPLETION_ROUTINE; /*reserved*/
typedef LOOKUPSERVICE_COMPLETION_ROUTINE *LPLOOKUPSERVICE_COMPLETION_ROUTINE;
-int WSAAPI GetAddrInfoExA(LPCSTR pName,LPCSTR pServiceName,DWORD dwNameSpace,LPGUID lpNspId,const ADDRINFOEXA *pHints,PADDRINFOEXA *ppResult,struct timeval *timeout,LPOVERLAPPED lpOverlapped,LPLOOKUPSERVICE_COMPLETION_ROUTINE lpCompletionRoutine,LPHANDLE lpNameHandle);
-int WSAAPI GetAddrInfoExW(LPCWSTR pName,LPCWSTR pServiceName,DWORD dwNameSpace,LPGUID lpNspId,const ADDRINFOEXW *pHints,PADDRINFOEXW *ppResult,struct timeval *timeout,LPOVERLAPPED lpOverlapped,LPLOOKUPSERVICE_COMPLETION_ROUTINE lpCompletionRoutine,LPHANDLE lpNameHandle);
-void WSAAPI FreeAddrInfoExA(PADDRINFOEXA pAddrInfo);
-void WSAAPI FreeAddrInfoExW(PADDRINFOEXW pAddrInfo);
+WINSOCK_API_LINKAGE int WSAAPI GetAddrInfoExA(LPCSTR pName,LPCSTR pServiceName,DWORD dwNameSpace,LPGUID lpNspId,const ADDRINFOEXA *pHints,PADDRINFOEXA *ppResult,struct timeval *timeout,LPOVERLAPPED lpOverlapped,LPLOOKUPSERVICE_COMPLETION_ROUTINE lpCompletionRoutine,LPHANDLE lpNameHandle);
+WINSOCK_API_LINKAGE int WSAAPI GetAddrInfoExW(LPCWSTR pName,LPCWSTR pServiceName,DWORD dwNameSpace,LPGUID lpNspId,const ADDRINFOEXW *pHints,PADDRINFOEXW *ppResult,struct timeval *timeout,LPOVERLAPPED lpOverlapped,LPLOOKUPSERVICE_COMPLETION_ROUTINE lpCompletionRoutine,LPHANDLE lpNameHandle);
+WINSOCK_API_LINKAGE void WSAAPI FreeAddrInfoExA(PADDRINFOEXA pAddrInfo);
+WINSOCK_API_LINKAGE void WSAAPI FreeAddrInfoExW(PADDRINFOEXW pAddrInfo);
+
+WINSOCK_API_LINKAGE int WSAAPI SetAddrInfoExA(
+ PCSTR pName,
+ PCSTR pServiceName,
+ SOCKET_ADDRESS *pAddresses,
+ DWORD dwAddressCount,
+ LPBLOB lpBlob,
+ DWORD dwFlags,
+ DWORD dwNameSpace,
+ LPGUID lpNspId,
+ struct timeval *timeout,
+ LPOVERLAPPED lpOverlapped,
+ LPLOOKUPSERVICE_COMPLETION_ROUTINE lpCompletionRoutine,
+ LPHANDLE lpNameHandle
+);
+
+WINSOCK_API_LINKAGE int WSAAPI SetAddrInfoExW(
+ PCWSTR pName,
+ PCWSTR pServiceName,
+ SOCKET_ADDRESS *pAddresses,
+ DWORD dwAddressCount,
+ LPBLOB lpBlob,
+ DWORD dwFlags,
+ DWORD dwNameSpace,
+ LPGUID lpNspId,
+ struct timeval *timeout,
+ LPOVERLAPPED lpOverlapped,
+ LPLOOKUPSERVICE_COMPLETION_ROUTINE lpCompletionRoutine,
+ LPHANDLE lpNameHandle
+);
+
+#define SetAddrInfoEx __MINGW_NAME_AW(SetAddrInfoEx)
+
+WINSOCK_API_LINKAGE int WSAAPI WSAImpersonateSocketPeer(
+ SOCKET Socket,
+ const struct sockaddr PeerAddress,
+ ULONG peerAddressLen
+);
+
+WINSOCK_API_LINKAGE int WSAAPI WSAQuerySocketSecurity(
+ SOCKET Socket,
+ const SOCKET_SECURITY_QUERY_TEMPLATE *SecurityQueryTemplate,
+ ULONG SecurityQueryTemplateLen,
+ SOCKET_SECURITY_QUERY_INFO *SecurityQueryInfo,
+ ULONG *SecurityQueryInfoLen,
+ LPWSAOVERLAPPED Overlapped,
+ LPWSAOVERLAPPED_COMPLETION_ROUTINE CompletionRoutine
+);
+
+WINSOCK_API_LINKAGE int WSAAPI WSARevertImpersonation(void);
+
+WINSOCK_API_LINKAGE int WSAAPI WSASetSocketPeerTargetName(
+ SOCKET Socket,
+ const SOCKET_PEER_TARGET_NAME *PeerTargetName,
+ ULONG PeerTargetNameLen,
+ LPWSAOVERLAPPED Overlapped,
+ LPWSAOVERLAPPED_COMPLETION_ROUTINE CompletionRoutine
+);
+
+WINSOCK_API_LINKAGE int WSAAPI WSASetSocketSecurity(
+ SOCKET Socket,
+ const SOCKET_SECURITY_SETTINGS *SecuritySettings,
+ ULONG SecuritySettingsLen,
+ LPWSAOVERLAPPED Overlapped,
+ LPWSAOVERLAPPED_COMPLETION_ROUTINE CompletionRoutine
+);
#endif /*(_WIN32_WINNT >= 0x0600)*/
diff --git a/mingw-w64-headers/include/wsdapi.h b/mingw-w64-headers/include/wsdapi.h
new file mode 100644
index 0000000..20c4a67
--- /dev/null
+++ b/mingw-w64-headers/include/wsdapi.h
@@ -0,0 +1,55 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_WSDAPI
+#define _INC_WSDAPI
+#if (_WIN32_WINNT >= 0x0600)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct IWSDAsyncResult IWSDAsyncResult;
+typedef struct IWSDServiceProxy IWSDServiceProxy;
+typedef struct IWSDEndpointProxy IWSDEndpointProxy;
+
+typedef struct IWSDMessageParameters IWSDMessageParameters;
+typedef struct IWSDServiceMessaging IWSDServiceMessaging;
+
+typedef struct _WSD_EVENT WSD_EVENT;
+typedef struct _WSD_SOAP_FAULT_SUBCODE WSD_SOAP_FAULT_SUBCODE;
+typedef struct _WSD_LOCALIZED_STRING_LIST WSD_LOCALIZED_STRING_LIST;
+typedef struct _WSD_URI_LIST WSD_URI_LIST;
+typedef struct _WSD_NAME_LIST WSD_NAME_LIST;
+typedef struct _WSD_SERVICE_METADATA_LIST WSD_SERVICE_METADATA_LIST;
+typedef struct _WSD_PROBE_MATCH_LIST WSD_PROBE_MATCH_LIST;
+
+typedef struct _WSDXML_NAME WSDXML_NAME;
+typedef struct _WSDXML_ELEMENT WSDXML_ELEMENT;
+typedef struct _WSDXML_NODE WSDXML_NODE;
+typedef struct _WSDXML_ATTRIBUTE WSDXML_ATTRIBUTE;
+typedef struct _WSDXML_PREFIX_MAPPING WSDXML_PREFIX_MAPPING;
+typedef struct _WSDXML_ELEMENT_LIST WSDXML_ELEMENT_LIST;
+typedef struct _WSDXML_TYPE WSDXML_TYPE;
+typedef struct _WSD_METADATA_SECTION_LIST WSD_METADATA_SECTION_LIST;
+typedef struct _WSD_METADATA_SECTION WSD_METADATA_SECTION;
+typedef struct _WSD_ENDPOINT_REFERENCE_LIST WSD_ENDPOINT_REFERENCE_LIST;
+
+#ifdef __cplusplus
+}
+#endif
+
+#include <wsdtypes.h>
+#include <wsdbase.h>
+#include <wsdxmldom.h>
+#include <wsdxml.h>
+#include <wsdhost.h>
+#include <wsdutil.h>
+#include <wsdclient.h>
+#include <wsddisco.h>
+#include <wsdattachment.h>
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_WSDAPI*/
diff --git a/mingw-w64-headers/include/wsdattachment.h b/mingw-w64-headers/include/wsdattachment.h
new file mode 100644
index 0000000..9fd4578
--- /dev/null
+++ b/mingw-w64-headers/include/wsdattachment.h
@@ -0,0 +1,100 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_WSDATTACHMENT
+#define _INC_WSDATTACHMENT
+#if (_WIN32_WINNT >= 0x0600)
+
+#undef INTERFACE
+#define INTERFACE IWSDAttachment
+DECLARE_INTERFACE_(IWSDAttachment,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IWSDAttachment methods */
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IWSDAttachment_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IWSDAttachment_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IWSDAttachment_Release(This) (This)->pVtbl->Release(This)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IWSDInboundAttachment
+DECLARE_INTERFACE_(IWSDInboundAttachment,IWSDAttachment)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IWSDAttachment methods */
+
+ /* IWSDInboundAttachment methods */
+ STDMETHOD_(HRESULT,Read)(THIS_ BYTE *pBuffer,DWORD dwBytesToRead,LPDWORD pdwNumberofBytesRead) PURE;
+ STDMETHOD_(HRESULT,Close)(THIS) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IWSDInboundAttachment_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IWSDInboundAttachment_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IWSDInboundAttachment_Release(This) (This)->pVtbl->Release(This)
+#define IWSDInboundAttachment_Read(This,pBuffer,dwBytesToRead,pdwNumberofBytesRead) (This)->lpVtbl->Read(This,pBuffer,dwBytesToRead,pdwNumberofBytesRead)
+#define IWSDInboundAttachment_Close() (This)->lpVtbl->Close(This)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IWSDOutboundAttachment
+DECLARE_INTERFACE_(IWSDOutboundAttachment,IWSDAttachment)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IWSDAttachment methods */
+
+ /* IWSDOutboundAttachment methods */
+ STDMETHOD_(HRESULT,Write)(THIS_ const BYTE *pBuffer,DWORD dwBytesToWrite,LPDWORD pdwNumberofBytesWritten) PURE;
+ STDMETHOD_(HRESULT,Close)(THIS) PURE;
+ STDMETHOD_(HRESULT,Abort)(THIS) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IWSDOutboundAttachment_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IWSDOutboundAttachment_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IWSDOutboundAttachment_Release(This) (This)->pVtbl->Release(This)
+#define IWSDOutboundAttachment_Write(This,pBuffer,dwBytesToWrite,pdwNumberofBytesWritten) (This)->lpVtbl->Write(This,pBuffer,dwBytesToWrite,pdwNumberofBytesWritten)
+#define IWSDOutboundAttachment_Close() (This)->lpVtbl->Close(This)
+#define IWSDOutboundAttachment_Abort() (This)->lpVtbl->Abort(This)
+#endif /*COBJMACROS*/
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+HRESULT WINAPI WSDCreateOutboundAttachment(
+ IWSDOutboundAttachment **attachmentOut
+);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_WSDATTACHMENT*/
diff --git a/mingw-w64-headers/include/wsdbase.h b/mingw-w64-headers/include/wsdbase.h
new file mode 100644
index 0000000..d6def59
--- /dev/null
+++ b/mingw-w64-headers/include/wsdbase.h
@@ -0,0 +1,316 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_WSDBASE
+#define _INC_WSDBASE
+#if (_WIN32_WINNT >= 0x0600)
+
+typedef enum _WSDUdpMessageType {
+ ONE_WAY = 0,
+ TWO_WAY = 1
+} WSDUdpMessageType;
+
+typedef struct _WSDUpdRetransmitParams {
+ ULONG ulSendDelay;
+ ULONG ulRepeat;
+ ULONG ulRepeatMinDelay;
+ ULONG ulRepeatMaxDelay;
+ ULONG ulRepeatUpperDelay;
+} WSDUdpRetransmitParams, *PWSDUdpRetransmitParams;
+
+#undef INTERFACE
+#define INTERFACE IWSDTransportAddress
+DECLARE_INTERFACE_(IWSDTransportAddress,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IWSDTransportAddress methods */
+ STDMETHOD_(HRESULT,GetPort)(THIS_ WORD *pwPort) PURE;
+ STDMETHOD_(HRESULT,SetPort)(THIS_ WORD wPort) PURE;
+ STDMETHOD_(HRESULT,GetTransportAddress)(THIS_ LPCWSTR *ppszAddress) PURE;
+ STDMETHOD_(HRESULT,GetTransportAddressEx)(THIS_ WINBOOL fSafe,LPCWSTR *ppszAddress) PURE;
+ STDMETHOD_(HRESULT,SetTransportAddress)(THIS_ LPCWSTR pszAddress) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IWSDTransportAddress_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IWSDTransportAddress_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IWSDTransportAddress_Release(This) (This)->pVtbl->Release(This)
+#define IWSDTransportAddress_GetPort(This,pwPort) (This)->lpVtbl->GetPort(This,pwPort)
+#define IWSDTransportAddress_SetPort(This,wPort) (This)->lpVtbl->SetPort(This,wPort)
+#define IWSDTransportAddress_GetTransportAddress(This,ppszAddress) (This)->lpVtbl->GetTransportAddress(This,ppszAddress)
+#define IWSDTransportAddress_GetTransportAddressEx(This,fSafe,ppszAddress) (This)->lpVtbl->GetTransportAddressEx(This,fSafe,ppszAddress)
+#define IWSDTransportAddress_SetTransportAddress(This,pszAddress) (This)->lpVtbl->SetTransportAddress(This,pszAddress)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IWSDHttpAddress
+DECLARE_INTERFACE_(IWSDHttpAddress,IWSDTransportAddress)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IWSDTransportAddress methods */
+ STDMETHOD_(HRESULT,GetPort)(THIS_ WORD *pwPort) PURE;
+ STDMETHOD_(HRESULT,SetPort)(THIS_ WORD wPort) PURE;
+ STDMETHOD_(HRESULT,GetTransportAddress)(THIS_ LPCWSTR *ppszAddress) PURE;
+ STDMETHOD_(HRESULT,GetTransportAddressEx)(THIS_ WINBOOL fSafe,LPCWSTR *ppszAddress) PURE;
+ STDMETHOD_(HRESULT,SetTransportAddress)(THIS_ LPCWSTR pszAddress) PURE;
+
+ /* IWSDHttpAddress methods */
+ STDMETHOD_(HRESULT,GetSecure)(THIS) PURE;
+ STDMETHOD_(HRESULT,SetSecure)(THIS_ WINBOOL fSecure) PURE;
+ STDMETHOD_(HRESULT,GetPath)(THIS_ LPCWSTR *ppszPath) PURE;
+ STDMETHOD_(HRESULT,SetPath)(THIS_ LPCWSTR pszPath) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IWSDHttpAddress_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IWSDHttpAddress_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IWSDHttpAddress_Release(This) (This)->pVtbl->Release(This)
+#define IWSDHttpAddress_GetPort(This,pwPort) (This)->lpVtbl->GetPort(This,pwPort)
+#define IWSDHttpAddress_SetPort(This,wPort) (This)->lpVtbl->SetPort(This,wPort)
+#define IWSDHttpAddress_GetTransportAddress(This,ppszAddress) (This)->lpVtbl->GetTransportAddress(This,ppszAddress)
+#define IWSDHttpAddress_GetTransportAddressEx(This,fSafe,ppszAddress) (This)->lpVtbl->GetTransportAddressEx(This,fSafe,ppszAddress)
+#define IWSDHttpAddress_SetTransportAddress(This,pszAddress) (This)->lpVtbl->SetTransportAddress(This,pszAddress)
+#define IWSDHttpAddress_GetSecure() (This)->lpVtbl->GetSecure(This)
+#define IWSDHttpAddress_SetSecure(This,fSecure) (This)->lpVtbl->SetSecure(This,fSecure)
+#define IWSDHttpAddress_GetPath(This,ppszPath) (This)->lpVtbl->GetPath(This,ppszPath)
+#define IWSDHttpAddress_SetPath(This,pszPath) (This)->lpVtbl->SetPath(This,pszPath)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IWSDUdpAddress
+DECLARE_INTERFACE_(IWSDUdpAddress,IWSDTransportAddress)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IWSDTransportAddress methods */
+ STDMETHOD_(HRESULT,GetPort)(THIS_ WORD *pwPort) PURE;
+ STDMETHOD_(HRESULT,SetPort)(THIS_ WORD wPort) PURE;
+ STDMETHOD_(HRESULT,GetTransportAddress)(THIS_ LPCWSTR *ppszAddress) PURE;
+ STDMETHOD_(HRESULT,GetTransportAddressEx)(THIS_ WINBOOL fSafe,LPCWSTR *ppszAddress) PURE;
+ STDMETHOD_(HRESULT,SetTransportAddress)(THIS_ LPCWSTR pszAddress) PURE;
+
+ /* IWSDUdpAddress methods */
+ STDMETHOD_(HRESULT,SetSockaddr)(THIS_ const SOCKADDR_STORAGE *pSockAddr) PURE;
+ STDMETHOD_(HRESULT *,GetSockaddr)(THIS_ SOCKADDR_STORAGE *pSockAddr) PURE;
+ STDMETHOD_(HRESULT,SetExclusive)(THIS_ WINBOOL fExclusive) PURE;
+ STDMETHOD_(HRESULT,GetExclusive)(THIS) PURE;
+ STDMETHOD_(HRESULT,SetMessageType)(THIS_ WSDUdpMessageType messageType) PURE;
+ STDMETHOD_(HRESULT,GetMessageType)(THIS_ WSDUdpMessageType *pMessageType) PURE;
+ STDMETHOD_(HRESULT,SetTTL)(THIS_ DWORD dwTTL) PURE;
+ STDMETHOD_(HRESULT,GetTTL)(THIS_ DWORD *pdwTTL) PURE;
+ STDMETHOD_(HRESULT,SetAlias)(THIS_ const GUID *pAlias) PURE;
+ STDMETHOD_(HRESULT,GetAlias)(THIS_ GUID *pAlias) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IWSDUdpAddress_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IWSDUdpAddress_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IWSDUdpAddress_Release(This) (This)->pVtbl->Release(This)
+#define IWSDUdpAddress_GetPort(This,pwPort) (This)->lpVtbl->GetPort(This,pwPort)
+#define IWSDUdpAddress_SetPort(This,wPort) (This)->lpVtbl->SetPort(This,wPort)
+#define IWSDUdpAddress_GetTransportAddress(This,ppszAddress) (This)->lpVtbl->GetTransportAddress(This,ppszAddress)
+#define IWSDUdpAddress_GetTransportAddressEx(This,fSafe,ppszAddress) (This)->lpVtbl->GetTransportAddressEx(This,fSafe,ppszAddress)
+#define IWSDUdpAddress_SetTransportAddress(This,pszAddress) (This)->lpVtbl->SetTransportAddress(This,pszAddress)
+#define IWSDUdpAddress_SetSockaddr(This,pSockAddr) (This)->lpVtbl->SetSockaddr(This,pSockAddr)
+#define IWSDUdpAddress_GetSockaddr(This,pSockAddr) (This)->lpVtbl->GetSockaddr(This,pSockAddr)
+#define IWSDUdpAddress_SetExclusive(This,fExclusive) (This)->lpVtbl->SetExclusive(This,fExclusive)
+#define IWSDUdpAddress_GetExclusive() (This)->lpVtbl->GetExclusive(This)
+#define IWSDUdpAddress_SetMessageType(This,messageType) (This)->lpVtbl->SetMessageType(This,messageType)
+#define IWSDUdpAddress_GetMessageType(This,pMessageType) (This)->lpVtbl->GetMessageType(This,pMessageType)
+#define IWSDUdpAddress_SetTTL(This,dwTTL) (This)->lpVtbl->SetTTL(This,dwTTL)
+#define IWSDUdpAddress_GetTTL(This,pdwTTL) (This)->lpVtbl->GetTTL(This,pdwTTL)
+#define IWSDUdpAddress_SetAlias(This,pAlias) (This)->lpVtbl->SetAlias(This,pAlias)
+#define IWSDUdpAddress_GetAlias(This,pAlias) (This)->lpVtbl->GetAlias(This,pAlias)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IWSDAddress
+DECLARE_INTERFACE_(IWSDAddress,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IWSDAddress methods */
+ STDMETHOD_(HRESULT,Serialize)(THIS_ LPWSTR pszBuffer,DWORD cchLength,WINBOOL fSafe) PURE;
+ STDMETHOD_(HRESULT,Deserialize)(THIS_ LPCWSTR pszBuffer) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IWSDAddress_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IWSDAddress_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IWSDAddress_Release(This) (This)->pVtbl->Release(This)
+#define IWSDAddress_Serialize(This,pszBuffer,cchLength,fSafe) (This)->lpVtbl->Serialize(This,pszBuffer,cchLength,fSafe)
+#define IWSDAddress_Deserialize(This,pszBuffer) (This)->lpVtbl->Deserialize(This,pszBuffer)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IWSDMessageParameters
+DECLARE_INTERFACE_(IWSDMessageParameters,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IWSDServiceMessaging methods */
+ STDMETHOD_(HRESULT,GetLocalAddress)(THIS_ IWSDAddress **ppAddress) PURE;
+ STDMETHOD_(HRESULT,SetLocalAddress)(THIS_ IWSDAddress *pAddress) PURE;
+ STDMETHOD_(HRESULT,GetRemoteAddress)(THIS_ IWSDAddress **ppAddress) PURE;
+ STDMETHOD_(HRESULT,SetRemoteAddress)(THIS_ IWSDAddress *pAddress) PURE;
+ STDMETHOD_(HRESULT,GetLowerParameters)(THIS_ IWSDMessageParameters **ppTxParams) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IWSDMessageParameters_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IWSDMessageParameters_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IWSDMessageParameters_Release(This) (This)->pVtbl->Release(This)
+#define IWSDMessageParameters_GetLocalAddress(This,ppAddress) (This)->lpVtbl->GetLocalAddress(This,ppAddress)
+#define IWSDMessageParameters_SetLocalAddress(This,pAddress) (This)->lpVtbl->SetLocalAddress(This,pAddress)
+#define IWSDMessageParameters_GetRemoteAddress(This,ppAddress) (This)->lpVtbl->GetRemoteAddress(This,ppAddress)
+#define IWSDMessageParameters_SetRemoteAddress(This,pAddress) (This)->lpVtbl->SetRemoteAddress(This,pAddress)
+#define IWSDMessageParameters_GetLowerParameters(This,ppTxParams) (This)->lpVtbl->GetLowerParameters(This,ppTxParams)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IWSDHttpMessageParameters
+DECLARE_INTERFACE_(IWSDHttpMessageParameters,IWSDMessageParameters)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IWSDServiceMessaging methods */
+ STDMETHOD_(HRESULT,GetLocalAddress)(THIS_ IWSDAddress **ppAddress) PURE;
+ STDMETHOD_(HRESULT,SetLocalAddress)(THIS_ IWSDAddress *pAddress) PURE;
+ STDMETHOD_(HRESULT,GetRemoteAddress)(THIS_ IWSDAddress **ppAddress) PURE;
+ STDMETHOD_(HRESULT,SetRemoteAddress)(THIS_ IWSDAddress *pAddress) PURE;
+ STDMETHOD_(HRESULT,GetLowerParameters)(THIS_ IWSDMessageParameters **ppTxParams) PURE;
+
+ /* IWSDHttpMessageParameters methods */
+ STDMETHOD_(HRESULT,SetInboundHttpHeaders)(THIS_ LPCWSTR pszHeaders) PURE;
+ STDMETHOD_(HRESULT,GetInboundHttpHeaders)(THIS_ LPCWSTR *ppszHeaders) PURE;
+ STDMETHOD_(HRESULT,SetOutboundHttpHeaders)(THIS_ LPCWSTR pszHeaders) PURE;
+ STDMETHOD_(HRESULT,GetOutboundHttpHeaders)(THIS_ LPCWSTR *ppszHeaders) PURE;
+ STDMETHOD_(HRESULT,SetID)(THIS_ LPCWSTR pszId) PURE;
+ STDMETHOD_(HRESULT,GetID)(THIS_ LPCWSTR *ppszId) PURE;
+ STDMETHOD_(HRESULT,SetContext)(THIS_ IUnknown *pContext) PURE;
+ STDMETHOD_(HRESULT,GetContext)(THIS_ IUnknown **ppContext) PURE;
+ STDMETHOD_(HRESULT,Clear)(THIS) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IWSDHttpMessageParameters_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IWSDHttpMessageParameters_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IWSDHttpMessageParameters_Release(This) (This)->pVtbl->Release(This)
+#define IWSDHttpMessageParameters_GetLocalAddress(This,ppAddress) (This)->lpVtbl->GetLocalAddress(This,ppAddress)
+#define IWSDHttpMessageParameters_SetLocalAddress(This,pAddress) (This)->lpVtbl->SetLocalAddress(This,pAddress)
+#define IWSDHttpMessageParameters_GetRemoteAddress(This,ppAddress) (This)->lpVtbl->GetRemoteAddress(This,ppAddress)
+#define IWSDHttpMessageParameters_SetRemoteAddress(This,pAddress) (This)->lpVtbl->SetRemoteAddress(This,pAddress)
+#define IWSDHttpMessageParameters_GetLowerParameters(This,ppTxParams) (This)->lpVtbl->GetLowerParameters(This,ppTxParams)
+#define IWSDHttpMessageParameters_SetInboundHttpHeaders(This,pszHeaders) (This)->lpVtbl->SetInboundHttpHeaders(This,pszHeaders)
+#define IWSDHttpMessageParameters_GetInboundHttpHeaders(This,ppszHeaders) (This)->lpVtbl->GetInboundHttpHeaders(This,ppszHeaders)
+#define IWSDHttpMessageParameters_SetOutboundHttpHeaders(This,pszHeaders) (This)->lpVtbl->SetOutboundHttpHeaders(This,pszHeaders)
+#define IWSDHttpMessageParameters_GetOutboundHttpHeaders(This,ppszHeaders) (This)->lpVtbl->GetOutboundHttpHeaders(This,ppszHeaders)
+#define IWSDHttpMessageParameters_SetID(This,pszId) (This)->lpVtbl->SetID(This,pszId)
+#define IWSDHttpMessageParameters_GetID(This,ppszId) (This)->lpVtbl->GetID(This,ppszId)
+#define IWSDHttpMessageParameters_SetContext(This,pContext) (This)->lpVtbl->SetContext(This,pContext)
+#define IWSDHttpMessageParameters_GetContext(This,ppContext) (This)->lpVtbl->GetContext(This,ppContext)
+#define IWSDHttpMessageParameters_Clear() (This)->lpVtbl->Clear(This)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IWSDUdpMessageParameters
+DECLARE_INTERFACE_(IWSDUdpMessageParameters,IWSDMessageParameters)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IWSDServiceMessaging methods */
+ STDMETHOD_(HRESULT,GetLocalAddress)(THIS_ IWSDAddress **ppAddress) PURE;
+ STDMETHOD_(HRESULT,SetLocalAddress)(THIS_ IWSDAddress *pAddress) PURE;
+ STDMETHOD_(HRESULT,GetRemoteAddress)(THIS_ IWSDAddress **ppAddress) PURE;
+ STDMETHOD_(HRESULT,SetRemoteAddress)(THIS_ IWSDAddress *pAddress) PURE;
+ STDMETHOD_(HRESULT,GetLowerParameters)(THIS_ IWSDMessageParameters **ppTxParams) PURE;
+
+ /* IWSDUdpMessageParameters methods */
+ STDMETHOD_(HRESULT,SetRetransmitParams)(THIS_ const WSDUdpRetransmitParams *pParams) PURE;
+ STDMETHOD_(HRESULT,GetRetransmitParams)(THIS_ WSDUdpRetransmitParams *pParams) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IWSDUdpMessageParameters_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IWSDUdpMessageParameters_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IWSDUdpMessageParameters_Release(This) (This)->pVtbl->Release(This)
+#define IWSDUdpMessageParameters_GetLocalAddress(This,ppAddress) (This)->lpVtbl->GetLocalAddress(This,ppAddress)
+#define IWSDUdpMessageParameters_SetLocalAddress(This,pAddress) (This)->lpVtbl->SetLocalAddress(This,pAddress)
+#define IWSDUdpMessageParameters_GetRemoteAddress(This,ppAddress) (This)->lpVtbl->GetRemoteAddress(This,ppAddress)
+#define IWSDUdpMessageParameters_SetRemoteAddress(This,pAddress) (This)->lpVtbl->SetRemoteAddress(This,pAddress)
+#define IWSDUdpMessageParameters_GetLowerParameters(This,ppTxParams) (This)->lpVtbl->GetLowerParameters(This,ppTxParams)
+#define IWSDUdpMessageParameters_SetRetransmitParams(This,pParams) (This)->lpVtbl->SetRetransmitParams(This,pParams)
+#define IWSDUdpMessageParameters_GetRetransmitParams(This,pParams) (This)->lpVtbl->GetRetransmitParams(This,pParams)
+#endif /*COBJMACROS*/
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+HRESULT WINAPI WSDCreateHttpAddress(
+ IWSDHttpAddress **ppAddress
+);
+
+HRESULT WINAPI WSDCreateHttpMessageParameters(
+ IWSDHttpMessageParameters **ppTxParams
+);
+
+HRESULT WINAPI WSDCreateUdpAddress(
+ IWSDUdpAddress **ppAddress
+);
+
+HRESULT WINAPI WSDCreateUdpMessageParameters(
+ IWSDUdpMessageParameters **ppTxParams
+);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_WSDBASE*/
diff --git a/mingw-w64-headers/include/wsdclient.h b/mingw-w64-headers/include/wsdclient.h
new file mode 100644
index 0000000..cc23d4c
--- /dev/null
+++ b/mingw-w64-headers/include/wsdclient.h
@@ -0,0 +1,255 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_WSDCLIENT
+#define _INC_WSDCLIENT
+#if (_WIN32_WINNT >= 0x0600)
+
+#undef INTERFACE
+#define INTERFACE IWSDEventingStatus
+DECLARE_INTERFACE_(IWSDEventingStatus,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IWSDEventingStatus methods */
+ STDMETHOD(SubscriptionRenewed)(THIS_ LPCWSTR pszSubscriptionAction) PURE;
+ STDMETHOD(SubscriptionRenewalFailed)(THIS_ LPCWSTR pszSubscriptionAction,HRESULT hr) PURE;
+ STDMETHOD(SubscriptionEnded)(THIS_ LPCWSTR pszSubscriptionAction) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IWSDEventingStatus_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IWSDEventingStatus_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IWSDEventingStatus_Release(This) (This)->pVtbl->Release(This)
+#define IWSDEventingStatus_SubscriptionRenewed(This,pszSubscriptionAction) (This)->lpVtbl->SubscriptionRenewed(This,pszSubscriptionAction)
+#define IWSDEventingStatus_SubscriptionRenewalFailed(This,pszSubscriptionAction,hr) (This)->lpVtbl->SubscriptionRenewalFailed(This,pszSubscriptionAction,hr)
+#define IWSDEventingStatus_SubscriptionEnded(This,pszSubscriptionAction) (This)->lpVtbl->SubscriptionEnded(This,pszSubscriptionAction)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IWSDAsyncCallback
+DECLARE_INTERFACE_(IWSDAsyncCallback,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IWSDAsyncCallback methods */
+ STDMETHOD_(HRESULT,AsyncOperationComplete)(THIS_ IWSDAsyncResult *pAsyncResult,IUnknown *pAsyncState) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IWSDAsyncCallback_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IWSDAsyncCallback_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IWSDAsyncCallback_Release(This) (This)->pVtbl->Release(This)
+#define IWSDAsyncCallback_AsyncOperationComplete(This,pAsyncResult,pAsyncState) (This)->lpVtbl->AsyncOperationComplete(This,pAsyncResult,pAsyncState)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IWSDAsyncResult
+DECLARE_INTERFACE_(IWSDAsyncResult,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IWSDAsyncResult methods */
+ STDMETHOD_(HRESULT,SetCallback)(THIS_ IWSDAsyncCallback *pCallback,IUnknown *pAsyncState) PURE;
+ STDMETHOD_(HRESULT,SetWaitHandle)(THIS_ HANDLE hWaitHandle) PURE;
+ STDMETHOD_(HRESULT,HasCompleted)(THIS) PURE;
+ STDMETHOD_(HRESULT,GetAsyncState)(THIS_ IUnknown **ppAsyncState) PURE;
+ STDMETHOD_(HRESULT,Abort)(THIS) PURE;
+ STDMETHOD_(HRESULT,GetEvent)(THIS_ WSD_EVENT *pEvent) PURE;
+ STDMETHOD_(HRESULT,GetEndpointProxy)(THIS_ IWSDEndpointProxy **ppEndpoint) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IWSDAsyncResult_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IWSDAsyncResult_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IWSDAsyncResult_Release(This) (This)->pVtbl->Release(This)
+#define IWSDAsyncResult_SetCallback(This,pCallback,pAsyncState) (This)->lpVtbl->SetCallback(This,pCallback,pAsyncState)
+#define IWSDAsyncResult_SetWaitHandle(This,hWaitHandle) (This)->lpVtbl->SetWaitHandle(This,hWaitHandle)
+#define IWSDAsyncResult_HasCompleted() (This)->lpVtbl->HasCompleted(This)
+#define IWSDAsyncResult_GetAsyncState(This,ppAsyncState) (This)->lpVtbl->GetAsyncState(This,ppAsyncState)
+#define IWSDAsyncResult_Abort() (This)->lpVtbl->Abort(This)
+#define IWSDAsyncResult_GetEvent(This,pEvent) (This)->lpVtbl->GetEvent(This,pEvent)
+#define IWSDAsyncResult_GetEndpointProxy(This,ppEndpoint) (This)->lpVtbl->GetEndpointProxy(This,ppEndpoint)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IWSDDeviceProxy
+DECLARE_INTERFACE_(IWSDDeviceProxy,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IWSDDeviceProxy methods */
+ STDMETHOD_(HRESULT,Init)(THIS_ LPCWSTR pszDeviceId,IWSDAddress *pDeviceAddress,LPCWSTR pszLocalId,IWSDDeviceProxy *pSponsor) PURE;
+ STDMETHOD_(HRESULT,BeginGetMetadata)(THIS_ IWSDAsyncResult **ppResult) PURE;
+ STDMETHOD_(HRESULT,EndGetMetadata)(THIS_ IWSDAsyncResult *pResult) PURE;
+ STDMETHOD_(HRESULT,GetHostMetadata)(THIS_ WSD_HOST_METADATA **ppHostMetadata) PURE;
+ STDMETHOD_(HRESULT,GetThisModelMetadata)(THIS_ WSD_THIS_MODEL_METADATA **ppManufacturerMetadata) PURE;
+ STDMETHOD_(HRESULT,GetThisDeviceMetadata)(THIS_ WSD_THIS_DEVICE_METADATA **ppThisDeviceMetadata) PURE;
+ STDMETHOD_(HRESULT,GetAllMetadata)(THIS_ WSD_METADATA_SECTION_LIST **ppMetadata) PURE;
+ STDMETHOD_(HRESULT,GetServiceProxyById)(THIS_ LPCWSTR pszServiceId,IWSDServiceProxy **ppServiceProxy) PURE;
+ STDMETHOD_(HRESULT,GetServiceProxyByType)(THIS_ const WSDXML_NAME *pType,IWSDServiceProxy **ppServiceProxy) PURE;
+ STDMETHOD_(HRESULT,GetEndpointProxy)(THIS_ IWSDEndpointProxy **ppProxy) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IWSDDeviceProxy_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IWSDDeviceProxy_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IWSDDeviceProxy_Release(This) (This)->pVtbl->Release(This)
+#define IWSDDeviceProxy_Init(This,pszDeviceId,pDeviceAddress,pszLocalId,pSponsor) (This)->lpVtbl->Init(This,pszDeviceId,pDeviceAddress,pszLocalId,pSponsor)
+#define IWSDDeviceProxy_BeginGetMetadata(This,ppResult) (This)->lpVtbl->BeginGetMetadata(This,ppResult)
+#define IWSDDeviceProxy_EndGetMetadata(This,pResult) (This)->lpVtbl->EndGetMetadata(This,pResult)
+#define IWSDDeviceProxy_GetHostMetadata(This,ppHostMetadata) (This)->lpVtbl->GetHostMetadata(This,ppHostMetadata)
+#define IWSDDeviceProxy_GetThisModelMetadata(This,ppManufacturerMetadata) (This)->lpVtbl->GetThisModelMetadata(This,ppManufacturerMetadata)
+#define IWSDDeviceProxy_GetThisDeviceMetadata(This,ppThisDeviceMetadata) (This)->lpVtbl->GetThisDeviceMetadata(This,ppThisDeviceMetadata)
+#define IWSDDeviceProxy_GetAllMetadata(This,ppMetadata) (This)->lpVtbl->GetAllMetadata(This,ppMetadata)
+#define IWSDDeviceProxy_GetServiceProxyById(This,pszServiceId,ppServiceProxy) (This)->lpVtbl->GetServiceProxyById(This,pszServiceId,ppServiceProxy)
+#define IWSDDeviceProxy_GetServiceProxyByType(This,pType,ppServiceProxy) (This)->lpVtbl->GetServiceProxyByType(This,pType,ppServiceProxy)
+#define IWSDDeviceProxy_GetEndpointProxy(This,ppProxy) (This)->lpVtbl->GetEndpointProxy(This,ppProxy)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IWSDMetadataExchange
+DECLARE_INTERFACE_(IWSDMetadataExchange,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IWSDMetadataExchange methods */
+ STDMETHOD_(HRESULT,GetMetadata)(THIS_ WSD_METADATA_SECTION_LIST **MetadataOut) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IWSDMetadataExchange_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IWSDMetadataExchange_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IWSDMetadataExchange_Release(This) (This)->pVtbl->Release(This)
+#define IWSDMetadataExchange_GetMetadata(This,MetadataOut) (This)->lpVtbl->GetMetadata(This,MetadataOut)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IWSDServiceProxy
+DECLARE_INTERFACE_(IWSDServiceProxy,IWSDMetadataExchange)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IWSDMetadataExchange methods */
+ STDMETHOD_(HRESULT,GetMetadata)(THIS_ WSD_METADATA_SECTION_LIST **MetadataOut) PURE;
+
+ /* IWSDServiceProxy methods */
+ STDMETHOD_(HRESULT,BeginGetMetadata)(THIS_ IWSDAsyncResult **ppResult) PURE;
+ STDMETHOD_(HRESULT,EndGetMetadata)(THIS_ IWSDAsyncResult *pResult,WSD_METADATA_SECTION_LIST **ppMetadata) PURE;
+ STDMETHOD_(HRESULT,GetServiceMetadata)(THIS_ WSD_SERVICE_METADATA **ppServiceMetadata) PURE;
+ STDMETHOD_(HRESULT,SubscribeToOperation)(THIS_ const WSD_OPERATION *pOperation,IUnknown *pUnknown,const WSDXML_ELEMENT *pAny,WSDXML_ELEMENT **ppAny) PURE;
+ STDMETHOD_(HRESULT,UnsubscribeToOperation)(THIS_ const WSD_OPERATION *pOperation) PURE;
+ STDMETHOD_(HRESULT,SetEventingStatusCallback)(THIS_ IWSDEventingStatus *pStatus) PURE;
+ STDMETHOD_(HRESULT,GetEndpointProxy)(THIS_ IWSDEndpointProxy **ppProxy) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IWSDServiceProxy_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IWSDServiceProxy_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IWSDServiceProxy_Release(This) (This)->pVtbl->Release(This)
+#define IWSDServiceProxy_BeginGetMetadata(This,ppResult) (This)->lpVtbl->BeginGetMetadata(This,ppResult)
+#define IWSDServiceProxy_EndGetMetadata(This,pResult,ppMetadata) (This)->lpVtbl->EndGetMetadata(This,pResult,ppMetadata)
+#define IWSDServiceProxy_GetServiceMetadata(This,ppServiceMetadata) (This)->lpVtbl->GetServiceMetadata(This,ppServiceMetadata)
+#define IWSDServiceProxy_SubscribeToOperation(This,pOperation,pUnknown,pAny,ppAny) (This)->lpVtbl->SubscribeToOperation(This,pOperation,pUnknown,pAny,ppAny)
+#define IWSDServiceProxy_UnsubscribeToOperation(This,pOperation) (This)->lpVtbl->UnsubscribeToOperation(This,pOperation)
+#define IWSDServiceProxy_SetEventingStatusCallback(This,pStatus) (This)->lpVtbl->SetEventingStatusCallback(This,pStatus)
+#define IWSDServiceProxy_GetEndpointProxy(This,ppProxy) (This)->lpVtbl->GetEndpointProxy(This,ppProxy)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IWSDEndpointProxy
+DECLARE_INTERFACE_(IWSDEndpointProxy,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IWSDEndpointProxy methods */
+ STDMETHOD_(HRESULT,SendOneWayRequest)(THIS_ const void *pBody,const WSD_OPERATION *pOperation) PURE;
+ STDMETHOD_(HRESULT,SendTwoWayRequest)(THIS_ const void *pBody,const WSD_OPERATION *pOperation,WSD_SYNCHRONOUS_RESPONSE_CONTEXT *pResponseContext) PURE;
+ STDMETHOD_(HRESULT,SendTwoWayRequestAsync)(THIS_ const void *pBody,const WSD_OPERATION *pOperation,IUnknown *pAsyncState,IWSDAsyncCallback *pCallback,IWSDAsyncResult **pResult) PURE;
+ STDMETHOD_(HRESULT,AbortAsyncOperation)(THIS_ IWSDAsyncResult *pAsyncResult) PURE;
+ STDMETHOD_(HRESULT,ProcessFault)(THIS_ const WSD_SOAP_FAULT *pFault) PURE;
+ STDMETHOD_(HRESULT,GetErrorInfo)(THIS_ const LPCWSTR *ppszErrorInfo) PURE;
+ STDMETHOD_(HRESULT,GetFaultInfo)(THIS_ WSD_SOAP_FAULT **ppFault) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IWSDEndpointProxy_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IWSDEndpointProxy_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IWSDEndpointProxy_Release(This) (This)->pVtbl->Release(This)
+#define IWSDEndpointProxy_SendOneWayRequest(This,pBody,pOperation) (This)->lpVtbl->SendOneWayRequest(This,pBody,pOperation)
+#define IWSDEndpointProxy_SendTwoWayRequest(This,pBody,pOperation,pResponseContext) (This)->lpVtbl->SendTwoWayRequest(This,pBody,pOperation,pResponseContext)
+#define IWSDEndpointProxy_SendTwoWayRequestAsync(This,pBody,pOperation,pAsyncState,pCallback,pResult) (This)->lpVtbl->SendTwoWayRequestAsync(This,pBody,pOperation,pAsyncState,pCallback,pResult)
+#define IWSDEndpointProxy_AbortAsyncOperation(This,pAsyncResult) (This)->lpVtbl->AbortAsyncOperation(This,pAsyncResult)
+#define IWSDEndpointProxy_ProcessFault(This,pFault) (This)->lpVtbl->ProcessFault(This,pFault)
+#define IWSDEndpointProxy_GetErrorInfo(This,ppszErrorInfo) (This)->lpVtbl->GetErrorInfo(This,ppszErrorInfo)
+#define IWSDEndpointProxy_GetFaultInfo(This,ppFault) (This)->lpVtbl->GetFaultInfo(This,ppFault)
+#endif /*COBJMACROS*/
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+HRESULT WINAPI WSDCreateDeviceProxy(
+ const WCHAR *pszDeviceId,
+ const WCHAR *pszLocalId,
+ IWSDXMLContext *pContext,
+ IWSDDeviceProxy **ppDeviceProxy
+);
+
+HRESULT WINAPI WSDCreateDeviceProxyAdvanced(
+ const WCHAR *pszDeviceId,
+ IWSDAddress *pDeviceAddress,
+ const WCHAR *pszLocalId,
+ IWSDXMLContext *pContext,
+ IWSDDeviceProxy **ppDeviceProxy
+);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_WSDCLIENT*/
diff --git a/mingw-w64-headers/include/wsddisco.h b/mingw-w64-headers/include/wsddisco.h
new file mode 100644
index 0000000..7f85298
--- /dev/null
+++ b/mingw-w64-headers/include/wsddisco.h
@@ -0,0 +1,232 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_WSDDISCO
+#define _INC_WSDDISCO
+#if (_WIN32_WINNT >= 0x0600)
+
+#undef INTERFACE
+#define INTERFACE IWSDScopeMatchingRule
+DECLARE_INTERFACE_(IWSDScopeMatchingRule,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IWSDScopeMatchingRule methods */
+ STDMETHOD_(HRESULT,GetScopeRule)(THIS_ LPCWSTR *ppszScopeMatchingRule) PURE;
+ STDMETHOD_(HRESULT,MatchScopes)(THIS_ LPCWSTR pszScope1,LPCWSTR pszScope2,BOOL *pfMatch) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IWSDScopeMatchingRule_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IWSDScopeMatchingRule_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IWSDScopeMatchingRule_Release(This) (This)->pVtbl->Release(This)
+#define IWSDScopeMatchingRule_GetScopeRule(This,ppszScopeMatchingRule) (This)->lpVtbl->GetScopeRule(This,ppszScopeMatchingRule)
+#define IWSDScopeMatchingRule_MatchScopes(This,pszScope1,pszScope2,pfMatch) (This)->lpVtbl->MatchScopes(This,pszScope1,pszScope2,pfMatch)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IWSDiscoveryPublisherNotify
+DECLARE_INTERFACE_(IWSDiscoveryPublisherNotify,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IWSDiscoveryPublisherNotify methods */
+ STDMETHOD_(HRESULT,ProbeHandler)(THIS_ const WSD_SOAP_MESSAGE *pSoap,IWSDMessageParameters *pMessageParameters) PURE;
+ STDMETHOD_(HRESULT,ResolveHandler)(THIS_ const WSD_SOAP_MESSAGE *pSoap,IWSDMessageParameters *pMessageParameters) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IWSDiscoveryPublisherNotify_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IWSDiscoveryPublisherNotify_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IWSDiscoveryPublisherNotify_Release(This) (This)->pVtbl->Release(This)
+#define IWSDiscoveryPublisherNotify_ProbeHandler(This,pSoap,pMessageParameters) (This)->lpVtbl->ProbeHandler(This,pSoap,pMessageParameters)
+#define IWSDiscoveryPublisherNotify_ResolveHandler(This,pSoap,pMessageParameters) (This)->lpVtbl->ResolveHandler(This,pSoap,pMessageParameters)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IWSDiscoveredService
+DECLARE_INTERFACE_(IWSDiscoveredService,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IWSDiscoveryProviderNotify methods */
+ STDMETHOD_(HRESULT *,GetEndpointReference)(THIS_ WSD_ENDPOINT_REFERENCE **ppEndPointReference) PURE;
+ STDMETHOD_(HRESULT,GetTypes)(THIS_ WSD_NAME_LIST **ppTypesList) PURE;
+ STDMETHOD_(HRESULT,GetScopes)(THIS_ WSD_URI_LIST **ppScopesList) PURE;
+ STDMETHOD_(HRESULT,GetXAddrs)(THIS_ WSD_URI_LIST **ppXAddrsList) PURE;
+ STDMETHOD_(HRESULT,GetMetadataVersion)(THIS_ ULONGLONG *pullMetadataVersion) PURE;
+ STDMETHOD_(HRESULT,GetExtendedDiscoXML)(THIS_ WSDXML_ELEMENT **ppHeaderAny,WSDXML_ELEMENT **ppBodyAny) PURE;
+ STDMETHOD_(HRESULT,GetProbeResolveTag)(THIS_ LPCWSTR *ppszTag) PURE;
+ STDMETHOD_(HRESULT,GetRemoteTransportAddress)(THIS_ LPCWSTR *ppszRemoteTransportAddress) PURE;
+ STDMETHOD_(HRESULT,GetLocalTransportAddress)(THIS_ LPCWSTR *ppszLocalTransportAddress) PURE;
+ STDMETHOD_(HRESULT,GetLocalInterfaceGUID)(THIS_ GUID *pGuid) PURE;
+ STDMETHOD_(HRESULT *,GetInstanceId)(THIS_ ULONGLONG *pullInstanceId) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IWSDiscoveredService_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IWSDiscoveredService_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IWSDiscoveredService_Release(This) (This)->pVtbl->Release(This)
+#define IWSDiscoveredService_GetEndpointReference(This,ppEndPointReference) (This)->lpVtbl->GetEndpointReference(This,ppEndPointReference)
+#define IWSDiscoveredService_GetTypes(This,ppTypesList) (This)->lpVtbl->GetTypes(This,ppTypesList)
+#define IWSDiscoveredService_GetScopes(This,ppScopesList) (This)->lpVtbl->GetScopes(This,ppScopesList)
+#define IWSDiscoveredService_GetXAddrs(This,ppXAddrsList) (This)->lpVtbl->GetXAddrs(This,ppXAddrsList)
+#define IWSDiscoveredService_GetMetadataVersion(This,pullMetadataVersion) (This)->lpVtbl->GetMetadataVersion(This,pullMetadataVersion)
+#define IWSDiscoveredService_GetExtendedDiscoXML(This,ppHeaderAny,ppBodyAny) (This)->lpVtbl->GetExtendedDiscoXML(This,ppHeaderAny,ppBodyAny)
+#define IWSDiscoveredService_GetProbeResolveTag(This,ppszTag) (This)->lpVtbl->GetProbeResolveTag(This,ppszTag)
+#define IWSDiscoveredService_GetRemoteTransportAddress(This,ppszRemoteTransportAddress) (This)->lpVtbl->GetRemoteTransportAddress(This,ppszRemoteTransportAddress)
+#define IWSDiscoveredService_GetLocalTransportAddress(This,ppszLocalTransportAddress) (This)->lpVtbl->GetLocalTransportAddress(This,ppszLocalTransportAddress)
+#define IWSDiscoveredService_GetLocalInterfaceGUID(This,pGuid) (This)->lpVtbl->GetLocalInterfaceGUID(This,pGuid)
+#define IWSDiscoveredService_GetInstanceId(This,pullInstanceId) (This)->lpVtbl->GetInstanceId(This,pullInstanceId)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IWSDiscoveryProviderNotify
+DECLARE_INTERFACE_(IWSDiscoveryProviderNotify,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IWSDiscoveryProviderNotify methods */
+ STDMETHOD_(HRESULT,Add)(THIS_ IWSDiscoveredService *pService) PURE;
+ STDMETHOD_(HRESULT,Remove)(THIS_ IWSDiscoveredService *pService) PURE;
+ STDMETHOD_(HRESULT,SearchFailed)(THIS_ HRESULT hr,LPCWSTR pszTag) PURE;
+ STDMETHOD_(HRESULT,SearchComplete)(THIS_ LPCWSTR pszTag) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IWSDiscoveryProviderNotify_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IWSDiscoveryProviderNotify_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IWSDiscoveryProviderNotify_Release(This) (This)->pVtbl->Release(This)
+#define IWSDiscoveryProviderNotify_Add(This,pService) (This)->lpVtbl->Add(This,pService)
+#define IWSDiscoveryProviderNotify_Remove(This,pService) (This)->lpVtbl->Remove(This,pService)
+#define IWSDiscoveryProviderNotify_SearchFailed(This,hr,pszTag) (This)->lpVtbl->SearchFailed(This,hr,pszTag)
+#define IWSDiscoveryProviderNotify_SearchComplete(This,pszTag) (This)->lpVtbl->SearchComplete(This,pszTag)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IWSDiscoveryProvider
+DECLARE_INTERFACE_(IWSDiscoveryProvider,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IWSDiscoveryProvider methods */
+ STDMETHOD_(HRESULT,SetAddressFamily)(THIS_ DWORD dwAddressFamily) PURE;
+ STDMETHOD_(HRESULT,Attach)(THIS_ IWSDiscoveryProviderNotify *pSink) PURE;
+ STDMETHOD_(HRESULT,Detach)(THIS) PURE;
+ STDMETHOD_(HRESULT,SearchById)(THIS_ LPCWSTR pszId,LPCWSTR pszTag) PURE;
+ STDMETHOD_(HRESULT,SearchByAddress)(THIS_ LPCWSTR pszAddress,LPCWSTR pszTag) PURE;
+ STDMETHOD_(HRESULT,SearchByType)(THIS_ LPCWSTR pszTag) PURE;
+ STDMETHOD_(HRESULT,GetXMLContext)(THIS_ IWSDXMLContext **ppContext) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IWSDiscoveryProvider_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IWSDiscoveryProvider_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IWSDiscoveryProvider_Release(This) (This)->pVtbl->Release(This)
+#define IWSDiscoveryProvider_SetAddressFamily(This,dwAddressFamily) (This)->lpVtbl->SetAddressFamily(This,dwAddressFamily)
+#define IWSDiscoveryProvider_Attach(This,pSink) (This)->lpVtbl->Attach(This,pSink)
+#define IWSDiscoveryProvider_Detach() (This)->lpVtbl->Detach(This)
+#define IWSDiscoveryProvider_SearchById(This,pszId,pszTag) (This)->lpVtbl->SearchById(This,pszId,pszTag)
+#define IWSDiscoveryProvider_SearchByAddress(This,pszAddress,pszTag) (This)->lpVtbl->SearchByAddress(This,pszAddress,pszTag)
+#define IWSDiscoveryProvider_SearchByType(This,pszTag) (This)->lpVtbl->SearchByType(This,pszTag)
+#define IWSDiscoveryProvider_GetXMLContext(This,ppContext) (This)->lpVtbl->GetXMLContext(This,ppContext)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IWSDiscoveryPublisher
+DECLARE_INTERFACE_(IWSDiscoveryPublisher,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IWSDiscoveryPublisher methods */
+ STDMETHOD_(HRESULT,SetAddressFamily)(THIS_ DWORD dwAddressFamily) PURE;
+ STDMETHOD_(HRESULT,RegisterNotificationSink)(THIS_ IWSDiscoveryPublisherNotify *pSink) PURE;
+ STDMETHOD_(HRESULT,UnRegisterNotificationSink)(THIS_ IWSDiscoveryPublisherNotify *pSink) PURE;
+ STDMETHOD_(HRESULT,Publish)(THIS_ LPCWSTR pszId,ULONGLONG ullMetadataVersion,ULONGLONG ullInstanceId,ULONGLONG ullMessageNumber,const WSD_URI_LIST *pXAddrsList) PURE;
+ STDMETHOD_(HRESULT,UnPublish)(THIS_ LPCWSTR pszDeviceId,ULONGLONG ullInstanceId,ULONGLONG ullMessageNumber,const WSDXML_ELEMENT *pAny) PURE;
+ STDMETHOD_(HRESULT,MatchProbe)(THIS_ const WSD_SOAP_MESSAGE *pProbeMessage,IWSDMessageParameters *pMessageParameters,LPCWSTR pszId,ULONGLONG ullMetadataVersion,ULONGLONG ullInstanceId,ULONGLONG ullMessageNumber,const WSD_URI_LIST *pXAddrsList) PURE;
+ STDMETHOD_(HRESULT,MatchResolve)(THIS_ const WSD_SOAP_MESSAGE *pResolveMessage,IWSDMessageParameters *pMessageParameters,LPCWSTR pszId,ULONGLONG ullMetadataVersion,ULONGLONG ullInstanceId,ULONGLONG ullMessageNumber,const WSD_URI_LIST *pXAddrsList) PURE;
+ STDMETHOD_(HRESULT,PublishEx)(THIS_ LPCWSTR pszId,ULONGLONG ullMetadataVersion,ULONGLONG ullInstanceId,ULONGLONG ullMessageNumber,const WSDXML_ELEMENT *pAny) PURE;
+ STDMETHOD_(HRESULT,MatchProbeEx)(THIS_ const WSD_SOAP_MESSAGE *pProbeMessage,IWSDMessageParameters *pMessageParameters,LPCWSTR pszId,ULONGLONG ullMetadataVersion,ULONGLONG ullInstanceId,ULONGLONG ullMessageNumber,const WSDXML_ELEMENT *pAny) PURE;
+ STDMETHOD_(HRESULT,MatchResolveEx)(THIS_ const WSD_SOAP_MESSAGE *pResolveMessage,IWSDMessageParameters *pMessageParameters,LPCWSTR pszId,ULONGLONG ullMetadataVersion,ULONGLONG ullInstanceId,ULONGLONG ullMessageNumber,const WSDXML_ELEMENT *pAny) PURE;
+ STDMETHOD_(HRESULT,RegisterScopeMatchingRule)(THIS_ IWSDScopeMatchingRule *pScopeMatchingRule) PURE;
+ STDMETHOD_(HRESULT,UnRegisterScopeMatchingRule)(THIS_ IWSDScopeMatchingRule *pScopeMatchingRule) PURE;
+ STDMETHOD_(HRESULT,GetXMLContext)(THIS_ IWSDXMLContext **ppContext) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IWSDiscoveryPublisher_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IWSDiscoveryPublisher_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IWSDiscoveryPublisher_Release(This) (This)->pVtbl->Release(This)
+#define IWSDiscoveryPublisher_SetAddressFamily(This,dwAddressFamily) (This)->lpVtbl->SetAddressFamily(This,dwAddressFamily)
+#define IWSDiscoveryPublisher_RegisterNotificationSink(This,pSink) (This)->lpVtbl->RegisterNotificationSink(This,pSink)
+#define IWSDiscoveryPublisher_UnRegisterNotificationSink(This,pSink) (This)->lpVtbl->UnRegisterNotificationSink(This,pSink)
+#define IWSDiscoveryPublisher_Publish(This,pszId,ullMetadataVersion,ullInstanceId,ullMessageNumber,pXAddrsList) (This)->lpVtbl->Publish(This,pszId,ullMetadataVersion,ullInstanceId,ullMessageNumber,pXAddrsList)
+#define IWSDiscoveryPublisher_UnPublish(This,pszDeviceId,ullInstanceId,ullMessageNumber,pAny) (This)->lpVtbl->UnPublish(This,pszDeviceId,ullInstanceId,ullMessageNumber,pAny)
+#define IWSDiscoveryPublisher_MatchProbe(This,pProbeMessage,pMessageParameters,pszId,ullMetadataVersion,ullInstanceId,ullMessageNumber,pXAddrsList) (This)->lpVtbl->MatchProbe(This,pProbeMessage,pMessageParameters,pszId,ullMetadataVersion,ullInstanceId,ullMessageNumber,pXAddrsList)
+#define IWSDiscoveryPublisher_MatchResolve(This,pResolveMessage,pMessageParameters,pszId,ullMetadataVersion,ullInstanceId,ullMessageNumber,pXAddrsList) (This)->lpVtbl->MatchResolve(This,pResolveMessage,pMessageParameters,pszId,ullMetadataVersion,ullInstanceId,ullMessageNumber,pXAddrsList)
+#define IWSDiscoveryPublisher_PublishEx(This,pszId,ullMetadataVersion,ullInstanceId,ullMessageNumber,pAny) (This)->lpVtbl->PublishEx(This,pszId,ullMetadataVersion,ullInstanceId,ullMessageNumber,pAny)
+#define IWSDiscoveryPublisher_MatchProbeEx(This,pProbeMessage,pMessageParameters,pszId,ullMetadataVersion,ullInstanceId,ullMessageNumber,pAny) (This)->lpVtbl->MatchProbeEx(This,pProbeMessage,pMessageParameters,pszId,ullMetadataVersion,ullInstanceId,ullMessageNumber,pAny)
+#define IWSDiscoveryPublisher_MatchResolveEx(This,pResolveMessage,pMessageParameters,pszId,ullMetadataVersion,ullInstanceId,ullMessageNumber,pAny) (This)->lpVtbl->MatchResolveEx(This,pResolveMessage,pMessageParameters,pszId,ullMetadataVersion,ullInstanceId,ullMessageNumber,pAny)
+#define IWSDiscoveryPublisher_RegisterScopeMatchingRule(This,pScopeMatchingRule) (This)->lpVtbl->RegisterScopeMatchingRule(This,pScopeMatchingRule)
+#define IWSDiscoveryPublisher_UnRegisterScopeMatchingRule(This,pScopeMatchingRule) (This)->lpVtbl->UnRegisterScopeMatchingRule(This,pScopeMatchingRule)
+#define IWSDiscoveryPublisher_GetXMLContext(This,ppContext) (This)->lpVtbl->GetXMLContext(This,ppContext)
+#endif /*COBJMACROS*/
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+HRESULT WINAPI WSDCreateDiscoveryProvider(
+ IWSDXMLContext *pContext,
+ IWSDiscoveryProvider **ppProvider
+);
+
+HRESULT WINAPI WSDCreateDiscoveryPublisher(
+ IWSDXMLContext *pContext,
+ IWSDiscoveryPublisher **ppPublisher
+);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_WSDDISCO*/
diff --git a/mingw-w64-headers/include/wsdhost.h b/mingw-w64-headers/include/wsdhost.h
new file mode 100644
index 0000000..fa67648
--- /dev/null
+++ b/mingw-w64-headers/include/wsdhost.h
@@ -0,0 +1,125 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_WSDHOST
+#define _INC_WSDHOST
+#if (_WIN32_WINNT >= 0x0600)
+#undef INTERFACE
+#define INTERFACE IWSDServiceMessaging
+DECLARE_INTERFACE_(IWSDServiceMessaging,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IWSDServiceMessaging methods */
+ STDMETHOD_(HRESULT,FaultRequest)(THIS_ WSD_SOAP_HEADER *pRequestHeader,IWSDMessageParameters *pMessageParameters,WSD_SOAP_FAULT *pFault) PURE;
+ STDMETHOD_(HRESULT,SendResponse)(THIS_ void *pBody,WSD_OPERATION *pOperation,IWSDMessageParameters *pMessageParameters) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IWSDServiceMessaging_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IWSDServiceMessaging_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IWSDServiceMessaging_Release(This) (This)->pVtbl->Release(This)
+#define IWSDServiceMessaging_FaultRequest(This,pRequestHeader,pMessageParameters,pFault) (This)->lpVtbl->FaultRequest(This,pRequestHeader,pMessageParameters,pFault)
+#define IWSDServiceMessaging_SendResponse(This,pBody,pOperation,pMessageParameters) (This)->lpVtbl->SendResponse(This,pBody,pOperation,pMessageParameters)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IWSDDeviceHostNotify
+DECLARE_INTERFACE_(IWSDDeviceHostNotify,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IWSDDeviceHostNotify methods */
+ STDMETHOD_(HRESULT,GetService)(THIS_ LPCWSTR pszServiceId,IUnknown **ppService) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IWSDDeviceHostNotify_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IWSDDeviceHostNotify_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IWSDDeviceHostNotify_Release(This) (This)->pVtbl->Release(This)
+#define IWSDDeviceHostNotify_GetService(This,pszServiceId,ppService) (This)->lpVtbl->GetService(This,pszServiceId,ppService)
+#endif /*COBJMACROS*/
+
+#undef INTERFACE
+#define INTERFACE IWSDDeviceHost
+DECLARE_INTERFACE_(IWSDDeviceHost,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IWSDDeviceHost methods */
+ STDMETHOD_(HRESULT,Init)(THIS_ LPCWSTR pszLocalId,DWORD dwHostAddressCount) PURE;
+ STDMETHOD_(HRESULT,Start)(THIS_ ULONGLONG ullInstanceId,const WSD_URI_LIST *pScopeList,IWSDDeviceHostNotify *pNotificationSink) PURE;
+ STDMETHOD_(HRESULT,Stop)(THIS) PURE;
+ STDMETHOD_(HRESULT,Terminate)(THIS) PURE;
+ STDMETHOD_(HRESULT,RegisterPortType)(THIS_ const WSD_PORT_TYPE *pPortType) PURE;
+ STDMETHOD_(HRESULT,SetMetadata)(THIS_ const WSD_THIS_MODEL_METADATA *pThisModelMetadata,const WSD_THIS_DEVICE_METADATA *pThisDeviceMetadata,const WSD_METADATA_SECTION_LIST *pCustomMetadata) PURE;
+ STDMETHOD_(HRESULT,RegisterService)(THIS_ LPCWSTR pszServiceId,IUnknown *pService) PURE;
+ STDMETHOD_(HRESULT,RetireService)(THIS_ LPCWSTR pszServiceId) PURE;
+ STDMETHOD_(HRESULT,AddDynamicService)(THIS_ LPCWSTR pszServiceId,IUnknown *pService) PURE;
+ STDMETHOD_(HRESULT,RemoveDynamicService)(THIS_ LPCWSTR pszServiceId) PURE;
+ STDMETHOD_(HRESULT,SetServiceDiscoverable)(THIS_ const WCHAR *pszServiceId,WINBOOL fDiscoverable) PURE;
+ STDMETHOD_(HRESULT,SignalEvent)(THIS_ LPCWSTR pszServiceId,const void *pBody,const WSD_OPERATION *pOperation) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IWSDDeviceHost_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IWSDDeviceHost_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IWSDDeviceHost_Release(This) (This)->pVtbl->Release(This)
+#define IWSDDeviceHost_Init(This,pszLocalId,dwHostAddressCount) (This)->lpVtbl->Init(This,pszLocalId,dwHostAddressCount)
+#define IWSDDeviceHost_Start(This,ullInstanceId,pScopeList,pNotificationSink) (This)->lpVtbl->Start(This,ullInstanceId,pScopeList,pNotificationSink)
+#define IWSDDeviceHost_Stop() (This)->lpVtbl->Stop(This)
+#define IWSDDeviceHost_Terminate() (This)->lpVtbl->Terminate(This)
+#define IWSDDeviceHost_RegisterPortType(This,pPortType) (This)->lpVtbl->RegisterPortType(This,pPortType)
+#define IWSDDeviceHost_SetMetadata(This,pThisModelMetadata,pThisDeviceMetadata,pCustomMetadata) (This)->lpVtbl->SetMetadata(This,pThisModelMetadata,pThisDeviceMetadata,pCustomMetadata)
+#define IWSDDeviceHost_RegisterService(This,pszServiceId,pService) (This)->lpVtbl->RegisterService(This,pszServiceId,pService)
+#define IWSDDeviceHost_RetireService(This,pszServiceId) (This)->lpVtbl->RetireService(This,pszServiceId)
+#define IWSDDeviceHost_AddDynamicService(This,pszServiceId,pService) (This)->lpVtbl->AddDynamicService(This,pszServiceId,pService)
+#define IWSDDeviceHost_RemoveDynamicService(This,pszServiceId) (This)->lpVtbl->RemoveDynamicService(This,pszServiceId)
+#define IWSDDeviceHost_SetServiceDiscoverable(This,pszServiceId,fDiscoverable) (This)->lpVtbl->SetServiceDiscoverable(This,pszServiceId,fDiscoverable)
+#define IWSDDeviceHost_SignalEvent(This,pszServiceId,pBody,pOperation) (This)->lpVtbl->SignalEvent(This,pszServiceId,pBody,pOperation)
+#endif /*COBJMACROS*/
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+HRESULT WINAPI WSDCreateDeviceHost(
+ const WCHAR *pszLocalId,
+ IWSDXMLContext *pContext,
+ IWSDDeviceHost **ppDeviceHost
+);
+
+HRESULT WSDCreateDeviceHostAdvanced(
+ const WCHAR *pszLocalId,
+ IWSDXMLContext *pContext,
+ IWSDAddress **ppHostAddresses,
+ DWORD dwHostAddressCount,
+ IWSDDeviceHost **ppDeviceHost
+);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_WSDHOST*/
diff --git a/mingw-w64-headers/include/wsdtypes.h b/mingw-w64-headers/include/wsdtypes.h
new file mode 100644
index 0000000..0ae5a14
--- /dev/null
+++ b/mingw-w64-headers/include/wsdtypes.h
@@ -0,0 +1,392 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_WSDTYPES
+#define _INC_WSDTYPES
+#if (_WIN32_WINNT >= 0x0600)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum _WSD_PROTOCOL_TYPE {
+ WSD_PT_NONE = 0x00,
+ WSD_PT_UDP = 0x01,
+ WSD_PT_HTTP = 0x02,
+ WSD_PT_HTTPS = 0x04,
+ WSD_PT_ALL = 0xff
+} WSD_PROTOCOL_TYPE;
+
+typedef enum _WSDEventType {
+ WSDET_NONE = 0,
+ WSDET_INCOMING_MESSAGE = 1,
+ WSDET_INCOMING_FAULT = 2,
+ WSDET_TRANSMISSION_FAILURE = 3,
+ WSDET_RESPONSE_TIMEOUT = 4
+} WSDEventType;
+
+typedef HRESULT ( *PWSD_SOAP_MESSAGE_HANDLER )(
+ IUnknown *thisUnknown,
+ WSD_EVENT *event
+);
+
+typedef HRESULT ( *WSD_STUB_FUNCTION )(
+ IUnknown *server,
+ IWSDServiceMessaging *session,
+ WSD_EVENT *event
+);
+
+typedef struct _WSD_HANDLER_CONTEXT {
+ PWSD_SOAP_MESSAGE_HANDLER Handler;
+ void *PVoid;
+ IUnknown *Unknown;
+} WSD_HANDLER_CONTEXT;
+
+typedef struct _WSD_REFERENCE_PROPERTIES {
+ WSDXML_ELEMENT *Any;
+} WSD_REFERENCE_PROPERTIES;
+
+typedef struct _WSD_REFERENCE_PARAMETERS {
+ WSDXML_ELEMENT *Any;
+} WSD_REFERENCE_PARAMETERS;
+
+typedef struct _WSD_ENDPOINT_REFERENCE {
+ const WCHAR *Address;
+ WSD_REFERENCE_PROPERTIES ReferenceProperties;
+ WSD_REFERENCE_PARAMETERS ReferenceParameters;
+ WSDXML_NAME *PortType;
+ WSDXML_NAME *ServiceName;
+ WSDXML_ELEMENT *Any;
+} WSD_ENDPOINT_REFERENCE;
+
+typedef struct _WSD_APP_SEQUENCE {
+ ULONGLONG InstanceId;
+ const WCHAR *SequenceId;
+ ULONGLONG MessageNumber;
+} WSD_APP_SEQUENCE;
+
+typedef struct _WSD_HEADER_RELATESTO {
+ WSDXML_NAME *RelationshipType;
+ const WCHAR *MessageID;
+} WSD_HEADER_RELATESTO;
+
+typedef struct _WSD_SOAP_HEADER {
+ const WCHAR *To;
+ const WCHAR *Action;
+ const WCHAR *MessageID;
+ WSD_HEADER_RELATESTO RelatesTo;
+ WSD_ENDPOINT_REFERENCE *ReplyTo;
+ WSD_ENDPOINT_REFERENCE *From;
+ WSD_ENDPOINT_REFERENCE *FaultTo;
+ WSD_APP_SEQUENCE *AppSequence;
+ WSDXML_ELEMENT *AnyHeaders;
+} WSD_SOAP_HEADER;
+
+typedef struct _WSD_SOAP_MESSAGE {
+ WSD_SOAP_HEADER Header;
+ void *Body;
+ WSDXML_TYPE *BodyType;
+} WSD_SOAP_MESSAGE;
+
+typedef struct _WSD_OPERATION {
+ WSDXML_TYPE *RequestType;
+ WSDXML_TYPE *ResponseType;
+ WSD_STUB_FUNCTION RequestStubFunction;
+} WSD_OPERATION;
+
+typedef struct _WSD_EVENT {
+ HRESULT Hr;
+ DWORD EventType;
+ WCHAR *DispatchTag;
+ WSD_HANDLER_CONTEXT HandlerContext;
+ WSD_SOAP_MESSAGE *Soap;
+ WSD_OPERATION *Operation;
+ IWSDMessageParameters *MessageParameters;
+} WSD_EVENT;
+
+typedef struct _WSD_SOAP_FAULT_SUBCODE {
+ WSDXML_NAME *Value;
+ WSD_SOAP_FAULT_SUBCODE *Subcode;
+} WSD_SOAP_FAULT_SUBCODE;
+
+typedef struct _WSD_SOAP_FAULT_CODE {
+ WSDXML_NAME *Value;
+ WSD_SOAP_FAULT_SUBCODE *Subcode;
+} WSD_SOAP_FAULT_CODE;
+
+typedef struct _WSD_LOCALIZED_STRING {
+ const WCHAR *lang;
+ const WCHAR *String;
+} WSD_LOCALIZED_STRING;
+
+typedef struct _WSD_LOCALIZED_STRING_LIST {
+ WSD_LOCALIZED_STRING_LIST *Next;
+ WSD_LOCALIZED_STRING *Element;
+} WSD_LOCALIZED_STRING_LIST;
+
+typedef struct _WSD_SOAP_FAULT_REASON {
+ WSD_LOCALIZED_STRING_LIST *Text;
+} WSD_SOAP_FAULT_REASON;
+
+typedef struct _WSD_SOAP_FAULT {
+ WSD_SOAP_FAULT_CODE *Code;
+ WSD_SOAP_FAULT_REASON *Reason;
+ const WCHAR *Node;
+ const WCHAR *Role;
+ WSDXML_ELEMENT *Detail;
+} WSD_SOAP_FAULT;
+
+typedef struct _REQUESTBODY_GetStatus {
+ WSDXML_ELEMENT *Any;
+} REQUESTBODY_GetStatus;
+
+typedef struct _WSD_DURATION {
+ WINBOOL isPositive;
+ ULONG year;
+ ULONG month;
+ ULONG day;
+ ULONG hour;
+ ULONG minute;
+ ULONG second;
+ ULONG millisecond;
+} WSD_DURATION;
+
+typedef struct _WSD_DATETIME {
+ WINBOOL isPositive;
+ ULONG year;
+ UCHAR month;
+ UCHAR day;
+ UCHAR hour;
+ UCHAR minute;
+ UCHAR second;
+ UINT millisecond;
+ WINBOOL TZIsLocal;
+ WINBOOL TZIsPositive;
+ UCHAR TZHour;
+ UCHAR TZMinute;
+} WSD_DATETIME;
+
+typedef struct _WSD_EVENTING_EXPIRES {
+ WSD_DURATION *Duration;
+ WSD_DATETIME *DateTime;
+} WSD_EVENTING_EXPIRES;
+
+typedef struct _REQUESTBODY_Renew {
+ WSD_EVENTING_EXPIRES *Expires;
+ WSDXML_ELEMENT *Any;
+} REQUESTBODY_Renew;
+
+typedef struct _WSD_EVENTING_DELIVERY_MODE {
+ const WCHAR *Mode;
+ void *Data;
+} WSD_EVENTING_DELIVERY_MODE;
+
+typedef struct _WSD_EVENTING_FILTER {
+ const WCHAR *Dialect;
+ void *Data;
+} WSD_EVENTING_FILTER;
+
+typedef struct _REQUESTBODY_Subscribe {
+ WSD_ENDPOINT_REFERENCE *EndTo;
+ WSD_EVENTING_DELIVERY_MODE *Delivery;
+ WSD_EVENTING_EXPIRES *Expires;
+ WSD_EVENTING_FILTER *Filter;
+ WSDXML_ELEMENT *Any;
+} REQUESTBODY_Subscribe;
+
+typedef struct _REQUESTBODY_Unsubscribe {
+ WSDXML_ELEMENT *any;
+} REQUESTBODY_Unsubscribe;
+
+typedef struct _WSD_METADATA_SECTION_LIST {
+ WSD_METADATA_SECTION_LIST *Next;
+ WSD_METADATA_SECTION *Element;
+} WSD_METADATA_SECTION_LIST;
+
+typedef struct _RESPONSEBODY_GetMetadata {
+ WSD_METADATA_SECTION_LIST *Metadata;
+} RESPONSEBODY_GetMetadata;
+
+typedef struct _RESPONSEBODY_GetStatus {
+ WSD_EVENTING_EXPIRES *expires;
+ WSDXML_ELEMENT *any;
+} RESPONSEBODY_GetStatus;
+
+typedef struct _RESPONSEBODY_Renew {
+ WSD_EVENTING_EXPIRES *expires;
+ WSDXML_ELEMENT *Any;
+} RESPONSEBODY_Renew;
+
+typedef struct _RESPONSEBODY_Subscribe {
+ WSD_ENDPOINT_REFERENCE *SubscriptionManager;
+ WSD_EVENTING_EXPIRES *expires;
+ WSDXML_ELEMENT *Any;
+} RESPONSEBODY_Subscribe;
+
+typedef struct _RESPONSEBODY_SubscriptionEnd {
+ WSD_ENDPOINT_REFERENCE *SubscriptionManager;
+ const WCHAR *Status;
+ WSD_LOCALIZED_STRING *Reason;
+ WSDXML_ELEMENT *Any;
+} RESPONSEBODY_SubscriptionEnd;
+
+typedef struct _WSD_BYE {
+ WSD_ENDPOINT_REFERENCE *EndpointReference;
+ WSDXML_ELEMENT *Any;
+} WSD_BYE;
+
+typedef struct _WSD_ENDPOINT_REFERENCE_LIST {
+ WSD_ENDPOINT_REFERENCE_LIST *Next;
+ WSD_ENDPOINT_REFERENCE *Element;
+} WSD_ENDPOINT_REFERENCE_LIST;
+
+typedef struct _WSD_EVENTING_DELIVERY_MODE_PUSH {
+ WSD_ENDPOINT_REFERENCE *NotifyTo;
+} WSD_EVENTING_DELIVERY_MODE_PUSH;
+
+typedef struct _WSD_URI_LIST {
+ WSD_URI_LIST *Next;
+ const WCHAR *Element;
+} WSD_URI_LIST;
+
+typedef struct _WSD_EVENTING_FILTER_ACTION {
+ WSD_URI_LIST *Actions;
+} WSD_EVENTING_FILTER_ACTION;
+
+typedef struct _WSD_NAME_LIST {
+ WSD_NAME_LIST *Next;
+ WSDXML_NAME *Element;
+} WSD_NAME_LIST;
+
+typedef struct _WSD_SCOPES {
+ const WCHAR *MatchBy;
+ WSD_URI_LIST *Scopes;
+} WSD_SCOPES;
+
+typedef struct _WSD_HELLO {
+ WSD_ENDPOINT_REFERENCE *EndpointReference;
+ WSD_NAME_LIST *Types;
+ WSD_SCOPES *Scopes;
+ WSD_URI_LIST *XAddrs;
+ ULONGLONG MetadataVersion;
+ WSDXML_ELEMENT *Any;
+} WSD_HELLO;
+
+typedef struct _WSD_SERVICE_METADATA {
+ WSD_ENDPOINT_REFERENCE_LIST *EndpointReference;
+ WSD_NAME_LIST *Types;
+ const WCHAR *ServiceId;
+ WSDXML_ELEMENT *Any;
+} WSD_SERVICE_METADATA;
+
+typedef struct _WSD_SERVICE_METADATA_LIST {
+ WSD_SERVICE_METADATA_LIST *Next;
+ WSD_SERVICE_METADATA *Element;
+} WSD_SERVICE_METADATA_LIST;
+
+typedef struct _WSD_HOST_METADATA {
+ WSD_SERVICE_METADATA *Host;
+ WSD_SERVICE_METADATA_LIST *Hosted;
+} WSD_HOST_METADATA;
+
+typedef struct _WSD_METADATA_SECTION {
+ const WCHAR *Dialect;
+ const WCHAR *Identifier;
+ void *Data;
+ WSD_ENDPOINT_REFERENCE *MetadataReference;
+ const WCHAR *Location;
+ WSDXML_ELEMENT *Any;
+} WSD_METADATA_SECTION;
+
+typedef struct _WSD_PORT_TYPE {
+ DWORD EncodedName;
+ DWORD OperationCount;
+ WSD_OPERATION *Operations;
+ WSD_PROTOCOL_TYPE ProtocolType;
+} WSD_PORT_TYPE;
+
+typedef struct _WSD_PROBE {
+ WSD_NAME_LIST *Types;
+ WSD_SCOPES *Scopes;
+ WSDXML_ELEMENT *Any;
+} WSD_PROBE;
+
+typedef struct _WSD_PROBE_MATCH {
+ WSD_ENDPOINT_REFERENCE *EndpointReference;
+ WSD_NAME_LIST *Types;
+ WSD_SCOPES *Scopes;
+ WSD_URI_LIST *XAddrs;
+ ULONGLONG MetadataVersion;
+ WSDXML_ELEMENT *Any;
+} WSD_PROBE_MATCH;
+
+typedef struct _WSD_PROBE_MATCH_LIST {
+ WSD_PROBE_MATCH_LIST *Next;
+ WSD_PROBE_MATCH *Element;
+} WSD_PROBE_MATCH_LIST;
+
+typedef struct _WSD_PROBE_MATCHES {
+ WSD_PROBE_MATCH_LIST *ProbeMatch;
+ WSDXML_ELEMENT *Any;
+} WSD_PROBE_MATCHES;
+
+typedef struct _WSD_RELATIONSHIP_METADATA {
+ const WCHAR *Type;
+ WSD_HOST_METADATA *Data;
+ WSDXML_ELEMENT *Any;
+} WSD_RELATIONSHIP_METADATA;
+
+typedef struct _WSD_RESOLVE {
+ WSD_ENDPOINT_REFERENCE *EndpointReference;
+ WSDXML_ELEMENT *Any;
+} WSD_RESOLVE;
+
+typedef struct _WSD_RESOLVE_MATCH {
+ WSD_ENDPOINT_REFERENCE *EndpointReference;
+ WSD_NAME_LIST *Types;
+ WSD_SCOPES *Scopes;
+ WSD_URI_LIST *XAddrs;
+ ULONGLONG MetadataVersion;
+ WSDXML_ELEMENT *Any;
+} WSD_RESOLVE_MATCH;
+
+typedef struct _WSD_RESOLVE_MATCHES {
+ WSD_RESOLVE_MATCH *ResolveMatch;
+ WSDXML_ELEMENT *Any;
+} WSD_RESOLVE_MATCHES;
+
+typedef struct _WSD_SYNCHRONOUS_RESPONSE_CONTEXT {
+ HRESULT hr;
+ HANDLE eventHandle;
+ IWSDMessageParameters *messageParameters;
+ void *results;
+} WSD_SYNCHRONOUS_RESPONSE_CONTEXT;
+
+typedef struct _WSD_THIS_DEVICE_METADATA {
+ WSD_LOCALIZED_STRING_LIST *FriendlyName;
+ const WCHAR *FirmwareVersion;
+ const WCHAR *SerialNumber;
+ WSDXML_ELEMENT *Any;
+} WSD_THIS_DEVICE_METADATA;
+
+typedef struct _WSD_THIS_MODEL_METADATA {
+ WSD_LOCALIZED_STRING_LIST *Manufacturer;
+ const WCHAR *ManufacturerUrl;
+ WSD_LOCALIZED_STRING_LIST *ModelName;
+ const WCHAR *ModelNumber;
+ const WCHAR *ModelUrl;
+ const WCHAR *PresentationUrl;
+ WSDXML_ELEMENT *Any;
+} WSD_THIS_MODEL_METADATA;
+
+typedef struct _WSD_UNKNOWN_LOOKUP {
+ WSDXML_ELEMENT *Any;
+} WSD_UNKNOWN_LOOKUP;
+
+#ifdef __cplusplus
+}
+#endif
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_WSDTYPES*/
diff --git a/mingw-w64-headers/include/wsdutil.h b/mingw-w64-headers/include/wsdutil.h
new file mode 100644
index 0000000..58b0cc1
--- /dev/null
+++ b/mingw-w64-headers/include/wsdutil.h
@@ -0,0 +1,95 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_WSDUTIL
+#define _INC_WSDUTIL
+#if (_WIN32_WINNT >= 0x0600)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void* WINAPI WSDAllocateLinkedMemory(
+ void *pParent,
+ size_t cbSize
+);
+
+void WINAPI WSDAttachLinkedMemory(
+ void *pParent,
+ void *pChild
+);
+
+void WINAPI WSDDetachLinkedMemory(
+ void *pVoid
+);
+
+void WINAPI WSDFreeLinkedMemory(
+ void *pVoid
+);
+
+HRESULT WINAPI WSDGenerateFault(
+ const LPCWSTR *pszCode,
+ const LPCWSTR *pszSubCode,
+ const LPCWSTR *pszReason,
+ const LPCWSTR *pszDetail,
+ IWSDXMLContext *pContext,
+ WSD_SOAP_FAULT **ppFault
+);
+
+#define WSDAPI_OPTION_MAX_INBOUND_MESSAGE_SIZE 0x0001
+
+HRESULT WINAPI WSDGenerateFaultEx(
+ WSDXML_NAME *pCode,
+ WSDXML_NAME *pSubCode,
+ WSD_LOCALIZED_STRING_LIST *pReasons,
+ const LPCWSTR *pszDetail,
+ WSD_SOAP_FAULT **ppFault
+);
+
+HRESULT WINAPI WSDGetConfigurationOption(
+ DWORD dwOption,
+ LPVOID pVoid,
+ DWORD cbOutBuffer
+);
+
+HRESULT WINAPI WSDSetConfigurationOption(
+ DWORD dwOption,
+ LPVOID pVoid,
+ DWORD cbInBuffer
+);
+
+STDAPI WSDXMLAddChild(
+ WSDXML_ELEMENT *pParent,
+ WSDXML_ELEMENT *pChild
+);
+
+STDAPI WSDXMLAddSibling(
+ WSDXML_ELEMENT *pFirst,
+ WSDXML_ELEMENT *pSecond
+);
+
+STDAPI WSDXMLBuildAnyForSingleElement(
+ WSDXML_NAME *pElementName,
+ const LPCWSTR *pszText,
+ WSDXML_ELEMENT **ppAny
+);
+
+HRESULT WINAPI WSDXMLCleanupElement(
+ WSDXML_ELEMENT *pAny
+);
+
+STDAPI WSDXMLGetValueFromAny(
+ const WCHAR *pszNamespace,
+ const WCHAR *pszName,
+ WSDXML_ELEMENT *pAny,
+ const LPCWSTR *ppszValue
+);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_WSDUTIL*/
diff --git a/mingw-w64-headers/include/wsdxml.h b/mingw-w64-headers/include/wsdxml.h
new file mode 100644
index 0000000..9b71507
--- /dev/null
+++ b/mingw-w64-headers/include/wsdxml.h
@@ -0,0 +1,51 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_WSDXML
+#define _INC_WSDXML
+#if (_WIN32_WINNT >= 0x0600)
+
+#undef INTERFACE
+#define INTERFACE IWSDXMLContext
+DECLARE_INTERFACE_(IWSDXMLContext,IUnknown)
+{
+ BEGIN_INTERFACE
+
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* IWSDXMLContext methods */
+ STDMETHOD_(HRESULT,SetNamespaces)(THIS_ const PCWSDXML_NAMESPACE *pNamespaces,WORD wNamespacesCount,BYTE bLayerNumber) PURE;
+ STDMETHOD_(HRESULT,SetTypes)(THIS_ const PCWSDXML_TYPE *pTypes,DWORD dwTypesCount,BYTE bLayerNumber) PURE;
+ STDMETHOD_(HRESULT,AddNamespace)(THIS_ const LPCWSTR *pszUri,const LPCWSTR *pszSuggestedPrefix,WSDXML_NAMESPACE **ppNamespace) PURE;
+
+ END_INTERFACE
+};
+#ifdef COBJMACROS
+#define IWSDXMLContext_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
+#define IWSDXMLContext_AddRef(This) (This)->pVtbl->AddRef(This)
+#define IWSDXMLContext_Release(This) (This)->pVtbl->Release(This)
+#define IWSDXMLContext_SetNamespaces(This,pNamespaces,wNamespacesCount,bLayerNumber) (This)->lpVtbl->SetNamespaces(This,pNamespaces,wNamespacesCount,bLayerNumber)
+#define IWSDXMLContext_SetTypes(This,pTypes,dwTypesCount,bLayerNumber) (This)->lpVtbl->SetTypes(This,pTypes,dwTypesCount,bLayerNumber)
+#define IWSDXMLContext_AddNamespace(This,pszUri,pszSuggestedPrefix,ppNamespace) (This)->lpVtbl->AddNamespace(This,pszUri,pszSuggestedPrefix,ppNamespace)
+#endif /*COBJMACROS*/
+
+/* In WsdXml.idl
+HRESULT WINAPI WSDXMLCreateContext(
+ __out IWSDXMLContext **ppContext
+);
+
+HRESULT WINAPI WSDXMLGetNameFromBuiltinNamespace(
+ LPCWSTR pszNamespace,
+ LPCWSTR pszName,
+ WSDXML_NAME **ppName
+);
+
+*/
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_WSDXML*/
diff --git a/mingw-w64-headers/include/wsdxmldom.h b/mingw-w64-headers/include/wsdxmldom.h
new file mode 100644
index 0000000..87b5302
--- /dev/null
+++ b/mingw-w64-headers/include/wsdxmldom.h
@@ -0,0 +1,81 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_WSDXMLDOM
+#define _INC_WSDXMLDOM
+#if (_WIN32_WINNT >= 0x0600)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct _WSDXML_TYPE {
+ WCHAR *Uri;
+ BYTE *Table;
+} WSDXML_TYPE;
+
+typedef const WSDXML_TYPE *PCWSDXML_TYPE;
+
+typedef struct _WSDXML_NAMESPACE {
+ const WCHAR *Uri;
+ const WCHAR *PreferredPrefix;
+ WSDXML_NAME *Names;
+ WORD NamesCount;
+ WORD Encoding;
+} WSDXML_NAMESPACE;
+
+typedef const WSDXML_NAMESPACE *PCWSDXML_NAMESPACE;
+
+typedef struct _WSDXML_NAME {
+ WSDXML_NAMESPACE *Space;
+ WCHAR *LocalName;
+} WSDXML_NAME;
+
+typedef struct _WSDXML_NODE {
+ enum DUMMYUNIONNAME {
+ ElementType,
+ TextType
+ } Type;
+ WSDXML_ELEMENT *Parent;
+ WSDXML_NODE *Next;
+} WSDXML_NODE;
+
+typedef struct _WSDXML_TEXT {
+ WSDXML_NODE Node;
+ WCHAR *Text;
+} WSDXML_TEXT;
+
+typedef struct _WSDXML_ATTRIBUTE {
+ WSDXML_ELEMENT *Element;
+ WSDXML_ATTRIBUTE *Next;
+ WSDXML_NAME *Name;
+ WCHAR *Value;
+} WSDXML_ATTRIBUTE;
+
+typedef struct _WSDXML_PREFIX_MAPPING {
+ DWORD Refs;
+ WSDXML_PREFIX_MAPPING *Next;
+ WSDXML_NAMESPACE *Space;
+ WCHAR *Prefix;
+} WSDXML_PREFIX_MAPPING;
+
+typedef struct _WSDXML_ELEMENT {
+ WSDXML_NODE Node;
+ WSDXML_NAME *Name;
+ WSDXML_ATTRIBUTE *FirstAttribute;
+ WSDXML_NODE *FirstChild;
+ WSDXML_PREFIX_MAPPING *PrefixMappings;
+} WSDXML_ELEMENT;
+
+typedef struct _WSDXML_ELEMENT_LIST {
+ WSDXML_ELEMENT_LIST *Next;
+ WSDXML_ELEMENT *Element;
+} WSDXML_ELEMENT_LIST;
+
+#ifdef __cplusplus
+}
+#endif
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+#endif /*_INC_WSDXMLDOM*/
diff --git a/mingw-w64-headers/include/wsrm.h b/mingw-w64-headers/include/wsrm.h
index 4824009..731e43c 100644
--- a/mingw-w64-headers/include/wsrm.h
+++ b/mingw-w64-headers/include/wsrm.h
@@ -89,4 +89,63 @@
UCHAR FECGroupSize;
BOOLEAN fFECOnDemandParityEnabled;
} RM_FEC_INFO;
+
+#if (_WIN32_WINNT >= 0x0600)
+typedef enum _eWINDOW_ADVANCE_METHOD {
+ E_WINDOW_ADVANCE_BY_TIME = 1,
+ E_WINDOW_USE_AS_DATA_CACHE
+} eWINDOW_ADVANCE_METHOD;
+
+typedef struct _RM_FEC_INFO {
+ USHORT FECBlockSize;
+ USHORT FECProActivePackets;
+ UCHAR FECGroupSize;
+ BOOLEAN fFECOnDemandParityEnabled;
+} RM_FEC_INFO;
+
+typedef struct _RM_RECEIVER_STATS {
+ ULONGULONG NumODataPacketsReceived;
+ ULONGULONG NumRDataPacketsReceived;
+ ULONGULONG NumDuplicateDataPackets;
+ ULONGULONG DataBytesReceived;
+ ULONGULONG TotalBytesReceived;
+ ULONGULONG RateKBitsPerSecOverall;
+ ULONGULONG RateKBitsPerSecLast;
+ ULONGULONG TrailingEdgeSeqId;
+ ULONGULONG LeadingEdgeSeqId;
+ ULONGULONG AverageSequencesInWindow;
+ ULONGULONG MinSequencesInWindow;
+ ULONGULONG MaxSequencesInWindow;
+ ULONGULONG FirstNakSequenceNumber;
+ ULONGULONG NumPendingNaks;
+ ULONGULONG NumOutstandingNaks;
+ ULONGULONG NumDataPacketsBuffered;
+ ULONGULONG TotalSelectiveNaksSent;
+ ULONGULONG TotalParityNaksSent;
+} RM_RECEIVER_STATS;
+
+typedef struct _RM_SEND_WINDOW {
+ ULONG RateKbitsPerSec;
+ ULONG WindowSizeInMSecs;
+ ULONG WindowSizeInBytes;
+} RM_SEND_WINDOW;
+
+typedef struct _RM_SENDER_STATS {
+ ULONGULONG DataBytesSent;
+ ULONGULONG TotalBytesSent;
+ ULONGULONG NaksReceived;
+ ULONGULONG NaksReceivedTooLate;
+ ULONGULONG NumOutstandingNaks;
+ ULONGULONG NumNaksAfterRData;
+ ULONGULONG RepairPacketsSent;
+ ULONGULONG BufferSpaceAvailable;
+ ULONGULONG TrailingEdgeSeqId;
+ ULONGULONG LeadingEdgeSeqId;
+ ULONGULONG RateKBitsPerSecOverall;
+ ULONGULONG RateKBitsPerSecLast;
+ ULONGULONG TotalODataPacketsSent;
+} RM_SENDER_STATS;
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
#endif
diff --git a/mingw-w64-headers/include/wtsapi32.h b/mingw-w64-headers/include/wtsapi32.h
index 19d2f75..354ec1a 100644
--- a/mingw-w64-headers/include/wtsapi32.h
+++ b/mingw-w64-headers/include/wtsapi32.h
@@ -195,6 +195,145 @@
WINBOOL WINAPI WTSUnRegisterSessionNotification(HWND hWnd);
WINBOOL WINAPI WTSQueryUserToken(ULONG SessionId,PHANDLE phToken);
+#if (_WIN32_WINNT >= 0x0600)
+typedef struct _WTSCLIENTW {
+ WCHAR ClientName[CLIENTNAME_LENGTH + 1];
+ WCHAR Domain[DOMAIN_LENGTH + 1 ];
+ WCHAR UserName[USERNAME_LENGTH + 1];
+ WCHAR WorkDirectory[MAX_PATH + 1];
+ WCHAR InitialProgram[MAX_PATH + 1];
+ BYTE EncryptionLevel;
+ ULONG ClientAddressFamily;
+ USHORT ClientAddress[CLIENTADDRESS_LENGTH + 1];
+ USHORT HRes;
+ USHORT VRes;
+ USHORT ColorDepth;
+ WCHAR ClientDirectory[MAX_PATH + 1];
+ ULONG ClientBuildNumber;
+ ULONG ClientHardwareId;
+ USHORT ClientProductId;
+ USHORT OutBufCountHost;
+ USHORT OutBufCountClient;
+ USHORT OutBufLength;
+ WCHAR DeviceId[MAX_PATH + 1];
+} WTSCLIENTW, *PWTSCLIENTW;
+
+typedef struct _WTSCLIENTA {
+ CHAR ClientName[CLIENTNAME_LENGTH + 1];
+ CHAR Domain[DOMAIN_LENGTH + 1 ];
+ CHAR UserName[USERNAME_LENGTH + 1];
+ CHAR WorkDirectory[MAX_PATH + 1];
+ CHAR InitialProgram[MAX_PATH + 1];
+ BYTE EncryptionLevel;
+ ULONG ClientAddressFamily;
+ USHORT ClientAddress[CLIENTADDRESS_LENGTH + 1];
+ USHORT HRes;
+ USHORT VRes;
+ USHORT ColorDepth;
+ CHAR ClientDirectory[MAX_PATH + 1];
+ ULONG ClientBuildNumber;
+ ULONG ClientHardwareId;
+ USHORT ClientProductId;
+ USHORT OutBufCountHost;
+ USHORT OutBufCountClient;
+ USHORT OutBufLength;
+ CHAR DeviceId[MAX_PATH + 1];
+} WTSCLIENTA, *PWTSCLIENTA;
+
+__MINGW_TYPEDEF_AW(WTSCLIENT)
+__MINGW_TYPEDEF_AW(PWTSCLIENT)
+
+typedef struct _WTSINFOW {
+ WTS_CONNECTSTATE_CLASS State;
+ DWORD SessionId;
+ DWORD IncomingBytes;
+ DWORD OutgoingBytes;
+ DWORD IncomingCompressedBytes;
+ DWORD OutgoingCompressedBytes;
+ WCHAR WinStationName;
+ WCHAR Domain;
+ WCHAR UserName;
+ LARGE_INTEGER ConnectTime;
+ LARGE_INTEGER DisconnectTime;
+ LARGE_INTEGER LastInputTime;
+ LARGE_INTEGER LogonTime;
+ LARGE_INTEGER CurrentTime;
+} WTSINFOW, *PWTSINFOW;
+
+typedef struct _WTSINFOA {
+ WTS_CONNECTSTATE_CLASS State;
+ DWORD SessionId;
+ DWORD IncomingBytes;
+ DWORD OutgoingBytes;
+ DWORD IncomingCompressedBytes;
+ DWORD OutgoingCompressedBytes;
+ CHAR WinStationName;
+ CHAR Domain;
+ CHAR UserName;
+ LARGE_INTEGER ConnectTime;
+ LARGE_INTEGER DisconnectTime;
+ LARGE_INTEGER LastInputTime;
+ LARGE_INTEGER LogonTime;
+ LARGE_INTEGER CurrentTime;
+} WTSINFOA, *PWTSINFOA;
+
+__MINGW_TYPEDEF_AW(WTSINFO)
+__MINGW_TYPEDEF_AW(PWTSINFO)
+
+WINBOOL WINAPI WTSConnectSessionA(
+ ULONG LogonId,
+ ULONG TargetLogonId,
+ PSTR pPassword,
+ WINBOOL bWait
+);
+
+WINBOOL WINAPI WTSConnectSessionW(
+ ULONG LogonId,
+ ULONG TargetLogonId,
+ PWSTR pPassword,
+ WINBOOL bWait
+);
+
+WINBOOL WTSRegisterSessionNotificationEx(
+ HANDLE hServer,
+ HWND hWnd,
+ DWORD dwFlags
+);
+
+WINBOOL WINAPI WTSStartRemoteControlSessionA(
+ LPSTR pTargetServerName,
+ ULONG TargetLogonId,
+ BYTE HotkeyVk,
+ USHORT HotkeyModifiers
+);
+
+WINBOOL WINAPI WTSStartRemoteControlSessionW(
+ LPWSTR pTargetServerName,
+ ULONG TargetLogonId,
+ BYTE HotkeyVk,
+ USHORT HotkeyModifiers
+);
+
+#define WTSStartRemoteControlSession __MINGW_NAME_AW(WTSStartRemoteControlSession)
+#define WTSConnectSession __MINGW_NAME_AW(WTSConnectSession)
+
+WINBOOL WINAPI WTSStopRemoteControlSession(
+ ULONG LogonId
+);
+
+WINBOOL WINAPI WTSUnRegisterSessionNotificationEx(
+ HANDLE hServer,
+ HWND hWnd
+);
+
+HANDLE WINAPI WTSVirtualChannelOpenEx(
+ DWORD SessionId,
+ LPSTR pVirtualName,
+ DWORD flags
+);
+
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
#ifdef __cplusplus
}
#endif
diff --git a/mingw-w64-headers/include/wtypes.h b/mingw-w64-headers/include/wtypes.h
index 2805cbd..365d729 100644
--- a/mingw-w64-headers/include/wtypes.h
+++ b/mingw-w64-headers/include/wtypes.h
@@ -694,6 +694,13 @@
extern RPC_IF_HANDLE __MIDL_itf_wtypes_0003_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_wtypes_0003_v0_0_s_ifspec;
+#if (_WIN32_WINNT >= 0x0600)
+typedef struct _PROPERTYKEY {
+ GUID fmtid;
+ DWORD pid;
+} PROPERTYKEY;
+#endif /*(_WIN32_WINNT >= 0x0600)*/
+
#ifdef __cplusplus
}
#endif