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