Updated imported headers to current Wine version.
(cherry picked from commit 8bbe98a687b6aff31fe1253390d164c1590a4254)
diff --git a/mingw-w64-headers/direct-x/include/d3d11_1.h b/mingw-w64-headers/direct-x/include/d3d11_1.h
index ad50171..e4ffaca 100644
--- a/mingw-w64-headers/direct-x/include/d3d11_1.h
+++ b/mingw-w64-headers/direct-x/include/d3d11_1.h
@@ -17,6 +17,11 @@
/* Forward declarations */
+#ifndef __ID3D11BlendState1_FWD_DEFINED__
+#define __ID3D11BlendState1_FWD_DEFINED__
+typedef interface ID3D11BlendState1 ID3D11BlendState1;
+#endif
+
#ifndef __ID3DDeviceContextState_FWD_DEFINED__
#define __ID3DDeviceContextState_FWD_DEFINED__
typedef interface ID3DDeviceContextState ID3DDeviceContextState;
@@ -32,6 +37,16 @@
typedef interface ID3DUserDefinedAnnotation ID3DUserDefinedAnnotation;
#endif
+#ifndef __ID3D11RasterizerState1_FWD_DEFINED__
+#define __ID3D11RasterizerState1_FWD_DEFINED__
+typedef interface ID3D11RasterizerState1 ID3D11RasterizerState1;
+#endif
+
+#ifndef __ID3D11Device1_FWD_DEFINED__
+#define __ID3D11Device1_FWD_DEFINED__
+typedef interface ID3D11Device1 ID3D11Device1;
+#endif
+
/* Headers for imported files */
#include <oaidl.h>
@@ -44,6 +59,189 @@
extern "C" {
#endif
+typedef enum D3D11_LOGIC_OP {
+ D3D11_LOGIC_OP_CLEAR = 0,
+ D3D11_LOGIC_OP_SET = 1,
+ D3D11_LOGIC_OP_COPY = 2,
+ D3D11_LOGIC_OP_COPY_INVERTED = 3,
+ D3D11_LOGIC_OP_NOOP = 4,
+ D3D11_LOGIC_OP_INVERT = 5,
+ D3D11_LOGIC_OP_AND = 6,
+ D3D11_LOGIC_OP_NAND = 7,
+ D3D11_LOGIC_OP_OR = 8,
+ D3D11_LOGIC_OP_NOR = 9,
+ D3D11_LOGIC_OP_XOR = 10,
+ D3D11_LOGIC_OP_EQUIV = 11,
+ D3D11_LOGIC_OP_AND_REVERSE = 12,
+ D3D11_LOGIC_OP_AND_INVERTED = 13,
+ D3D11_LOGIC_OP_OR_REVERSE = 14,
+ D3D11_LOGIC_OP_OR_INVERTED = 15
+} D3D11_LOGIC_OP;
+typedef struct _D3D11_RENDER_TARGET_BLEND_DESC1 {
+ WINBOOL BlendEnable;
+ WINBOOL LogicOpEnable;
+ D3D11_BLEND SrcBlend;
+ D3D11_BLEND DestBlend;
+ D3D11_BLEND_OP BlendOp;
+ D3D11_BLEND SrcBlendAlpha;
+ D3D11_BLEND DestBlendAlpha;
+ D3D11_BLEND_OP BlendOpAlpha;
+ D3D11_LOGIC_OP LogicOp;
+ UINT8 RenderTargetWriteMask;
+} D3D11_RENDER_TARGET_BLEND_DESC1;
+typedef struct _D3D11_BLEND_DESC1 {
+ WINBOOL AlphaToCoverageEnable;
+ WINBOOL IndependentBlendEnable;
+ D3D11_RENDER_TARGET_BLEND_DESC1 RenderTarget[8];
+} D3D11_BLEND_DESC1;
+typedef struct _D3D11_RASTERIZER_DESC1 {
+ D3D11_FILL_MODE FillMode;
+ D3D11_CULL_MODE CullMode;
+ WINBOOL FrontCounterClockwise;
+ INT DepthBias;
+ FLOAT DepthBiasClamp;
+ FLOAT SlopeScaledDepthBias;
+ WINBOOL DepthClipEnable;
+ WINBOOL ScissorEnable;
+ WINBOOL MultisampleEnable;
+ WINBOOL AntialiasedLineEnable;
+ UINT ForcedSampleCount;
+} D3D11_RASTERIZER_DESC1;
+/*****************************************************************************
+ * ID3D11BlendState1 interface
+ */
+#ifndef __ID3D11BlendState1_INTERFACE_DEFINED__
+#define __ID3D11BlendState1_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11BlendState1, 0xcc86fabe, 0xda55, 0x401d, 0x85,0xe7, 0xe3,0xc9,0xde,0x28,0x77,0xe9);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("cc86fabe-da55-401d-85e7-e3c9de2877e9")
+ID3D11BlendState1 : public ID3D11BlendState
+{
+ virtual void STDMETHODCALLTYPE GetDesc1(
+ D3D11_BLEND_DESC1 *pDesc) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11BlendState1, 0xcc86fabe, 0xda55, 0x401d, 0x85,0xe7, 0xe3,0xc9,0xde,0x28,0x77,0xe9)
+#endif
+#else
+typedef struct ID3D11BlendState1Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11BlendState1* This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11BlendState1* This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11BlendState1* This);
+
+ /*** ID3D11DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D11BlendState1* This,
+ ID3D11Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11BlendState1* This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11BlendState1* This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11BlendState1* This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D11BlendState methods ***/
+ void (STDMETHODCALLTYPE *GetDesc)(
+ ID3D11BlendState1* This,
+ D3D11_BLEND_DESC *pDesc);
+
+ /*** ID3D11BlendState1 methods ***/
+ void (STDMETHODCALLTYPE *GetDesc1)(
+ ID3D11BlendState1* This,
+ D3D11_BLEND_DESC1 *pDesc);
+
+ END_INTERFACE
+} ID3D11BlendState1Vtbl;
+interface ID3D11BlendState1 {
+ CONST_VTBL ID3D11BlendState1Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11BlendState1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11BlendState1_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11BlendState1_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11DeviceChild methods ***/
+#define ID3D11BlendState1_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D11BlendState1_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11BlendState1_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11BlendState1_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D11BlendState methods ***/
+#define ID3D11BlendState1_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
+/*** ID3D11BlendState1 methods ***/
+#define ID3D11BlendState1_GetDesc1(This,pDesc) (This)->lpVtbl->GetDesc1(This,pDesc)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11BlendState1_QueryInterface(ID3D11BlendState1* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11BlendState1_AddRef(ID3D11BlendState1* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11BlendState1_Release(ID3D11BlendState1* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11DeviceChild methods ***/
+static FORCEINLINE void ID3D11BlendState1_GetDevice(ID3D11BlendState1* This,ID3D11Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D11BlendState1_GetPrivateData(ID3D11BlendState1* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11BlendState1_SetPrivateData(ID3D11BlendState1* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11BlendState1_SetPrivateDataInterface(ID3D11BlendState1* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D11BlendState methods ***/
+static FORCEINLINE void ID3D11BlendState1_GetDesc(ID3D11BlendState1* This,D3D11_BLEND_DESC *pDesc) {
+ This->lpVtbl->GetDesc(This,pDesc);
+}
+/*** ID3D11BlendState1 methods ***/
+static FORCEINLINE void ID3D11BlendState1_GetDesc1(ID3D11BlendState1* This,D3D11_BLEND_DESC1 *pDesc) {
+ This->lpVtbl->GetDesc1(This,pDesc);
+}
+#endif
+#endif
+
+#endif
+
+void STDMETHODCALLTYPE ID3D11BlendState1_GetDesc1_Proxy(
+ ID3D11BlendState1* This,
+ D3D11_BLEND_DESC1 *pDesc);
+void __RPC_STUB ID3D11BlendState1_GetDesc1_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+#endif /* __ID3D11BlendState1_INTERFACE_DEFINED__ */
+
/*****************************************************************************
* ID3DDeviceContextState interface
*/
@@ -2009,6 +2207,774 @@
#endif /* __ID3DUserDefinedAnnotation_INTERFACE_DEFINED__ */
+/*****************************************************************************
+ * ID3D11RasterizerState1 interface
+ */
+#ifndef __ID3D11RasterizerState1_INTERFACE_DEFINED__
+#define __ID3D11RasterizerState1_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11RasterizerState1, 0x1217d7a6, 0x5039, 0x418c, 0xb0,0x42, 0x9c,0xbe,0x25,0x6a,0xfd,0x6e);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("1217d7a6-5039-418c-b042-9cbe256afd6e")
+ID3D11RasterizerState1 : public ID3D11RasterizerState
+{
+ virtual void STDMETHODCALLTYPE GetDesc1(
+ D3D11_RASTERIZER_DESC1 *pDesc) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11RasterizerState1, 0x1217d7a6, 0x5039, 0x418c, 0xb0,0x42, 0x9c,0xbe,0x25,0x6a,0xfd,0x6e)
+#endif
+#else
+typedef struct ID3D11RasterizerState1Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11RasterizerState1* This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11RasterizerState1* This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11RasterizerState1* This);
+
+ /*** ID3D11DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D11RasterizerState1* This,
+ ID3D11Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11RasterizerState1* This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11RasterizerState1* This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11RasterizerState1* This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D11RasterizerState methods ***/
+ void (STDMETHODCALLTYPE *GetDesc)(
+ ID3D11RasterizerState1* This,
+ D3D11_RASTERIZER_DESC *pDesc);
+
+ /*** ID3D11RasterizerState1 methods ***/
+ void (STDMETHODCALLTYPE *GetDesc1)(
+ ID3D11RasterizerState1* This,
+ D3D11_RASTERIZER_DESC1 *pDesc);
+
+ END_INTERFACE
+} ID3D11RasterizerState1Vtbl;
+interface ID3D11RasterizerState1 {
+ CONST_VTBL ID3D11RasterizerState1Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11RasterizerState1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11RasterizerState1_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11RasterizerState1_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11DeviceChild methods ***/
+#define ID3D11RasterizerState1_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D11RasterizerState1_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11RasterizerState1_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11RasterizerState1_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D11RasterizerState methods ***/
+#define ID3D11RasterizerState1_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
+/*** ID3D11RasterizerState1 methods ***/
+#define ID3D11RasterizerState1_GetDesc1(This,pDesc) (This)->lpVtbl->GetDesc1(This,pDesc)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11RasterizerState1_QueryInterface(ID3D11RasterizerState1* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11RasterizerState1_AddRef(ID3D11RasterizerState1* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11RasterizerState1_Release(ID3D11RasterizerState1* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11DeviceChild methods ***/
+static FORCEINLINE void ID3D11RasterizerState1_GetDevice(ID3D11RasterizerState1* This,ID3D11Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D11RasterizerState1_GetPrivateData(ID3D11RasterizerState1* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11RasterizerState1_SetPrivateData(ID3D11RasterizerState1* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11RasterizerState1_SetPrivateDataInterface(ID3D11RasterizerState1* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D11RasterizerState methods ***/
+static FORCEINLINE void ID3D11RasterizerState1_GetDesc(ID3D11RasterizerState1* This,D3D11_RASTERIZER_DESC *pDesc) {
+ This->lpVtbl->GetDesc(This,pDesc);
+}
+/*** ID3D11RasterizerState1 methods ***/
+static FORCEINLINE void ID3D11RasterizerState1_GetDesc1(ID3D11RasterizerState1* This,D3D11_RASTERIZER_DESC1 *pDesc) {
+ This->lpVtbl->GetDesc1(This,pDesc);
+}
+#endif
+#endif
+
+#endif
+
+void STDMETHODCALLTYPE ID3D11RasterizerState1_GetDesc1_Proxy(
+ ID3D11RasterizerState1* This,
+ D3D11_RASTERIZER_DESC1 *pDesc);
+void __RPC_STUB ID3D11RasterizerState1_GetDesc1_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+#endif /* __ID3D11RasterizerState1_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D11Device1 interface
+ */
+#ifndef __ID3D11Device1_INTERFACE_DEFINED__
+#define __ID3D11Device1_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11Device1, 0xa04bfb29, 0x08ef, 0x43d6, 0xa4,0x9c, 0xa9,0xbd,0xbd,0xcb,0xe6,0x86);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("a04bfb29-08ef-43d6-a49c-a9bdbdcbe686")
+ID3D11Device1 : public ID3D11Device
+{
+ virtual void STDMETHODCALLTYPE GetImmediateContext1(
+ ID3D11DeviceContext1 **ppImmediateContext) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateDeferredContext1(
+ UINT ContextFlags,
+ ID3D11DeviceContext1 **ppDeferredContext) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateBlendState1(
+ const D3D11_BLEND_DESC1 *pBlendStateDesc,
+ ID3D11BlendState1 **ppBlendState) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateRasterizerState1(
+ const D3D11_RASTERIZER_DESC1 *pRasterizerDesc,
+ ID3D11RasterizerState1 **ppRasterizerState) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateDeviceContextState(
+ UINT Flags,
+ const D3D_FEATURE_LEVEL *pFeatureLevels,
+ UINT FeatureLevels,
+ UINT SDKVersion,
+ REFIID EmulatedInterface,
+ D3D_FEATURE_LEVEL *pChosenFeatureLevel,
+ ID3DDeviceContextState **ppContextState) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE OpenSharedResource1(
+ HANDLE hResource,
+ REFIID returnedInterface,
+ void **ppResource) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE OpenSharedResourceByName(
+ LPCWSTR lpName,
+ DWORD dwDesiredAccess,
+ REFIID returnedInterface,
+ void **ppResource) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11Device1, 0xa04bfb29, 0x08ef, 0x43d6, 0xa4,0x9c, 0xa9,0xbd,0xbd,0xcb,0xe6,0x86)
+#endif
+#else
+typedef struct ID3D11Device1Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11Device1* This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11Device1* This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11Device1* This);
+
+ /*** ID3D11Device methods ***/
+ HRESULT (STDMETHODCALLTYPE *CreateBuffer)(
+ ID3D11Device1* This,
+ const D3D11_BUFFER_DESC *pDesc,
+ const D3D11_SUBRESOURCE_DATA *pInitialData,
+ ID3D11Buffer **ppBuffer);
+
+ HRESULT (STDMETHODCALLTYPE *CreateTexture1D)(
+ ID3D11Device1* This,
+ const D3D11_TEXTURE1D_DESC *pDesc,
+ const D3D11_SUBRESOURCE_DATA *pInitialData,
+ ID3D11Texture1D **ppTexture1D);
+
+ HRESULT (STDMETHODCALLTYPE *CreateTexture2D)(
+ ID3D11Device1* This,
+ const D3D11_TEXTURE2D_DESC *pDesc,
+ const D3D11_SUBRESOURCE_DATA *pInitialData,
+ ID3D11Texture2D **ppTexture2D);
+
+ HRESULT (STDMETHODCALLTYPE *CreateTexture3D)(
+ ID3D11Device1* This,
+ const D3D11_TEXTURE3D_DESC *pDesc,
+ const D3D11_SUBRESOURCE_DATA *pInitialData,
+ ID3D11Texture3D **ppTexture3D);
+
+ HRESULT (STDMETHODCALLTYPE *CreateShaderResourceView)(
+ ID3D11Device1* This,
+ ID3D11Resource *pResource,
+ const D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc,
+ ID3D11ShaderResourceView **ppSRView);
+
+ HRESULT (STDMETHODCALLTYPE *CreateUnorderedAccessView)(
+ ID3D11Device1* This,
+ ID3D11Resource *pResource,
+ const D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc,
+ ID3D11UnorderedAccessView **ppUAView);
+
+ HRESULT (STDMETHODCALLTYPE *CreateRenderTargetView)(
+ ID3D11Device1* This,
+ ID3D11Resource *pResource,
+ const D3D11_RENDER_TARGET_VIEW_DESC *pDesc,
+ ID3D11RenderTargetView **ppRTView);
+
+ HRESULT (STDMETHODCALLTYPE *CreateDepthStencilView)(
+ ID3D11Device1* This,
+ ID3D11Resource *pResource,
+ const D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc,
+ ID3D11DepthStencilView **ppDepthStencilView);
+
+ HRESULT (STDMETHODCALLTYPE *CreateInputLayout)(
+ ID3D11Device1* This,
+ const D3D11_INPUT_ELEMENT_DESC *pInputElementDescs,
+ UINT NumElements,
+ const void *pShaderBytecodeWithInputSignature,
+ SIZE_T BytecodeLength,
+ ID3D11InputLayout **ppInputLayout);
+
+ HRESULT (STDMETHODCALLTYPE *CreateVertexShader)(
+ ID3D11Device1* This,
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ ID3D11ClassLinkage *pClassLinkage,
+ ID3D11VertexShader **ppVertexShader);
+
+ HRESULT (STDMETHODCALLTYPE *CreateGeometryShader)(
+ ID3D11Device1* This,
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ ID3D11ClassLinkage *pClassLinkage,
+ ID3D11GeometryShader **ppGeometryShader);
+
+ HRESULT (STDMETHODCALLTYPE *CreateGeometryShaderWithStreamOutput)(
+ ID3D11Device1* This,
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ const D3D11_SO_DECLARATION_ENTRY *pSODeclaration,
+ UINT NumEntries,
+ const UINT *pBufferStrides,
+ UINT NumStrides,
+ UINT RasterizedStream,
+ ID3D11ClassLinkage *pClassLinkage,
+ ID3D11GeometryShader **ppGeometryShader);
+
+ HRESULT (STDMETHODCALLTYPE *CreatePixelShader)(
+ ID3D11Device1* This,
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ ID3D11ClassLinkage *pClassLinkage,
+ ID3D11PixelShader **ppPixelShader);
+
+ HRESULT (STDMETHODCALLTYPE *CreateHullShader)(
+ ID3D11Device1* This,
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ ID3D11ClassLinkage *pClassLinkage,
+ ID3D11HullShader **ppHullShader);
+
+ HRESULT (STDMETHODCALLTYPE *CreateDomainShader)(
+ ID3D11Device1* This,
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ ID3D11ClassLinkage *pClassLinkage,
+ ID3D11DomainShader **ppDomainShader);
+
+ HRESULT (STDMETHODCALLTYPE *CreateComputeShader)(
+ ID3D11Device1* This,
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ ID3D11ClassLinkage *pClassLinkage,
+ ID3D11ComputeShader **ppComputeShader);
+
+ HRESULT (STDMETHODCALLTYPE *CreateClassLinkage)(
+ ID3D11Device1* This,
+ ID3D11ClassLinkage **ppLinkage);
+
+ HRESULT (STDMETHODCALLTYPE *CreateBlendState)(
+ ID3D11Device1* This,
+ const D3D11_BLEND_DESC *pBlendStateDesc,
+ ID3D11BlendState **ppBlendState);
+
+ HRESULT (STDMETHODCALLTYPE *CreateDepthStencilState)(
+ ID3D11Device1* This,
+ const D3D11_DEPTH_STENCIL_DESC *pDepthStencilDesc,
+ ID3D11DepthStencilState **ppDepthStencilState);
+
+ HRESULT (STDMETHODCALLTYPE *CreateRasterizerState)(
+ ID3D11Device1* This,
+ const D3D11_RASTERIZER_DESC *pRasterizerDesc,
+ ID3D11RasterizerState **ppRasterizerState);
+
+ HRESULT (STDMETHODCALLTYPE *CreateSamplerState)(
+ ID3D11Device1* This,
+ const D3D11_SAMPLER_DESC *pSamplerDesc,
+ ID3D11SamplerState **ppSamplerState);
+
+ HRESULT (STDMETHODCALLTYPE *CreateQuery)(
+ ID3D11Device1* This,
+ const D3D11_QUERY_DESC *pQueryDesc,
+ ID3D11Query **ppQuery);
+
+ HRESULT (STDMETHODCALLTYPE *CreatePredicate)(
+ ID3D11Device1* This,
+ const D3D11_QUERY_DESC *pPredicateDesc,
+ ID3D11Predicate **ppPredicate);
+
+ HRESULT (STDMETHODCALLTYPE *CreateCounter)(
+ ID3D11Device1* This,
+ const D3D11_COUNTER_DESC *pCounterDesc,
+ ID3D11Counter **ppCounter);
+
+ HRESULT (STDMETHODCALLTYPE *CreateDeferredContext)(
+ ID3D11Device1* This,
+ UINT ContextFlags,
+ ID3D11DeviceContext **ppDeferredContext);
+
+ HRESULT (STDMETHODCALLTYPE *OpenSharedResource)(
+ ID3D11Device1* This,
+ HANDLE hResource,
+ REFIID ReturnedInterface,
+ void **ppResource);
+
+ HRESULT (STDMETHODCALLTYPE *CheckFormatSupport)(
+ ID3D11Device1* This,
+ DXGI_FORMAT Format,
+ UINT *pFormatSupport);
+
+ HRESULT (STDMETHODCALLTYPE *CheckMultisampleQualityLevels)(
+ ID3D11Device1* This,
+ DXGI_FORMAT Format,
+ UINT SampleCount,
+ UINT *pNumQualityLevels);
+
+ void (STDMETHODCALLTYPE *CheckCounterInfo)(
+ ID3D11Device1* This,
+ D3D11_COUNTER_INFO *pCounterInfo);
+
+ HRESULT (STDMETHODCALLTYPE *CheckCounter)(
+ ID3D11Device1* This,
+ const D3D11_COUNTER_DESC *pDesc,
+ D3D11_COUNTER_TYPE *pType,
+ UINT *pActiveCounters,
+ LPSTR szName,
+ UINT *pNameLength,
+ LPSTR szUnits,
+ UINT *pUnitsLength,
+ LPSTR szDescription,
+ UINT *pDescriptionLength);
+
+ HRESULT (STDMETHODCALLTYPE *CheckFeatureSupport)(
+ ID3D11Device1* This,
+ D3D11_FEATURE Feature,
+ void *pFeatureSupportData,
+ UINT FeatureSupportDataSize);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11Device1* This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11Device1* This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11Device1* This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ D3D_FEATURE_LEVEL (STDMETHODCALLTYPE *GetFeatureLevel)(
+ ID3D11Device1* This);
+
+ UINT (STDMETHODCALLTYPE *GetCreationFlags)(
+ ID3D11Device1* This);
+
+ HRESULT (STDMETHODCALLTYPE *GetDeviceRemovedReason)(
+ ID3D11Device1* This);
+
+ void (STDMETHODCALLTYPE *GetImmediateContext)(
+ ID3D11Device1* This,
+ ID3D11DeviceContext **ppImmediateContext);
+
+ HRESULT (STDMETHODCALLTYPE *SetExceptionMode)(
+ ID3D11Device1* This,
+ UINT RaiseFlags);
+
+ UINT (STDMETHODCALLTYPE *GetExceptionMode)(
+ ID3D11Device1* This);
+
+ /*** ID3D11Device1 methods ***/
+ void (STDMETHODCALLTYPE *GetImmediateContext1)(
+ ID3D11Device1* This,
+ ID3D11DeviceContext1 **ppImmediateContext);
+
+ HRESULT (STDMETHODCALLTYPE *CreateDeferredContext1)(
+ ID3D11Device1* This,
+ UINT ContextFlags,
+ ID3D11DeviceContext1 **ppDeferredContext);
+
+ HRESULT (STDMETHODCALLTYPE *CreateBlendState1)(
+ ID3D11Device1* This,
+ const D3D11_BLEND_DESC1 *pBlendStateDesc,
+ ID3D11BlendState1 **ppBlendState);
+
+ HRESULT (STDMETHODCALLTYPE *CreateRasterizerState1)(
+ ID3D11Device1* This,
+ const D3D11_RASTERIZER_DESC1 *pRasterizerDesc,
+ ID3D11RasterizerState1 **ppRasterizerState);
+
+ HRESULT (STDMETHODCALLTYPE *CreateDeviceContextState)(
+ ID3D11Device1* This,
+ UINT Flags,
+ const D3D_FEATURE_LEVEL *pFeatureLevels,
+ UINT FeatureLevels,
+ UINT SDKVersion,
+ REFIID EmulatedInterface,
+ D3D_FEATURE_LEVEL *pChosenFeatureLevel,
+ ID3DDeviceContextState **ppContextState);
+
+ HRESULT (STDMETHODCALLTYPE *OpenSharedResource1)(
+ ID3D11Device1* This,
+ HANDLE hResource,
+ REFIID returnedInterface,
+ void **ppResource);
+
+ HRESULT (STDMETHODCALLTYPE *OpenSharedResourceByName)(
+ ID3D11Device1* This,
+ LPCWSTR lpName,
+ DWORD dwDesiredAccess,
+ REFIID returnedInterface,
+ void **ppResource);
+
+ END_INTERFACE
+} ID3D11Device1Vtbl;
+interface ID3D11Device1 {
+ CONST_VTBL ID3D11Device1Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11Device1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11Device1_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11Device1_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11Device methods ***/
+#define ID3D11Device1_CreateBuffer(This,pDesc,pInitialData,ppBuffer) (This)->lpVtbl->CreateBuffer(This,pDesc,pInitialData,ppBuffer)
+#define ID3D11Device1_CreateTexture1D(This,pDesc,pInitialData,ppTexture1D) (This)->lpVtbl->CreateTexture1D(This,pDesc,pInitialData,ppTexture1D)
+#define ID3D11Device1_CreateTexture2D(This,pDesc,pInitialData,ppTexture2D) (This)->lpVtbl->CreateTexture2D(This,pDesc,pInitialData,ppTexture2D)
+#define ID3D11Device1_CreateTexture3D(This,pDesc,pInitialData,ppTexture3D) (This)->lpVtbl->CreateTexture3D(This,pDesc,pInitialData,ppTexture3D)
+#define ID3D11Device1_CreateShaderResourceView(This,pResource,pDesc,ppSRView) (This)->lpVtbl->CreateShaderResourceView(This,pResource,pDesc,ppSRView)
+#define ID3D11Device1_CreateUnorderedAccessView(This,pResource,pDesc,ppUAView) (This)->lpVtbl->CreateUnorderedAccessView(This,pResource,pDesc,ppUAView)
+#define ID3D11Device1_CreateRenderTargetView(This,pResource,pDesc,ppRTView) (This)->lpVtbl->CreateRenderTargetView(This,pResource,pDesc,ppRTView)
+#define ID3D11Device1_CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView) (This)->lpVtbl->CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView)
+#define ID3D11Device1_CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout) (This)->lpVtbl->CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout)
+#define ID3D11Device1_CreateVertexShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppVertexShader) (This)->lpVtbl->CreateVertexShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppVertexShader)
+#define ID3D11Device1_CreateGeometryShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppGeometryShader) (This)->lpVtbl->CreateGeometryShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppGeometryShader)
+#define ID3D11Device1_CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,pBufferStrides,NumStrides,RasterizedStream,pClassLinkage,ppGeometryShader) (This)->lpVtbl->CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,pBufferStrides,NumStrides,RasterizedStream,pClassLinkage,ppGeometryShader)
+#define ID3D11Device1_CreatePixelShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppPixelShader) (This)->lpVtbl->CreatePixelShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppPixelShader)
+#define ID3D11Device1_CreateHullShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppHullShader) (This)->lpVtbl->CreateHullShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppHullShader)
+#define ID3D11Device1_CreateDomainShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppDomainShader) (This)->lpVtbl->CreateDomainShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppDomainShader)
+#define ID3D11Device1_CreateComputeShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppComputeShader) (This)->lpVtbl->CreateComputeShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppComputeShader)
+#define ID3D11Device1_CreateClassLinkage(This,ppLinkage) (This)->lpVtbl->CreateClassLinkage(This,ppLinkage)
+#define ID3D11Device1_CreateBlendState(This,pBlendStateDesc,ppBlendState) (This)->lpVtbl->CreateBlendState(This,pBlendStateDesc,ppBlendState)
+#define ID3D11Device1_CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState) (This)->lpVtbl->CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState)
+#define ID3D11Device1_CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState) (This)->lpVtbl->CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState)
+#define ID3D11Device1_CreateSamplerState(This,pSamplerDesc,ppSamplerState) (This)->lpVtbl->CreateSamplerState(This,pSamplerDesc,ppSamplerState)
+#define ID3D11Device1_CreateQuery(This,pQueryDesc,ppQuery) (This)->lpVtbl->CreateQuery(This,pQueryDesc,ppQuery)
+#define ID3D11Device1_CreatePredicate(This,pPredicateDesc,ppPredicate) (This)->lpVtbl->CreatePredicate(This,pPredicateDesc,ppPredicate)
+#define ID3D11Device1_CreateCounter(This,pCounterDesc,ppCounter) (This)->lpVtbl->CreateCounter(This,pCounterDesc,ppCounter)
+#define ID3D11Device1_CreateDeferredContext(This,ContextFlags,ppDeferredContext) (This)->lpVtbl->CreateDeferredContext(This,ContextFlags,ppDeferredContext)
+#define ID3D11Device1_OpenSharedResource(This,hResource,ReturnedInterface,ppResource) (This)->lpVtbl->OpenSharedResource(This,hResource,ReturnedInterface,ppResource)
+#define ID3D11Device1_CheckFormatSupport(This,Format,pFormatSupport) (This)->lpVtbl->CheckFormatSupport(This,Format,pFormatSupport)
+#define ID3D11Device1_CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels) (This)->lpVtbl->CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels)
+#define ID3D11Device1_CheckCounterInfo(This,pCounterInfo) (This)->lpVtbl->CheckCounterInfo(This,pCounterInfo)
+#define ID3D11Device1_CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength) (This)->lpVtbl->CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength)
+#define ID3D11Device1_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) (This)->lpVtbl->CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize)
+#define ID3D11Device1_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11Device1_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11Device1_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+#define ID3D11Device1_GetFeatureLevel(This) (This)->lpVtbl->GetFeatureLevel(This)
+#define ID3D11Device1_GetCreationFlags(This) (This)->lpVtbl->GetCreationFlags(This)
+#define ID3D11Device1_GetDeviceRemovedReason(This) (This)->lpVtbl->GetDeviceRemovedReason(This)
+#define ID3D11Device1_GetImmediateContext(This,ppImmediateContext) (This)->lpVtbl->GetImmediateContext(This,ppImmediateContext)
+#define ID3D11Device1_SetExceptionMode(This,RaiseFlags) (This)->lpVtbl->SetExceptionMode(This,RaiseFlags)
+#define ID3D11Device1_GetExceptionMode(This) (This)->lpVtbl->GetExceptionMode(This)
+/*** ID3D11Device1 methods ***/
+#define ID3D11Device1_GetImmediateContext1(This,ppImmediateContext) (This)->lpVtbl->GetImmediateContext1(This,ppImmediateContext)
+#define ID3D11Device1_CreateDeferredContext1(This,ContextFlags,ppDeferredContext) (This)->lpVtbl->CreateDeferredContext1(This,ContextFlags,ppDeferredContext)
+#define ID3D11Device1_CreateBlendState1(This,pBlendStateDesc,ppBlendState) (This)->lpVtbl->CreateBlendState1(This,pBlendStateDesc,ppBlendState)
+#define ID3D11Device1_CreateRasterizerState1(This,pRasterizerDesc,ppRasterizerState) (This)->lpVtbl->CreateRasterizerState1(This,pRasterizerDesc,ppRasterizerState)
+#define ID3D11Device1_CreateDeviceContextState(This,Flags,pFeatureLevels,FeatureLevels,SDKVersion,EmulatedInterface,pChosenFeatureLevel,ppContextState) (This)->lpVtbl->CreateDeviceContextState(This,Flags,pFeatureLevels,FeatureLevels,SDKVersion,EmulatedInterface,pChosenFeatureLevel,ppContextState)
+#define ID3D11Device1_OpenSharedResource1(This,hResource,returnedInterface,ppResource) (This)->lpVtbl->OpenSharedResource1(This,hResource,returnedInterface,ppResource)
+#define ID3D11Device1_OpenSharedResourceByName(This,lpName,dwDesiredAccess,returnedInterface,ppResource) (This)->lpVtbl->OpenSharedResourceByName(This,lpName,dwDesiredAccess,returnedInterface,ppResource)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11Device1_QueryInterface(ID3D11Device1* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11Device1_AddRef(ID3D11Device1* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11Device1_Release(ID3D11Device1* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11Device methods ***/
+static FORCEINLINE HRESULT ID3D11Device1_CreateBuffer(ID3D11Device1* This,const D3D11_BUFFER_DESC *pDesc,const D3D11_SUBRESOURCE_DATA *pInitialData,ID3D11Buffer **ppBuffer) {
+ return This->lpVtbl->CreateBuffer(This,pDesc,pInitialData,ppBuffer);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CreateTexture1D(ID3D11Device1* This,const D3D11_TEXTURE1D_DESC *pDesc,const D3D11_SUBRESOURCE_DATA *pInitialData,ID3D11Texture1D **ppTexture1D) {
+ return This->lpVtbl->CreateTexture1D(This,pDesc,pInitialData,ppTexture1D);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CreateTexture2D(ID3D11Device1* This,const D3D11_TEXTURE2D_DESC *pDesc,const D3D11_SUBRESOURCE_DATA *pInitialData,ID3D11Texture2D **ppTexture2D) {
+ return This->lpVtbl->CreateTexture2D(This,pDesc,pInitialData,ppTexture2D);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CreateTexture3D(ID3D11Device1* This,const D3D11_TEXTURE3D_DESC *pDesc,const D3D11_SUBRESOURCE_DATA *pInitialData,ID3D11Texture3D **ppTexture3D) {
+ return This->lpVtbl->CreateTexture3D(This,pDesc,pInitialData,ppTexture3D);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CreateShaderResourceView(ID3D11Device1* This,ID3D11Resource *pResource,const D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc,ID3D11ShaderResourceView **ppSRView) {
+ return This->lpVtbl->CreateShaderResourceView(This,pResource,pDesc,ppSRView);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CreateUnorderedAccessView(ID3D11Device1* This,ID3D11Resource *pResource,const D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc,ID3D11UnorderedAccessView **ppUAView) {
+ return This->lpVtbl->CreateUnorderedAccessView(This,pResource,pDesc,ppUAView);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CreateRenderTargetView(ID3D11Device1* This,ID3D11Resource *pResource,const D3D11_RENDER_TARGET_VIEW_DESC *pDesc,ID3D11RenderTargetView **ppRTView) {
+ return This->lpVtbl->CreateRenderTargetView(This,pResource,pDesc,ppRTView);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CreateDepthStencilView(ID3D11Device1* This,ID3D11Resource *pResource,const D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc,ID3D11DepthStencilView **ppDepthStencilView) {
+ return This->lpVtbl->CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CreateInputLayout(ID3D11Device1* This,const D3D11_INPUT_ELEMENT_DESC *pInputElementDescs,UINT NumElements,const void *pShaderBytecodeWithInputSignature,SIZE_T BytecodeLength,ID3D11InputLayout **ppInputLayout) {
+ return This->lpVtbl->CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CreateVertexShader(ID3D11Device1* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11VertexShader **ppVertexShader) {
+ return This->lpVtbl->CreateVertexShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppVertexShader);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CreateGeometryShader(ID3D11Device1* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11GeometryShader **ppGeometryShader) {
+ return This->lpVtbl->CreateGeometryShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppGeometryShader);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CreateGeometryShaderWithStreamOutput(ID3D11Device1* This,const void *pShaderBytecode,SIZE_T BytecodeLength,const D3D11_SO_DECLARATION_ENTRY *pSODeclaration,UINT NumEntries,const UINT *pBufferStrides,UINT NumStrides,UINT RasterizedStream,ID3D11ClassLinkage *pClassLinkage,ID3D11GeometryShader **ppGeometryShader) {
+ return This->lpVtbl->CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,pBufferStrides,NumStrides,RasterizedStream,pClassLinkage,ppGeometryShader);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CreatePixelShader(ID3D11Device1* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11PixelShader **ppPixelShader) {
+ return This->lpVtbl->CreatePixelShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppPixelShader);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CreateHullShader(ID3D11Device1* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11HullShader **ppHullShader) {
+ return This->lpVtbl->CreateHullShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppHullShader);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CreateDomainShader(ID3D11Device1* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11DomainShader **ppDomainShader) {
+ return This->lpVtbl->CreateDomainShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppDomainShader);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CreateComputeShader(ID3D11Device1* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11ComputeShader **ppComputeShader) {
+ return This->lpVtbl->CreateComputeShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppComputeShader);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CreateClassLinkage(ID3D11Device1* This,ID3D11ClassLinkage **ppLinkage) {
+ return This->lpVtbl->CreateClassLinkage(This,ppLinkage);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CreateBlendState(ID3D11Device1* This,const D3D11_BLEND_DESC *pBlendStateDesc,ID3D11BlendState **ppBlendState) {
+ return This->lpVtbl->CreateBlendState(This,pBlendStateDesc,ppBlendState);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CreateDepthStencilState(ID3D11Device1* This,const D3D11_DEPTH_STENCIL_DESC *pDepthStencilDesc,ID3D11DepthStencilState **ppDepthStencilState) {
+ return This->lpVtbl->CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CreateRasterizerState(ID3D11Device1* This,const D3D11_RASTERIZER_DESC *pRasterizerDesc,ID3D11RasterizerState **ppRasterizerState) {
+ return This->lpVtbl->CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CreateSamplerState(ID3D11Device1* This,const D3D11_SAMPLER_DESC *pSamplerDesc,ID3D11SamplerState **ppSamplerState) {
+ return This->lpVtbl->CreateSamplerState(This,pSamplerDesc,ppSamplerState);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CreateQuery(ID3D11Device1* This,const D3D11_QUERY_DESC *pQueryDesc,ID3D11Query **ppQuery) {
+ return This->lpVtbl->CreateQuery(This,pQueryDesc,ppQuery);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CreatePredicate(ID3D11Device1* This,const D3D11_QUERY_DESC *pPredicateDesc,ID3D11Predicate **ppPredicate) {
+ return This->lpVtbl->CreatePredicate(This,pPredicateDesc,ppPredicate);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CreateCounter(ID3D11Device1* This,const D3D11_COUNTER_DESC *pCounterDesc,ID3D11Counter **ppCounter) {
+ return This->lpVtbl->CreateCounter(This,pCounterDesc,ppCounter);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CreateDeferredContext(ID3D11Device1* This,UINT ContextFlags,ID3D11DeviceContext **ppDeferredContext) {
+ return This->lpVtbl->CreateDeferredContext(This,ContextFlags,ppDeferredContext);
+}
+static FORCEINLINE HRESULT ID3D11Device1_OpenSharedResource(ID3D11Device1* This,HANDLE hResource,REFIID ReturnedInterface,void **ppResource) {
+ return This->lpVtbl->OpenSharedResource(This,hResource,ReturnedInterface,ppResource);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CheckFormatSupport(ID3D11Device1* This,DXGI_FORMAT Format,UINT *pFormatSupport) {
+ return This->lpVtbl->CheckFormatSupport(This,Format,pFormatSupport);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CheckMultisampleQualityLevels(ID3D11Device1* This,DXGI_FORMAT Format,UINT SampleCount,UINT *pNumQualityLevels) {
+ return This->lpVtbl->CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels);
+}
+static FORCEINLINE void ID3D11Device1_CheckCounterInfo(ID3D11Device1* This,D3D11_COUNTER_INFO *pCounterInfo) {
+ This->lpVtbl->CheckCounterInfo(This,pCounterInfo);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CheckCounter(ID3D11Device1* This,const D3D11_COUNTER_DESC *pDesc,D3D11_COUNTER_TYPE *pType,UINT *pActiveCounters,LPSTR szName,UINT *pNameLength,LPSTR szUnits,UINT *pUnitsLength,LPSTR szDescription,UINT *pDescriptionLength) {
+ return This->lpVtbl->CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CheckFeatureSupport(ID3D11Device1* This,D3D11_FEATURE Feature,void *pFeatureSupportData,UINT FeatureSupportDataSize) {
+ return This->lpVtbl->CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize);
+}
+static FORCEINLINE HRESULT ID3D11Device1_GetPrivateData(ID3D11Device1* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11Device1_SetPrivateData(ID3D11Device1* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11Device1_SetPrivateDataInterface(ID3D11Device1* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+static FORCEINLINE D3D_FEATURE_LEVEL ID3D11Device1_GetFeatureLevel(ID3D11Device1* This) {
+ return This->lpVtbl->GetFeatureLevel(This);
+}
+static FORCEINLINE UINT ID3D11Device1_GetCreationFlags(ID3D11Device1* This) {
+ return This->lpVtbl->GetCreationFlags(This);
+}
+static FORCEINLINE HRESULT ID3D11Device1_GetDeviceRemovedReason(ID3D11Device1* This) {
+ return This->lpVtbl->GetDeviceRemovedReason(This);
+}
+static FORCEINLINE void ID3D11Device1_GetImmediateContext(ID3D11Device1* This,ID3D11DeviceContext **ppImmediateContext) {
+ This->lpVtbl->GetImmediateContext(This,ppImmediateContext);
+}
+static FORCEINLINE HRESULT ID3D11Device1_SetExceptionMode(ID3D11Device1* This,UINT RaiseFlags) {
+ return This->lpVtbl->SetExceptionMode(This,RaiseFlags);
+}
+static FORCEINLINE UINT ID3D11Device1_GetExceptionMode(ID3D11Device1* This) {
+ return This->lpVtbl->GetExceptionMode(This);
+}
+/*** ID3D11Device1 methods ***/
+static FORCEINLINE void ID3D11Device1_GetImmediateContext1(ID3D11Device1* This,ID3D11DeviceContext1 **ppImmediateContext) {
+ This->lpVtbl->GetImmediateContext1(This,ppImmediateContext);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CreateDeferredContext1(ID3D11Device1* This,UINT ContextFlags,ID3D11DeviceContext1 **ppDeferredContext) {
+ return This->lpVtbl->CreateDeferredContext1(This,ContextFlags,ppDeferredContext);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CreateBlendState1(ID3D11Device1* This,const D3D11_BLEND_DESC1 *pBlendStateDesc,ID3D11BlendState1 **ppBlendState) {
+ return This->lpVtbl->CreateBlendState1(This,pBlendStateDesc,ppBlendState);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CreateRasterizerState1(ID3D11Device1* This,const D3D11_RASTERIZER_DESC1 *pRasterizerDesc,ID3D11RasterizerState1 **ppRasterizerState) {
+ return This->lpVtbl->CreateRasterizerState1(This,pRasterizerDesc,ppRasterizerState);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CreateDeviceContextState(ID3D11Device1* This,UINT Flags,const D3D_FEATURE_LEVEL *pFeatureLevels,UINT FeatureLevels,UINT SDKVersion,REFIID EmulatedInterface,D3D_FEATURE_LEVEL *pChosenFeatureLevel,ID3DDeviceContextState **ppContextState) {
+ return This->lpVtbl->CreateDeviceContextState(This,Flags,pFeatureLevels,FeatureLevels,SDKVersion,EmulatedInterface,pChosenFeatureLevel,ppContextState);
+}
+static FORCEINLINE HRESULT ID3D11Device1_OpenSharedResource1(ID3D11Device1* This,HANDLE hResource,REFIID returnedInterface,void **ppResource) {
+ return This->lpVtbl->OpenSharedResource1(This,hResource,returnedInterface,ppResource);
+}
+static FORCEINLINE HRESULT ID3D11Device1_OpenSharedResourceByName(ID3D11Device1* This,LPCWSTR lpName,DWORD dwDesiredAccess,REFIID returnedInterface,void **ppResource) {
+ return This->lpVtbl->OpenSharedResourceByName(This,lpName,dwDesiredAccess,returnedInterface,ppResource);
+}
+#endif
+#endif
+
+#endif
+
+void STDMETHODCALLTYPE ID3D11Device1_GetImmediateContext1_Proxy(
+ ID3D11Device1* This,
+ ID3D11DeviceContext1 **ppImmediateContext);
+void __RPC_STUB ID3D11Device1_GetImmediateContext1_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ID3D11Device1_CreateDeferredContext1_Proxy(
+ ID3D11Device1* This,
+ UINT ContextFlags,
+ ID3D11DeviceContext1 **ppDeferredContext);
+void __RPC_STUB ID3D11Device1_CreateDeferredContext1_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ID3D11Device1_CreateBlendState1_Proxy(
+ ID3D11Device1* This,
+ const D3D11_BLEND_DESC1 *pBlendStateDesc,
+ ID3D11BlendState1 **ppBlendState);
+void __RPC_STUB ID3D11Device1_CreateBlendState1_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ID3D11Device1_CreateRasterizerState1_Proxy(
+ ID3D11Device1* This,
+ const D3D11_RASTERIZER_DESC1 *pRasterizerDesc,
+ ID3D11RasterizerState1 **ppRasterizerState);
+void __RPC_STUB ID3D11Device1_CreateRasterizerState1_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ID3D11Device1_CreateDeviceContextState_Proxy(
+ ID3D11Device1* This,
+ UINT Flags,
+ const D3D_FEATURE_LEVEL *pFeatureLevels,
+ UINT FeatureLevels,
+ UINT SDKVersion,
+ REFIID EmulatedInterface,
+ D3D_FEATURE_LEVEL *pChosenFeatureLevel,
+ ID3DDeviceContextState **ppContextState);
+void __RPC_STUB ID3D11Device1_CreateDeviceContextState_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ID3D11Device1_OpenSharedResource1_Proxy(
+ ID3D11Device1* This,
+ HANDLE hResource,
+ REFIID returnedInterface,
+ void **ppResource);
+void __RPC_STUB ID3D11Device1_OpenSharedResource1_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ID3D11Device1_OpenSharedResourceByName_Proxy(
+ ID3D11Device1* This,
+ LPCWSTR lpName,
+ DWORD dwDesiredAccess,
+ REFIID returnedInterface,
+ void **ppResource);
+void __RPC_STUB ID3D11Device1_OpenSharedResourceByName_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+#endif /* __ID3D11Device1_INTERFACE_DEFINED__ */
+
/* Begin additional prototypes for all interfaces */
diff --git a/mingw-w64-headers/direct-x/include/d3d11_1.idl b/mingw-w64-headers/direct-x/include/d3d11_1.idl
index 928548f..1ebfc5a 100644
--- a/mingw-w64-headers/direct-x/include/d3d11_1.idl
+++ b/mingw-w64-headers/direct-x/include/d3d11_1.idl
@@ -22,6 +22,69 @@
import "d3dcommon.idl";
import "d3d11.idl";
+typedef enum D3D11_LOGIC_OP {
+ D3D11_LOGIC_OP_CLEAR = 0,
+ D3D11_LOGIC_OP_SET,
+ D3D11_LOGIC_OP_COPY,
+ D3D11_LOGIC_OP_COPY_INVERTED,
+ D3D11_LOGIC_OP_NOOP,
+ D3D11_LOGIC_OP_INVERT,
+ D3D11_LOGIC_OP_AND,
+ D3D11_LOGIC_OP_NAND,
+ D3D11_LOGIC_OP_OR,
+ D3D11_LOGIC_OP_NOR,
+ D3D11_LOGIC_OP_XOR,
+ D3D11_LOGIC_OP_EQUIV,
+ D3D11_LOGIC_OP_AND_REVERSE,
+ D3D11_LOGIC_OP_AND_INVERTED,
+ D3D11_LOGIC_OP_OR_REVERSE,
+ D3D11_LOGIC_OP_OR_INVERTED
+} D3D11_LOGIC_OP;
+
+typedef struct _D3D11_RENDER_TARGET_BLEND_DESC1 {
+ BOOL BlendEnable;
+ BOOL LogicOpEnable;
+ D3D11_BLEND SrcBlend;
+ D3D11_BLEND DestBlend;
+ D3D11_BLEND_OP BlendOp;
+ D3D11_BLEND SrcBlendAlpha;
+ D3D11_BLEND DestBlendAlpha;
+ D3D11_BLEND_OP BlendOpAlpha;
+ D3D11_LOGIC_OP LogicOp;
+ UINT8 RenderTargetWriteMask;
+} D3D11_RENDER_TARGET_BLEND_DESC1;
+
+typedef struct _D3D11_BLEND_DESC1 {
+ BOOL AlphaToCoverageEnable;
+ BOOL IndependentBlendEnable;
+ D3D11_RENDER_TARGET_BLEND_DESC1 RenderTarget[D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT];
+} D3D11_BLEND_DESC1;
+
+typedef struct _D3D11_RASTERIZER_DESC1 {
+ D3D11_FILL_MODE FillMode;
+ D3D11_CULL_MODE CullMode;
+ BOOL FrontCounterClockwise;
+ INT DepthBias;
+ FLOAT DepthBiasClamp;
+ FLOAT SlopeScaledDepthBias;
+ BOOL DepthClipEnable;
+ BOOL ScissorEnable;
+ BOOL MultisampleEnable;
+ BOOL AntialiasedLineEnable;
+ UINT ForcedSampleCount;
+} D3D11_RASTERIZER_DESC1;
+
+[
+ uuid(cc86fabe-da55-401d-85e7-e3c9de2877e9),
+ object,
+ local,
+ pointer_default(unique)
+]
+interface ID3D11BlendState1 : ID3D11BlendState
+{
+ void GetDesc1(D3D11_BLEND_DESC1 *pDesc);
+}
+
[
uuid(5c1e0d8a-7c23-48f9-8c59-a92958ceff11),
object,
@@ -177,3 +240,58 @@
void SetMarker(LPCWSTR Name);
BOOL GetStatus();
}
+
+[
+ uuid(1217d7a6-5039-418c-b042-9cbe256afd6e),
+ object,
+ local,
+ pointer_default(unique)
+]
+interface ID3D11RasterizerState1 : ID3D11RasterizerState
+{
+ void GetDesc1(D3D11_RASTERIZER_DESC1 *pDesc);
+}
+
+[
+ uuid(a04bfb29-08ef-43d6-a49c-a9bdbdcbe686),
+ object,
+ local,
+ pointer_default(unique)
+]
+interface ID3D11Device1 : ID3D11Device
+{
+ void GetImmediateContext1(
+ ID3D11DeviceContext1 **ppImmediateContext);
+
+ HRESULT CreateDeferredContext1(
+ UINT ContextFlags,
+ ID3D11DeviceContext1 **ppDeferredContext);
+
+ HRESULT CreateBlendState1(
+ const D3D11_BLEND_DESC1 *pBlendStateDesc,
+ ID3D11BlendState1 **ppBlendState);
+
+ HRESULT CreateRasterizerState1(
+ const D3D11_RASTERIZER_DESC1 *pRasterizerDesc,
+ ID3D11RasterizerState1 **ppRasterizerState);
+
+ HRESULT CreateDeviceContextState(
+ UINT Flags,
+ const D3D_FEATURE_LEVEL *pFeatureLevels,
+ UINT FeatureLevels,
+ UINT SDKVersion,
+ REFIID EmulatedInterface,
+ D3D_FEATURE_LEVEL *pChosenFeatureLevel,
+ ID3DDeviceContextState **ppContextState);
+
+ HRESULT OpenSharedResource1(
+ HANDLE hResource,
+ REFIID returnedInterface,
+ void **ppResource);
+
+ HRESULT OpenSharedResourceByName(
+ LPCWSTR lpName,
+ DWORD dwDesiredAccess,
+ REFIID returnedInterface,
+ void **ppResource);
+}
diff --git a/mingw-w64-headers/direct-x/include/dxgi.h b/mingw-w64-headers/direct-x/include/dxgi.h
index a8a99ed..88e76a2 100644
--- a/mingw-w64-headers/direct-x/include/dxgi.h
+++ b/mingw-w64-headers/direct-x/include/dxgi.h
@@ -141,7 +141,8 @@
typedef enum DXGI_SWAP_EFFECT {
DXGI_SWAP_EFFECT_DISCARD = 0,
- DXGI_SWAP_EFFECT_SEQUENTIAL = 1
+ DXGI_SWAP_EFFECT_SEQUENTIAL = 1,
+ DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL = 3
} DXGI_SWAP_EFFECT;
typedef enum DXGI_RESIDENCY {
DXGI_RESIDENCY_FULLY_RESIDENT = 1,
diff --git a/mingw-w64-headers/direct-x/include/dxgi.idl b/mingw-w64-headers/direct-x/include/dxgi.idl
index bc9538e..009a6b5 100644
--- a/mingw-w64-headers/direct-x/include/dxgi.idl
+++ b/mingw-w64-headers/direct-x/include/dxgi.idl
@@ -67,6 +67,7 @@
typedef enum DXGI_SWAP_EFFECT {
DXGI_SWAP_EFFECT_DISCARD = 0,
DXGI_SWAP_EFFECT_SEQUENTIAL = 1,
+ DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL = 3
} DXGI_SWAP_EFFECT;
typedef enum DXGI_RESIDENCY {
diff --git a/mingw-w64-headers/direct-x/include/dxgi1_2.h b/mingw-w64-headers/direct-x/include/dxgi1_2.h
index f621d30..72ac571 100644
--- a/mingw-w64-headers/direct-x/include/dxgi1_2.h
+++ b/mingw-w64-headers/direct-x/include/dxgi1_2.h
@@ -27,6 +27,11 @@
typedef interface IDXGISwapChain1 IDXGISwapChain1;
#endif
+#ifndef __IDXGIFactory2_FWD_DEFINED__
+#define __IDXGIFactory2_FWD_DEFINED__
+typedef interface IDXGIFactory2 IDXGIFactory2;
+#endif
+
/* Headers for imported files */
#include <dxgi.h>
@@ -745,6 +750,443 @@
#endif /* __IDXGISwapChain1_INTERFACE_DEFINED__ */
+/*****************************************************************************
+ * IDXGIFactory2 interface
+ */
+#ifndef __IDXGIFactory2_INTERFACE_DEFINED__
+#define __IDXGIFactory2_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDXGIFactory2, 0x50c83a1c, 0xe072, 0x4c48, 0x87,0xb0, 0x36,0x30,0xfa,0x36,0xa6,0xd0);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("50c83a1c-e072-4c48-87b0-3630fa36a6d0")
+IDXGIFactory2 : public IDXGIFactory1
+{
+ virtual WINBOOL STDMETHODCALLTYPE IsWindowedStereoEnabled(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateSwapChainForHwnd(
+ IUnknown *pDevice,
+ HWND hWnd,
+ const DXGI_SWAP_CHAIN_DESC1 *pDesc,
+ const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pFullscreenDesc,
+ IDXGIOutput *pRestrictToOutput,
+ IDXGISwapChain1 **ppSwapChain) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateSwapChainForCoreWindow(
+ IUnknown *pDevice,
+ IUnknown *pWindow,
+ const DXGI_SWAP_CHAIN_DESC1 *pDesc,
+ IDXGIOutput *pRestrictToOutput,
+ IDXGISwapChain1 **ppSwapChain) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetSharedResourceAdapterLuid(
+ HANDLE hResource,
+ LUID *pLuid) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE RegisterOcclusionStatusWindow(
+ HWND WindowHandle,
+ UINT wMsg,
+ DWORD *pdwCookie) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE RegisterStereoStatusEvent(
+ HANDLE hEvent,
+ DWORD *pdwCookie) = 0;
+
+ virtual void STDMETHODCALLTYPE UnregisterStereoStatus(
+ DWORD dwCookie) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE RegisterStereoStatusWindow(
+ HWND WindowHandle,
+ UINT wMsg,
+ DWORD *pdwCookie) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE RegisterOcclusionStatusEvent(
+ HANDLE hEvent,
+ DWORD *pdwCookie) = 0;
+
+ virtual void STDMETHODCALLTYPE UnregisterOcclusionStatus(
+ DWORD dwCookie) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateSwapChainForComposition(
+ IUnknown *pDevice,
+ const DXGI_SWAP_CHAIN_DESC1 *pDesc,
+ IDXGIOutput *pRestrictToOutput,
+ IDXGISwapChain1 **ppSwapChain) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDXGIFactory2, 0x50c83a1c, 0xe072, 0x4c48, 0x87,0xb0, 0x36,0x30,0xfa,0x36,0xa6,0xd0)
+#endif
+#else
+typedef struct IDXGIFactory2Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IDXGIFactory2* This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IDXGIFactory2* This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IDXGIFactory2* This);
+
+ /*** IDXGIObject methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ IDXGIFactory2* This,
+ REFGUID guid,
+ UINT data_size,
+ const void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ IDXGIFactory2* This,
+ REFGUID guid,
+ const IUnknown *object);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ IDXGIFactory2* This,
+ REFGUID guid,
+ UINT *data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *GetParent)(
+ IDXGIFactory2* This,
+ REFIID riid,
+ void **parent);
+
+ /*** IDXGIFactory methods ***/
+ HRESULT (STDMETHODCALLTYPE *EnumAdapters)(
+ IDXGIFactory2* This,
+ UINT adapter_idx,
+ IDXGIAdapter **adapter);
+
+ HRESULT (STDMETHODCALLTYPE *MakeWindowAssociation)(
+ IDXGIFactory2* This,
+ HWND window,
+ UINT flags);
+
+ HRESULT (STDMETHODCALLTYPE *GetWindowAssociation)(
+ IDXGIFactory2* This,
+ HWND *window);
+
+ HRESULT (STDMETHODCALLTYPE *CreateSwapChain)(
+ IDXGIFactory2* This,
+ IUnknown *device,
+ DXGI_SWAP_CHAIN_DESC *desc,
+ IDXGISwapChain **swapchain);
+
+ HRESULT (STDMETHODCALLTYPE *CreateSoftwareAdapter)(
+ IDXGIFactory2* This,
+ HMODULE swrast,
+ IDXGIAdapter **adapter);
+
+ /*** IDXGIFactory1 methods ***/
+ HRESULT (STDMETHODCALLTYPE *EnumAdapters1)(
+ IDXGIFactory2* This,
+ UINT Adapter,
+ IDXGIAdapter1 **ppAdapter);
+
+ WINBOOL (STDMETHODCALLTYPE *IsCurrent)(
+ IDXGIFactory2* This);
+
+ /*** IDXGIFactory2 methods ***/
+ WINBOOL (STDMETHODCALLTYPE *IsWindowedStereoEnabled)(
+ IDXGIFactory2* This);
+
+ HRESULT (STDMETHODCALLTYPE *CreateSwapChainForHwnd)(
+ IDXGIFactory2* This,
+ IUnknown *pDevice,
+ HWND hWnd,
+ const DXGI_SWAP_CHAIN_DESC1 *pDesc,
+ const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pFullscreenDesc,
+ IDXGIOutput *pRestrictToOutput,
+ IDXGISwapChain1 **ppSwapChain);
+
+ HRESULT (STDMETHODCALLTYPE *CreateSwapChainForCoreWindow)(
+ IDXGIFactory2* This,
+ IUnknown *pDevice,
+ IUnknown *pWindow,
+ const DXGI_SWAP_CHAIN_DESC1 *pDesc,
+ IDXGIOutput *pRestrictToOutput,
+ IDXGISwapChain1 **ppSwapChain);
+
+ HRESULT (STDMETHODCALLTYPE *GetSharedResourceAdapterLuid)(
+ IDXGIFactory2* This,
+ HANDLE hResource,
+ LUID *pLuid);
+
+ HRESULT (STDMETHODCALLTYPE *RegisterOcclusionStatusWindow)(
+ IDXGIFactory2* This,
+ HWND WindowHandle,
+ UINT wMsg,
+ DWORD *pdwCookie);
+
+ HRESULT (STDMETHODCALLTYPE *RegisterStereoStatusEvent)(
+ IDXGIFactory2* This,
+ HANDLE hEvent,
+ DWORD *pdwCookie);
+
+ void (STDMETHODCALLTYPE *UnregisterStereoStatus)(
+ IDXGIFactory2* This,
+ DWORD dwCookie);
+
+ HRESULT (STDMETHODCALLTYPE *RegisterStereoStatusWindow)(
+ IDXGIFactory2* This,
+ HWND WindowHandle,
+ UINT wMsg,
+ DWORD *pdwCookie);
+
+ HRESULT (STDMETHODCALLTYPE *RegisterOcclusionStatusEvent)(
+ IDXGIFactory2* This,
+ HANDLE hEvent,
+ DWORD *pdwCookie);
+
+ void (STDMETHODCALLTYPE *UnregisterOcclusionStatus)(
+ IDXGIFactory2* This,
+ DWORD dwCookie);
+
+ HRESULT (STDMETHODCALLTYPE *CreateSwapChainForComposition)(
+ IDXGIFactory2* This,
+ IUnknown *pDevice,
+ const DXGI_SWAP_CHAIN_DESC1 *pDesc,
+ IDXGIOutput *pRestrictToOutput,
+ IDXGISwapChain1 **ppSwapChain);
+
+ END_INTERFACE
+} IDXGIFactory2Vtbl;
+interface IDXGIFactory2 {
+ CONST_VTBL IDXGIFactory2Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDXGIFactory2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDXGIFactory2_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDXGIFactory2_Release(This) (This)->lpVtbl->Release(This)
+/*** IDXGIObject methods ***/
+#define IDXGIFactory2_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define IDXGIFactory2_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
+#define IDXGIFactory2_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define IDXGIFactory2_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
+/*** IDXGIFactory methods ***/
+#define IDXGIFactory2_EnumAdapters(This,adapter_idx,adapter) (This)->lpVtbl->EnumAdapters(This,adapter_idx,adapter)
+#define IDXGIFactory2_MakeWindowAssociation(This,window,flags) (This)->lpVtbl->MakeWindowAssociation(This,window,flags)
+#define IDXGIFactory2_GetWindowAssociation(This,window) (This)->lpVtbl->GetWindowAssociation(This,window)
+#define IDXGIFactory2_CreateSwapChain(This,device,desc,swapchain) (This)->lpVtbl->CreateSwapChain(This,device,desc,swapchain)
+#define IDXGIFactory2_CreateSoftwareAdapter(This,swrast,adapter) (This)->lpVtbl->CreateSoftwareAdapter(This,swrast,adapter)
+/*** IDXGIFactory1 methods ***/
+#define IDXGIFactory2_EnumAdapters1(This,Adapter,ppAdapter) (This)->lpVtbl->EnumAdapters1(This,Adapter,ppAdapter)
+#define IDXGIFactory2_IsCurrent(This) (This)->lpVtbl->IsCurrent(This)
+/*** IDXGIFactory2 methods ***/
+#define IDXGIFactory2_IsWindowedStereoEnabled(This) (This)->lpVtbl->IsWindowedStereoEnabled(This)
+#define IDXGIFactory2_CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain) (This)->lpVtbl->CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain)
+#define IDXGIFactory2_CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain) (This)->lpVtbl->CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain)
+#define IDXGIFactory2_GetSharedResourceAdapterLuid(This,hResource,pLuid) (This)->lpVtbl->GetSharedResourceAdapterLuid(This,hResource,pLuid)
+#define IDXGIFactory2_RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie) (This)->lpVtbl->RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie)
+#define IDXGIFactory2_RegisterStereoStatusEvent(This,hEvent,pdwCookie) (This)->lpVtbl->RegisterStereoStatusEvent(This,hEvent,pdwCookie)
+#define IDXGIFactory2_UnregisterStereoStatus(This,dwCookie) (This)->lpVtbl->UnregisterStereoStatus(This,dwCookie)
+#define IDXGIFactory2_RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie) (This)->lpVtbl->RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie)
+#define IDXGIFactory2_RegisterOcclusionStatusEvent(This,hEvent,pdwCookie) (This)->lpVtbl->RegisterOcclusionStatusEvent(This,hEvent,pdwCookie)
+#define IDXGIFactory2_UnregisterOcclusionStatus(This,dwCookie) (This)->lpVtbl->UnregisterOcclusionStatus(This,dwCookie)
+#define IDXGIFactory2_CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain) (This)->lpVtbl->CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDXGIFactory2_QueryInterface(IDXGIFactory2* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDXGIFactory2_AddRef(IDXGIFactory2* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDXGIFactory2_Release(IDXGIFactory2* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IDXGIObject methods ***/
+static FORCEINLINE HRESULT IDXGIFactory2_SetPrivateData(IDXGIFactory2* This,REFGUID guid,UINT data_size,const void *data) {
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIFactory2_SetPrivateDataInterface(IDXGIFactory2* This,REFGUID guid,const IUnknown *object) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
+}
+static FORCEINLINE HRESULT IDXGIFactory2_GetPrivateData(IDXGIFactory2* This,REFGUID guid,UINT *data_size,void *data) {
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIFactory2_GetParent(IDXGIFactory2* This,REFIID riid,void **parent) {
+ return This->lpVtbl->GetParent(This,riid,parent);
+}
+/*** IDXGIFactory methods ***/
+static FORCEINLINE HRESULT IDXGIFactory2_EnumAdapters(IDXGIFactory2* This,UINT adapter_idx,IDXGIAdapter **adapter) {
+ return This->lpVtbl->EnumAdapters(This,adapter_idx,adapter);
+}
+static FORCEINLINE HRESULT IDXGIFactory2_MakeWindowAssociation(IDXGIFactory2* This,HWND window,UINT flags) {
+ return This->lpVtbl->MakeWindowAssociation(This,window,flags);
+}
+static FORCEINLINE HRESULT IDXGIFactory2_GetWindowAssociation(IDXGIFactory2* This,HWND *window) {
+ return This->lpVtbl->GetWindowAssociation(This,window);
+}
+static FORCEINLINE HRESULT IDXGIFactory2_CreateSwapChain(IDXGIFactory2* This,IUnknown *device,DXGI_SWAP_CHAIN_DESC *desc,IDXGISwapChain **swapchain) {
+ return This->lpVtbl->CreateSwapChain(This,device,desc,swapchain);
+}
+static FORCEINLINE HRESULT IDXGIFactory2_CreateSoftwareAdapter(IDXGIFactory2* This,HMODULE swrast,IDXGIAdapter **adapter) {
+ return This->lpVtbl->CreateSoftwareAdapter(This,swrast,adapter);
+}
+/*** IDXGIFactory1 methods ***/
+static FORCEINLINE HRESULT IDXGIFactory2_EnumAdapters1(IDXGIFactory2* This,UINT Adapter,IDXGIAdapter1 **ppAdapter) {
+ return This->lpVtbl->EnumAdapters1(This,Adapter,ppAdapter);
+}
+static FORCEINLINE WINBOOL IDXGIFactory2_IsCurrent(IDXGIFactory2* This) {
+ return This->lpVtbl->IsCurrent(This);
+}
+/*** IDXGIFactory2 methods ***/
+static FORCEINLINE WINBOOL IDXGIFactory2_IsWindowedStereoEnabled(IDXGIFactory2* This) {
+ return This->lpVtbl->IsWindowedStereoEnabled(This);
+}
+static FORCEINLINE HRESULT IDXGIFactory2_CreateSwapChainForHwnd(IDXGIFactory2* This,IUnknown *pDevice,HWND hWnd,const DXGI_SWAP_CHAIN_DESC1 *pDesc,const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pFullscreenDesc,IDXGIOutput *pRestrictToOutput,IDXGISwapChain1 **ppSwapChain) {
+ return This->lpVtbl->CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain);
+}
+static FORCEINLINE HRESULT IDXGIFactory2_CreateSwapChainForCoreWindow(IDXGIFactory2* This,IUnknown *pDevice,IUnknown *pWindow,const DXGI_SWAP_CHAIN_DESC1 *pDesc,IDXGIOutput *pRestrictToOutput,IDXGISwapChain1 **ppSwapChain) {
+ return This->lpVtbl->CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain);
+}
+static FORCEINLINE HRESULT IDXGIFactory2_GetSharedResourceAdapterLuid(IDXGIFactory2* This,HANDLE hResource,LUID *pLuid) {
+ return This->lpVtbl->GetSharedResourceAdapterLuid(This,hResource,pLuid);
+}
+static FORCEINLINE HRESULT IDXGIFactory2_RegisterOcclusionStatusWindow(IDXGIFactory2* This,HWND WindowHandle,UINT wMsg,DWORD *pdwCookie) {
+ return This->lpVtbl->RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie);
+}
+static FORCEINLINE HRESULT IDXGIFactory2_RegisterStereoStatusEvent(IDXGIFactory2* This,HANDLE hEvent,DWORD *pdwCookie) {
+ return This->lpVtbl->RegisterStereoStatusEvent(This,hEvent,pdwCookie);
+}
+static FORCEINLINE void IDXGIFactory2_UnregisterStereoStatus(IDXGIFactory2* This,DWORD dwCookie) {
+ This->lpVtbl->UnregisterStereoStatus(This,dwCookie);
+}
+static FORCEINLINE HRESULT IDXGIFactory2_RegisterStereoStatusWindow(IDXGIFactory2* This,HWND WindowHandle,UINT wMsg,DWORD *pdwCookie) {
+ return This->lpVtbl->RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie);
+}
+static FORCEINLINE HRESULT IDXGIFactory2_RegisterOcclusionStatusEvent(IDXGIFactory2* This,HANDLE hEvent,DWORD *pdwCookie) {
+ return This->lpVtbl->RegisterOcclusionStatusEvent(This,hEvent,pdwCookie);
+}
+static FORCEINLINE void IDXGIFactory2_UnregisterOcclusionStatus(IDXGIFactory2* This,DWORD dwCookie) {
+ This->lpVtbl->UnregisterOcclusionStatus(This,dwCookie);
+}
+static FORCEINLINE HRESULT IDXGIFactory2_CreateSwapChainForComposition(IDXGIFactory2* This,IUnknown *pDevice,const DXGI_SWAP_CHAIN_DESC1 *pDesc,IDXGIOutput *pRestrictToOutput,IDXGISwapChain1 **ppSwapChain) {
+ return This->lpVtbl->CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain);
+}
+#endif
+#endif
+
+#endif
+
+WINBOOL STDMETHODCALLTYPE IDXGIFactory2_IsWindowedStereoEnabled_Proxy(
+ IDXGIFactory2* This);
+void __RPC_STUB IDXGIFactory2_IsWindowedStereoEnabled_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDXGIFactory2_CreateSwapChainForHwnd_Proxy(
+ IDXGIFactory2* This,
+ IUnknown *pDevice,
+ HWND hWnd,
+ const DXGI_SWAP_CHAIN_DESC1 *pDesc,
+ const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pFullscreenDesc,
+ IDXGIOutput *pRestrictToOutput,
+ IDXGISwapChain1 **ppSwapChain);
+void __RPC_STUB IDXGIFactory2_CreateSwapChainForHwnd_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDXGIFactory2_CreateSwapChainForCoreWindow_Proxy(
+ IDXGIFactory2* This,
+ IUnknown *pDevice,
+ IUnknown *pWindow,
+ const DXGI_SWAP_CHAIN_DESC1 *pDesc,
+ IDXGIOutput *pRestrictToOutput,
+ IDXGISwapChain1 **ppSwapChain);
+void __RPC_STUB IDXGIFactory2_CreateSwapChainForCoreWindow_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDXGIFactory2_GetSharedResourceAdapterLuid_Proxy(
+ IDXGIFactory2* This,
+ HANDLE hResource,
+ LUID *pLuid);
+void __RPC_STUB IDXGIFactory2_GetSharedResourceAdapterLuid_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDXGIFactory2_RegisterOcclusionStatusWindow_Proxy(
+ IDXGIFactory2* This,
+ HWND WindowHandle,
+ UINT wMsg,
+ DWORD *pdwCookie);
+void __RPC_STUB IDXGIFactory2_RegisterOcclusionStatusWindow_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDXGIFactory2_RegisterStereoStatusEvent_Proxy(
+ IDXGIFactory2* This,
+ HANDLE hEvent,
+ DWORD *pdwCookie);
+void __RPC_STUB IDXGIFactory2_RegisterStereoStatusEvent_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+void STDMETHODCALLTYPE IDXGIFactory2_UnregisterStereoStatus_Proxy(
+ IDXGIFactory2* This,
+ DWORD dwCookie);
+void __RPC_STUB IDXGIFactory2_UnregisterStereoStatus_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDXGIFactory2_RegisterStereoStatusWindow_Proxy(
+ IDXGIFactory2* This,
+ HWND WindowHandle,
+ UINT wMsg,
+ DWORD *pdwCookie);
+void __RPC_STUB IDXGIFactory2_RegisterStereoStatusWindow_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDXGIFactory2_RegisterOcclusionStatusEvent_Proxy(
+ IDXGIFactory2* This,
+ HANDLE hEvent,
+ DWORD *pdwCookie);
+void __RPC_STUB IDXGIFactory2_RegisterOcclusionStatusEvent_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+void STDMETHODCALLTYPE IDXGIFactory2_UnregisterOcclusionStatus_Proxy(
+ IDXGIFactory2* This,
+ DWORD dwCookie);
+void __RPC_STUB IDXGIFactory2_UnregisterOcclusionStatus_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDXGIFactory2_CreateSwapChainForComposition_Proxy(
+ IDXGIFactory2* This,
+ IUnknown *pDevice,
+ const DXGI_SWAP_CHAIN_DESC1 *pDesc,
+ IDXGIOutput *pRestrictToOutput,
+ IDXGISwapChain1 **ppSwapChain);
+void __RPC_STUB IDXGIFactory2_CreateSwapChainForComposition_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+#endif /* __IDXGIFactory2_INTERFACE_DEFINED__ */
+
/* Begin additional prototypes for all interfaces */
diff --git a/mingw-w64-headers/direct-x/include/dxgi1_2.idl b/mingw-w64-headers/direct-x/include/dxgi1_2.idl
index bba4ab8..775b81c 100644
--- a/mingw-w64-headers/direct-x/include/dxgi1_2.idl
+++ b/mingw-w64-headers/direct-x/include/dxgi1_2.idl
@@ -130,3 +130,63 @@
HRESULT GetRotation(
[out] DXGI_MODE_ROTATION *pRotation);
}
+
+[
+ object,
+ uuid(50c83a1c-e072-4c48-87b0-3630fa36a6d0),
+ local,
+ pointer_default(unique)
+]
+interface IDXGIFactory2 : IDXGIFactory1
+{
+ BOOL IsWindowedStereoEnabled();
+
+ HRESULT CreateSwapChainForHwnd(
+ [in] IUnknown *pDevice,
+ [in] HWND hWnd,
+ [in] const DXGI_SWAP_CHAIN_DESC1 *pDesc,
+ [in] const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pFullscreenDesc,
+ [in] IDXGIOutput *pRestrictToOutput,
+ [out] IDXGISwapChain1 **ppSwapChain);
+
+ HRESULT CreateSwapChainForCoreWindow(
+ [in] IUnknown *pDevice,
+ [in] IUnknown *pWindow,
+ [in] const DXGI_SWAP_CHAIN_DESC1 *pDesc,
+ [in] IDXGIOutput *pRestrictToOutput,
+ [out] IDXGISwapChain1 **ppSwapChain);
+
+ HRESULT GetSharedResourceAdapterLuid(
+ [in] HANDLE hResource,
+ [out] LUID *pLuid);
+
+ HRESULT RegisterOcclusionStatusWindow(
+ [in] HWND WindowHandle,
+ [in] UINT wMsg,
+ [out] DWORD *pdwCookie);
+
+ HRESULT RegisterStereoStatusEvent(
+ [in] HANDLE hEvent,
+ [out] DWORD *pdwCookie);
+
+ void UnregisterStereoStatus(
+ [in] DWORD dwCookie);
+
+ HRESULT RegisterStereoStatusWindow(
+ [in] HWND WindowHandle,
+ [in] UINT wMsg,
+ [out] DWORD *pdwCookie);
+
+ HRESULT RegisterOcclusionStatusEvent(
+ [in] HANDLE hEvent,
+ [out] DWORD *pdwCookie);
+
+ void UnregisterOcclusionStatus(
+ [in] DWORD dwCookie);
+
+ HRESULT CreateSwapChainForComposition(
+ [in] IUnknown *pDevice,
+ [in] const DXGI_SWAP_CHAIN_DESC1 *pDesc,
+ [in] IDXGIOutput *pRestrictToOutput,
+ [out] IDXGISwapChain1 **ppSwapChain);
+}
diff --git a/mingw-w64-headers/include/wmsdkidl.h b/mingw-w64-headers/include/wmsdkidl.h
index ad3afc4..5ff3d9e 100644
--- a/mingw-w64-headers/include/wmsdkidl.h
+++ b/mingw-w64-headers/include/wmsdkidl.h
@@ -77,6 +77,36 @@
typedef interface IWMSyncReader IWMSyncReader;
#endif
+#ifndef __IWMInputMediaProps_FWD_DEFINED__
+#define __IWMInputMediaProps_FWD_DEFINED__
+typedef interface IWMInputMediaProps IWMInputMediaProps;
+#endif
+
+#ifndef __IWMWriterSink_FWD_DEFINED__
+#define __IWMWriterSink_FWD_DEFINED__
+typedef interface IWMWriterSink IWMWriterSink;
+#endif
+
+#ifndef __IWMWriter_FWD_DEFINED__
+#define __IWMWriter_FWD_DEFINED__
+typedef interface IWMWriter IWMWriter;
+#endif
+
+#ifndef __IWMWriterAdvanced_FWD_DEFINED__
+#define __IWMWriterAdvanced_FWD_DEFINED__
+typedef interface IWMWriterAdvanced IWMWriterAdvanced;
+#endif
+
+#ifndef __IWMWriterAdvanced2_FWD_DEFINED__
+#define __IWMWriterAdvanced2_FWD_DEFINED__
+typedef interface IWMWriterAdvanced2 IWMWriterAdvanced2;
+#endif
+
+#ifndef __IWMWriterAdvanced3_FWD_DEFINED__
+#define __IWMWriterAdvanced3_FWD_DEFINED__
+typedef interface IWMWriterAdvanced3 IWMWriterAdvanced3;
+#endif
+
/* Headers for imported files */
#include <oaidl.h>
@@ -98,6 +128,27 @@
ULONG cbFormat;
BYTE *pbFormat;
} WM_MEDIA_TYPE;
+typedef struct _WMWriterStatistics {
+ QWORD qwSampleCount;
+ QWORD qwByteCount;
+ QWORD qwDroppedSampleCount;
+ QWORD qwDroppedByteCount;
+ DWORD dwCurrentBitrate;
+ DWORD dwAverageBitrate;
+ DWORD dwExpectedBitrate;
+ DWORD dwCurrentSampleRate;
+ DWORD dwAverageSampleRate;
+ DWORD dwExpectedSampleRate;
+} WM_WRITER_STATISTICS;
+typedef struct _WMWriterStatisticsEx {
+ DWORD dwBitratePlusOverhead;
+ DWORD dwCurrentSampleDropRateInQueue;
+ DWORD dwCurrentSampleDropRateInCodec;
+ DWORD dwCurrentSampleDropRateInMultiplexer;
+ DWORD dwTotalSampleDropsInQueue;
+ DWORD dwTotalSampleDropsInCodec;
+ DWORD dwTotalSampleDropsInMultiplexer;
+} WM_WRITER_STATISTICS_EX;
typedef enum WMT_ATTR_DATATYPE {
WMT_TYPE_DWORD = 0,
WMT_TYPE_STRING = 1,
@@ -2774,6 +2825,1387 @@
#endif /* __IWMSyncReader_INTERFACE_DEFINED__ */
+/*****************************************************************************
+ * IWMInputMediaProps interface
+ */
+#ifndef __IWMInputMediaProps_INTERFACE_DEFINED__
+#define __IWMInputMediaProps_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWMInputMediaProps, 0x96406bd5, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("96406bd5-2b2b-11d3-b36b-00c04f6108ff")
+IWMInputMediaProps : public IWMMediaProps
+{
+ virtual HRESULT STDMETHODCALLTYPE GetConnectionName(
+ WCHAR *pwszName,
+ WORD *pcchName) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetGroupName(
+ WCHAR *pwszName,
+ WORD *pcchName) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWMInputMediaProps, 0x96406bd5, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff)
+#endif
+#else
+typedef struct IWMInputMediaPropsVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IWMInputMediaProps* This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IWMInputMediaProps* This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IWMInputMediaProps* This);
+
+ /*** IWMMediaProps methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetType)(
+ IWMInputMediaProps* This,
+ GUID *pguidType);
+
+ HRESULT (STDMETHODCALLTYPE *GetMediaType)(
+ IWMInputMediaProps* This,
+ WM_MEDIA_TYPE *pType,
+ DWORD *pcbType);
+
+ HRESULT (STDMETHODCALLTYPE *SetMediaType)(
+ IWMInputMediaProps* This,
+ WM_MEDIA_TYPE *pType);
+
+ /*** IWMInputMediaProps methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetConnectionName)(
+ IWMInputMediaProps* This,
+ WCHAR *pwszName,
+ WORD *pcchName);
+
+ HRESULT (STDMETHODCALLTYPE *GetGroupName)(
+ IWMInputMediaProps* This,
+ WCHAR *pwszName,
+ WORD *pcchName);
+
+ END_INTERFACE
+} IWMInputMediaPropsVtbl;
+interface IWMInputMediaProps {
+ CONST_VTBL IWMInputMediaPropsVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWMInputMediaProps_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWMInputMediaProps_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWMInputMediaProps_Release(This) (This)->lpVtbl->Release(This)
+/*** IWMMediaProps methods ***/
+#define IWMInputMediaProps_GetType(This,pguidType) (This)->lpVtbl->GetType(This,pguidType)
+#define IWMInputMediaProps_GetMediaType(This,pType,pcbType) (This)->lpVtbl->GetMediaType(This,pType,pcbType)
+#define IWMInputMediaProps_SetMediaType(This,pType) (This)->lpVtbl->SetMediaType(This,pType)
+/*** IWMInputMediaProps methods ***/
+#define IWMInputMediaProps_GetConnectionName(This,pwszName,pcchName) (This)->lpVtbl->GetConnectionName(This,pwszName,pcchName)
+#define IWMInputMediaProps_GetGroupName(This,pwszName,pcchName) (This)->lpVtbl->GetGroupName(This,pwszName,pcchName)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWMInputMediaProps_QueryInterface(IWMInputMediaProps* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWMInputMediaProps_AddRef(IWMInputMediaProps* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWMInputMediaProps_Release(IWMInputMediaProps* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IWMMediaProps methods ***/
+static FORCEINLINE HRESULT IWMInputMediaProps_GetType(IWMInputMediaProps* This,GUID *pguidType) {
+ return This->lpVtbl->GetType(This,pguidType);
+}
+static FORCEINLINE HRESULT IWMInputMediaProps_GetMediaType(IWMInputMediaProps* This,WM_MEDIA_TYPE *pType,DWORD *pcbType) {
+ return This->lpVtbl->GetMediaType(This,pType,pcbType);
+}
+static FORCEINLINE HRESULT IWMInputMediaProps_SetMediaType(IWMInputMediaProps* This,WM_MEDIA_TYPE *pType) {
+ return This->lpVtbl->SetMediaType(This,pType);
+}
+/*** IWMInputMediaProps methods ***/
+static FORCEINLINE HRESULT IWMInputMediaProps_GetConnectionName(IWMInputMediaProps* This,WCHAR *pwszName,WORD *pcchName) {
+ return This->lpVtbl->GetConnectionName(This,pwszName,pcchName);
+}
+static FORCEINLINE HRESULT IWMInputMediaProps_GetGroupName(IWMInputMediaProps* This,WCHAR *pwszName,WORD *pcchName) {
+ return This->lpVtbl->GetGroupName(This,pwszName,pcchName);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IWMInputMediaProps_GetConnectionName_Proxy(
+ IWMInputMediaProps* This,
+ WCHAR *pwszName,
+ WORD *pcchName);
+void __RPC_STUB IWMInputMediaProps_GetConnectionName_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMInputMediaProps_GetGroupName_Proxy(
+ IWMInputMediaProps* This,
+ WCHAR *pwszName,
+ WORD *pcchName);
+void __RPC_STUB IWMInputMediaProps_GetGroupName_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+#endif /* __IWMInputMediaProps_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWMWriterSink interface
+ */
+#ifndef __IWMWriterSink_INTERFACE_DEFINED__
+#define __IWMWriterSink_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWMWriterSink, 0x96406be4, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("96406be4-2b2b-11d3-b36b-00c04f6108ff")
+IWMWriterSink : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE OnHeader(
+ INSSBuffer *pHeader) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE IsRealTime(
+ WINBOOL *pfRealTime) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE AllocateDataUnit(
+ DWORD cbDataUnit,
+ INSSBuffer **ppDataUnit) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE OnDataUnit(
+ INSSBuffer *pDataUnit) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE OnEndWriting(
+ ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWMWriterSink, 0x96406be4, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff)
+#endif
+#else
+typedef struct IWMWriterSinkVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IWMWriterSink* This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IWMWriterSink* This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IWMWriterSink* This);
+
+ /*** IWMWriterSink methods ***/
+ HRESULT (STDMETHODCALLTYPE *OnHeader)(
+ IWMWriterSink* This,
+ INSSBuffer *pHeader);
+
+ HRESULT (STDMETHODCALLTYPE *IsRealTime)(
+ IWMWriterSink* This,
+ WINBOOL *pfRealTime);
+
+ HRESULT (STDMETHODCALLTYPE *AllocateDataUnit)(
+ IWMWriterSink* This,
+ DWORD cbDataUnit,
+ INSSBuffer **ppDataUnit);
+
+ HRESULT (STDMETHODCALLTYPE *OnDataUnit)(
+ IWMWriterSink* This,
+ INSSBuffer *pDataUnit);
+
+ HRESULT (STDMETHODCALLTYPE *OnEndWriting)(
+ IWMWriterSink* This);
+
+ END_INTERFACE
+} IWMWriterSinkVtbl;
+interface IWMWriterSink {
+ CONST_VTBL IWMWriterSinkVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWMWriterSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWMWriterSink_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWMWriterSink_Release(This) (This)->lpVtbl->Release(This)
+/*** IWMWriterSink methods ***/
+#define IWMWriterSink_OnHeader(This,pHeader) (This)->lpVtbl->OnHeader(This,pHeader)
+#define IWMWriterSink_IsRealTime(This,pfRealTime) (This)->lpVtbl->IsRealTime(This,pfRealTime)
+#define IWMWriterSink_AllocateDataUnit(This,cbDataUnit,ppDataUnit) (This)->lpVtbl->AllocateDataUnit(This,cbDataUnit,ppDataUnit)
+#define IWMWriterSink_OnDataUnit(This,pDataUnit) (This)->lpVtbl->OnDataUnit(This,pDataUnit)
+#define IWMWriterSink_OnEndWriting(This) (This)->lpVtbl->OnEndWriting(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWMWriterSink_QueryInterface(IWMWriterSink* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWMWriterSink_AddRef(IWMWriterSink* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWMWriterSink_Release(IWMWriterSink* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IWMWriterSink methods ***/
+static FORCEINLINE HRESULT IWMWriterSink_OnHeader(IWMWriterSink* This,INSSBuffer *pHeader) {
+ return This->lpVtbl->OnHeader(This,pHeader);
+}
+static FORCEINLINE HRESULT IWMWriterSink_IsRealTime(IWMWriterSink* This,WINBOOL *pfRealTime) {
+ return This->lpVtbl->IsRealTime(This,pfRealTime);
+}
+static FORCEINLINE HRESULT IWMWriterSink_AllocateDataUnit(IWMWriterSink* This,DWORD cbDataUnit,INSSBuffer **ppDataUnit) {
+ return This->lpVtbl->AllocateDataUnit(This,cbDataUnit,ppDataUnit);
+}
+static FORCEINLINE HRESULT IWMWriterSink_OnDataUnit(IWMWriterSink* This,INSSBuffer *pDataUnit) {
+ return This->lpVtbl->OnDataUnit(This,pDataUnit);
+}
+static FORCEINLINE HRESULT IWMWriterSink_OnEndWriting(IWMWriterSink* This) {
+ return This->lpVtbl->OnEndWriting(This);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IWMWriterSink_OnHeader_Proxy(
+ IWMWriterSink* This,
+ INSSBuffer *pHeader);
+void __RPC_STUB IWMWriterSink_OnHeader_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMWriterSink_IsRealTime_Proxy(
+ IWMWriterSink* This,
+ WINBOOL *pfRealTime);
+void __RPC_STUB IWMWriterSink_IsRealTime_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMWriterSink_AllocateDataUnit_Proxy(
+ IWMWriterSink* This,
+ DWORD cbDataUnit,
+ INSSBuffer **ppDataUnit);
+void __RPC_STUB IWMWriterSink_AllocateDataUnit_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMWriterSink_OnDataUnit_Proxy(
+ IWMWriterSink* This,
+ INSSBuffer *pDataUnit);
+void __RPC_STUB IWMWriterSink_OnDataUnit_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMWriterSink_OnEndWriting_Proxy(
+ IWMWriterSink* This);
+void __RPC_STUB IWMWriterSink_OnEndWriting_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+#endif /* __IWMWriterSink_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWMWriter interface
+ */
+#ifndef __IWMWriter_INTERFACE_DEFINED__
+#define __IWMWriter_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWMWriter, 0x96406bd4, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("96406bd4-2b2b-11d3-b36b-00c04f6108ff")
+IWMWriter : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE SetProfileByID(
+ REFGUID guidProfile) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetProfile(
+ IWMProfile *pProfile) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetOutputFilename(
+ const WCHAR *pwszFilename) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetInputCount(
+ DWORD *pcInputs) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetInputProps(
+ DWORD dwInputNum,
+ IWMInputMediaProps **ppInput) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetInputProps(
+ DWORD dwInputNum,
+ IWMInputMediaProps *pInput) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetInputFormatCount(
+ DWORD dwInputNumber,
+ DWORD *pcFormats) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetInputFormat(
+ DWORD dwInputNumber,
+ DWORD dwFormatNumber,
+ IWMInputMediaProps **pProps) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE BeginWriting(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EndWriting(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE AllocateSample(
+ DWORD dwSampleSize,
+ INSSBuffer **ppSample) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE WriteSample(
+ DWORD dwInputNum,
+ QWORD cnsSampleTime,
+ DWORD dwFlags,
+ INSSBuffer *pSample) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Flush(
+ ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWMWriter, 0x96406bd4, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff)
+#endif
+#else
+typedef struct IWMWriterVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IWMWriter* This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IWMWriter* This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IWMWriter* This);
+
+ /*** IWMWriter methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetProfileByID)(
+ IWMWriter* This,
+ REFGUID guidProfile);
+
+ HRESULT (STDMETHODCALLTYPE *SetProfile)(
+ IWMWriter* This,
+ IWMProfile *pProfile);
+
+ HRESULT (STDMETHODCALLTYPE *SetOutputFilename)(
+ IWMWriter* This,
+ const WCHAR *pwszFilename);
+
+ HRESULT (STDMETHODCALLTYPE *GetInputCount)(
+ IWMWriter* This,
+ DWORD *pcInputs);
+
+ HRESULT (STDMETHODCALLTYPE *GetInputProps)(
+ IWMWriter* This,
+ DWORD dwInputNum,
+ IWMInputMediaProps **ppInput);
+
+ HRESULT (STDMETHODCALLTYPE *SetInputProps)(
+ IWMWriter* This,
+ DWORD dwInputNum,
+ IWMInputMediaProps *pInput);
+
+ HRESULT (STDMETHODCALLTYPE *GetInputFormatCount)(
+ IWMWriter* This,
+ DWORD dwInputNumber,
+ DWORD *pcFormats);
+
+ HRESULT (STDMETHODCALLTYPE *GetInputFormat)(
+ IWMWriter* This,
+ DWORD dwInputNumber,
+ DWORD dwFormatNumber,
+ IWMInputMediaProps **pProps);
+
+ HRESULT (STDMETHODCALLTYPE *BeginWriting)(
+ IWMWriter* This);
+
+ HRESULT (STDMETHODCALLTYPE *EndWriting)(
+ IWMWriter* This);
+
+ HRESULT (STDMETHODCALLTYPE *AllocateSample)(
+ IWMWriter* This,
+ DWORD dwSampleSize,
+ INSSBuffer **ppSample);
+
+ HRESULT (STDMETHODCALLTYPE *WriteSample)(
+ IWMWriter* This,
+ DWORD dwInputNum,
+ QWORD cnsSampleTime,
+ DWORD dwFlags,
+ INSSBuffer *pSample);
+
+ HRESULT (STDMETHODCALLTYPE *Flush)(
+ IWMWriter* This);
+
+ END_INTERFACE
+} IWMWriterVtbl;
+interface IWMWriter {
+ CONST_VTBL IWMWriterVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWMWriter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWMWriter_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWMWriter_Release(This) (This)->lpVtbl->Release(This)
+/*** IWMWriter methods ***/
+#define IWMWriter_SetProfileByID(This,guidProfile) (This)->lpVtbl->SetProfileByID(This,guidProfile)
+#define IWMWriter_SetProfile(This,pProfile) (This)->lpVtbl->SetProfile(This,pProfile)
+#define IWMWriter_SetOutputFilename(This,pwszFilename) (This)->lpVtbl->SetOutputFilename(This,pwszFilename)
+#define IWMWriter_GetInputCount(This,pcInputs) (This)->lpVtbl->GetInputCount(This,pcInputs)
+#define IWMWriter_GetInputProps(This,dwInputNum,ppInput) (This)->lpVtbl->GetInputProps(This,dwInputNum,ppInput)
+#define IWMWriter_SetInputProps(This,dwInputNum,pInput) (This)->lpVtbl->SetInputProps(This,dwInputNum,pInput)
+#define IWMWriter_GetInputFormatCount(This,dwInputNumber,pcFormats) (This)->lpVtbl->GetInputFormatCount(This,dwInputNumber,pcFormats)
+#define IWMWriter_GetInputFormat(This,dwInputNumber,dwFormatNumber,pProps) (This)->lpVtbl->GetInputFormat(This,dwInputNumber,dwFormatNumber,pProps)
+#define IWMWriter_BeginWriting(This) (This)->lpVtbl->BeginWriting(This)
+#define IWMWriter_EndWriting(This) (This)->lpVtbl->EndWriting(This)
+#define IWMWriter_AllocateSample(This,dwSampleSize,ppSample) (This)->lpVtbl->AllocateSample(This,dwSampleSize,ppSample)
+#define IWMWriter_WriteSample(This,dwInputNum,cnsSampleTime,dwFlags,pSample) (This)->lpVtbl->WriteSample(This,dwInputNum,cnsSampleTime,dwFlags,pSample)
+#define IWMWriter_Flush(This) (This)->lpVtbl->Flush(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWMWriter_QueryInterface(IWMWriter* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWMWriter_AddRef(IWMWriter* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWMWriter_Release(IWMWriter* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IWMWriter methods ***/
+static FORCEINLINE HRESULT IWMWriter_SetProfileByID(IWMWriter* This,REFGUID guidProfile) {
+ return This->lpVtbl->SetProfileByID(This,guidProfile);
+}
+static FORCEINLINE HRESULT IWMWriter_SetProfile(IWMWriter* This,IWMProfile *pProfile) {
+ return This->lpVtbl->SetProfile(This,pProfile);
+}
+static FORCEINLINE HRESULT IWMWriter_SetOutputFilename(IWMWriter* This,const WCHAR *pwszFilename) {
+ return This->lpVtbl->SetOutputFilename(This,pwszFilename);
+}
+static FORCEINLINE HRESULT IWMWriter_GetInputCount(IWMWriter* This,DWORD *pcInputs) {
+ return This->lpVtbl->GetInputCount(This,pcInputs);
+}
+static FORCEINLINE HRESULT IWMWriter_GetInputProps(IWMWriter* This,DWORD dwInputNum,IWMInputMediaProps **ppInput) {
+ return This->lpVtbl->GetInputProps(This,dwInputNum,ppInput);
+}
+static FORCEINLINE HRESULT IWMWriter_SetInputProps(IWMWriter* This,DWORD dwInputNum,IWMInputMediaProps *pInput) {
+ return This->lpVtbl->SetInputProps(This,dwInputNum,pInput);
+}
+static FORCEINLINE HRESULT IWMWriter_GetInputFormatCount(IWMWriter* This,DWORD dwInputNumber,DWORD *pcFormats) {
+ return This->lpVtbl->GetInputFormatCount(This,dwInputNumber,pcFormats);
+}
+static FORCEINLINE HRESULT IWMWriter_GetInputFormat(IWMWriter* This,DWORD dwInputNumber,DWORD dwFormatNumber,IWMInputMediaProps **pProps) {
+ return This->lpVtbl->GetInputFormat(This,dwInputNumber,dwFormatNumber,pProps);
+}
+static FORCEINLINE HRESULT IWMWriter_BeginWriting(IWMWriter* This) {
+ return This->lpVtbl->BeginWriting(This);
+}
+static FORCEINLINE HRESULT IWMWriter_EndWriting(IWMWriter* This) {
+ return This->lpVtbl->EndWriting(This);
+}
+static FORCEINLINE HRESULT IWMWriter_AllocateSample(IWMWriter* This,DWORD dwSampleSize,INSSBuffer **ppSample) {
+ return This->lpVtbl->AllocateSample(This,dwSampleSize,ppSample);
+}
+static FORCEINLINE HRESULT IWMWriter_WriteSample(IWMWriter* This,DWORD dwInputNum,QWORD cnsSampleTime,DWORD dwFlags,INSSBuffer *pSample) {
+ return This->lpVtbl->WriteSample(This,dwInputNum,cnsSampleTime,dwFlags,pSample);
+}
+static FORCEINLINE HRESULT IWMWriter_Flush(IWMWriter* This) {
+ return This->lpVtbl->Flush(This);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IWMWriter_SetProfileByID_Proxy(
+ IWMWriter* This,
+ REFGUID guidProfile);
+void __RPC_STUB IWMWriter_SetProfileByID_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMWriter_SetProfile_Proxy(
+ IWMWriter* This,
+ IWMProfile *pProfile);
+void __RPC_STUB IWMWriter_SetProfile_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMWriter_SetOutputFilename_Proxy(
+ IWMWriter* This,
+ const WCHAR *pwszFilename);
+void __RPC_STUB IWMWriter_SetOutputFilename_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMWriter_GetInputCount_Proxy(
+ IWMWriter* This,
+ DWORD *pcInputs);
+void __RPC_STUB IWMWriter_GetInputCount_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMWriter_GetInputProps_Proxy(
+ IWMWriter* This,
+ DWORD dwInputNum,
+ IWMInputMediaProps **ppInput);
+void __RPC_STUB IWMWriter_GetInputProps_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMWriter_SetInputProps_Proxy(
+ IWMWriter* This,
+ DWORD dwInputNum,
+ IWMInputMediaProps *pInput);
+void __RPC_STUB IWMWriter_SetInputProps_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMWriter_GetInputFormatCount_Proxy(
+ IWMWriter* This,
+ DWORD dwInputNumber,
+ DWORD *pcFormats);
+void __RPC_STUB IWMWriter_GetInputFormatCount_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMWriter_GetInputFormat_Proxy(
+ IWMWriter* This,
+ DWORD dwInputNumber,
+ DWORD dwFormatNumber,
+ IWMInputMediaProps **pProps);
+void __RPC_STUB IWMWriter_GetInputFormat_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMWriter_BeginWriting_Proxy(
+ IWMWriter* This);
+void __RPC_STUB IWMWriter_BeginWriting_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMWriter_EndWriting_Proxy(
+ IWMWriter* This);
+void __RPC_STUB IWMWriter_EndWriting_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMWriter_AllocateSample_Proxy(
+ IWMWriter* This,
+ DWORD dwSampleSize,
+ INSSBuffer **ppSample);
+void __RPC_STUB IWMWriter_AllocateSample_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMWriter_WriteSample_Proxy(
+ IWMWriter* This,
+ DWORD dwInputNum,
+ QWORD cnsSampleTime,
+ DWORD dwFlags,
+ INSSBuffer *pSample);
+void __RPC_STUB IWMWriter_WriteSample_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMWriter_Flush_Proxy(
+ IWMWriter* This);
+void __RPC_STUB IWMWriter_Flush_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+#endif /* __IWMWriter_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWMWriterAdvanced interface
+ */
+#ifndef __IWMWriterAdvanced_INTERFACE_DEFINED__
+#define __IWMWriterAdvanced_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWMWriterAdvanced, 0x96406be3, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("96406be3-2b2b-11d3-b36b-00c04f6108ff")
+IWMWriterAdvanced : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE GetSinkCount(
+ DWORD *pcSinks) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetSink(
+ DWORD dwSinkNum,
+ IWMWriterSink **ppSink) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE AddSink(
+ IWMWriterSink *pSink) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE RemoveSink(
+ IWMWriterSink *pSink) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE WriteStreamSample(
+ WORD wStreamNum,
+ QWORD cnsSampleTime,
+ DWORD msSampleSendTime,
+ QWORD cnsSampleDuration,
+ DWORD dwFlags,
+ INSSBuffer *pSample) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetLiveSource(
+ WINBOOL fIsLiveSource) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE IsRealTime(
+ WINBOOL *pfRealTime) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetWriterTime(
+ QWORD *pCurrentTime) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetStatistics(
+ WORD wStreamNum,
+ WM_WRITER_STATISTICS *pStats) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetSyncTolerance(
+ DWORD msWindow) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetSyncTolerance(
+ DWORD *pmsWindow) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWMWriterAdvanced, 0x96406be3, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff)
+#endif
+#else
+typedef struct IWMWriterAdvancedVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IWMWriterAdvanced* This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IWMWriterAdvanced* This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IWMWriterAdvanced* This);
+
+ /*** IWMWriterAdvanced methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetSinkCount)(
+ IWMWriterAdvanced* This,
+ DWORD *pcSinks);
+
+ HRESULT (STDMETHODCALLTYPE *GetSink)(
+ IWMWriterAdvanced* This,
+ DWORD dwSinkNum,
+ IWMWriterSink **ppSink);
+
+ HRESULT (STDMETHODCALLTYPE *AddSink)(
+ IWMWriterAdvanced* This,
+ IWMWriterSink *pSink);
+
+ HRESULT (STDMETHODCALLTYPE *RemoveSink)(
+ IWMWriterAdvanced* This,
+ IWMWriterSink *pSink);
+
+ HRESULT (STDMETHODCALLTYPE *WriteStreamSample)(
+ IWMWriterAdvanced* This,
+ WORD wStreamNum,
+ QWORD cnsSampleTime,
+ DWORD msSampleSendTime,
+ QWORD cnsSampleDuration,
+ DWORD dwFlags,
+ INSSBuffer *pSample);
+
+ HRESULT (STDMETHODCALLTYPE *SetLiveSource)(
+ IWMWriterAdvanced* This,
+ WINBOOL fIsLiveSource);
+
+ HRESULT (STDMETHODCALLTYPE *IsRealTime)(
+ IWMWriterAdvanced* This,
+ WINBOOL *pfRealTime);
+
+ HRESULT (STDMETHODCALLTYPE *GetWriterTime)(
+ IWMWriterAdvanced* This,
+ QWORD *pCurrentTime);
+
+ HRESULT (STDMETHODCALLTYPE *GetStatistics)(
+ IWMWriterAdvanced* This,
+ WORD wStreamNum,
+ WM_WRITER_STATISTICS *pStats);
+
+ HRESULT (STDMETHODCALLTYPE *SetSyncTolerance)(
+ IWMWriterAdvanced* This,
+ DWORD msWindow);
+
+ HRESULT (STDMETHODCALLTYPE *GetSyncTolerance)(
+ IWMWriterAdvanced* This,
+ DWORD *pmsWindow);
+
+ END_INTERFACE
+} IWMWriterAdvancedVtbl;
+interface IWMWriterAdvanced {
+ CONST_VTBL IWMWriterAdvancedVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWMWriterAdvanced_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWMWriterAdvanced_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWMWriterAdvanced_Release(This) (This)->lpVtbl->Release(This)
+/*** IWMWriterAdvanced methods ***/
+#define IWMWriterAdvanced_GetSinkCount(This,pcSinks) (This)->lpVtbl->GetSinkCount(This,pcSinks)
+#define IWMWriterAdvanced_GetSink(This,dwSinkNum,ppSink) (This)->lpVtbl->GetSink(This,dwSinkNum,ppSink)
+#define IWMWriterAdvanced_AddSink(This,pSink) (This)->lpVtbl->AddSink(This,pSink)
+#define IWMWriterAdvanced_RemoveSink(This,pSink) (This)->lpVtbl->RemoveSink(This,pSink)
+#define IWMWriterAdvanced_WriteStreamSample(This,wStreamNum,cnsSampleTime,msSampleSendTime,cnsSampleDuration,dwFlags,pSample) (This)->lpVtbl->WriteStreamSample(This,wStreamNum,cnsSampleTime,msSampleSendTime,cnsSampleDuration,dwFlags,pSample)
+#define IWMWriterAdvanced_SetLiveSource(This,fIsLiveSource) (This)->lpVtbl->SetLiveSource(This,fIsLiveSource)
+#define IWMWriterAdvanced_IsRealTime(This,pfRealTime) (This)->lpVtbl->IsRealTime(This,pfRealTime)
+#define IWMWriterAdvanced_GetWriterTime(This,pCurrentTime) (This)->lpVtbl->GetWriterTime(This,pCurrentTime)
+#define IWMWriterAdvanced_GetStatistics(This,wStreamNum,pStats) (This)->lpVtbl->GetStatistics(This,wStreamNum,pStats)
+#define IWMWriterAdvanced_SetSyncTolerance(This,msWindow) (This)->lpVtbl->SetSyncTolerance(This,msWindow)
+#define IWMWriterAdvanced_GetSyncTolerance(This,pmsWindow) (This)->lpVtbl->GetSyncTolerance(This,pmsWindow)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWMWriterAdvanced_QueryInterface(IWMWriterAdvanced* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWMWriterAdvanced_AddRef(IWMWriterAdvanced* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWMWriterAdvanced_Release(IWMWriterAdvanced* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IWMWriterAdvanced methods ***/
+static FORCEINLINE HRESULT IWMWriterAdvanced_GetSinkCount(IWMWriterAdvanced* This,DWORD *pcSinks) {
+ return This->lpVtbl->GetSinkCount(This,pcSinks);
+}
+static FORCEINLINE HRESULT IWMWriterAdvanced_GetSink(IWMWriterAdvanced* This,DWORD dwSinkNum,IWMWriterSink **ppSink) {
+ return This->lpVtbl->GetSink(This,dwSinkNum,ppSink);
+}
+static FORCEINLINE HRESULT IWMWriterAdvanced_AddSink(IWMWriterAdvanced* This,IWMWriterSink *pSink) {
+ return This->lpVtbl->AddSink(This,pSink);
+}
+static FORCEINLINE HRESULT IWMWriterAdvanced_RemoveSink(IWMWriterAdvanced* This,IWMWriterSink *pSink) {
+ return This->lpVtbl->RemoveSink(This,pSink);
+}
+static FORCEINLINE HRESULT IWMWriterAdvanced_WriteStreamSample(IWMWriterAdvanced* This,WORD wStreamNum,QWORD cnsSampleTime,DWORD msSampleSendTime,QWORD cnsSampleDuration,DWORD dwFlags,INSSBuffer *pSample) {
+ return This->lpVtbl->WriteStreamSample(This,wStreamNum,cnsSampleTime,msSampleSendTime,cnsSampleDuration,dwFlags,pSample);
+}
+static FORCEINLINE HRESULT IWMWriterAdvanced_SetLiveSource(IWMWriterAdvanced* This,WINBOOL fIsLiveSource) {
+ return This->lpVtbl->SetLiveSource(This,fIsLiveSource);
+}
+static FORCEINLINE HRESULT IWMWriterAdvanced_IsRealTime(IWMWriterAdvanced* This,WINBOOL *pfRealTime) {
+ return This->lpVtbl->IsRealTime(This,pfRealTime);
+}
+static FORCEINLINE HRESULT IWMWriterAdvanced_GetWriterTime(IWMWriterAdvanced* This,QWORD *pCurrentTime) {
+ return This->lpVtbl->GetWriterTime(This,pCurrentTime);
+}
+static FORCEINLINE HRESULT IWMWriterAdvanced_GetStatistics(IWMWriterAdvanced* This,WORD wStreamNum,WM_WRITER_STATISTICS *pStats) {
+ return This->lpVtbl->GetStatistics(This,wStreamNum,pStats);
+}
+static FORCEINLINE HRESULT IWMWriterAdvanced_SetSyncTolerance(IWMWriterAdvanced* This,DWORD msWindow) {
+ return This->lpVtbl->SetSyncTolerance(This,msWindow);
+}
+static FORCEINLINE HRESULT IWMWriterAdvanced_GetSyncTolerance(IWMWriterAdvanced* This,DWORD *pmsWindow) {
+ return This->lpVtbl->GetSyncTolerance(This,pmsWindow);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IWMWriterAdvanced_GetSinkCount_Proxy(
+ IWMWriterAdvanced* This,
+ DWORD *pcSinks);
+void __RPC_STUB IWMWriterAdvanced_GetSinkCount_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMWriterAdvanced_GetSink_Proxy(
+ IWMWriterAdvanced* This,
+ DWORD dwSinkNum,
+ IWMWriterSink **ppSink);
+void __RPC_STUB IWMWriterAdvanced_GetSink_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMWriterAdvanced_AddSink_Proxy(
+ IWMWriterAdvanced* This,
+ IWMWriterSink *pSink);
+void __RPC_STUB IWMWriterAdvanced_AddSink_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMWriterAdvanced_RemoveSink_Proxy(
+ IWMWriterAdvanced* This,
+ IWMWriterSink *pSink);
+void __RPC_STUB IWMWriterAdvanced_RemoveSink_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMWriterAdvanced_WriteStreamSample_Proxy(
+ IWMWriterAdvanced* This,
+ WORD wStreamNum,
+ QWORD cnsSampleTime,
+ DWORD msSampleSendTime,
+ QWORD cnsSampleDuration,
+ DWORD dwFlags,
+ INSSBuffer *pSample);
+void __RPC_STUB IWMWriterAdvanced_WriteStreamSample_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMWriterAdvanced_SetLiveSource_Proxy(
+ IWMWriterAdvanced* This,
+ WINBOOL fIsLiveSource);
+void __RPC_STUB IWMWriterAdvanced_SetLiveSource_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMWriterAdvanced_IsRealTime_Proxy(
+ IWMWriterAdvanced* This,
+ WINBOOL *pfRealTime);
+void __RPC_STUB IWMWriterAdvanced_IsRealTime_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMWriterAdvanced_GetWriterTime_Proxy(
+ IWMWriterAdvanced* This,
+ QWORD *pCurrentTime);
+void __RPC_STUB IWMWriterAdvanced_GetWriterTime_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMWriterAdvanced_GetStatistics_Proxy(
+ IWMWriterAdvanced* This,
+ WORD wStreamNum,
+ WM_WRITER_STATISTICS *pStats);
+void __RPC_STUB IWMWriterAdvanced_GetStatistics_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMWriterAdvanced_SetSyncTolerance_Proxy(
+ IWMWriterAdvanced* This,
+ DWORD msWindow);
+void __RPC_STUB IWMWriterAdvanced_SetSyncTolerance_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMWriterAdvanced_GetSyncTolerance_Proxy(
+ IWMWriterAdvanced* This,
+ DWORD *pmsWindow);
+void __RPC_STUB IWMWriterAdvanced_GetSyncTolerance_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+#endif /* __IWMWriterAdvanced_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWMWriterAdvanced2 interface
+ */
+#ifndef __IWMWriterAdvanced2_INTERFACE_DEFINED__
+#define __IWMWriterAdvanced2_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWMWriterAdvanced2, 0x962dc1ec, 0xc046, 0x4db8, 0x9c,0xc7, 0x26,0xce,0xae,0x50,0x08,0x17);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("962dc1ec-c046-4db8-9cc7-26ceae500817")
+IWMWriterAdvanced2 : public IWMWriterAdvanced
+{
+ virtual HRESULT STDMETHODCALLTYPE GetInputSetting(
+ DWORD dwInputNum,
+ LPCWSTR pszName,
+ WMT_ATTR_DATATYPE *pType,
+ BYTE *pValue,
+ WORD *pcbLength) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetInputSetting(
+ DWORD dwInputNum,
+ LPCWSTR pszName,
+ WMT_ATTR_DATATYPE Type,
+ const BYTE *pValue,
+ WORD cbLength) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWMWriterAdvanced2, 0x962dc1ec, 0xc046, 0x4db8, 0x9c,0xc7, 0x26,0xce,0xae,0x50,0x08,0x17)
+#endif
+#else
+typedef struct IWMWriterAdvanced2Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IWMWriterAdvanced2* This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IWMWriterAdvanced2* This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IWMWriterAdvanced2* This);
+
+ /*** IWMWriterAdvanced methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetSinkCount)(
+ IWMWriterAdvanced2* This,
+ DWORD *pcSinks);
+
+ HRESULT (STDMETHODCALLTYPE *GetSink)(
+ IWMWriterAdvanced2* This,
+ DWORD dwSinkNum,
+ IWMWriterSink **ppSink);
+
+ HRESULT (STDMETHODCALLTYPE *AddSink)(
+ IWMWriterAdvanced2* This,
+ IWMWriterSink *pSink);
+
+ HRESULT (STDMETHODCALLTYPE *RemoveSink)(
+ IWMWriterAdvanced2* This,
+ IWMWriterSink *pSink);
+
+ HRESULT (STDMETHODCALLTYPE *WriteStreamSample)(
+ IWMWriterAdvanced2* This,
+ WORD wStreamNum,
+ QWORD cnsSampleTime,
+ DWORD msSampleSendTime,
+ QWORD cnsSampleDuration,
+ DWORD dwFlags,
+ INSSBuffer *pSample);
+
+ HRESULT (STDMETHODCALLTYPE *SetLiveSource)(
+ IWMWriterAdvanced2* This,
+ WINBOOL fIsLiveSource);
+
+ HRESULT (STDMETHODCALLTYPE *IsRealTime)(
+ IWMWriterAdvanced2* This,
+ WINBOOL *pfRealTime);
+
+ HRESULT (STDMETHODCALLTYPE *GetWriterTime)(
+ IWMWriterAdvanced2* This,
+ QWORD *pCurrentTime);
+
+ HRESULT (STDMETHODCALLTYPE *GetStatistics)(
+ IWMWriterAdvanced2* This,
+ WORD wStreamNum,
+ WM_WRITER_STATISTICS *pStats);
+
+ HRESULT (STDMETHODCALLTYPE *SetSyncTolerance)(
+ IWMWriterAdvanced2* This,
+ DWORD msWindow);
+
+ HRESULT (STDMETHODCALLTYPE *GetSyncTolerance)(
+ IWMWriterAdvanced2* This,
+ DWORD *pmsWindow);
+
+ /*** IWMWriterAdvanced2 methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetInputSetting)(
+ IWMWriterAdvanced2* This,
+ DWORD dwInputNum,
+ LPCWSTR pszName,
+ WMT_ATTR_DATATYPE *pType,
+ BYTE *pValue,
+ WORD *pcbLength);
+
+ HRESULT (STDMETHODCALLTYPE *SetInputSetting)(
+ IWMWriterAdvanced2* This,
+ DWORD dwInputNum,
+ LPCWSTR pszName,
+ WMT_ATTR_DATATYPE Type,
+ const BYTE *pValue,
+ WORD cbLength);
+
+ END_INTERFACE
+} IWMWriterAdvanced2Vtbl;
+interface IWMWriterAdvanced2 {
+ CONST_VTBL IWMWriterAdvanced2Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWMWriterAdvanced2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWMWriterAdvanced2_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWMWriterAdvanced2_Release(This) (This)->lpVtbl->Release(This)
+/*** IWMWriterAdvanced methods ***/
+#define IWMWriterAdvanced2_GetSinkCount(This,pcSinks) (This)->lpVtbl->GetSinkCount(This,pcSinks)
+#define IWMWriterAdvanced2_GetSink(This,dwSinkNum,ppSink) (This)->lpVtbl->GetSink(This,dwSinkNum,ppSink)
+#define IWMWriterAdvanced2_AddSink(This,pSink) (This)->lpVtbl->AddSink(This,pSink)
+#define IWMWriterAdvanced2_RemoveSink(This,pSink) (This)->lpVtbl->RemoveSink(This,pSink)
+#define IWMWriterAdvanced2_WriteStreamSample(This,wStreamNum,cnsSampleTime,msSampleSendTime,cnsSampleDuration,dwFlags,pSample) (This)->lpVtbl->WriteStreamSample(This,wStreamNum,cnsSampleTime,msSampleSendTime,cnsSampleDuration,dwFlags,pSample)
+#define IWMWriterAdvanced2_SetLiveSource(This,fIsLiveSource) (This)->lpVtbl->SetLiveSource(This,fIsLiveSource)
+#define IWMWriterAdvanced2_IsRealTime(This,pfRealTime) (This)->lpVtbl->IsRealTime(This,pfRealTime)
+#define IWMWriterAdvanced2_GetWriterTime(This,pCurrentTime) (This)->lpVtbl->GetWriterTime(This,pCurrentTime)
+#define IWMWriterAdvanced2_GetStatistics(This,wStreamNum,pStats) (This)->lpVtbl->GetStatistics(This,wStreamNum,pStats)
+#define IWMWriterAdvanced2_SetSyncTolerance(This,msWindow) (This)->lpVtbl->SetSyncTolerance(This,msWindow)
+#define IWMWriterAdvanced2_GetSyncTolerance(This,pmsWindow) (This)->lpVtbl->GetSyncTolerance(This,pmsWindow)
+/*** IWMWriterAdvanced2 methods ***/
+#define IWMWriterAdvanced2_GetInputSetting(This,dwInputNum,pszName,pType,pValue,pcbLength) (This)->lpVtbl->GetInputSetting(This,dwInputNum,pszName,pType,pValue,pcbLength)
+#define IWMWriterAdvanced2_SetInputSetting(This,dwInputNum,pszName,Type,pValue,cbLength) (This)->lpVtbl->SetInputSetting(This,dwInputNum,pszName,Type,pValue,cbLength)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWMWriterAdvanced2_QueryInterface(IWMWriterAdvanced2* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWMWriterAdvanced2_AddRef(IWMWriterAdvanced2* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWMWriterAdvanced2_Release(IWMWriterAdvanced2* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IWMWriterAdvanced methods ***/
+static FORCEINLINE HRESULT IWMWriterAdvanced2_GetSinkCount(IWMWriterAdvanced2* This,DWORD *pcSinks) {
+ return This->lpVtbl->GetSinkCount(This,pcSinks);
+}
+static FORCEINLINE HRESULT IWMWriterAdvanced2_GetSink(IWMWriterAdvanced2* This,DWORD dwSinkNum,IWMWriterSink **ppSink) {
+ return This->lpVtbl->GetSink(This,dwSinkNum,ppSink);
+}
+static FORCEINLINE HRESULT IWMWriterAdvanced2_AddSink(IWMWriterAdvanced2* This,IWMWriterSink *pSink) {
+ return This->lpVtbl->AddSink(This,pSink);
+}
+static FORCEINLINE HRESULT IWMWriterAdvanced2_RemoveSink(IWMWriterAdvanced2* This,IWMWriterSink *pSink) {
+ return This->lpVtbl->RemoveSink(This,pSink);
+}
+static FORCEINLINE HRESULT IWMWriterAdvanced2_WriteStreamSample(IWMWriterAdvanced2* This,WORD wStreamNum,QWORD cnsSampleTime,DWORD msSampleSendTime,QWORD cnsSampleDuration,DWORD dwFlags,INSSBuffer *pSample) {
+ return This->lpVtbl->WriteStreamSample(This,wStreamNum,cnsSampleTime,msSampleSendTime,cnsSampleDuration,dwFlags,pSample);
+}
+static FORCEINLINE HRESULT IWMWriterAdvanced2_SetLiveSource(IWMWriterAdvanced2* This,WINBOOL fIsLiveSource) {
+ return This->lpVtbl->SetLiveSource(This,fIsLiveSource);
+}
+static FORCEINLINE HRESULT IWMWriterAdvanced2_IsRealTime(IWMWriterAdvanced2* This,WINBOOL *pfRealTime) {
+ return This->lpVtbl->IsRealTime(This,pfRealTime);
+}
+static FORCEINLINE HRESULT IWMWriterAdvanced2_GetWriterTime(IWMWriterAdvanced2* This,QWORD *pCurrentTime) {
+ return This->lpVtbl->GetWriterTime(This,pCurrentTime);
+}
+static FORCEINLINE HRESULT IWMWriterAdvanced2_GetStatistics(IWMWriterAdvanced2* This,WORD wStreamNum,WM_WRITER_STATISTICS *pStats) {
+ return This->lpVtbl->GetStatistics(This,wStreamNum,pStats);
+}
+static FORCEINLINE HRESULT IWMWriterAdvanced2_SetSyncTolerance(IWMWriterAdvanced2* This,DWORD msWindow) {
+ return This->lpVtbl->SetSyncTolerance(This,msWindow);
+}
+static FORCEINLINE HRESULT IWMWriterAdvanced2_GetSyncTolerance(IWMWriterAdvanced2* This,DWORD *pmsWindow) {
+ return This->lpVtbl->GetSyncTolerance(This,pmsWindow);
+}
+/*** IWMWriterAdvanced2 methods ***/
+static FORCEINLINE HRESULT IWMWriterAdvanced2_GetInputSetting(IWMWriterAdvanced2* This,DWORD dwInputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE *pType,BYTE *pValue,WORD *pcbLength) {
+ return This->lpVtbl->GetInputSetting(This,dwInputNum,pszName,pType,pValue,pcbLength);
+}
+static FORCEINLINE HRESULT IWMWriterAdvanced2_SetInputSetting(IWMWriterAdvanced2* This,DWORD dwInputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE Type,const BYTE *pValue,WORD cbLength) {
+ return This->lpVtbl->SetInputSetting(This,dwInputNum,pszName,Type,pValue,cbLength);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IWMWriterAdvanced2_GetInputSetting_Proxy(
+ IWMWriterAdvanced2* This,
+ DWORD dwInputNum,
+ LPCWSTR pszName,
+ WMT_ATTR_DATATYPE *pType,
+ BYTE *pValue,
+ WORD *pcbLength);
+void __RPC_STUB IWMWriterAdvanced2_GetInputSetting_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMWriterAdvanced2_SetInputSetting_Proxy(
+ IWMWriterAdvanced2* This,
+ DWORD dwInputNum,
+ LPCWSTR pszName,
+ WMT_ATTR_DATATYPE Type,
+ const BYTE *pValue,
+ WORD cbLength);
+void __RPC_STUB IWMWriterAdvanced2_SetInputSetting_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+#endif /* __IWMWriterAdvanced2_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWMWriterAdvanced3 interface
+ */
+#ifndef __IWMWriterAdvanced3_INTERFACE_DEFINED__
+#define __IWMWriterAdvanced3_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWMWriterAdvanced3, 0x2cd6492d, 0x7c37, 0x4e76, 0x9d,0x3b, 0x59,0x26,0x11,0x83,0xa2,0x2e);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("2cd6492d-7c37-4e76-9d3b-59261183a22e")
+IWMWriterAdvanced3 : public IWMWriterAdvanced2
+{
+ virtual HRESULT STDMETHODCALLTYPE GetStatisticsEx(
+ WORD wStreamNum,
+ WM_WRITER_STATISTICS_EX *pStats) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetNonBlocking(
+ ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWMWriterAdvanced3, 0x2cd6492d, 0x7c37, 0x4e76, 0x9d,0x3b, 0x59,0x26,0x11,0x83,0xa2,0x2e)
+#endif
+#else
+typedef struct IWMWriterAdvanced3Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IWMWriterAdvanced3* This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IWMWriterAdvanced3* This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IWMWriterAdvanced3* This);
+
+ /*** IWMWriterAdvanced methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetSinkCount)(
+ IWMWriterAdvanced3* This,
+ DWORD *pcSinks);
+
+ HRESULT (STDMETHODCALLTYPE *GetSink)(
+ IWMWriterAdvanced3* This,
+ DWORD dwSinkNum,
+ IWMWriterSink **ppSink);
+
+ HRESULT (STDMETHODCALLTYPE *AddSink)(
+ IWMWriterAdvanced3* This,
+ IWMWriterSink *pSink);
+
+ HRESULT (STDMETHODCALLTYPE *RemoveSink)(
+ IWMWriterAdvanced3* This,
+ IWMWriterSink *pSink);
+
+ HRESULT (STDMETHODCALLTYPE *WriteStreamSample)(
+ IWMWriterAdvanced3* This,
+ WORD wStreamNum,
+ QWORD cnsSampleTime,
+ DWORD msSampleSendTime,
+ QWORD cnsSampleDuration,
+ DWORD dwFlags,
+ INSSBuffer *pSample);
+
+ HRESULT (STDMETHODCALLTYPE *SetLiveSource)(
+ IWMWriterAdvanced3* This,
+ WINBOOL fIsLiveSource);
+
+ HRESULT (STDMETHODCALLTYPE *IsRealTime)(
+ IWMWriterAdvanced3* This,
+ WINBOOL *pfRealTime);
+
+ HRESULT (STDMETHODCALLTYPE *GetWriterTime)(
+ IWMWriterAdvanced3* This,
+ QWORD *pCurrentTime);
+
+ HRESULT (STDMETHODCALLTYPE *GetStatistics)(
+ IWMWriterAdvanced3* This,
+ WORD wStreamNum,
+ WM_WRITER_STATISTICS *pStats);
+
+ HRESULT (STDMETHODCALLTYPE *SetSyncTolerance)(
+ IWMWriterAdvanced3* This,
+ DWORD msWindow);
+
+ HRESULT (STDMETHODCALLTYPE *GetSyncTolerance)(
+ IWMWriterAdvanced3* This,
+ DWORD *pmsWindow);
+
+ /*** IWMWriterAdvanced2 methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetInputSetting)(
+ IWMWriterAdvanced3* This,
+ DWORD dwInputNum,
+ LPCWSTR pszName,
+ WMT_ATTR_DATATYPE *pType,
+ BYTE *pValue,
+ WORD *pcbLength);
+
+ HRESULT (STDMETHODCALLTYPE *SetInputSetting)(
+ IWMWriterAdvanced3* This,
+ DWORD dwInputNum,
+ LPCWSTR pszName,
+ WMT_ATTR_DATATYPE Type,
+ const BYTE *pValue,
+ WORD cbLength);
+
+ /*** IWMWriterAdvanced3 methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetStatisticsEx)(
+ IWMWriterAdvanced3* This,
+ WORD wStreamNum,
+ WM_WRITER_STATISTICS_EX *pStats);
+
+ HRESULT (STDMETHODCALLTYPE *SetNonBlocking)(
+ IWMWriterAdvanced3* This);
+
+ END_INTERFACE
+} IWMWriterAdvanced3Vtbl;
+interface IWMWriterAdvanced3 {
+ CONST_VTBL IWMWriterAdvanced3Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWMWriterAdvanced3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWMWriterAdvanced3_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWMWriterAdvanced3_Release(This) (This)->lpVtbl->Release(This)
+/*** IWMWriterAdvanced methods ***/
+#define IWMWriterAdvanced3_GetSinkCount(This,pcSinks) (This)->lpVtbl->GetSinkCount(This,pcSinks)
+#define IWMWriterAdvanced3_GetSink(This,dwSinkNum,ppSink) (This)->lpVtbl->GetSink(This,dwSinkNum,ppSink)
+#define IWMWriterAdvanced3_AddSink(This,pSink) (This)->lpVtbl->AddSink(This,pSink)
+#define IWMWriterAdvanced3_RemoveSink(This,pSink) (This)->lpVtbl->RemoveSink(This,pSink)
+#define IWMWriterAdvanced3_WriteStreamSample(This,wStreamNum,cnsSampleTime,msSampleSendTime,cnsSampleDuration,dwFlags,pSample) (This)->lpVtbl->WriteStreamSample(This,wStreamNum,cnsSampleTime,msSampleSendTime,cnsSampleDuration,dwFlags,pSample)
+#define IWMWriterAdvanced3_SetLiveSource(This,fIsLiveSource) (This)->lpVtbl->SetLiveSource(This,fIsLiveSource)
+#define IWMWriterAdvanced3_IsRealTime(This,pfRealTime) (This)->lpVtbl->IsRealTime(This,pfRealTime)
+#define IWMWriterAdvanced3_GetWriterTime(This,pCurrentTime) (This)->lpVtbl->GetWriterTime(This,pCurrentTime)
+#define IWMWriterAdvanced3_GetStatistics(This,wStreamNum,pStats) (This)->lpVtbl->GetStatistics(This,wStreamNum,pStats)
+#define IWMWriterAdvanced3_SetSyncTolerance(This,msWindow) (This)->lpVtbl->SetSyncTolerance(This,msWindow)
+#define IWMWriterAdvanced3_GetSyncTolerance(This,pmsWindow) (This)->lpVtbl->GetSyncTolerance(This,pmsWindow)
+/*** IWMWriterAdvanced2 methods ***/
+#define IWMWriterAdvanced3_GetInputSetting(This,dwInputNum,pszName,pType,pValue,pcbLength) (This)->lpVtbl->GetInputSetting(This,dwInputNum,pszName,pType,pValue,pcbLength)
+#define IWMWriterAdvanced3_SetInputSetting(This,dwInputNum,pszName,Type,pValue,cbLength) (This)->lpVtbl->SetInputSetting(This,dwInputNum,pszName,Type,pValue,cbLength)
+/*** IWMWriterAdvanced3 methods ***/
+#define IWMWriterAdvanced3_GetStatisticsEx(This,wStreamNum,pStats) (This)->lpVtbl->GetStatisticsEx(This,wStreamNum,pStats)
+#define IWMWriterAdvanced3_SetNonBlocking(This) (This)->lpVtbl->SetNonBlocking(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWMWriterAdvanced3_QueryInterface(IWMWriterAdvanced3* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWMWriterAdvanced3_AddRef(IWMWriterAdvanced3* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWMWriterAdvanced3_Release(IWMWriterAdvanced3* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IWMWriterAdvanced methods ***/
+static FORCEINLINE HRESULT IWMWriterAdvanced3_GetSinkCount(IWMWriterAdvanced3* This,DWORD *pcSinks) {
+ return This->lpVtbl->GetSinkCount(This,pcSinks);
+}
+static FORCEINLINE HRESULT IWMWriterAdvanced3_GetSink(IWMWriterAdvanced3* This,DWORD dwSinkNum,IWMWriterSink **ppSink) {
+ return This->lpVtbl->GetSink(This,dwSinkNum,ppSink);
+}
+static FORCEINLINE HRESULT IWMWriterAdvanced3_AddSink(IWMWriterAdvanced3* This,IWMWriterSink *pSink) {
+ return This->lpVtbl->AddSink(This,pSink);
+}
+static FORCEINLINE HRESULT IWMWriterAdvanced3_RemoveSink(IWMWriterAdvanced3* This,IWMWriterSink *pSink) {
+ return This->lpVtbl->RemoveSink(This,pSink);
+}
+static FORCEINLINE HRESULT IWMWriterAdvanced3_WriteStreamSample(IWMWriterAdvanced3* This,WORD wStreamNum,QWORD cnsSampleTime,DWORD msSampleSendTime,QWORD cnsSampleDuration,DWORD dwFlags,INSSBuffer *pSample) {
+ return This->lpVtbl->WriteStreamSample(This,wStreamNum,cnsSampleTime,msSampleSendTime,cnsSampleDuration,dwFlags,pSample);
+}
+static FORCEINLINE HRESULT IWMWriterAdvanced3_SetLiveSource(IWMWriterAdvanced3* This,WINBOOL fIsLiveSource) {
+ return This->lpVtbl->SetLiveSource(This,fIsLiveSource);
+}
+static FORCEINLINE HRESULT IWMWriterAdvanced3_IsRealTime(IWMWriterAdvanced3* This,WINBOOL *pfRealTime) {
+ return This->lpVtbl->IsRealTime(This,pfRealTime);
+}
+static FORCEINLINE HRESULT IWMWriterAdvanced3_GetWriterTime(IWMWriterAdvanced3* This,QWORD *pCurrentTime) {
+ return This->lpVtbl->GetWriterTime(This,pCurrentTime);
+}
+static FORCEINLINE HRESULT IWMWriterAdvanced3_GetStatistics(IWMWriterAdvanced3* This,WORD wStreamNum,WM_WRITER_STATISTICS *pStats) {
+ return This->lpVtbl->GetStatistics(This,wStreamNum,pStats);
+}
+static FORCEINLINE HRESULT IWMWriterAdvanced3_SetSyncTolerance(IWMWriterAdvanced3* This,DWORD msWindow) {
+ return This->lpVtbl->SetSyncTolerance(This,msWindow);
+}
+static FORCEINLINE HRESULT IWMWriterAdvanced3_GetSyncTolerance(IWMWriterAdvanced3* This,DWORD *pmsWindow) {
+ return This->lpVtbl->GetSyncTolerance(This,pmsWindow);
+}
+/*** IWMWriterAdvanced2 methods ***/
+static FORCEINLINE HRESULT IWMWriterAdvanced3_GetInputSetting(IWMWriterAdvanced3* This,DWORD dwInputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE *pType,BYTE *pValue,WORD *pcbLength) {
+ return This->lpVtbl->GetInputSetting(This,dwInputNum,pszName,pType,pValue,pcbLength);
+}
+static FORCEINLINE HRESULT IWMWriterAdvanced3_SetInputSetting(IWMWriterAdvanced3* This,DWORD dwInputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE Type,const BYTE *pValue,WORD cbLength) {
+ return This->lpVtbl->SetInputSetting(This,dwInputNum,pszName,Type,pValue,cbLength);
+}
+/*** IWMWriterAdvanced3 methods ***/
+static FORCEINLINE HRESULT IWMWriterAdvanced3_GetStatisticsEx(IWMWriterAdvanced3* This,WORD wStreamNum,WM_WRITER_STATISTICS_EX *pStats) {
+ return This->lpVtbl->GetStatisticsEx(This,wStreamNum,pStats);
+}
+static FORCEINLINE HRESULT IWMWriterAdvanced3_SetNonBlocking(IWMWriterAdvanced3* This) {
+ return This->lpVtbl->SetNonBlocking(This);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IWMWriterAdvanced3_GetStatisticsEx_Proxy(
+ IWMWriterAdvanced3* This,
+ WORD wStreamNum,
+ WM_WRITER_STATISTICS_EX *pStats);
+void __RPC_STUB IWMWriterAdvanced3_GetStatisticsEx_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMWriterAdvanced3_SetNonBlocking_Proxy(
+ IWMWriterAdvanced3* This);
+void __RPC_STUB IWMWriterAdvanced3_SetNonBlocking_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+#endif /* __IWMWriterAdvanced3_INTERFACE_DEFINED__ */
+
+HRESULT WINAPI WMCreateWriter(IUnknown*,IWMWriter**);
EXTERN_GUID(WMMEDIASUBTYPE_Base, 0x00000000,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
EXTERN_GUID(WMMEDIATYPE_Video, 0x73646976,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
EXTERN_GUID(WMMEDIASUBTYPE_RGB1, 0xe436eb78,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70);
diff --git a/mingw-w64-headers/include/wmsdkidl.idl b/mingw-w64-headers/include/wmsdkidl.idl
index 984e283..1618f86 100644
--- a/mingw-w64-headers/include/wmsdkidl.idl
+++ b/mingw-w64-headers/include/wmsdkidl.idl
@@ -35,6 +35,31 @@
[size_is(cbFormat)] BYTE *pbFormat;
} WM_MEDIA_TYPE;
+typedef struct _WMWriterStatistics
+{
+ QWORD qwSampleCount;
+ QWORD qwByteCount;
+ QWORD qwDroppedSampleCount;
+ QWORD qwDroppedByteCount;
+ DWORD dwCurrentBitrate;
+ DWORD dwAverageBitrate;
+ DWORD dwExpectedBitrate;
+ DWORD dwCurrentSampleRate;
+ DWORD dwAverageSampleRate;
+ DWORD dwExpectedSampleRate;
+} WM_WRITER_STATISTICS;
+
+typedef struct _WMWriterStatisticsEx
+{
+ DWORD dwBitratePlusOverhead;
+ DWORD dwCurrentSampleDropRateInQueue;
+ DWORD dwCurrentSampleDropRateInCodec;
+ DWORD dwCurrentSampleDropRateInMultiplexer;
+ DWORD dwTotalSampleDropsInQueue;
+ DWORD dwTotalSampleDropsInCodec;
+ DWORD dwTotalSampleDropsInMultiplexer;
+} WM_WRITER_STATISTICS_EX;
+
typedef enum WMT_ATTR_DATATYPE
{
WMT_TYPE_DWORD = 0,
@@ -516,6 +541,190 @@
[in] IStream *pStream);
};
+[
+ object,
+ uuid(96406bd5-2b2b-11d3-b36b-00c04f6108ff),
+ pointer_default(unique),
+ local
+]
+interface IWMInputMediaProps : IWMMediaProps
+{
+ HRESULT GetConnectionName(
+ [out, size_is(*pcchName)] WCHAR *pwszName,
+ [in, out] WORD *pcchName);
+
+ HRESULT GetGroupName(
+ [out, size_is(*pcchName)] WCHAR *pwszName,
+ [in, out] WORD *pcchName);
+}
+
+[
+ object,
+ uuid(96406be4-2b2b-11d3-b36b-00c04f6108ff),
+ pointer_default(unique),
+ local
+]
+interface IWMWriterSink : IUnknown
+{
+ HRESULT OnHeader(
+ [in] INSSBuffer *pHeader);
+
+ HRESULT IsRealTime(
+ [out] BOOL *pfRealTime);
+
+ HRESULT AllocateDataUnit(
+ [in] DWORD cbDataUnit,
+ [out] INSSBuffer **ppDataUnit);
+
+ HRESULT OnDataUnit(
+ [in] INSSBuffer *pDataUnit);
+
+ HRESULT OnEndWriting();
+}
+
+[
+ object,
+ uuid(96406bd4-2b2b-11d3-b36b-00c04f6108ff),
+ pointer_default(unique),
+ local
+]
+interface IWMWriter : IUnknown
+{
+ HRESULT SetProfileByID(
+ [in] REFGUID guidProfile);
+
+ HRESULT SetProfile(
+ [in] IWMProfile *pProfile);
+
+ HRESULT SetOutputFilename(
+ [in] const WCHAR *pwszFilename);
+
+ HRESULT GetInputCount(
+ [out] DWORD *pcInputs);
+
+ HRESULT GetInputProps(
+ [in] DWORD dwInputNum,
+ [out] IWMInputMediaProps **ppInput);
+
+ HRESULT SetInputProps(
+ [in] DWORD dwInputNum,
+ [in] IWMInputMediaProps *pInput);
+
+ HRESULT GetInputFormatCount(
+ [in] DWORD dwInputNumber,
+ [out] DWORD *pcFormats);
+
+ HRESULT GetInputFormat(
+ [in] DWORD dwInputNumber,
+ [in] DWORD dwFormatNumber,
+ [out] IWMInputMediaProps **pProps);
+
+ HRESULT BeginWriting();
+
+ HRESULT EndWriting();
+
+ HRESULT AllocateSample(
+ [in] DWORD dwSampleSize,
+ [out] INSSBuffer **ppSample);
+
+ HRESULT WriteSample(
+ [in] DWORD dwInputNum,
+ [in] QWORD cnsSampleTime,
+ [in] DWORD dwFlags,
+ [in] INSSBuffer *pSample);
+
+ HRESULT Flush();
+}
+
+[
+ object,
+ uuid(96406be3-2b2b-11d3-b36b-00C04f6108ff),
+ pointer_default(unique),
+ local
+]
+interface IWMWriterAdvanced : IUnknown
+{
+ HRESULT GetSinkCount(
+ [out] DWORD *pcSinks);
+
+ HRESULT GetSink(
+ [in] DWORD dwSinkNum,
+ [out] IWMWriterSink **ppSink);
+
+ HRESULT AddSink(
+ [in] IWMWriterSink *pSink);
+
+ HRESULT RemoveSink(
+ [in] IWMWriterSink *pSink);
+
+ HRESULT WriteStreamSample(
+ [in] WORD wStreamNum,
+ [in] QWORD cnsSampleTime,
+ [in] DWORD msSampleSendTime,
+ [in] QWORD cnsSampleDuration,
+ [in] DWORD dwFlags,
+ [in] INSSBuffer *pSample);
+
+ HRESULT SetLiveSource(
+ BOOL fIsLiveSource);
+
+ HRESULT IsRealTime(
+ [out] BOOL *pfRealTime);
+
+ HRESULT GetWriterTime(
+ [out] QWORD *pCurrentTime);
+
+ HRESULT GetStatistics(
+ [in] WORD wStreamNum,
+ [out] WM_WRITER_STATISTICS *pStats);
+
+ HRESULT SetSyncTolerance(
+ [in] DWORD msWindow);
+
+ HRESULT GetSyncTolerance(
+ [out] DWORD *pmsWindow);
+}
+
+[
+ object,
+ uuid(962dc1ec-c046-4db8-9cc7-26ceae500817),
+ pointer_default(unique),
+ local
+]
+interface IWMWriterAdvanced2 : IWMWriterAdvanced
+{
+ HRESULT GetInputSetting(
+ [in] DWORD dwInputNum,
+ [in] LPCWSTR pszName,
+ [out] WMT_ATTR_DATATYPE *pType,
+ [out, size_is(*pcbLength)] BYTE *pValue,
+ [in, out] WORD *pcbLength);
+
+ HRESULT SetInputSetting(
+ [in] DWORD dwInputNum,
+ [in] LPCWSTR pszName,
+ [in] WMT_ATTR_DATATYPE Type,
+ [in, size_is(cbLength)] const BYTE *pValue,
+ [in] WORD cbLength);
+}
+
+[
+ object,
+ uuid(2cd6492d-7c37-4e76-9d3b-59261183a22e),
+ pointer_default(unique),
+ local
+]
+interface IWMWriterAdvanced3 : IWMWriterAdvanced2
+{
+ HRESULT GetStatisticsEx(
+ [in] WORD wStreamNum,
+ [out] WM_WRITER_STATISTICS_EX *pStats);
+
+ HRESULT SetNonBlocking();
+}
+
+cpp_quote("HRESULT WINAPI WMCreateWriter(IUnknown*,IWMWriter**);")
+
cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_Base, 0x00000000,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);")
cpp_quote("EXTERN_GUID(WMMEDIATYPE_Video, 0x73646976,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);")
cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_RGB1, 0xe436eb78,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70);")