Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quelle  dcomp.h

  Sprache: C
 

/*** Autogenerated by WIDL 10.0 from /build/wine-10.0/include/dcomp.idl - Do not edit ***/

#ifdef _WIN32
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 475
#endif
#include <rpc.h>
#include <rpcndr.h>
#endif

#ifndef COM_NO_WINDOWS_H
#include <windows.h>
#include <ole2.h>
#endif

#ifndef __dcomp_h__
#define __dcomp_h__

/* Forward declarations */

#ifndef __IDCompositionSurface_FWD_DEFINED__
#define __IDCompositionSurface_FWD_DEFINED__
typedef interface IDCompositionSurface IDCompositionSurface;
#ifdef __cplusplus
interface IDCompositionSurface;
#endif /* __cplusplus */
#endif

#ifndef __IDCompositionVirtualSurface_FWD_DEFINED__
#define __IDCompositionVirtualSurface_FWD_DEFINED__
typedef interface IDCompositionVirtualSurface IDCompositionVirtualSurface;
#ifdef __cplusplus
interface IDCompositionVirtualSurface;
#endif /* __cplusplus */
#endif

#ifndef __IDCompositionSurfaceFactory_FWD_DEFINED__
#define __IDCompositionSurfaceFactory_FWD_DEFINED__
typedef interface IDCompositionSurfaceFactory IDCompositionSurfaceFactory;
#ifdef __cplusplus
interface IDCompositionSurfaceFactory;
#endif /* __cplusplus */
#endif

#ifndef __IDCompositionClip_FWD_DEFINED__
#define __IDCompositionClip_FWD_DEFINED__
typedef interface IDCompositionClip IDCompositionClip;
#ifdef __cplusplus
interface IDCompositionClip;
#endif /* __cplusplus */
#endif

#ifndef __IDCompositionRectangleClip_FWD_DEFINED__
#define __IDCompositionRectangleClip_FWD_DEFINED__
typedef interface IDCompositionRectangleClip IDCompositionRectangleClip;
#ifdef __cplusplus
interface IDCompositionRectangleClip;
#endif /* __cplusplus */
#endif

#ifndef __IDCompositionEffect_FWD_DEFINED__
#define __IDCompositionEffect_FWD_DEFINED__
typedef interface IDCompositionEffect IDCompositionEffect;
#ifdef __cplusplus
interface IDCompositionEffect;
#endif /* __cplusplus */
#endif

#ifndef __IDCompositionTransform3D_FWD_DEFINED__
#define __IDCompositionTransform3D_FWD_DEFINED__
typedef interface IDCompositionTransform3D IDCompositionTransform3D;
#ifdef __cplusplus
interface IDCompositionTransform3D;
#endif /* __cplusplus */
#endif

#ifndef __IDCompositionEffectGroup_FWD_DEFINED__
#define __IDCompositionEffectGroup_FWD_DEFINED__
typedef interface IDCompositionEffectGroup IDCompositionEffectGroup;
#ifdef __cplusplus
interface IDCompositionEffectGroup;
#endif /* __cplusplus */
#endif

#ifndef __IDCompositionTranslateTransform3D_FWD_DEFINED__
#define __IDCompositionTranslateTransform3D_FWD_DEFINED__
typedef interface IDCompositionTranslateTransform3D IDCompositionTranslateTransform3D;
#ifdef __cplusplus
interface IDCompositionTranslateTransform3D;
#endif /* __cplusplus */
#endif

#ifndef __IDCompositionScaleTransform3D_FWD_DEFINED__
#define __IDCompositionScaleTransform3D_FWD_DEFINED__
typedef interface IDCompositionScaleTransform3D IDCompositionScaleTransform3D;
#ifdef __cplusplus
interface IDCompositionScaleTransform3D;
#endif /* __cplusplus */
#endif

#ifndef __IDCompositionRotateTransform3D_FWD_DEFINED__
#define __IDCompositionRotateTransform3D_FWD_DEFINED__
typedef interface IDCompositionRotateTransform3D IDCompositionRotateTransform3D;
#ifdef __cplusplus
interface IDCompositionRotateTransform3D;
#endif /* __cplusplus */
#endif

#ifndef __IDCompositionMatrixTransform3D_FWD_DEFINED__
#define __IDCompositionMatrixTransform3D_FWD_DEFINED__
typedef interface IDCompositionMatrixTransform3D IDCompositionMatrixTransform3D;
#ifdef __cplusplus
interface IDCompositionMatrixTransform3D;
#endif /* __cplusplus */
#endif

#ifndef __IDCompositionTransform_FWD_DEFINED__
#define __IDCompositionTransform_FWD_DEFINED__
typedef interface IDCompositionTransform IDCompositionTransform;
#ifdef __cplusplus
interface IDCompositionTransform;
#endif /* __cplusplus */
#endif

#ifndef __IDCompositionScaleTransform_FWD_DEFINED__
#define __IDCompositionScaleTransform_FWD_DEFINED__
typedef interface IDCompositionScaleTransform IDCompositionScaleTransform;
#ifdef __cplusplus
interface IDCompositionScaleTransform;
#endif /* __cplusplus */
#endif

#ifndef __IDCompositionRotateTransform_FWD_DEFINED__
#define __IDCompositionRotateTransform_FWD_DEFINED__
typedef interface IDCompositionRotateTransform IDCompositionRotateTransform;
#ifdef __cplusplus
interface IDCompositionRotateTransform;
#endif /* __cplusplus */
#endif

#ifndef __IDCompositionSkewTransform_FWD_DEFINED__
#define __IDCompositionSkewTransform_FWD_DEFINED__
typedef interface IDCompositionSkewTransform IDCompositionSkewTransform;
#ifdef __cplusplus
interface IDCompositionSkewTransform;
#endif /* __cplusplus */
#endif

#ifndef __IDCompositionMatrixTransform_FWD_DEFINED__
#define __IDCompositionMatrixTransform_FWD_DEFINED__
typedef interface IDCompositionMatrixTransform IDCompositionMatrixTransform;
#ifdef __cplusplus
interface IDCompositionMatrixTransform;
#endif /* __cplusplus */
#endif

#ifndef __IDCompositionTranslateTransform_FWD_DEFINED__
#define __IDCompositionTranslateTransform_FWD_DEFINED__
typedef interface IDCompositionTranslateTransform IDCompositionTranslateTransform;
#ifdef __cplusplus
interface IDCompositionTranslateTransform;
#endif /* __cplusplus */
#endif

#ifndef __IDCompositionVisual_FWD_DEFINED__
#define __IDCompositionVisual_FWD_DEFINED__
typedef interface IDCompositionVisual IDCompositionVisual;
#ifdef __cplusplus
interface IDCompositionVisual;
#endif /* __cplusplus */
#endif

#ifndef __IDCompositionVisual2_FWD_DEFINED__
#define __IDCompositionVisual2_FWD_DEFINED__
typedef interface IDCompositionVisual2 IDCompositionVisual2;
#ifdef __cplusplus
interface IDCompositionVisual2;
#endif /* __cplusplus */
#endif

#ifndef __IDCompositionTarget_FWD_DEFINED__
#define __IDCompositionTarget_FWD_DEFINED__
typedef interface IDCompositionTarget IDCompositionTarget;
#ifdef __cplusplus
interface IDCompositionTarget;
#endif /* __cplusplus */
#endif

#ifndef __IDCompositionDevice_FWD_DEFINED__
#define __IDCompositionDevice_FWD_DEFINED__
typedef interface IDCompositionDevice IDCompositionDevice;
#ifdef __cplusplus
interface IDCompositionDevice;
#endif /* __cplusplus */
#endif

#ifndef __IDCompositionDevice2_FWD_DEFINED__
#define __IDCompositionDevice2_FWD_DEFINED__
typedef interface IDCompositionDevice2 IDCompositionDevice2;
#ifdef __cplusplus
interface IDCompositionDevice2;
#endif /* __cplusplus */
#endif

#ifndef __IDCompositionDesktopDevice_FWD_DEFINED__
#define __IDCompositionDesktopDevice_FWD_DEFINED__
typedef interface IDCompositionDesktopDevice IDCompositionDesktopDevice;
#ifdef __cplusplus
interface IDCompositionDesktopDevice;
#endif /* __cplusplus */
#endif

/* Headers for imported files */

#include <objidl.h>
#include <d2dbasetypes.h>
#include <dcommon.h>
#include <dcompanimation.h>
#include <dcomptypes.h>
#include <unknwn.h>

#ifdef __cplusplus
extern "C" {
#endif

typedef struct _D3DMATRIX {
    float m[4][4];
} D3DMATRIX;
/*****************************************************************************
 * IDCompositionSurface interface
 */

#ifndef __IDCompositionSurface_INTERFACE_DEFINED__
#define __IDCompositionSurface_INTERFACE_DEFINED__

DEFINE_GUID(IID_IDCompositionSurface, 0xbb8a4953, 0x2c99, 0x4f5a, 0x96,0xf5, 0x48,0x19,0x02,0x7f,0xa3,0xac);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("bb8a4953-2c99-4f5a-96f5-4819027fa3ac")
IDCompositionSurface : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE BeginDraw(
        const RECT *rect,
        REFIID iid,
        void **object,
        POINT *offset) = 0;

    virtual HRESULT STDMETHODCALLTYPE EndDraw(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE SuspendDraw(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE ResumeDraw(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE Scroll(
        const RECT *scroll,
        const RECT *clip,
        int offset_x,
        int offset_y) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IDCompositionSurface, 0xbb8a4953, 0x2c99, 0x4f5a, 0x96,0xf5, 0x48,0x19,0x02,0x7f,0xa3,0xac)
#endif
#else
typedef struct IDCompositionSurfaceVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IDCompositionSurface *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IDCompositionSurface *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IDCompositionSurface *This);

    /*** IDCompositionSurface methods ***/
    HRESULT (STDMETHODCALLTYPE *BeginDraw)(
        IDCompositionSurface *This,
        const RECT *rect,
        REFIID iid,
        void **object,
        POINT *offset);

    HRESULT (STDMETHODCALLTYPE *EndDraw)(
        IDCompositionSurface *This);

    HRESULT (STDMETHODCALLTYPE *SuspendDraw)(
        IDCompositionSurface *This);

    HRESULT (STDMETHODCALLTYPE *ResumeDraw)(
        IDCompositionSurface *This);

    HRESULT (STDMETHODCALLTYPE *Scroll)(
        IDCompositionSurface *This,
        const RECT *scroll,
        const RECT *clip,
        int offset_x,
        int offset_y);

    END_INTERFACE
} IDCompositionSurfaceVtbl;

interface IDCompositionSurface {
    CONST_VTBL IDCompositionSurfaceVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IDCompositionSurface_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDCompositionSurface_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDCompositionSurface_Release(This) (This)->lpVtbl->Release(This)
/*** IDCompositionSurface methods ***/
#define IDCompositionSurface_BeginDraw(This,rect,iid,object,offset) (This)->lpVtbl->BeginDraw(This,rect,iid,object,offset)
#define IDCompositionSurface_EndDraw(This) (This)->lpVtbl->EndDraw(This)
#define IDCompositionSurface_SuspendDraw(This) (This)->lpVtbl->SuspendDraw(This)
#define IDCompositionSurface_ResumeDraw(This) (This)->lpVtbl->ResumeDraw(This)
#define IDCompositionSurface_Scroll(This,scroll,clip,offset_x,offset_y) (This)->lpVtbl->Scroll(This,scroll,clip,offset_x,offset_y)
#else
/*** IUnknown methods ***/
static inline HRESULT IDCompositionSurface_QueryInterface(IDCompositionSurface* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IDCompositionSurface_AddRef(IDCompositionSurface* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IDCompositionSurface_Release(IDCompositionSurface* This) {
    return This->lpVtbl->Release(This);
}
/*** IDCompositionSurface methods ***/
static inline HRESULT IDCompositionSurface_BeginDraw(IDCompositionSurface* This,const RECT *rect,REFIID iid,void **object,POINT *offset) {
    return This->lpVtbl->BeginDraw(This,rect,iid,object,offset);
}
static inline HRESULT IDCompositionSurface_EndDraw(IDCompositionSurface* This) {
    return This->lpVtbl->EndDraw(This);
}
static inline HRESULT IDCompositionSurface_SuspendDraw(IDCompositionSurface* This) {
    return This->lpVtbl->SuspendDraw(This);
}
static inline HRESULT IDCompositionSurface_ResumeDraw(IDCompositionSurface* This) {
    return This->lpVtbl->ResumeDraw(This);
}
static inline HRESULT IDCompositionSurface_Scroll(IDCompositionSurface* This,const RECT *scroll,const RECT *clip,int offset_x,int offset_y) {
    return This->lpVtbl->Scroll(This,scroll,clip,offset_x,offset_y);
}
#endif
#endif

#endif


#endif  /* __IDCompositionSurface_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IDCompositionVirtualSurface interface
 */

#ifndef __IDCompositionVirtualSurface_INTERFACE_DEFINED__
#define __IDCompositionVirtualSurface_INTERFACE_DEFINED__

DEFINE_GUID(IID_IDCompositionVirtualSurface, 0xae471c51, 0x5f53, 0x4a24, 0x8d,0x3e, 0xd0,0xc3,0x9c,0x30,0xb3,0xf0);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("ae471c51-5f53-4a24-8d3e-d0c39c30b3f0")
IDCompositionVirtualSurface : public IDCompositionSurface
{
    virtual HRESULT STDMETHODCALLTYPE Resize(
        UINT width,
        UINT height) = 0;

    virtual HRESULT STDMETHODCALLTYPE Trim(
        const RECT *rectangles,
        UINT count) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IDCompositionVirtualSurface, 0xae471c51, 0x5f53, 0x4a24, 0x8d,0x3e, 0xd0,0xc3,0x9c,0x30,0xb3,0xf0)
#endif
#else
typedef struct IDCompositionVirtualSurfaceVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IDCompositionVirtualSurface *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IDCompositionVirtualSurface *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IDCompositionVirtualSurface *This);

    /*** IDCompositionSurface methods ***/
    HRESULT (STDMETHODCALLTYPE *BeginDraw)(
        IDCompositionVirtualSurface *This,
        const RECT *rect,
        REFIID iid,
        void **object,
        POINT *offset);

    HRESULT (STDMETHODCALLTYPE *EndDraw)(
        IDCompositionVirtualSurface *This);

    HRESULT (STDMETHODCALLTYPE *SuspendDraw)(
        IDCompositionVirtualSurface *This);

    HRESULT (STDMETHODCALLTYPE *ResumeDraw)(
        IDCompositionVirtualSurface *This);

    HRESULT (STDMETHODCALLTYPE *Scroll)(
        IDCompositionVirtualSurface *This,
        const RECT *scroll,
        const RECT *clip,
        int offset_x,
        int offset_y);

    /*** IDCompositionVirtualSurface methods ***/
    HRESULT (STDMETHODCALLTYPE *Resize)(
        IDCompositionVirtualSurface *This,
        UINT width,
        UINT height);

    HRESULT (STDMETHODCALLTYPE *Trim)(
        IDCompositionVirtualSurface *This,
        const RECT *rectangles,
        UINT count);

    END_INTERFACE
} IDCompositionVirtualSurfaceVtbl;

interface IDCompositionVirtualSurface {
    CONST_VTBL IDCompositionVirtualSurfaceVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IDCompositionVirtualSurface_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDCompositionVirtualSurface_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDCompositionVirtualSurface_Release(This) (This)->lpVtbl->Release(This)
/*** IDCompositionSurface methods ***/
#define IDCompositionVirtualSurface_BeginDraw(This,rect,iid,object,offset) (This)->lpVtbl->BeginDraw(This,rect,iid,object,offset)
#define IDCompositionVirtualSurface_EndDraw(This) (This)->lpVtbl->EndDraw(This)
#define IDCompositionVirtualSurface_SuspendDraw(This) (This)->lpVtbl->SuspendDraw(This)
#define IDCompositionVirtualSurface_ResumeDraw(This) (This)->lpVtbl->ResumeDraw(This)
#define IDCompositionVirtualSurface_Scroll(This,scroll,clip,offset_x,offset_y) (This)->lpVtbl->Scroll(This,scroll,clip,offset_x,offset_y)
/*** IDCompositionVirtualSurface methods ***/
#define IDCompositionVirtualSurface_Resize(This,width,height) (This)->lpVtbl->Resize(This,width,height)
#define IDCompositionVirtualSurface_Trim(This,rectangles,count) (This)->lpVtbl->Trim(This,rectangles,count)
#else
/*** IUnknown methods ***/
static inline HRESULT IDCompositionVirtualSurface_QueryInterface(IDCompositionVirtualSurface* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IDCompositionVirtualSurface_AddRef(IDCompositionVirtualSurface* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IDCompositionVirtualSurface_Release(IDCompositionVirtualSurfaceThis) {
    return This->lpVtbl->Release(This);
}
/*** IDCompositionSurface methods ***/
static inline HRESULT IDCompositionVirtualSurface_BeginDraw(IDCompositionVirtualSurface* This,const RECT *rect,REFIID iid,void **object,POINT *offset) {
    return This->lpVtbl->BeginDraw(This,rect,iid,object,offset);
}
static inline HRESULT IDCompositionVirtualSurface_EndDraw(IDCompositionVirtualSurface* This) {
    return This->lpVtbl->EndDraw(This);
}
static inline HRESULT IDCompositionVirtualSurface_SuspendDraw(IDCompositionVirtualSurface* This) {
    return This->lpVtbl->SuspendDraw(This);
}
static inline HRESULT IDCompositionVirtualSurface_ResumeDraw(IDCompositionVirtualSurface* This) {
    return This->lpVtbl->ResumeDraw(This);
}
static inline HRESULT IDCompositionVirtualSurface_Scroll(IDCompositionVirtualSurface* This,const RECT *scroll,const RECT *clip,int offset_x,int offset_y) {
    return This->lpVtbl->Scroll(This,scroll,clip,offset_x,offset_y);
}
/*** IDCompositionVirtualSurface methods ***/
static inline HRESULT IDCompositionVirtualSurface_Resize(IDCompositionVirtualSurface* This,UINT width,UINT height) {
    return This->lpVtbl->Resize(This,width,height);
}
static inline HRESULT IDCompositionVirtualSurface_Trim(IDCompositionVirtualSurface* This,const RECT *rectangles,UINT count) {
    return This->lpVtbl->Trim(This,rectangles,count);
}
#endif
#endif

#endif


#endif  /* __IDCompositionVirtualSurface_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IDCompositionSurfaceFactory interface
 */

#ifndef __IDCompositionSurfaceFactory_INTERFACE_DEFINED__
#define __IDCompositionSurfaceFactory_INTERFACE_DEFINED__

DEFINE_GUID(IID_IDCompositionSurfaceFactory, 0xe334bc12, 0x3937, 0x4e02, 0x85,0xeb, 0xfc,0xf4,0xeb,0x30,0xd2,0xc8);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("e334bc12-3937-4e02-85eb-fcf4eb30d2c8")
IDCompositionSurfaceFactory : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE CreateSurface(
        UINT width,
        UINT height,
        DXGI_FORMAT pixel_format,
        DXGI_ALPHA_MODE alpha_mode,
        IDCompositionSurface **surface) = 0;

    virtual HRESULT STDMETHODCALLTYPE CreateVirtualSurface(
        UINT width,
        UINT height,
        DXGI_FORMAT pixel_format,
        DXGI_ALPHA_MODE alpha_mode,
        IDCompositionVirtualSurface **surface) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IDCompositionSurfaceFactory, 0xe334bc12, 0x3937, 0x4e02, 0x85,0xeb, 0xfc,0xf4,0xeb,0x30,0xd2,0xc8)
#endif
#else
typedef struct IDCompositionSurfaceFactoryVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IDCompositionSurfaceFactory *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IDCompositionSurfaceFactory *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IDCompositionSurfaceFactory *This);

    /*** IDCompositionSurfaceFactory methods ***/
    HRESULT (STDMETHODCALLTYPE *CreateSurface)(
        IDCompositionSurfaceFactory *This,
        UINT width,
        UINT height,
        DXGI_FORMAT pixel_format,
        DXGI_ALPHA_MODE alpha_mode,
        IDCompositionSurface **surface);

    HRESULT (STDMETHODCALLTYPE *CreateVirtualSurface)(
        IDCompositionSurfaceFactory *This,
        UINT width,
        UINT height,
        DXGI_FORMAT pixel_format,
        DXGI_ALPHA_MODE alpha_mode,
        IDCompositionVirtualSurface **surface);

    END_INTERFACE
} IDCompositionSurfaceFactoryVtbl;

interface IDCompositionSurfaceFactory {
    CONST_VTBL IDCompositionSurfaceFactoryVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IDCompositionSurfaceFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDCompositionSurfaceFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDCompositionSurfaceFactory_Release(This) (This)->lpVtbl->Release(This)
/*** IDCompositionSurfaceFactory methods ***/
#define IDCompositionSurfaceFactory_CreateSurface(This,width,height,pixel_format,alpha_mode,surface) (This)->lpVtbl->CreateSurface(This,width,height,pixel_format,alpha_mode,surface)
#define IDCompositionSurfaceFactory_CreateVirtualSurface(This,width,height,pixel_format,alpha_mode,surface) (This)->lpVtbl->CreateVirtualSurface(This,width,height,pixel_format,alpha_mode,surface)
#else
/*** IUnknown methods ***/
static inline HRESULT IDCompositionSurfaceFactory_QueryInterface(IDCompositionSurfaceFactory* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IDCompositionSurfaceFactory_AddRef(IDCompositionSurfaceFactory* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IDCompositionSurfaceFactory_Release(IDCompositionSurfaceFactoryThis) {
    return This->lpVtbl->Release(This);
}
/*** IDCompositionSurfaceFactory methods ***/
static inline HRESULT IDCompositionSurfaceFactory_CreateSurface(IDCompositionSurfaceFactory* This,UINT width,UINT height,DXGI_FORMAT pixel_format,DXGI_ALPHA_MODE alpha_mode,IDCompositionSurface **surface) {
    return This->lpVtbl->CreateSurface(This,width,height,pixel_format,alpha_mode,surface);
}
static inline HRESULT IDCompositionSurfaceFactory_CreateVirtualSurface(IDCompositionSurfaceFactory* This,UINT width,UINT height,DXGI_FORMAT pixel_format,DXGI_ALPHA_MODE alpha_mode,IDCompositionVirtualSurface **surface) {
    return This->lpVtbl->CreateVirtualSurface(This,width,height,pixel_format,alpha_mode,surface);
}
#endif
#endif

#endif


#endif  /* __IDCompositionSurfaceFactory_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IDCompositionClip interface
 */

#ifndef __IDCompositionClip_INTERFACE_DEFINED__
#define __IDCompositionClip_INTERFACE_DEFINED__

DEFINE_GUID(IID_IDCompositionClip, 0x64ac3703, 0x9d3f, 0x45ec, 0xa1,0x09, 0x7c,0xac,0x0e,0x7a,0x13,0xa7);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("64ac3703-9d3f-45ec-a109-7cac0e7a13a7")
IDCompositionClip : public IUnknown
{
};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IDCompositionClip, 0x64ac3703, 0x9d3f, 0x45ec, 0xa1,0x09, 0x7c,0xac,0x0e,0x7a,0x13,0xa7)
#endif
#else
typedef struct IDCompositionClipVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IDCompositionClip *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IDCompositionClip *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IDCompositionClip *This);

    END_INTERFACE
} IDCompositionClipVtbl;

interface IDCompositionClip {
    CONST_VTBL IDCompositionClipVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IDCompositionClip_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDCompositionClip_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDCompositionClip_Release(This) (This)->lpVtbl->Release(This)
#else
/*** IUnknown methods ***/
static inline HRESULT IDCompositionClip_QueryInterface(IDCompositionClip* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IDCompositionClip_AddRef(IDCompositionClip* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IDCompositionClip_Release(IDCompositionClip* This) {
    return This->lpVtbl->Release(This);
}
#endif
#endif

#endif


#endif  /* __IDCompositionClip_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IDCompositionRectangleClip interface
 */

#ifndef __IDCompositionRectangleClip_INTERFACE_DEFINED__
#define __IDCompositionRectangleClip_INTERFACE_DEFINED__

DEFINE_GUID(IID_IDCompositionRectangleClip, 0x9842ad7d, 0xd9cf, 0x4908, 0xae,0xd7, 0x48,0xb5,0x1d,0xa5,0xe7,0xc2);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("9842ad7d-d9cf-4908-aed7-48b51da5e7c2")
IDCompositionRectangleClip : public IDCompositionClip
{
    virtual HRESULT STDMETHODCALLTYPE SetLeft(
        float left) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetLeftAnimation(
        IDCompositionAnimation *animation) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetTop(
        float top) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetTopAnimation(
        IDCompositionAnimation *animation) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetRight(
        float right) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetRightAnimation(
        IDCompositionAnimation *animation) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetBottom(
        float bottom) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetBottomAnimation(
        IDCompositionAnimation *animation) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetTopLeftRadiusX(
        float radius) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetTopLeftRadiusXAnimation(
        IDCompositionAnimation *animation) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetTopLeftRadiusY(
        float radius) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetTopLeftRadiusYAnimation(
        IDCompositionAnimation *animation) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetTopRightRadiusX(
        float radius) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetTopRightRadiusXAnimation(
        IDCompositionAnimation *animation) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetTopRightRadiusY(
        float radius) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetTopRightRadiusYAnimation(
        IDCompositionAnimation *animation) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetBottomLeftRadiusX(
        float radius) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetBottomLeftRadiusXAnimation(
        IDCompositionAnimation *animation) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetBottomLeftRadiusY(
        float radius) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetBottomLeftRadiusYAnimation(
        IDCompositionAnimation *animation) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetBottomRightRadiusX(
        float radius) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetBottomRightRadiusXAnimation(
        IDCompositionAnimation *animation) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetBottomRightRadiusY(
        float radius) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetBottomRightRadiusYAnimation(
        IDCompositionAnimation *animation) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IDCompositionRectangleClip, 0x9842ad7d, 0xd9cf, 0x4908, 0xae,0xd7, 0x48,0xb5,0x1d,0xa5,0xe7,0xc2)
#endif
#else
typedef struct IDCompositionRectangleClipVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IDCompositionRectangleClip *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IDCompositionRectangleClip *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IDCompositionRectangleClip *This);

    /*** IDCompositionRectangleClip methods ***/
    HRESULT (STDMETHODCALLTYPE *SetLeft)(
        IDCompositionRectangleClip *This,
        float left);

    HRESULT (STDMETHODCALLTYPE *SetLeftAnimation)(
        IDCompositionRectangleClip *This,
        IDCompositionAnimation *animation);

    HRESULT (STDMETHODCALLTYPE *SetTop)(
        IDCompositionRectangleClip *This,
        float top);

    HRESULT (STDMETHODCALLTYPE *SetTopAnimation)(
        IDCompositionRectangleClip *This,
        IDCompositionAnimation *animation);

    HRESULT (STDMETHODCALLTYPE *SetRight)(
        IDCompositionRectangleClip *This,
        float right);

    HRESULT (STDMETHODCALLTYPE *SetRightAnimation)(
        IDCompositionRectangleClip *This,
        IDCompositionAnimation *animation);

    HRESULT (STDMETHODCALLTYPE *SetBottom)(
        IDCompositionRectangleClip *This,
        float bottom);

    HRESULT (STDMETHODCALLTYPE *SetBottomAnimation)(
        IDCompositionRectangleClip *This,
        IDCompositionAnimation *animation);

    HRESULT (STDMETHODCALLTYPE *SetTopLeftRadiusX)(
        IDCompositionRectangleClip *This,
        float radius);

    HRESULT (STDMETHODCALLTYPE *SetTopLeftRadiusXAnimation)(
        IDCompositionRectangleClip *This,
        IDCompositionAnimation *animation);

    HRESULT (STDMETHODCALLTYPE *SetTopLeftRadiusY)(
        IDCompositionRectangleClip *This,
        float radius);

    HRESULT (STDMETHODCALLTYPE *SetTopLeftRadiusYAnimation)(
        IDCompositionRectangleClip *This,
        IDCompositionAnimation *animation);

    HRESULT (STDMETHODCALLTYPE *SetTopRightRadiusX)(
        IDCompositionRectangleClip *This,
        float radius);

    HRESULT (STDMETHODCALLTYPE *SetTopRightRadiusXAnimation)(
        IDCompositionRectangleClip *This,
        IDCompositionAnimation *animation);

    HRESULT (STDMETHODCALLTYPE *SetTopRightRadiusY)(
        IDCompositionRectangleClip *This,
        float radius);

    HRESULT (STDMETHODCALLTYPE *SetTopRightRadiusYAnimation)(
        IDCompositionRectangleClip *This,
        IDCompositionAnimation *animation);

    HRESULT (STDMETHODCALLTYPE *SetBottomLeftRadiusX)(
        IDCompositionRectangleClip *This,
        float radius);

    HRESULT (STDMETHODCALLTYPE *SetBottomLeftRadiusXAnimation)(
        IDCompositionRectangleClip *This,
        IDCompositionAnimation *animation);

    HRESULT (STDMETHODCALLTYPE *SetBottomLeftRadiusY)(
        IDCompositionRectangleClip *This,
        float radius);

    HRESULT (STDMETHODCALLTYPE *SetBottomLeftRadiusYAnimation)(
        IDCompositionRectangleClip *This,
        IDCompositionAnimation *animation);

    HRESULT (STDMETHODCALLTYPE *SetBottomRightRadiusX)(
        IDCompositionRectangleClip *This,
        float radius);

    HRESULT (STDMETHODCALLTYPE *SetBottomRightRadiusXAnimation)(
        IDCompositionRectangleClip *This,
        IDCompositionAnimation *animation);

    HRESULT (STDMETHODCALLTYPE *SetBottomRightRadiusY)(
        IDCompositionRectangleClip *This,
        float radius);

    HRESULT (STDMETHODCALLTYPE *SetBottomRightRadiusYAnimation)(
        IDCompositionRectangleClip *This,
        IDCompositionAnimation *animation);

    END_INTERFACE
} IDCompositionRectangleClipVtbl;

interface IDCompositionRectangleClip {
    CONST_VTBL IDCompositionRectangleClipVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IDCompositionRectangleClip_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDCompositionRectangleClip_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDCompositionRectangleClip_Release(This) (This)->lpVtbl->Release(This)
/*** IDCompositionRectangleClip methods ***/
#define IDCompositionRectangleClip_SetLeft(This,left) (This)->lpVtbl->SetLeft(This,left)
#define IDCompositionRectangleClip_SetLeftAnimation(This,animation) (This)->lpVtbl->SetLeftAnimation(This,animation)
#define IDCompositionRectangleClip_SetTop(This,top) (This)->lpVtbl->SetTop(This,top)
#define IDCompositionRectangleClip_SetTopAnimation(This,animation) (This)->lpVtbl->SetTopAnimation(This,animation)
#define IDCompositionRectangleClip_SetRight(This,right) (This)->lpVtbl->SetRight(This,right)
#define IDCompositionRectangleClip_SetRightAnimation(This,animation) (This)->lpVtbl->SetRightAnimation(This,animation)
#define IDCompositionRectangleClip_SetBottom(This,bottom) (This)->lpVtbl->SetBottom(This,bottom)
#define IDCompositionRectangleClip_SetBottomAnimation(This,animation) (This)->lpVtbl->SetBottomAnimation(This,animation)
#define IDCompositionRectangleClip_SetTopLeftRadiusX(This,radius) (This)->lpVtbl->SetTopLeftRadiusX(This,radius)
#define IDCompositionRectangleClip_SetTopLeftRadiusXAnimation(This,animation) (This)->lpVtbl->SetTopLeftRadiusXAnimation(This,animation)
#define IDCompositionRectangleClip_SetTopLeftRadiusY(This,radius) (This)->lpVtbl->SetTopLeftRadiusY(This,radius)
#define IDCompositionRectangleClip_SetTopLeftRadiusYAnimation(This,animation) (This)->lpVtbl->SetTopLeftRadiusYAnimation(This,animation)
#define IDCompositionRectangleClip_SetTopRightRadiusX(This,radius) (This)->lpVtbl->SetTopRightRadiusX(This,radius)
#define IDCompositionRectangleClip_SetTopRightRadiusXAnimation(This,animation) (This)->lpVtbl->SetTopRightRadiusXAnimation(This,animation)
#define IDCompositionRectangleClip_SetTopRightRadiusY(This,radius) (This)->lpVtbl->SetTopRightRadiusY(This,radius)
#define IDCompositionRectangleClip_SetTopRightRadiusYAnimation(This,animation) (This)->lpVtbl->SetTopRightRadiusYAnimation(This,animation)
#define IDCompositionRectangleClip_SetBottomLeftRadiusX(This,radius) (This)->lpVtbl->SetBottomLeftRadiusX(This,radius)
#define IDCompositionRectangleClip_SetBottomLeftRadiusXAnimation(This,animation) (This)->lpVtbl->SetBottomLeftRadiusXAnimation(This,animation)
#define IDCompositionRectangleClip_SetBottomLeftRadiusY(This,radius) (This)->lpVtbl->SetBottomLeftRadiusY(This,radius)
#define IDCompositionRectangleClip_SetBottomLeftRadiusYAnimation(This,animation) (This)->lpVtbl->SetBottomLeftRadiusYAnimation(This,animation)
#define IDCompositionRectangleClip_SetBottomRightRadiusX(This,radius) (This)->lpVtbl->SetBottomRightRadiusX(This,radius)
#define IDCompositionRectangleClip_SetBottomRightRadiusXAnimation(This,animation) (This)->lpVtbl->SetBottomRightRadiusXAnimation(This,animation)
#define IDCompositionRectangleClip_SetBottomRightRadiusY(This,radius) (This)->lpVtbl->SetBottomRightRadiusY(This,radius)
#define IDCompositionRectangleClip_SetBottomRightRadiusYAnimation(This,animation) (This)->lpVtbl->SetBottomRightRadiusYAnimation(This,animation)
#else
/*** IUnknown methods ***/
static inline HRESULT IDCompositionRectangleClip_QueryInterface(IDCompositionRectangleClip* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IDCompositionRectangleClip_AddRef(IDCompositionRectangleClip* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IDCompositionRectangleClip_Release(IDCompositionRectangleClip* This) {
    return This->lpVtbl->Release(This);
}
/*** IDCompositionRectangleClip methods ***/
static inline HRESULT IDCompositionRectangleClip_SetLeft(IDCompositionRectangleClipThis,float left) {
    return This->lpVtbl->SetLeft(This,left);
}
static inline HRESULT IDCompositionRectangleClip_SetLeftAnimation(IDCompositionRectangleClip* This,IDCompositionAnimation *animation) {
    return This->lpVtbl->SetLeftAnimation(This,animation);
}
static inline HRESULT IDCompositionRectangleClip_SetTop(IDCompositionRectangleClip* This,float top) {
    return This->lpVtbl->SetTop(This,top);
}
static inline HRESULT IDCompositionRectangleClip_SetTopAnimation(IDCompositionRectangleClip* This,IDCompositionAnimation *animation) {
    return This->lpVtbl->SetTopAnimation(This,animation);
}
static inline HRESULT IDCompositionRectangleClip_SetRight(IDCompositionRectangleClip* This,float right) {
    return This->lpVtbl->SetRight(This,right);
}
static inline HRESULT IDCompositionRectangleClip_SetRightAnimation(IDCompositionRectangleClip* This,IDCompositionAnimation *animation) {
    return This->lpVtbl->SetRightAnimation(This,animation);
}
static inline HRESULT IDCompositionRectangleClip_SetBottom(IDCompositionRectangleClip* This,float bottom) {
    return This->lpVtbl->SetBottom(This,bottom);
}
static inline HRESULT IDCompositionRectangleClip_SetBottomAnimation(IDCompositionRectangleClip* This,IDCompositionAnimation *animation) {
    return This->lpVtbl->SetBottomAnimation(This,animation);
}
static inline HRESULT IDCompositionRectangleClip_SetTopLeftRadiusX(IDCompositionRectangleClip* This,float radius) {
    return This->lpVtbl->SetTopLeftRadiusX(This,radius);
}
static inline HRESULT IDCompositionRectangleClip_SetTopLeftRadiusXAnimation(IDCompositionRectangleClip* This,IDCompositionAnimation *animation) {
    return This->lpVtbl->SetTopLeftRadiusXAnimation(This,animation);
}
static inline HRESULT IDCompositionRectangleClip_SetTopLeftRadiusY(IDCompositionRectangleClip* This,float radius) {
    return This->lpVtbl->SetTopLeftRadiusY(This,radius);
}
static inline HRESULT IDCompositionRectangleClip_SetTopLeftRadiusYAnimation(IDCompositionRectangleClip* This,IDCompositionAnimation *animation) {
    return This->lpVtbl->SetTopLeftRadiusYAnimation(This,animation);
}
static inline HRESULT IDCompositionRectangleClip_SetTopRightRadiusX(IDCompositionRectangleClip* This,float radius) {
    return This->lpVtbl->SetTopRightRadiusX(This,radius);
}
static inline HRESULT IDCompositionRectangleClip_SetTopRightRadiusXAnimation(IDCompositionRectangleClip* This,IDCompositionAnimation *animation) {
    return This->lpVtbl->SetTopRightRadiusXAnimation(This,animation);
}
static inline HRESULT IDCompositionRectangleClip_SetTopRightRadiusY(IDCompositionRectangleClip* This,float radius) {
    return This->lpVtbl->SetTopRightRadiusY(This,radius);
}
static inline HRESULT IDCompositionRectangleClip_SetTopRightRadiusYAnimation(IDCompositionRectangleClip* This,IDCompositionAnimation *animation) {
    return This->lpVtbl->SetTopRightRadiusYAnimation(This,animation);
}
static inline HRESULT IDCompositionRectangleClip_SetBottomLeftRadiusX(IDCompositionRectangleClip* This,float radius) {
    return This->lpVtbl->SetBottomLeftRadiusX(This,radius);
}
static inline HRESULT IDCompositionRectangleClip_SetBottomLeftRadiusXAnimation(IDCompositionRectangleClip* This,IDCompositionAnimation *animation) {
    return This->lpVtbl->SetBottomLeftRadiusXAnimation(This,animation);
}
static inline HRESULT IDCompositionRectangleClip_SetBottomLeftRadiusY(IDCompositionRectangleClip* This,float radius) {
    return This->lpVtbl->SetBottomLeftRadiusY(This,radius);
}
static inline HRESULT IDCompositionRectangleClip_SetBottomLeftRadiusYAnimation(IDCompositionRectangleClip* This,IDCompositionAnimation *animation) {
    return This->lpVtbl->SetBottomLeftRadiusYAnimation(This,animation);
}
static inline HRESULT IDCompositionRectangleClip_SetBottomRightRadiusX(IDCompositionRectangleClip* This,float radius) {
    return This->lpVtbl->SetBottomRightRadiusX(This,radius);
}
static inline HRESULT IDCompositionRectangleClip_SetBottomRightRadiusXAnimation(IDCompositionRectangleClip* This,IDCompositionAnimation *animation) {
    return This->lpVtbl->SetBottomRightRadiusXAnimation(This,animation);
}
static inline HRESULT IDCompositionRectangleClip_SetBottomRightRadiusY(IDCompositionRectangleClip* This,float radius) {
    return This->lpVtbl->SetBottomRightRadiusY(This,radius);
}
static inline HRESULT IDCompositionRectangleClip_SetBottomRightRadiusYAnimation(IDCompositionRectangleClip* This,IDCompositionAnimation *animation) {
    return This->lpVtbl->SetBottomRightRadiusYAnimation(This,animation);
}
#endif
#endif

#endif


#endif  /* __IDCompositionRectangleClip_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IDCompositionEffect interface
 */

#ifndef __IDCompositionEffect_INTERFACE_DEFINED__
#define __IDCompositionEffect_INTERFACE_DEFINED__

DEFINE_GUID(IID_IDCompositionEffect, 0xec81b08f, 0xbfcb, 0x4e8d, 0xb1,0x93, 0xa9,0x15,0x58,0x79,0x99,0xe8);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("ec81b08f-bfcb-4e8d-b193-a915587999e8")
IDCompositionEffect : public IUnknown
{
};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IDCompositionEffect, 0xec81b08f, 0xbfcb, 0x4e8d, 0xb1,0x93, 0xa9,0x15,0x58,0x79,0x99,0xe8)
#endif
#else
typedef struct IDCompositionEffectVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IDCompositionEffect *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IDCompositionEffect *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IDCompositionEffect *This);

    END_INTERFACE
} IDCompositionEffectVtbl;

interface IDCompositionEffect {
    CONST_VTBL IDCompositionEffectVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IDCompositionEffect_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDCompositionEffect_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDCompositionEffect_Release(This) (This)->lpVtbl->Release(This)
#else
/*** IUnknown methods ***/
static inline HRESULT IDCompositionEffect_QueryInterface(IDCompositionEffect* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IDCompositionEffect_AddRef(IDCompositionEffect* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IDCompositionEffect_Release(IDCompositionEffect* This) {
    return This->lpVtbl->Release(This);
}
#endif
#endif

#endif


#endif  /* __IDCompositionEffect_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IDCompositionTransform3D interface
 */

#ifndef __IDCompositionTransform3D_INTERFACE_DEFINED__
#define __IDCompositionTransform3D_INTERFACE_DEFINED__

DEFINE_GUID(IID_IDCompositionTransform3D, 0x71185722, 0x246b, 0x41f2, 0xaa,0xd1, 0x04,0x43,0xf7,0xf4,0xbf,0xc2);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("71185722-246b-41f2-aad1-0443f7f4bfc2")
IDCompositionTransform3D : public IDCompositionEffect
{
};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IDCompositionTransform3D, 0x71185722, 0x246b, 0x41f2, 0xaa,0xd1, 0x04,0x43,0xf7,0xf4,0xbf,0xc2)
#endif
#else
typedef struct IDCompositionTransform3DVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IDCompositionTransform3D *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IDCompositionTransform3D *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IDCompositionTransform3D *This);

    END_INTERFACE
} IDCompositionTransform3DVtbl;

interface IDCompositionTransform3D {
    CONST_VTBL IDCompositionTransform3DVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IDCompositionTransform3D_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDCompositionTransform3D_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDCompositionTransform3D_Release(This) (This)->lpVtbl->Release(This)
#else
/*** IUnknown methods ***/
static inline HRESULT IDCompositionTransform3D_QueryInterface(IDCompositionTransform3D* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IDCompositionTransform3D_AddRef(IDCompositionTransform3D* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IDCompositionTransform3D_Release(IDCompositionTransform3D* This{
    return This->lpVtbl->Release(This);
}
#endif
#endif

#endif


#endif  /* __IDCompositionTransform3D_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IDCompositionEffectGroup interface
 */

#ifndef __IDCompositionEffectGroup_INTERFACE_DEFINED__
#define __IDCompositionEffectGroup_INTERFACE_DEFINED__

DEFINE_GUID(IID_IDCompositionEffectGroup, 0xa7929a74, 0xe6b2, 0x4bd6, 0x8b,0x95, 0x40,0x40,0x11,0x9c,0xa3,0x4d);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("a7929a74-e6b2-4bd6-8b95-4040119ca34d")
IDCompositionEffectGroup : public IDCompositionEffect
{
    virtual HRESULT STDMETHODCALLTYPE SetOpacity(
        float opacity) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetOpacityAnimation(
        IDCompositionAnimation *animation) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetTransform3D(
        IDCompositionTransform3D *transform) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IDCompositionEffectGroup, 0xa7929a74, 0xe6b2, 0x4bd6, 0x8b,0x95, 0x40,0x40,0x11,0x9c,0xa3,0x4d)
#endif
#else
typedef struct IDCompositionEffectGroupVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IDCompositionEffectGroup *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IDCompositionEffectGroup *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IDCompositionEffectGroup *This);

    /*** IDCompositionEffectGroup methods ***/
    HRESULT (STDMETHODCALLTYPE *SetOpacity)(
        IDCompositionEffectGroup *This,
        float opacity);

    HRESULT (STDMETHODCALLTYPE *SetOpacityAnimation)(
        IDCompositionEffectGroup *This,
        IDCompositionAnimation *animation);

    HRESULT (STDMETHODCALLTYPE *SetTransform3D)(
        IDCompositionEffectGroup *This,
        IDCompositionTransform3D *transform);

    END_INTERFACE
} IDCompositionEffectGroupVtbl;

interface IDCompositionEffectGroup {
    CONST_VTBL IDCompositionEffectGroupVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IDCompositionEffectGroup_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDCompositionEffectGroup_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDCompositionEffectGroup_Release(This) (This)->lpVtbl->Release(This)
/*** IDCompositionEffectGroup methods ***/
#define IDCompositionEffectGroup_SetOpacity(This,opacity) (This)->lpVtbl->SetOpacity(This,opacity)
#define IDCompositionEffectGroup_SetOpacityAnimation(This,animation) (This)->lpVtbl->SetOpacityAnimation(This,animation)
#define IDCompositionEffectGroup_SetTransform3D(This,transform) (This)->lpVtbl->SetTransform3D(This,transform)
#else
/*** IUnknown methods ***/
static inline HRESULT IDCompositionEffectGroup_QueryInterface(IDCompositionEffectGroup* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IDCompositionEffectGroup_AddRef(IDCompositionEffectGroup* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IDCompositionEffectGroup_Release(IDCompositionEffectGroup* This{
    return This->lpVtbl->Release(This);
}
/*** IDCompositionEffectGroup methods ***/
static inline HRESULT IDCompositionEffectGroup_SetOpacity(IDCompositionEffectGroup* This,float opacity) {
    return This->lpVtbl->SetOpacity(This,opacity);
}
static inline HRESULT IDCompositionEffectGroup_SetOpacityAnimation(IDCompositionEffectGroup* This,IDCompositionAnimation *animation) {
    return This->lpVtbl->SetOpacityAnimation(This,animation);
}
static inline HRESULT IDCompositionEffectGroup_SetTransform3D(IDCompositionEffectGroup* This,IDCompositionTransform3D *transform) {
    return This->lpVtbl->SetTransform3D(This,transform);
}
#endif
#endif

#endif


#endif  /* __IDCompositionEffectGroup_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IDCompositionTranslateTransform3D interface
 */

#ifndef __IDCompositionTranslateTransform3D_INTERFACE_DEFINED__
#define __IDCompositionTranslateTransform3D_INTERFACE_DEFINED__

DEFINE_GUID(IID_IDCompositionTranslateTransform3D, 0x91636d4b, 0x9ba1, 0x4532, 0xaa,0xf7, 0xe3,0x34,0x49,0x94,0xd7,0x88);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("91636d4b-9ba1-4532-aaf7-e3344994d788")
IDCompositionTranslateTransform3D : public IDCompositionTransform3D
{
    virtual HRESULT STDMETHODCALLTYPE SetOffsetX(
        float offset) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetOffsetXAnimation(
        IDCompositionAnimation *animation) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetOffsetY(
        float offset) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetOffsetYAnimation(
        IDCompositionAnimation *animation) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetOffsetZ(
        float offset) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetOffsetZAnimation(
        IDCompositionAnimation *animation) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IDCompositionTranslateTransform3D, 0x91636d4b, 0x9ba1, 0x4532, 0xaa,0xf7, 0xe3,0x34,0x49,0x94,0xd7,0x88)
#endif
#else
typedef struct IDCompositionTranslateTransform3DVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IDCompositionTranslateTransform3D *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IDCompositionTranslateTransform3D *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IDCompositionTranslateTransform3D *This);

    /*** IDCompositionTranslateTransform3D methods ***/
    HRESULT (STDMETHODCALLTYPE *SetOffsetX)(
        IDCompositionTranslateTransform3D *This,
        float offset);

    HRESULT (STDMETHODCALLTYPE *SetOffsetXAnimation)(
        IDCompositionTranslateTransform3D *This,
        IDCompositionAnimation *animation);

    HRESULT (STDMETHODCALLTYPE *SetOffsetY)(
        IDCompositionTranslateTransform3D *This,
        float offset);

    HRESULT (STDMETHODCALLTYPE *SetOffsetYAnimation)(
        IDCompositionTranslateTransform3D *This,
        IDCompositionAnimation *animation);

    HRESULT (STDMETHODCALLTYPE *SetOffsetZ)(
        IDCompositionTranslateTransform3D *This,
        float offset);

    HRESULT (STDMETHODCALLTYPE *SetOffsetZAnimation)(
        IDCompositionTranslateTransform3D *This,
        IDCompositionAnimation *animation);

    END_INTERFACE
} IDCompositionTranslateTransform3DVtbl;

interface IDCompositionTranslateTransform3D {
    CONST_VTBL IDCompositionTranslateTransform3DVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IDCompositionTranslateTransform3D_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDCompositionTranslateTransform3D_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDCompositionTranslateTransform3D_Release(This) (This)->lpVtbl->Release(This)
/*** IDCompositionTranslateTransform3D methods ***/
#define IDCompositionTranslateTransform3D_SetOffsetX(This,offset) (This)->lpVtbl->SetOffsetX(This,offset)
#define IDCompositionTranslateTransform3D_SetOffsetXAnimation(This,animation) (This)->lpVtbl->SetOffsetXAnimation(This,animation)
#define IDCompositionTranslateTransform3D_SetOffsetY(This,offset) (This)->lpVtbl->SetOffsetY(This,offset)
#define IDCompositionTranslateTransform3D_SetOffsetYAnimation(This,animation) (This)->lpVtbl->SetOffsetYAnimation(This,animation)
#define IDCompositionTranslateTransform3D_SetOffsetZ(This,offset) (This)->lpVtbl->SetOffsetZ(This,offset)
#define IDCompositionTranslateTransform3D_SetOffsetZAnimation(This,animation) (This)->lpVtbl->SetOffsetZAnimation(This,animation)
#else
/*** IUnknown methods ***/
static inline HRESULT IDCompositionTranslateTransform3D_QueryInterface(IDCompositionTranslateTransform3D* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IDCompositionTranslateTransform3D_AddRef(IDCompositionTranslateTransform3D* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IDCompositionTranslateTransform3D_Release(IDCompositionTranslateTransform3D* This) {
    return This->lpVtbl->Release(This);
}
/*** IDCompositionTranslateTransform3D methods ***/
static inline HRESULT IDCompositionTranslateTransform3D_SetOffsetX(IDCompositionTranslateTransform3D* This,float offset) {
    return This->lpVtbl->SetOffsetX(This,offset);
}
static inline HRESULT IDCompositionTranslateTransform3D_SetOffsetXAnimation(IDCompositionTranslateTransform3D* This,IDCompositionAnimation *animation) {
    return This->lpVtbl->SetOffsetXAnimation(This,animation);
}
static inline HRESULT IDCompositionTranslateTransform3D_SetOffsetY(IDCompositionTranslateTransform3D* This,float offset) {
    return This->lpVtbl->SetOffsetY(This,offset);
}
static inline HRESULT IDCompositionTranslateTransform3D_SetOffsetYAnimation(IDCompositionTranslateTransform3D* This,IDCompositionAnimation *animation) {
    return This->lpVtbl->SetOffsetYAnimation(This,animation);
}
static inline HRESULT IDCompositionTranslateTransform3D_SetOffsetZ(IDCompositionTranslateTransform3D* This,float offset) {
    return This->lpVtbl->SetOffsetZ(This,offset);
}
static inline HRESULT IDCompositionTranslateTransform3D_SetOffsetZAnimation(IDCompositionTranslateTransform3D* This,IDCompositionAnimation *animation) {
    return This->lpVtbl->SetOffsetZAnimation(This,animation);
}
#endif
#endif

#endif


#endif  /* __IDCompositionTranslateTransform3D_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IDCompositionScaleTransform3D interface
 */

#ifndef __IDCompositionScaleTransform3D_INTERFACE_DEFINED__
#define __IDCompositionScaleTransform3D_INTERFACE_DEFINED__

DEFINE_GUID(IID_IDCompositionScaleTransform3D, 0x2a9e9ead, 0x364b, 0x4b15, 0xa7,0xc40xa1,0x99,0x7f,0x78,0xb3,0x89);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("2a9e9ead-364b-4b15-a7c4-a1997f78b389")
IDCompositionScaleTransform3D : public IDCompositionTransform3D
{
    virtual HRESULT STDMETHODCALLTYPE SetScaleX(
        float scale) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetScaleXAnimation(
        IDCompositionAnimation *animation) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetScaleY(
        float scale) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetScaleYAnimation(
        IDCompositionAnimation *animation) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetScaleZ(
        float scale) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetScaleZAnimation(
        IDCompositionAnimation *animation) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetCenterX(
        float center) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetCenterXAnimation(
        IDCompositionAnimation *animation) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetCenterY(
        float center) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetCenterYAnimation(
        IDCompositionAnimation *animation) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetCenterZ(
        float center) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetCenterZAnimation(
        IDCompositionAnimation *animation) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IDCompositionScaleTransform3D, 0x2a9e9ead, 0x364b, 0x4b15, 0xa7,0xc40xa1,0x99,0x7f,0x78,0xb3,0x89)
#endif
#else
typedef struct IDCompositionScaleTransform3DVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IDCompositionScaleTransform3D *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IDCompositionScaleTransform3D *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IDCompositionScaleTransform3D *This);

    /*** IDCompositionScaleTransform3D methods ***/
    HRESULT (STDMETHODCALLTYPE *SetScaleX)(
        IDCompositionScaleTransform3D *This,
        float scale);

    HRESULT (STDMETHODCALLTYPE *SetScaleXAnimation)(
        IDCompositionScaleTransform3D *This,
        IDCompositionAnimation *animation);

    HRESULT (STDMETHODCALLTYPE *SetScaleY)(
        IDCompositionScaleTransform3D *This,
        float scale);

    HRESULT (STDMETHODCALLTYPE *SetScaleYAnimation)(
        IDCompositionScaleTransform3D *This,
        IDCompositionAnimation *animation);

    HRESULT (STDMETHODCALLTYPE *SetScaleZ)(
        IDCompositionScaleTransform3D *This,
        float scale);

    HRESULT (STDMETHODCALLTYPE *SetScaleZAnimation)(
        IDCompositionScaleTransform3D *This,
        IDCompositionAnimation *animation);

    HRESULT (STDMETHODCALLTYPE *SetCenterX)(
        IDCompositionScaleTransform3D *This,
        float center);

    HRESULT (STDMETHODCALLTYPE *SetCenterXAnimation)(
        IDCompositionScaleTransform3D *This,
        IDCompositionAnimation *animation);

    HRESULT (STDMETHODCALLTYPE *SetCenterY)(
        IDCompositionScaleTransform3D *This,
        float center);

    HRESULT (STDMETHODCALLTYPE *SetCenterYAnimation)(
        IDCompositionScaleTransform3D *This,
        IDCompositionAnimation *animation);

    HRESULT (STDMETHODCALLTYPE *SetCenterZ)(
        IDCompositionScaleTransform3D *This,
        float center);

    HRESULT (STDMETHODCALLTYPE *SetCenterZAnimation)(
        IDCompositionScaleTransform3D *This,
        IDCompositionAnimation *animation);

    END_INTERFACE
} IDCompositionScaleTransform3DVtbl;

interface IDCompositionScaleTransform3D {
    CONST_VTBL IDCompositionScaleTransform3DVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IDCompositionScaleTransform3D_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDCompositionScaleTransform3D_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDCompositionScaleTransform3D_Release(This) (This)->lpVtbl->Release(This)
/*** IDCompositionScaleTransform3D methods ***/
#define IDCompositionScaleTransform3D_SetScaleX(This,scale) (This)->lpVtbl->SetScaleX(This,scale)
#define IDCompositionScaleTransform3D_SetScaleXAnimation(This,animation) (This)->lpVtbl->SetScaleXAnimation(This,animation)
#define IDCompositionScaleTransform3D_SetScaleY(This,scale) (This)->lpVtbl->SetScaleY(This,scale)
#define IDCompositionScaleTransform3D_SetScaleYAnimation(This,animation) (This)->lpVtbl->SetScaleYAnimation(This,animation)
#define IDCompositionScaleTransform3D_SetScaleZ(This,scale) (This)->lpVtbl->SetScaleZ(This,scale)
#define IDCompositionScaleTransform3D_SetScaleZAnimation(This,animation) (This)->lpVtbl->SetScaleZAnimation(This,animation)
#define IDCompositionScaleTransform3D_SetCenterX(This,center) (This)->lpVtbl->SetCenterX(This,center)
#define IDCompositionScaleTransform3D_SetCenterXAnimation(This,animation) (This)->lpVtbl->SetCenterXAnimation(This,animation)
#define IDCompositionScaleTransform3D_SetCenterY(This,center) (This)->lpVtbl->SetCenterY(This,center)
#define IDCompositionScaleTransform3D_SetCenterYAnimation(This,animation) (This)->lpVtbl->SetCenterYAnimation(This,animation)
#define IDCompositionScaleTransform3D_SetCenterZ(This,center) (This)->lpVtbl->SetCenterZ(This,center)
#define IDCompositionScaleTransform3D_SetCenterZAnimation(This,animation) (This)->lpVtbl->SetCenterZAnimation(This,animation)
#else
/*** IUnknown methods ***/
static inline HRESULT IDCompositionScaleTransform3D_QueryInterface(IDCompositionScaleTransform3D* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IDCompositionScaleTransform3D_AddRef(IDCompositionScaleTransform3D* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IDCompositionScaleTransform3D_Release(IDCompositionScaleTransform3D* This) {
    return This->lpVtbl->Release(This);
}
/*** IDCompositionScaleTransform3D methods ***/
static inline HRESULT IDCompositionScaleTransform3D_SetScaleX(IDCompositionScaleTransform3D* This,float scale) {
    return This->lpVtbl->SetScaleX(This,scale);
}
static inline HRESULT IDCompositionScaleTransform3D_SetScaleXAnimation(IDCompositionScaleTransform3D* This,IDCompositionAnimation *animation) {
    return This->lpVtbl->SetScaleXAnimation(This,animation);
}
static inline HRESULT IDCompositionScaleTransform3D_SetScaleY(IDCompositionScaleTransform3D* This,float scale) {
    return This->lpVtbl->SetScaleY(This,scale);
}
static inline HRESULT IDCompositionScaleTransform3D_SetScaleYAnimation(IDCompositionScaleTransform3D* This,IDCompositionAnimation *animation) {
    return This->lpVtbl->SetScaleYAnimation(This,animation);
}
static inline HRESULT IDCompositionScaleTransform3D_SetScaleZ(IDCompositionScaleTransform3D* This,float scale) {
    return This->lpVtbl->SetScaleZ(This,scale);
}
static inline HRESULT IDCompositionScaleTransform3D_SetScaleZAnimation(IDCompositionScaleTransform3D* This,IDCompositionAnimation *animation) {
    return This->lpVtbl->SetScaleZAnimation(This,animation);
}
static inline HRESULT IDCompositionScaleTransform3D_SetCenterX(IDCompositionScaleTransform3D* This,float center) {
    return This->lpVtbl->SetCenterX(This,center);
}
static inline HRESULT IDCompositionScaleTransform3D_SetCenterXAnimation(IDCompositionScaleTransform3D* This,IDCompositionAnimation *animation) {
    return This->lpVtbl->SetCenterXAnimation(This,animation);
}
static inline HRESULT IDCompositionScaleTransform3D_SetCenterY(IDCompositionScaleTransform3D* This,float center) {
    return This->lpVtbl->SetCenterY(This,center);
}
static inline HRESULT IDCompositionScaleTransform3D_SetCenterYAnimation(IDCompositionScaleTransform3D* This,IDCompositionAnimation *animation) {
    return This->lpVtbl->SetCenterYAnimation(This,animation);
}
static inline HRESULT IDCompositionScaleTransform3D_SetCenterZ(IDCompositionScaleTransform3D* This,float center) {
    return This->lpVtbl->SetCenterZ(This,center);
}
static inline HRESULT IDCompositionScaleTransform3D_SetCenterZAnimation(IDCompositionScaleTransform3D* This,IDCompositionAnimation *animation) {
    return This->lpVtbl->SetCenterZAnimation(This,animation);
}
#endif
#endif

#endif


#endif  /* __IDCompositionScaleTransform3D_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IDCompositionRotateTransform3D interface
 */

#ifndef __IDCompositionRotateTransform3D_INTERFACE_DEFINED__
#define __IDCompositionRotateTransform3D_INTERFACE_DEFINED__

DEFINE_GUID(IID_IDCompositionRotateTransform3D, 0xd8f5b23f, 0xd429, 0x4a91, 0xb5,0x5a, 0xd2,0xf4,0x5f,0xd7,0x5b,0x18);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("d8f5b23f-d429-4a91-b55a-d2f45fd75b18")
IDCompositionRotateTransform3D : public IDCompositionTransform3D
{
    virtual HRESULT STDMETHODCALLTYPE SetScaleX(
        float scale) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetScaleXAnimation(
        IDCompositionAnimation *animation) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetScaleY(
        float scale) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetScaleYAnimation(
        IDCompositionAnimation *animation) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetScaleZ(
        float scale) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetScaleZAnimation(
        IDCompositionAnimation *animation) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetCenterX(
        float center) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetCenterXAnimation(
        IDCompositionAnimation *animation) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetCenterY(
        float center) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetCenterYAnimation(
        IDCompositionAnimation *animation) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetCenterZ(
        float center) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetCenterZAnimation(
        IDCompositionAnimation *animation) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IDCompositionRotateTransform3D, 0xd8f5b23f, 0xd429, 0x4a91, 0xb5,0x5a, 0xd2,0xf4,0x5f,0xd7,0x5b,0x18)
#endif
#else
typedef struct IDCompositionRotateTransform3DVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IDCompositionRotateTransform3D *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IDCompositionRotateTransform3D *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IDCompositionRotateTransform3D *This);

    /*** IDCompositionRotateTransform3D methods ***/
    HRESULT (STDMETHODCALLTYPE *SetScaleX)(
        IDCompositionRotateTransform3D *This,
        float scale);

    HRESULT (STDMETHODCALLTYPE *SetScaleXAnimation)(
        IDCompositionRotateTransform3D *This,
        IDCompositionAnimation *animation);

    HRESULT (STDMETHODCALLTYPE *SetScaleY)(
        IDCompositionRotateTransform3D *This,
        float scale);

    HRESULT (STDMETHODCALLTYPE *SetScaleYAnimation)(
        IDCompositionRotateTransform3D *This,
        IDCompositionAnimation *animation);

    HRESULT (STDMETHODCALLTYPE *SetScaleZ)(
        IDCompositionRotateTransform3D *This,
        float scale);

    HRESULT (STDMETHODCALLTYPE *SetScaleZAnimation)(
        IDCompositionRotateTransform3D *This,
        IDCompositionAnimation *animation);

    HRESULT (STDMETHODCALLTYPE *SetCenterX)(
        IDCompositionRotateTransform3D *This,
        float center);

    HRESULT (STDMETHODCALLTYPE *SetCenterXAnimation)(
        IDCompositionRotateTransform3D *This,
        IDCompositionAnimation *animation);

    HRESULT (STDMETHODCALLTYPE *SetCenterY)(
        IDCompositionRotateTransform3D *This,
        float center);

    HRESULT (STDMETHODCALLTYPE *SetCenterYAnimation)(
        IDCompositionRotateTransform3D *This,
        IDCompositionAnimation *animation);

    HRESULT (STDMETHODCALLTYPE *SetCenterZ)(
        IDCompositionRotateTransform3D *This,
        float center);

    HRESULT (STDMETHODCALLTYPE *SetCenterZAnimation)(
        IDCompositionRotateTransform3D *This,
        IDCompositionAnimation *animation);

    END_INTERFACE
} IDCompositionRotateTransform3DVtbl;

interface IDCompositionRotateTransform3D {
    CONST_VTBL IDCompositionRotateTransform3DVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IDCompositionRotateTransform3D_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDCompositionRotateTransform3D_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDCompositionRotateTransform3D_Release(This) (This)->lpVtbl->Release(This)
/*** IDCompositionRotateTransform3D methods ***/
#define IDCompositionRotateTransform3D_SetScaleX(This,scale) (This)->lpVtbl->SetScaleX(This,scale)
#define IDCompositionRotateTransform3D_SetScaleXAnimation(This,animation) (This)->lpVtbl->SetScaleXAnimation(This,animation)
#define IDCompositionRotateTransform3D_SetScaleY(This,scale) (This)->lpVtbl->SetScaleY(This,scale)
#define IDCompositionRotateTransform3D_SetScaleYAnimation(This,animation) (This)->lpVtbl->SetScaleYAnimation(This,animation)
#define IDCompositionRotateTransform3D_SetScaleZ(This,scale) (This)->lpVtbl->SetScaleZ(This,scale)
#define IDCompositionRotateTransform3D_SetScaleZAnimation(This,animation) (This)->lpVtbl->SetScaleZAnimation(This,animation)
#define IDCompositionRotateTransform3D_SetCenterX(This,center) (This)->lpVtbl->SetCenterX(This,center)
#define IDCompositionRotateTransform3D_SetCenterXAnimation(This,animation) (This)->lpVtbl->SetCenterXAnimation(This,animation)
#define IDCompositionRotateTransform3D_SetCenterY(This,center) (This)->lpVtbl->SetCenterY(This,center)
#define IDCompositionRotateTransform3D_SetCenterYAnimation(This,animation) (This)->lpVtbl->SetCenterYAnimation(This,animation)
#define IDCompositionRotateTransform3D_SetCenterZ(This,center) (This)->lpVtbl->SetCenterZ(This,center)
#define IDCompositionRotateTransform3D_SetCenterZAnimation(This,animation) (This)->lpVtbl->SetCenterZAnimation(This,animation)
#else
/*** IUnknown methods ***/
static inline HRESULT IDCompositionRotateTransform3D_QueryInterface(IDCompositionRotateTransform3D* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IDCompositionRotateTransform3D_AddRef(IDCompositionRotateTransform3D* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IDCompositionRotateTransform3D_Release(IDCompositionRotateTransform3D* This) {
    return This->lpVtbl->Release(This);
}
/*** IDCompositionRotateTransform3D methods ***/
static inline HRESULT IDCompositionRotateTransform3D_SetScaleX(IDCompositionRotateTransform3D* This,float scale) {
    return This->lpVtbl->SetScaleX(This,scale);
}
static inline HRESULT IDCompositionRotateTransform3D_SetScaleXAnimation(IDCompositionRotateTransform3D* This,IDCompositionAnimation *animation) {
    return This->lpVtbl->SetScaleXAnimation(This,animation);
}
static inline HRESULT IDCompositionRotateTransform3D_SetScaleY(IDCompositionRotateTransform3D* This,float scale) {
    return This->lpVtbl->SetScaleY(This,scale);
}
static inline HRESULT IDCompositionRotateTransform3D_SetScaleYAnimation(IDCompositionRotateTransform3D* This,IDCompositionAnimation *animation) {
    return This->lpVtbl->SetScaleYAnimation(This,animation);
}
static inline HRESULT IDCompositionRotateTransform3D_SetScaleZ(IDCompositionRotateTransform3D* This,float scale) {
    return This->lpVtbl->SetScaleZ(This,scale);
}
static inline HRESULT IDCompositionRotateTransform3D_SetScaleZAnimation(IDCompositionRotateTransform3D* This,IDCompositionAnimation *animation) {
    return This->lpVtbl->SetScaleZAnimation(This,animation);
}
static inline HRESULT IDCompositionRotateTransform3D_SetCenterX(IDCompositionRotateTransform3D* This,float center) {
    return This->lpVtbl->SetCenterX(This,center);
}
static inline HRESULT IDCompositionRotateTransform3D_SetCenterXAnimation(IDCompositionRotateTransform3D* This,IDCompositionAnimation *animation) {
    return This->lpVtbl->SetCenterXAnimation(This,animation);
}
static inline HRESULT IDCompositionRotateTransform3D_SetCenterY(IDCompositionRotateTransform3D* This,float center) {
    return This->lpVtbl->SetCenterY(This,center);
}
static inline HRESULT IDCompositionRotateTransform3D_SetCenterYAnimation(IDCompositionRotateTransform3D* This,IDCompositionAnimation *animation) {
    return This->lpVtbl->SetCenterYAnimation(This,animation);
}
static inline HRESULT IDCompositionRotateTransform3D_SetCenterZ(IDCompositionRotateTransform3D* This,float center) {
    return This->lpVtbl->SetCenterZ(This,center);
}
static inline HRESULT IDCompositionRotateTransform3D_SetCenterZAnimation(IDCompositionRotateTransform3D* This,IDCompositionAnimation *animation) {
    return This->lpVtbl->SetCenterZAnimation(This,animation);
}
#endif
#endif

#endif


#endif  /* __IDCompositionRotateTransform3D_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IDCompositionMatrixTransform3D interface
 */

#ifndef __IDCompositionMatrixTransform3D_INTERFACE_DEFINED__
#define __IDCompositionMatrixTransform3D_INTERFACE_DEFINED__

DEFINE_GUID(IID_IDCompositionMatrixTransform3D, 0x4b3363f0, 0x643b, 0x41b7, 0xb6,0xe0, 0xcc,0xf2,0x2d,0x34,0x46,0x7c);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("4b3363f0-643b-41b7-b6e0-ccf22d34467c")
IDCompositionMatrixTransform3D : public IDCompositionTransform3D
{
    virtual HRESULT STDMETHODCALLTYPE SetMatrix(
        const D3DMATRIX *matrix) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetMatrixElement(
        int row,
        int column,
        float value) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetMatrixElementAnimation(
        int row,
        int column,
        IDCompositionAnimation *animation) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IDCompositionMatrixTransform3D, 0x4b3363f0, 0x643b, 0x41b7, 0xb6,0xe0, 0xcc,0xf2,0x2d,0x34,0x46,0x7c)
#endif
#else
typedef struct IDCompositionMatrixTransform3DVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IDCompositionMatrixTransform3D *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IDCompositionMatrixTransform3D *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IDCompositionMatrixTransform3D *This);

    /*** IDCompositionMatrixTransform3D methods ***/
    HRESULT (STDMETHODCALLTYPE *SetMatrix)(
        IDCompositionMatrixTransform3D *This,
        const D3DMATRIX *matrix);

    HRESULT (STDMETHODCALLTYPE *SetMatrixElement)(
        IDCompositionMatrixTransform3D *This,
        int row,
        int column,
        float value);

    HRESULT (STDMETHODCALLTYPE *SetMatrixElementAnimation)(
        IDCompositionMatrixTransform3D *This,
        int row,
        int column,
        IDCompositionAnimation *animation);

    END_INTERFACE
} IDCompositionMatrixTransform3DVtbl;

interface IDCompositionMatrixTransform3D {
    CONST_VTBL IDCompositionMatrixTransform3DVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IDCompositionMatrixTransform3D_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDCompositionMatrixTransform3D_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDCompositionMatrixTransform3D_Release(This) (This)->lpVtbl->Release(This)
/*** IDCompositionMatrixTransform3D methods ***/
#define IDCompositionMatrixTransform3D_SetMatrix(This,matrix) (This)->lpVtbl->SetMatrix(This,matrix)
#define IDCompositionMatrixTransform3D_SetMatrixElement(This,row,column,value) (This)->lpVtbl->SetMatrixElement(This,row,column,value)
#define IDCompositionMatrixTransform3D_SetMatrixElementAnimation(This,row,column,animation) (This)->lpVtbl->SetMatrixElementAnimation(This,row,column,animation)
#else
/*** IUnknown methods ***/
static inline HRESULT IDCompositionMatrixTransform3D_QueryInterface(IDCompositionMatrixTransform3D* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IDCompositionMatrixTransform3D_AddRef(IDCompositionMatrixTransform3D* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IDCompositionMatrixTransform3D_Release(IDCompositionMatrixTransform3D* This) {
    return This->lpVtbl->Release(This);
}
/*** IDCompositionMatrixTransform3D methods ***/
static inline HRESULT IDCompositionMatrixTransform3D_SetMatrix(IDCompositionMatrixTransform3D* This,const D3DMATRIX *matrix) {
    return This->lpVtbl->SetMatrix(This,matrix);
}
static inline HRESULT IDCompositionMatrixTransform3D_SetMatrixElement(IDCompositionMatrixTransform3D* This,int row,int column,float value) {
    return This->lpVtbl->SetMatrixElement(This,row,column,value);
}
static inline HRESULT IDCompositionMatrixTransform3D_SetMatrixElementAnimation(IDCompositionMatrixTransform3D* This,int row,int column,IDCompositionAnimation *animation) {
    return This->lpVtbl->SetMatrixElementAnimation(This,row,column,animation);
}
#endif
#endif

#endif


#endif  /* __IDCompositionMatrixTransform3D_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IDCompositionTransform interface
 */

#ifndef __IDCompositionTransform_INTERFACE_DEFINED__
#define __IDCompositionTransform_INTERFACE_DEFINED__

DEFINE_GUID(IID_IDCompositionTransform, 0xfd55faa7, 0x37e0, 0x4c20, 0x95,0xd2, 0x9b,0xe4,0x5b,0xc3,0x3f,0x55);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("fd55faa7-37e0-4c20-95d2-9be45bc33f55")
IDCompositionTransform : public IDCompositionTransform3D
{
};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IDCompositionTransform, 0xfd55faa7, 0x37e0, 0x4c20, 0x95,0xd2, 0x9b,0xe4,0x5b,0xc3,0x3f,0x55)
#endif
#else
typedef struct IDCompositionTransformVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IDCompositionTransform *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IDCompositionTransform *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IDCompositionTransform *This);

    END_INTERFACE
} IDCompositionTransformVtbl;

interface IDCompositionTransform {
    CONST_VTBL IDCompositionTransformVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IDCompositionTransform_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDCompositionTransform_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDCompositionTransform_Release(This) (This)->lpVtbl->Release(This)
#else
/*** IUnknown methods ***/
static inline HRESULT IDCompositionTransform_QueryInterface(IDCompositionTransform* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IDCompositionTransform_AddRef(IDCompositionTransform* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IDCompositionTransform_Release(IDCompositionTransform* This) {
    return This->lpVtbl->Release(This);
}
#endif
#endif

#endif


#endif  /* __IDCompositionTransform_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IDCompositionScaleTransform interface
 */

#ifndef __IDCompositionScaleTransform_INTERFACE_DEFINED__
#define __IDCompositionScaleTransform_INTERFACE_DEFINED__

DEFINE_GUID(IID_IDCompositionScaleTransform, 0x71fde914, 0x40ef, 0x45ef, 0xbd,0x51, 0x68,0xb0,0x37,0xc3,0x39,0xf9);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("71fde914-40ef-45ef-bd51-68b037c339f9")
IDCompositionScaleTransform : public IDCompositionTransform
{
    virtual HRESULT STDMETHODCALLTYPE SetScaleX(
        float scale) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetScaleXAnimation(
        IDCompositionAnimation *animation) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetScaleY(
        float scale) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetScaleYAnimation(
        IDCompositionAnimation *animation) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetCenterX(
        float center) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetCenterXAnimation(
        IDCompositionAnimation *animation) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetCenterY(
        float center) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetCenterYAnimation(
        IDCompositionAnimation *animation) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IDCompositionScaleTransform, 0x71fde914, 0x40ef, 0x45ef, 0xbd,0x51, 0x68,0xb0,0x37,0xc3,0x39,0xf9)
#endif
#else
typedef struct IDCompositionScaleTransformVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IDCompositionScaleTransform *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IDCompositionScaleTransform *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IDCompositionScaleTransform *This);

    /*** IDCompositionScaleTransform methods ***/
    HRESULT (STDMETHODCALLTYPE *SetScaleX)(
        IDCompositionScaleTransform *This,
        float scale);

    HRESULT (STDMETHODCALLTYPE *SetScaleXAnimation)(
        IDCompositionScaleTransform *This,
        IDCompositionAnimation *animation);

    HRESULT (STDMETHODCALLTYPE *SetScaleY)(
        IDCompositionScaleTransform *This,
        float scale);

    HRESULT (STDMETHODCALLTYPE *SetScaleYAnimation)(
        IDCompositionScaleTransform *This,
        IDCompositionAnimation *animation);

    HRESULT (STDMETHODCALLTYPE *SetCenterX)(
        IDCompositionScaleTransform *This,
        float center);

    HRESULT (STDMETHODCALLTYPE *SetCenterXAnimation)(
        IDCompositionScaleTransform *This,
        IDCompositionAnimation *animation);

    HRESULT (STDMETHODCALLTYPE *SetCenterY)(
        IDCompositionScaleTransform *This,
        float center);

    HRESULT (STDMETHODCALLTYPE *SetCenterYAnimation)(
        IDCompositionScaleTransform *This,
        IDCompositionAnimation *animation);

    END_INTERFACE
} IDCompositionScaleTransformVtbl;

interface IDCompositionScaleTransform {
    CONST_VTBL IDCompositionScaleTransformVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IDCompositionScaleTransform_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDCompositionScaleTransform_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDCompositionScaleTransform_Release(This) (This)->lpVtbl->Release(This)
/*** IDCompositionScaleTransform methods ***/
#define IDCompositionScaleTransform_SetScaleX(This,scale) (This)->lpVtbl->SetScaleX(This,scale)
#define IDCompositionScaleTransform_SetScaleXAnimation(This,animation) (This)->lpVtbl->SetScaleXAnimation(This,animation)
#define IDCompositionScaleTransform_SetScaleY(This,scale) (This)->lpVtbl->SetScaleY(This,scale)
#define IDCompositionScaleTransform_SetScaleYAnimation(This,animation) (This)->lpVtbl->SetScaleYAnimation(This,animation)
#define IDCompositionScaleTransform_SetCenterX(This,center) (This)->lpVtbl->SetCenterX(This,center)
#define IDCompositionScaleTransform_SetCenterXAnimation(This,animation) (This)->lpVtbl->SetCenterXAnimation(This,animation)
#define IDCompositionScaleTransform_SetCenterY(This,center) (This)->lpVtbl->SetCenterY(This,center)
#define IDCompositionScaleTransform_SetCenterYAnimation(This,animation) (This)->lpVtbl->SetCenterYAnimation(This,animation)
#else
/*** IUnknown methods ***/
static inline HRESULT IDCompositionScaleTransform_QueryInterface(IDCompositionScaleTransform* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IDCompositionScaleTransform_AddRef(IDCompositionScaleTransform* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IDCompositionScaleTransform_Release(IDCompositionScaleTransformThis) {
    return This->lpVtbl->Release(This);
}
/*** IDCompositionScaleTransform methods ***/
static inline HRESULT IDCompositionScaleTransform_SetScaleX(IDCompositionScaleTransform* This,float scale) {
    return This->lpVtbl->SetScaleX(This,scale);
}
static inline HRESULT IDCompositionScaleTransform_SetScaleXAnimation(IDCompositionScaleTransform* This,IDCompositionAnimation *animation) {
    return This->lpVtbl->SetScaleXAnimation(This,animation);
}
static inline HRESULT IDCompositionScaleTransform_SetScaleY(IDCompositionScaleTransform* This,float scale) {
    return This->lpVtbl->SetScaleY(This,scale);
}
static inline HRESULT IDCompositionScaleTransform_SetScaleYAnimation(IDCompositionScaleTransform* This,IDCompositionAnimation *animation) {
    return This->lpVtbl->SetScaleYAnimation(This,animation);
}
static inline HRESULT IDCompositionScaleTransform_SetCenterX(IDCompositionScaleTransform* This,float center) {
    return This->lpVtbl->SetCenterX(This,center);
}
static inline HRESULT IDCompositionScaleTransform_SetCenterXAnimation(IDCompositionScaleTransform* This,IDCompositionAnimation *animation) {
    return This->lpVtbl->SetCenterXAnimation(This,animation);
}
static inline HRESULT IDCompositionScaleTransform_SetCenterY(IDCompositionScaleTransform* This,float center) {
    return This->lpVtbl->SetCenterY(This,center);
}
static inline HRESULT IDCompositionScaleTransform_SetCenterYAnimation(IDCompositionScaleTransform* This,IDCompositionAnimation *animation) {
    return This->lpVtbl->SetCenterYAnimation(This,animation);
}
#endif
#endif

#endif


#endif  /* __IDCompositionScaleTransform_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IDCompositionRotateTransform interface
 */

#ifndef __IDCompositionRotateTransform_INTERFACE_DEFINED__
#define __IDCompositionRotateTransform_INTERFACE_DEFINED__

DEFINE_GUID(IID_IDCompositionRotateTransform, 0x641ed83c, 0xae96, 0x46c5, 0x90,0xdc, 0x32,0x77,0x4c,0xc5,0xc6,0xd5);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("641ed83c-ae96-46c5-90dc-32774cc5c6d5")
IDCompositionRotateTransform : public IDCompositionTransform
{
    virtual HRESULT STDMETHODCALLTYPE SetAngle(
        float angle) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetAngleAnimation(
        IDCompositionAnimation *animation) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetCenterX(
        float center_x) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetCenterXAnimation(
        IDCompositionAnimation *animation) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetCenterY(
        float center_y) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetCenterYAnimation(
        IDCompositionAnimation *animation) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IDCompositionRotateTransform, 0x641ed83c, 0xae96, 0x46c5, 0x90,0xdc, 0x32,0x77,0x4c,0xc5,0xc6,0xd5)
#endif
#else
typedef struct IDCompositionRotateTransformVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IDCompositionRotateTransform *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IDCompositionRotateTransform *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IDCompositionRotateTransform *This);

    /*** IDCompositionRotateTransform methods ***/
    HRESULT (STDMETHODCALLTYPE *SetAngle)(
        IDCompositionRotateTransform *This,
        float angle);

    HRESULT (STDMETHODCALLTYPE *SetAngleAnimation)(
        IDCompositionRotateTransform *This,
        IDCompositionAnimation *animation);

    HRESULT (STDMETHODCALLTYPE *SetCenterX)(
        IDCompositionRotateTransform *This,
        float center_x);

    HRESULT (STDMETHODCALLTYPE *SetCenterXAnimation)(
        IDCompositionRotateTransform *This,
        IDCompositionAnimation *animation);

    HRESULT (STDMETHODCALLTYPE *SetCenterY)(
        IDCompositionRotateTransform *This,
        float center_y);

    HRESULT (STDMETHODCALLTYPE *SetCenterYAnimation)(
        IDCompositionRotateTransform *This,
        IDCompositionAnimation *animation);

    END_INTERFACE
} IDCompositionRotateTransformVtbl;

interface IDCompositionRotateTransform {
    CONST_VTBL IDCompositionRotateTransformVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IDCompositionRotateTransform_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDCompositionRotateTransform_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDCompositionRotateTransform_Release(This) (This)->lpVtbl->Release(This)
/*** IDCompositionRotateTransform methods ***/
#define IDCompositionRotateTransform_SetAngle(This,angle) (This)->lpVtbl->SetAngle(This,angle)
#define IDCompositionRotateTransform_SetAngleAnimation(This,animation) (This)->lpVtbl->SetAngleAnimation(This,animation)
#define IDCompositionRotateTransform_SetCenterX(This,center_x) (This)->lpVtbl->SetCenterX(This,center_x)
#define IDCompositionRotateTransform_SetCenterXAnimation(This,animation) (This)->lpVtbl->SetCenterXAnimation(This,animation)
#define IDCompositionRotateTransform_SetCenterY(This,center_y) (This)->lpVtbl->SetCenterY(This,center_y)
#define IDCompositionRotateTransform_SetCenterYAnimation(This,animation) (This)->lpVtbl->SetCenterYAnimation(This,animation)
#else
/*** IUnknown methods ***/
static inline HRESULT IDCompositionRotateTransform_QueryInterface(IDCompositionRotateTransform* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IDCompositionRotateTransform_AddRef(IDCompositionRotateTransform* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IDCompositionRotateTransform_Release(IDCompositionRotateTransform* This) {
    return This->lpVtbl->Release(This);
}
/*** IDCompositionRotateTransform methods ***/
static inline HRESULT IDCompositionRotateTransform_SetAngle(IDCompositionRotateTransform* This,float angle) {
    return This->lpVtbl->SetAngle(This,angle);
}
static inline HRESULT IDCompositionRotateTransform_SetAngleAnimation(IDCompositionRotateTransform* This,IDCompositionAnimation *animation) {
    return This->lpVtbl->SetAngleAnimation(This,animation);
}
static inline HRESULT IDCompositionRotateTransform_SetCenterX(IDCompositionRotateTransform* This,float center_x) {
    return This->lpVtbl->SetCenterX(This,center_x);
}
static inline HRESULT IDCompositionRotateTransform_SetCenterXAnimation(IDCompositionRotateTransform* This,IDCompositionAnimation *animation) {
    return This->lpVtbl->SetCenterXAnimation(This,animation);
}
static inline HRESULT IDCompositionRotateTransform_SetCenterY(IDCompositionRotateTransform* This,float center_y) {
    return This->lpVtbl->SetCenterY(This,center_y);
}
static inline HRESULT IDCompositionRotateTransform_SetCenterYAnimation(IDCompositionRotateTransform* This,IDCompositionAnimation *animation) {
    return This->lpVtbl->SetCenterYAnimation(This,animation);
}
#endif
#endif

#endif


#endif  /* __IDCompositionRotateTransform_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IDCompositionSkewTransform interface
 */

#ifndef __IDCompositionSkewTransform_INTERFACE_DEFINED__
#define __IDCompositionSkewTransform_INTERFACE_DEFINED__

DEFINE_GUID(IID_IDCompositionSkewTransform, 0xe57aa735, 0xdcdb, 0x4c72, 0x9c,0x61, 0x05,0x91,0xf5,0x88,0x89,0xee);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("e57aa735-dcdb-4c72-9c61-0591f58889ee")
IDCompositionSkewTransform : public IDCompositionTransform
{
    virtual HRESULT STDMETHODCALLTYPE SetAngleX(
        float angle) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetAngleXAnimation(
        IDCompositionAnimation *animation) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetAngleY(
        float angle) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetAngleYAnimation(
        IDCompositionAnimation *animation) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetCenterX(
        float center) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetCenterXAnimation(
        IDCompositionAnimation *animation) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetCenterY(
        float center) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetCenterYAnimation(
        IDCompositionAnimation *animation) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IDCompositionSkewTransform, 0xe57aa735, 0xdcdb, 0x4c72, 0x9c,0x61, 0x05,0x91,0xf5,0x88,0x89,0xee)
#endif
#else
typedef struct IDCompositionSkewTransformVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IDCompositionSkewTransform *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IDCompositionSkewTransform *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IDCompositionSkewTransform *This);

    /*** IDCompositionSkewTransform methods ***/
    HRESULT (STDMETHODCALLTYPE *SetAngleX)(
        IDCompositionSkewTransform *This,
        float angle);

    HRESULT (STDMETHODCALLTYPE *SetAngleXAnimation)(
        IDCompositionSkewTransform *This,
        IDCompositionAnimation *animation);

    HRESULT (STDMETHODCALLTYPE *SetAngleY)(
        IDCompositionSkewTransform *This,
        float angle);

    HRESULT (STDMETHODCALLTYPE *SetAngleYAnimation)(
        IDCompositionSkewTransform *This,
        IDCompositionAnimation *animation);

    HRESULT (STDMETHODCALLTYPE *SetCenterX)(
        IDCompositionSkewTransform *This,
        float center);

    HRESULT (STDMETHODCALLTYPE *SetCenterXAnimation)(
        IDCompositionSkewTransform *This,
        IDCompositionAnimation *animation);

    HRESULT (STDMETHODCALLTYPE *SetCenterY)(
        IDCompositionSkewTransform *This,
        float center);

    HRESULT (STDMETHODCALLTYPE *SetCenterYAnimation)(
        IDCompositionSkewTransform *This,
        IDCompositionAnimation *animation);

    END_INTERFACE
} IDCompositionSkewTransformVtbl;

interface IDCompositionSkewTransform {
    CONST_VTBL IDCompositionSkewTransformVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IDCompositionSkewTransform_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDCompositionSkewTransform_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDCompositionSkewTransform_Release(This) (This)->lpVtbl->Release(This)
/*** IDCompositionSkewTransform methods ***/
#define IDCompositionSkewTransform_SetAngleX(This,angle) (This)->lpVtbl->SetAngleX(This,angle)
#define IDCompositionSkewTransform_SetAngleXAnimation(This,animation) (This)->lpVtbl->SetAngleXAnimation(This,animation)
#define IDCompositionSkewTransform_SetAngleY(This,angle) (This)->lpVtbl->SetAngleY(This,angle)
#define IDCompositionSkewTransform_SetAngleYAnimation(This,animation) (This)->lpVtbl->SetAngleYAnimation(This,animation)
#define IDCompositionSkewTransform_SetCenterX(This,center) (This)->lpVtbl->SetCenterX(This,center)
#define IDCompositionSkewTransform_SetCenterXAnimation(This,animation) (This)->lpVtbl->SetCenterXAnimation(This,animation)
#define IDCompositionSkewTransform_SetCenterY(This,center) (This)->lpVtbl->SetCenterY(This,center)
#define IDCompositionSkewTransform_SetCenterYAnimation(This,animation) (This)->lpVtbl->SetCenterYAnimation(This,animation)
#else
/*** IUnknown methods ***/
static inline HRESULT IDCompositionSkewTransform_QueryInterface(IDCompositionSkewTransform* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IDCompositionSkewTransform_AddRef(IDCompositionSkewTransform* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IDCompositionSkewTransform_Release(IDCompositionSkewTransform* This) {
    return This->lpVtbl->Release(This);
}
/*** IDCompositionSkewTransform methods ***/
static inline HRESULT IDCompositionSkewTransform_SetAngleX(IDCompositionSkewTransform* This,float angle) {
    return This->lpVtbl->SetAngleX(This,angle);
}
static inline HRESULT IDCompositionSkewTransform_SetAngleXAnimation(IDCompositionSkewTransform* This,IDCompositionAnimation *animation) {
    return This->lpVtbl->SetAngleXAnimation(This,animation);
}
static inline HRESULT IDCompositionSkewTransform_SetAngleY(IDCompositionSkewTransform* This,float angle) {
    return This->lpVtbl->SetAngleY(This,angle);
}
static inline HRESULT IDCompositionSkewTransform_SetAngleYAnimation(IDCompositionSkewTransform* This,IDCompositionAnimation *animation) {
    return This->lpVtbl->SetAngleYAnimation(This,animation);
}
static inline HRESULT IDCompositionSkewTransform_SetCenterX(IDCompositionSkewTransform* This,float center) {
    return This->lpVtbl->SetCenterX(This,center);
}
static inline HRESULT IDCompositionSkewTransform_SetCenterXAnimation(IDCompositionSkewTransform* This,IDCompositionAnimation *animation) {
    return This->lpVtbl->SetCenterXAnimation(This,animation);
}
static inline HRESULT IDCompositionSkewTransform_SetCenterY(IDCompositionSkewTransform* This,float center) {
    return This->lpVtbl->SetCenterY(This,center);
}
static inline HRESULT IDCompositionSkewTransform_SetCenterYAnimation(IDCompositionSkewTransform* This,IDCompositionAnimation *animation) {
    return This->lpVtbl->SetCenterYAnimation(This,animation);
}
#endif
#endif

#endif


#endif  /* __IDCompositionSkewTransform_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IDCompositionMatrixTransform interface
 */

#ifndef __IDCompositionMatrixTransform_INTERFACE_DEFINED__
#define __IDCompositionMatrixTransform_INTERFACE_DEFINED__

DEFINE_GUID(IID_IDCompositionMatrixTransform, 0x16cdff07, 0xc503, 0x419c, 0x83,0xf2, 0x09,0x65,0xc7,0xaf,0x1f,0xa6);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("16cdff07-c503-419c-83f2-0965c7af1fa6")
IDCompositionMatrixTransform : public IDCompositionTransform
{
    virtual HRESULT STDMETHODCALLTYPE SetMatrix(
        const D2D_MATRIX_3X2_F *matrix) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetMatrixElement(
        int row,
        int column,
        float value) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetMatrixElementAnimation(
        int row,
        int column,
        IDCompositionAnimation *animation) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IDCompositionMatrixTransform, 0x16cdff07, 0xc503, 0x419c, 0x83,0xf2, 0x09,0x65,0xc7,0xaf,0x1f,0xa6)
#endif
#else
typedef struct IDCompositionMatrixTransformVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IDCompositionMatrixTransform *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IDCompositionMatrixTransform *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IDCompositionMatrixTransform *This);

    /*** IDCompositionMatrixTransform methods ***/
    HRESULT (STDMETHODCALLTYPE *SetMatrix)(
        IDCompositionMatrixTransform *This,
        const D2D_MATRIX_3X2_F *matrix);

    HRESULT (STDMETHODCALLTYPE *SetMatrixElement)(
        IDCompositionMatrixTransform *This,
        int row,
        int column,
        float value);

    HRESULT (STDMETHODCALLTYPE *SetMatrixElementAnimation)(
        IDCompositionMatrixTransform *This,
        int row,
        int column,
        IDCompositionAnimation *animation);

    END_INTERFACE
} IDCompositionMatrixTransformVtbl;

interface IDCompositionMatrixTransform {
    CONST_VTBL IDCompositionMatrixTransformVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IDCompositionMatrixTransform_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDCompositionMatrixTransform_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDCompositionMatrixTransform_Release(This) (This)->lpVtbl->Release(This)
/*** IDCompositionMatrixTransform methods ***/
#define IDCompositionMatrixTransform_SetMatrix(This,matrix) (This)->lpVtbl->SetMatrix(This,matrix)
#define IDCompositionMatrixTransform_SetMatrixElement(This,row,column,value) (This)->lpVtbl->SetMatrixElement(This,row,column,value)
#define IDCompositionMatrixTransform_SetMatrixElementAnimation(This,row,column,animation) (This)->lpVtbl->SetMatrixElementAnimation(This,row,column,animation)
#else
/*** IUnknown methods ***/
static inline HRESULT IDCompositionMatrixTransform_QueryInterface(IDCompositionMatrixTransform* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IDCompositionMatrixTransform_AddRef(IDCompositionMatrixTransform* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IDCompositionMatrixTransform_Release(IDCompositionMatrixTransform* This) {
    return This->lpVtbl->Release(This);
}
/*** IDCompositionMatrixTransform methods ***/
static inline HRESULT IDCompositionMatrixTransform_SetMatrix(IDCompositionMatrixTransform* This,const D2D_MATRIX_3X2_F *matrix) {
    return This->lpVtbl->SetMatrix(This,matrix);
}
static inline HRESULT IDCompositionMatrixTransform_SetMatrixElement(IDCompositionMatrixTransform* This,int row,int column,float value) {
    return This->lpVtbl->SetMatrixElement(This,row,column,value);
}
static inline HRESULT IDCompositionMatrixTransform_SetMatrixElementAnimation(IDCompositionMatrixTransform* This,int row,int column,IDCompositionAnimation *animation) {
    return This->lpVtbl->SetMatrixElementAnimation(This,row,column,animation);
}
#endif
#endif

#endif


#endif  /* __IDCompositionMatrixTransform_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IDCompositionTranslateTransform interface
 */

#ifndef __IDCompositionTranslateTransform_INTERFACE_DEFINED__
#define __IDCompositionTranslateTransform_INTERFACE_DEFINED__

DEFINE_GUID(IID_IDCompositionTranslateTransform, 0x06791122, 0xc6f0, 0x417d, 0x83,0x23, 0x26,0x9e,0x98,0x7f,0x59,0x54);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("06791122-c6f0-417d-8323-269e987f5954")
IDCompositionTranslateTransform : public IDCompositionTransform
{
    virtual HRESULT STDMETHODCALLTYPE SetOffsetX(
        float offset) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetOffsetXAnimation(
        IDCompositionAnimation *animation) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetOffsetY(
        float offset) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetOffsetYAnimation(
        IDCompositionAnimation *animation) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IDCompositionTranslateTransform, 0x06791122, 0xc6f0, 0x417d, 0x83,0x23, 0x26,0x9e,0x98,0x7f,0x59,0x54)
#endif
#else
typedef struct IDCompositionTranslateTransformVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IDCompositionTranslateTransform *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IDCompositionTranslateTransform *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IDCompositionTranslateTransform *This);

    /*** IDCompositionTranslateTransform methods ***/
    HRESULT (STDMETHODCALLTYPE *SetOffsetX)(
        IDCompositionTranslateTransform *This,
        float offset);

    HRESULT (STDMETHODCALLTYPE *SetOffsetXAnimation)(
        IDCompositionTranslateTransform *This,
        IDCompositionAnimation *animation);

    HRESULT (STDMETHODCALLTYPE *SetOffsetY)(
        IDCompositionTranslateTransform *This,
        float offset);

    HRESULT (STDMETHODCALLTYPE *SetOffsetYAnimation)(
        IDCompositionTranslateTransform *This,
        IDCompositionAnimation *animation);

    END_INTERFACE
} IDCompositionTranslateTransformVtbl;

interface IDCompositionTranslateTransform {
    CONST_VTBL IDCompositionTranslateTransformVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IDCompositionTranslateTransform_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDCompositionTranslateTransform_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDCompositionTranslateTransform_Release(This) (This)->lpVtbl->Release(This)
/*** IDCompositionTranslateTransform methods ***/
#define IDCompositionTranslateTransform_SetOffsetX(This,offset) (This)->lpVtbl->SetOffsetX(This,offset)
#define IDCompositionTranslateTransform_SetOffsetXAnimation(This,animation) (This)->lpVtbl->SetOffsetXAnimation(This,animation)
#define IDCompositionTranslateTransform_SetOffsetY(This,offset) (This)->lpVtbl->SetOffsetY(This,offset)
#define IDCompositionTranslateTransform_SetOffsetYAnimation(This,animation) (This)->lpVtbl->SetOffsetYAnimation(This,animation)
#else
/*** IUnknown methods ***/
static inline HRESULT IDCompositionTranslateTransform_QueryInterface(IDCompositionTranslateTransform* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IDCompositionTranslateTransform_AddRef(IDCompositionTranslateTransform* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IDCompositionTranslateTransform_Release(IDCompositionTranslateTransform* This) {
    return This->lpVtbl->Release(This);
}
/*** IDCompositionTranslateTransform methods ***/
static inline HRESULT IDCompositionTranslateTransform_SetOffsetX(IDCompositionTranslateTransform* This,float offset) {
    return This->lpVtbl->SetOffsetX(This,offset);
}
static inline HRESULT IDCompositionTranslateTransform_SetOffsetXAnimation(IDCompositionTranslateTransform* This,IDCompositionAnimation *animation) {
    return This->lpVtbl->SetOffsetXAnimation(This,animation);
}
static inline HRESULT IDCompositionTranslateTransform_SetOffsetY(IDCompositionTranslateTransform* This,float offset) {
    return This->lpVtbl->SetOffsetY(This,offset);
}
static inline HRESULT IDCompositionTranslateTransform_SetOffsetYAnimation(IDCompositionTranslateTransform* This,IDCompositionAnimation *animation) {
    return This->lpVtbl->SetOffsetYAnimation(This,animation);
}
#endif
#endif

#endif


#endif  /* __IDCompositionTranslateTransform_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IDCompositionVisual interface
 */

#ifndef __IDCompositionVisual_INTERFACE_DEFINED__
#define __IDCompositionVisual_INTERFACE_DEFINED__

DEFINE_GUID(IID_IDCompositionVisual, 0x4d93059d, 0x097b, 0x4651, 0x9a,0x60, 0xf0,0xf2,0x51,0x16,0xe2,0xf3);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("4d93059d-097b-4651-9a60-f0f25116e2f3")
IDCompositionVisual : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE SetOffsetX(
        float offset_x) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetOffsetXAnimation(
        IDCompositionAnimation *animation) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetOffsetY(
        float offset_y) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetOffsetYAnimation(
        IDCompositionAnimation *animation) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetTransform(
        const D2D_MATRIX_3X2_F *matrix) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetTransformObject(
        IDCompositionTransform *transform) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetTransformParent(
        IDCompositionVisual *visual) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetEffect(
        IDCompositionEffect *effect) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetBitmapInterpolationMode(
        enum DCOMPOSITION_BITMAP_INTERPOLATION_MODE interpolation_mode) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetBorderMode(
        enum DCOMPOSITION_BORDER_MODE border_mode) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetClip(
        const D2D_RECT_F *rect) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetClipObject(
        IDCompositionClip *clip) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetContent(
        IUnknown *content) = 0;

    virtual HRESULT STDMETHODCALLTYPE AddVisual(
        IDCompositionVisual *visual,
        BOOL insert_above,
        IDCompositionVisual *reference_visual) = 0;

    virtual HRESULT STDMETHODCALLTYPE RemoveVisual(
        IDCompositionVisual *visual) = 0;

    virtual HRESULT STDMETHODCALLTYPE RemoveAllVisuals(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetCompositeMode(
        enum DCOMPOSITION_COMPOSITE_MODE composite_mode) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IDCompositionVisual, 0x4d93059d, 0x097b, 0x4651, 0x9a,0x60, 0xf0,0xf2,0x51,0x16,0xe2,0xf3)
#endif
#else
typedef struct IDCompositionVisualVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IDCompositionVisual *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IDCompositionVisual *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IDCompositionVisual *This);

    /*** IDCompositionVisual methods ***/
    HRESULT (STDMETHODCALLTYPE *SetOffsetX)(
        IDCompositionVisual *This,
        float offset_x);

    HRESULT (STDMETHODCALLTYPE *SetOffsetXAnimation)(
        IDCompositionVisual *This,
        IDCompositionAnimation *animation);

    HRESULT (STDMETHODCALLTYPE *SetOffsetY)(
        IDCompositionVisual *This,
        float offset_y);

    HRESULT (STDMETHODCALLTYPE *SetOffsetYAnimation)(
        IDCompositionVisual *This,
        IDCompositionAnimation *animation);

    HRESULT (STDMETHODCALLTYPE *SetTransform)(
        IDCompositionVisual *This,
        const D2D_MATRIX_3X2_F *matrix);

    HRESULT (STDMETHODCALLTYPE *SetTransformObject)(
        IDCompositionVisual *This,
        IDCompositionTransform *transform);

    HRESULT (STDMETHODCALLTYPE *SetTransformParent)(
        IDCompositionVisual *This,
        IDCompositionVisual *visual);

    HRESULT (STDMETHODCALLTYPE *SetEffect)(
        IDCompositionVisual *This,
        IDCompositionEffect *effect);

    HRESULT (STDMETHODCALLTYPE *SetBitmapInterpolationMode)(
        IDCompositionVisual *This,
        enum DCOMPOSITION_BITMAP_INTERPOLATION_MODE interpolation_mode);

    HRESULT (STDMETHODCALLTYPE *SetBorderMode)(
        IDCompositionVisual *This,
        enum DCOMPOSITION_BORDER_MODE border_mode);

    HRESULT (STDMETHODCALLTYPE *SetClip)(
        IDCompositionVisual *This,
        const D2D_RECT_F *rect);

    HRESULT (STDMETHODCALLTYPE *SetClipObject)(
        IDCompositionVisual *This,
        IDCompositionClip *clip);

    HRESULT (STDMETHODCALLTYPE *SetContent)(
        IDCompositionVisual *This,
        IUnknown *content);

    HRESULT (STDMETHODCALLTYPE *AddVisual)(
        IDCompositionVisual *This,
        IDCompositionVisual *visual,
        BOOL insert_above,
        IDCompositionVisual *reference_visual);

    HRESULT (STDMETHODCALLTYPE *RemoveVisual)(
        IDCompositionVisual *This,
        IDCompositionVisual *visual);

    HRESULT (STDMETHODCALLTYPE *RemoveAllVisuals)(
        IDCompositionVisual *This);

    HRESULT (STDMETHODCALLTYPE *SetCompositeMode)(
        IDCompositionVisual *This,
        enum DCOMPOSITION_COMPOSITE_MODE composite_mode);

    END_INTERFACE
} IDCompositionVisualVtbl;

interface IDCompositionVisual {
    CONST_VTBL IDCompositionVisualVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IDCompositionVisual_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDCompositionVisual_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDCompositionVisual_Release(This) (This)->lpVtbl->Release(This)
/*** IDCompositionVisual methods ***/
#define IDCompositionVisual_SetOffsetX(This,offset_x) (This)->lpVtbl->SetOffsetX(This,offset_x)
#define IDCompositionVisual_SetOffsetXAnimation(This,animation) (This)->lpVtbl->SetOffsetXAnimation(This,animation)
#define IDCompositionVisual_SetOffsetY(This,offset_y) (This)->lpVtbl->SetOffsetY(This,offset_y)
#define IDCompositionVisual_SetOffsetYAnimation(This,animation) (This)->lpVtbl->SetOffsetYAnimation(This,animation)
#define IDCompositionVisual_SetTransform(This,matrix) (This)->lpVtbl->SetTransform(This,matrix)
#define IDCompositionVisual_SetTransformObject(This,transform) (This)->lpVtbl->SetTransformObject(This,transform)
#define IDCompositionVisual_SetTransformParent(This,visual) (This)->lpVtbl->SetTransformParent(This,visual)
#define IDCompositionVisual_SetEffect(This,effect) (This)->lpVtbl->SetEffect(This,effect)
#define IDCompositionVisual_SetBitmapInterpolationMode(This,interpolation_mode) (This)->lpVtbl->SetBitmapInterpolationMode(This,interpolation_mode)
#define IDCompositionVisual_SetBorderMode(This,border_mode) (This)->lpVtbl->SetBorderMode(This,border_mode)
#define IDCompositionVisual_SetClip(This,rect) (This)->lpVtbl->SetClip(This,rect)
#define IDCompositionVisual_SetClipObject(This,clip) (This)->lpVtbl->SetClipObject(This,clip)
#define IDCompositionVisual_SetContent(This,content) (This)->lpVtbl->SetContent(This,content)
#define IDCompositionVisual_AddVisual(This,visual,insert_above,reference_visual) (This)->lpVtbl->AddVisual(This,visual,insert_above,reference_visual)
#define IDCompositionVisual_RemoveVisual(This,visual) (This)->lpVtbl->RemoveVisual(This,visual)
#define IDCompositionVisual_RemoveAllVisuals(This) (This)->lpVtbl->RemoveAllVisuals(This)
#define IDCompositionVisual_SetCompositeMode(This,composite_mode) (This)->lpVtbl->SetCompositeMode(This,composite_mode)
#else
/*** IUnknown methods ***/
static inline HRESULT IDCompositionVisual_QueryInterface(IDCompositionVisual* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IDCompositionVisual_AddRef(IDCompositionVisual* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IDCompositionVisual_Release(IDCompositionVisual* This) {
    return This->lpVtbl->Release(This);
}
/*** IDCompositionVisual methods ***/
static inline HRESULT IDCompositionVisual_SetOffsetX(IDCompositionVisual* This,float offset_x) {
    return This->lpVtbl->SetOffsetX(This,offset_x);
}
static inline HRESULT IDCompositionVisual_SetOffsetXAnimation(IDCompositionVisual* This,IDCompositionAnimation *animation) {
    return This->lpVtbl->SetOffsetXAnimation(This,animation);
}
static inline HRESULT IDCompositionVisual_SetOffsetY(IDCompositionVisual* This,float offset_y) {
    return This->lpVtbl->SetOffsetY(This,offset_y);
}
static inline HRESULT IDCompositionVisual_SetOffsetYAnimation(IDCompositionVisual* This,IDCompositionAnimation *animation) {
    return This->lpVtbl->SetOffsetYAnimation(This,animation);
}
static inline HRESULT IDCompositionVisual_SetTransform(IDCompositionVisual* This,const D2D_MATRIX_3X2_F *matrix) {
    return This->lpVtbl->SetTransform(This,matrix);
}
static inline HRESULT IDCompositionVisual_SetTransformObject(IDCompositionVisual* This,IDCompositionTransform *transform) {
    return This->lpVtbl->SetTransformObject(This,transform);
}
static inline HRESULT IDCompositionVisual_SetTransformParent(IDCompositionVisual* This,IDCompositionVisual *visual) {
    return This->lpVtbl->SetTransformParent(This,visual);
}
static inline HRESULT IDCompositionVisual_SetEffect(IDCompositionVisual* This,IDCompositionEffect *effect) {
    return This->lpVtbl->SetEffect(This,effect);
}
static inline HRESULT IDCompositionVisual_SetBitmapInterpolationMode(IDCompositionVisual* This,enum DCOMPOSITION_BITMAP_INTERPOLATION_MODE interpolation_mode) {
    return This->lpVtbl->SetBitmapInterpolationMode(This,interpolation_mode);
}
static inline HRESULT IDCompositionVisual_SetBorderMode(IDCompositionVisual* This,enum DCOMPOSITION_BORDER_MODE border_mode) {
    return This->lpVtbl->SetBorderMode(This,border_mode);
}
static inline HRESULT IDCompositionVisual_SetClip(IDCompositionVisual* This,const D2D_RECT_F *rect) {
    return This->lpVtbl->SetClip(This,rect);
}
static inline HRESULT IDCompositionVisual_SetClipObject(IDCompositionVisual* This,IDCompositionClip *clip) {
    return This->lpVtbl->SetClipObject(This,clip);
}
static inline HRESULT IDCompositionVisual_SetContent(IDCompositionVisual* This,IUnknown *content) {
    return This->lpVtbl->SetContent(This,content);
}
static inline HRESULT IDCompositionVisual_AddVisual(IDCompositionVisual* This,IDCompositionVisual *visual,BOOL insert_above,IDCompositionVisual *reference_visual) {
    return This->lpVtbl->AddVisual(This,visual,insert_above,reference_visual);
}
static inline HRESULT IDCompositionVisual_RemoveVisual(IDCompositionVisual* This,IDCompositionVisual *visual) {
    return This->lpVtbl->RemoveVisual(This,visual);
}
static inline HRESULT IDCompositionVisual_RemoveAllVisuals(IDCompositionVisual* This) {
    return This->lpVtbl->RemoveAllVisuals(This);
}
static inline HRESULT IDCompositionVisual_SetCompositeMode(IDCompositionVisual* This,enum DCOMPOSITION_COMPOSITE_MODE composite_mode) {
    return This->lpVtbl->SetCompositeMode(This,composite_mode);
}
#endif
#endif

#endif


#endif  /* __IDCompositionVisual_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IDCompositionVisual2 interface
 */

#ifndef __IDCompositionVisual2_INTERFACE_DEFINED__
#define __IDCompositionVisual2_INTERFACE_DEFINED__

DEFINE_GUID(IID_IDCompositionVisual2, 0xe8de1639, 0x4331, 0x4b26, 0xbc,0x5f, 0x6a,0x32,0x1d,0x34,0x7a,0x85);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("e8de1639-4331-4b26-bc5f-6a321d347a85")
IDCompositionVisual2 : public IDCompositionVisual
{
    virtual HRESULT STDMETHODCALLTYPE SetOpacityMode(
        enum DCOMPOSITION_OPACITY_MODE opacity_mode) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetBackFaceVisibility(
        enum DCOMPOSITION_BACKFACE_VISIBILITY visibility) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IDCompositionVisual2, 0xe8de1639, 0x4331, 0x4b26, 0xbc,0x5f, 0x6a,0x32,0x1d,0x34,0x7a,0x85)
#endif
#else
typedef struct IDCompositionVisual2Vtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IDCompositionVisual2 *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IDCompositionVisual2 *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IDCompositionVisual2 *This);

    /*** IDCompositionVisual methods ***/
    HRESULT (STDMETHODCALLTYPE *SetOffsetX)(
        IDCompositionVisual2 *This,
        float offset_x);

    HRESULT (STDMETHODCALLTYPE *SetOffsetXAnimation)(
        IDCompositionVisual2 *This,
        IDCompositionAnimation *animation);

    HRESULT (STDMETHODCALLTYPE *SetOffsetY)(
        IDCompositionVisual2 *This,
        float offset_y);

    HRESULT (STDMETHODCALLTYPE *SetOffsetYAnimation)(
        IDCompositionVisual2 *This,
        IDCompositionAnimation *animation);

    HRESULT (STDMETHODCALLTYPE *SetTransform)(
        IDCompositionVisual2 *This,
        const D2D_MATRIX_3X2_F *matrix);

    HRESULT (STDMETHODCALLTYPE *SetTransformObject)(
        IDCompositionVisual2 *This,
        IDCompositionTransform *transform);

    HRESULT (STDMETHODCALLTYPE *SetTransformParent)(
        IDCompositionVisual2 *This,
        IDCompositionVisual *visual);

    HRESULT (STDMETHODCALLTYPE *SetEffect)(
        IDCompositionVisual2 *This,
        IDCompositionEffect *effect);

    HRESULT (STDMETHODCALLTYPE *SetBitmapInterpolationMode)(
        IDCompositionVisual2 *This,
        enum DCOMPOSITION_BITMAP_INTERPOLATION_MODE interpolation_mode);

    HRESULT (STDMETHODCALLTYPE *SetBorderMode)(
        IDCompositionVisual2 *This,
        enum DCOMPOSITION_BORDER_MODE border_mode);

    HRESULT (STDMETHODCALLTYPE *SetClip)(
        IDCompositionVisual2 *This,
        const D2D_RECT_F *rect);

    HRESULT (STDMETHODCALLTYPE *SetClipObject)(
        IDCompositionVisual2 *This,
        IDCompositionClip *clip);

    HRESULT (STDMETHODCALLTYPE *SetContent)(
        IDCompositionVisual2 *This,
        IUnknown *content);

    HRESULT (STDMETHODCALLTYPE *AddVisual)(
        IDCompositionVisual2 *This,
        IDCompositionVisual *visual,
        BOOL insert_above,
        IDCompositionVisual *reference_visual);

    HRESULT (STDMETHODCALLTYPE *RemoveVisual)(
        IDCompositionVisual2 *This,
        IDCompositionVisual *visual);

    HRESULT (STDMETHODCALLTYPE *RemoveAllVisuals)(
        IDCompositionVisual2 *This);

    HRESULT (STDMETHODCALLTYPE *SetCompositeMode)(
        IDCompositionVisual2 *This,
        enum DCOMPOSITION_COMPOSITE_MODE composite_mode);

    /*** IDCompositionVisual2 methods ***/
    HRESULT (STDMETHODCALLTYPE *SetOpacityMode)(
        IDCompositionVisual2 *This,
        enum DCOMPOSITION_OPACITY_MODE opacity_mode);

    HRESULT (STDMETHODCALLTYPE *SetBackFaceVisibility)(
        IDCompositionVisual2 *This,
        enum DCOMPOSITION_BACKFACE_VISIBILITY visibility);

    END_INTERFACE
} IDCompositionVisual2Vtbl;

interface IDCompositionVisual2 {
    CONST_VTBL IDCompositionVisual2Vtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IDCompositionVisual2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDCompositionVisual2_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDCompositionVisual2_Release(This) (This)->lpVtbl->Release(This)
/*** IDCompositionVisual methods ***/
#define IDCompositionVisual2_SetOffsetX(This,offset_x) (This)->lpVtbl->SetOffsetX(This,offset_x)
#define IDCompositionVisual2_SetOffsetXAnimation(This,animation) (This)->lpVtbl->SetOffsetXAnimation(This,animation)
#define IDCompositionVisual2_SetOffsetY(This,offset_y) (This)->lpVtbl->SetOffsetY(This,offset_y)
#define IDCompositionVisual2_SetOffsetYAnimation(This,animation) (This)->lpVtbl->SetOffsetYAnimation(This,animation)
#define IDCompositionVisual2_SetTransform(This,matrix) (This)->lpVtbl->SetTransform(This,matrix)
#define IDCompositionVisual2_SetTransformObject(This,transform) (This)->lpVtbl->SetTransformObject(This,transform)
#define IDCompositionVisual2_SetTransformParent(This,visual) (This)->lpVtbl->SetTransformParent(This,visual)
#define IDCompositionVisual2_SetEffect(This,effect) (This)->lpVtbl->SetEffect(This,effect)
#define IDCompositionVisual2_SetBitmapInterpolationMode(This,interpolation_mode) (This)->lpVtbl->SetBitmapInterpolationMode(This,interpolation_mode)
#define IDCompositionVisual2_SetBorderMode(This,border_mode) (This)->lpVtbl->SetBorderMode(This,border_mode)
#define IDCompositionVisual2_SetClip(This,rect) (This)->lpVtbl->SetClip(This,rect)
#define IDCompositionVisual2_SetClipObject(This,clip) (This)->lpVtbl->SetClipObject(This,clip)
#define IDCompositionVisual2_SetContent(This,content) (This)->lpVtbl->SetContent(This,content)
#define IDCompositionVisual2_AddVisual(This,visual,insert_above,reference_visual) (This)->lpVtbl->AddVisual(This,visual,insert_above,reference_visual)
#define IDCompositionVisual2_RemoveVisual(This,visual) (This)->lpVtbl->RemoveVisual(This,visual)
#define IDCompositionVisual2_RemoveAllVisuals(This) (This)->lpVtbl->RemoveAllVisuals(This)
#define IDCompositionVisual2_SetCompositeMode(This,composite_mode) (This)->lpVtbl->SetCompositeMode(This,composite_mode)
/*** IDCompositionVisual2 methods ***/
#define IDCompositionVisual2_SetOpacityMode(This,opacity_mode) (This)->lpVtbl->SetOpacityMode(This,opacity_mode)
#define IDCompositionVisual2_SetBackFaceVisibility(This,visibility) (This)->lpVtbl->SetBackFaceVisibility(This,visibility)
#else
/*** IUnknown methods ***/
static inline HRESULT IDCompositionVisual2_QueryInterface(IDCompositionVisual2* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IDCompositionVisual2_AddRef(IDCompositionVisual2* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IDCompositionVisual2_Release(IDCompositionVisual2* This) {
    return This->lpVtbl->Release(This);
}
/*** IDCompositionVisual methods ***/
static inline HRESULT IDCompositionVisual2_SetOffsetX(IDCompositionVisual2* This,float offset_x) {
    return This->lpVtbl->SetOffsetX(This,offset_x);
}
static inline HRESULT IDCompositionVisual2_SetOffsetXAnimation(IDCompositionVisual2This,IDCompositionAnimation *animation) {
    return This->lpVtbl->SetOffsetXAnimation(This,animation);
}
static inline HRESULT IDCompositionVisual2_SetOffsetY(IDCompositionVisual2* This,float offset_y) {
    return This->lpVtbl->SetOffsetY(This,offset_y);
}
static inline HRESULT IDCompositionVisual2_SetOffsetYAnimation(IDCompositionVisual2This,IDCompositionAnimation *animation) {
    return This->lpVtbl->SetOffsetYAnimation(This,animation);
}
static inline HRESULT IDCompositionVisual2_SetTransform(IDCompositionVisual2* This,const D2D_MATRIX_3X2_F *matrix) {
    return This->lpVtbl->SetTransform(This,matrix);
}
static inline HRESULT IDCompositionVisual2_SetTransformObject(IDCompositionVisual2* This,IDCompositionTransform *transform) {
    return This->lpVtbl->SetTransformObject(This,transform);
}
static inline HRESULT IDCompositionVisual2_SetTransformParent(IDCompositionVisual2* This,IDCompositionVisual *visual) {
    return This->lpVtbl->SetTransformParent(This,visual);
}
static inline HRESULT IDCompositionVisual2_SetEffect(IDCompositionVisual2* This,IDCompositionEffect *effect) {
    return This->lpVtbl->SetEffect(This,effect);
}
static inline HRESULT IDCompositionVisual2_SetBitmapInterpolationMode(IDCompositionVisual2* This,enum DCOMPOSITION_BITMAP_INTERPOLATION_MODE interpolation_mode) {
    return This->lpVtbl->SetBitmapInterpolationMode(This,interpolation_mode);
}
static inline HRESULT IDCompositionVisual2_SetBorderMode(IDCompositionVisual2* This,enum DCOMPOSITION_BORDER_MODE border_mode) {
    return This->lpVtbl->SetBorderMode(This,border_mode);
}
static inline HRESULT IDCompositionVisual2_SetClip(IDCompositionVisual2* This,const D2D_RECT_F *rect) {
    return This->lpVtbl->SetClip(This,rect);
}
static inline HRESULT IDCompositionVisual2_SetClipObject(IDCompositionVisual2* This,IDCompositionClip *clip) {
    return This->lpVtbl->SetClipObject(This,clip);
}
static inline HRESULT IDCompositionVisual2_SetContent(IDCompositionVisual2* This,IUnknown *content) {
    return This->lpVtbl->SetContent(This,content);
}
static inline HRESULT IDCompositionVisual2_AddVisual(IDCompositionVisual2* This,IDCompositionVisual *visual,BOOL insert_above,IDCompositionVisual *reference_visual) {
    return This->lpVtbl->AddVisual(This,visual,insert_above,reference_visual);
}
static inline HRESULT IDCompositionVisual2_RemoveVisual(IDCompositionVisual2* This,IDCompositionVisual *visual) {
    return This->lpVtbl->RemoveVisual(This,visual);
}
static inline HRESULT IDCompositionVisual2_RemoveAllVisuals(IDCompositionVisual2* This) {
    return This->lpVtbl->RemoveAllVisuals(This);
}
static inline HRESULT IDCompositionVisual2_SetCompositeMode(IDCompositionVisual2* This,enum DCOMPOSITION_COMPOSITE_MODE composite_mode) {
    return This->lpVtbl->SetCompositeMode(This,composite_mode);
}
/*** IDCompositionVisual2 methods ***/
static inline HRESULT IDCompositionVisual2_SetOpacityMode(IDCompositionVisual2* This,enum DCOMPOSITION_OPACITY_MODE opacity_mode) {
    return This->lpVtbl->SetOpacityMode(This,opacity_mode);
}
static inline HRESULT IDCompositionVisual2_SetBackFaceVisibility(IDCompositionVisual2* This,enum DCOMPOSITION_BACKFACE_VISIBILITY visibility) {
    return This->lpVtbl->SetBackFaceVisibility(This,visibility);
}
#endif
#endif

#endif


#endif  /* __IDCompositionVisual2_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IDCompositionTarget interface
 */

#ifndef __IDCompositionTarget_INTERFACE_DEFINED__
#define __IDCompositionTarget_INTERFACE_DEFINED__

DEFINE_GUID(IID_IDCompositionTarget, 0xeacdd04c, 0x117e, 0x4e17, 0x88,0xf4, 0xd1,0xb1,0x2b,0x0e,0x3d,0x89);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("eacdd04c-117e-4e17-88f4-d1b12b0e3d89")
IDCompositionTarget : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE SetRoot(
        IDCompositionVisual *visual) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IDCompositionTarget, 0xeacdd04c, 0x117e, 0x4e17, 0x88,0xf4, 0xd1,0xb1,0x2b,0x0e,0x3d,0x89)
#endif
#else
typedef struct IDCompositionTargetVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IDCompositionTarget *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IDCompositionTarget *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IDCompositionTarget *This);

    /*** IDCompositionTarget methods ***/
    HRESULT (STDMETHODCALLTYPE *SetRoot)(
        IDCompositionTarget *This,
        IDCompositionVisual *visual);

    END_INTERFACE
} IDCompositionTargetVtbl;

interface IDCompositionTarget {
    CONST_VTBL IDCompositionTargetVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IDCompositionTarget_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDCompositionTarget_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDCompositionTarget_Release(This) (This)->lpVtbl->Release(This)
/*** IDCompositionTarget methods ***/
#define IDCompositionTarget_SetRoot(This,visual) (This)->lpVtbl->SetRoot(This,visual)
#else
/*** IUnknown methods ***/
static inline HRESULT IDCompositionTarget_QueryInterface(IDCompositionTarget* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IDCompositionTarget_AddRef(IDCompositionTarget* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IDCompositionTarget_Release(IDCompositionTarget* This) {
    return This->lpVtbl->Release(This);
}
/*** IDCompositionTarget methods ***/
static inline HRESULT IDCompositionTarget_SetRoot(IDCompositionTarget* This,IDCompositionVisual *visual) {
    return This->lpVtbl->SetRoot(This,visual);
}
#endif
#endif

#endif


#endif  /* __IDCompositionTarget_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IDCompositionDevice interface
 */

#ifndef __IDCompositionDevice_INTERFACE_DEFINED__
#define __IDCompositionDevice_INTERFACE_DEFINED__

DEFINE_GUID(IID_IDCompositionDevice, 0xc37ea93a, 0xe7aa, 0x450d, 0xb1,0x6f, 0x97,0x46,0xcb,0x04,0x07,0xf3);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("c37ea93a-e7aa-450d-b16f-9746cb0407f3")
IDCompositionDevice : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE Commit(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE WaitForCommitCompletion(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetFrameStatistics(
        DCOMPOSITION_FRAME_STATISTICS *statistics) = 0;

    virtual HRESULT STDMETHODCALLTYPE CreateTargetForHwnd(
        HWND hwnd,
        BOOL topmost,
        IDCompositionTarget **target) = 0;

    virtual HRESULT STDMETHODCALLTYPE CreateVisual(
        IDCompositionVisual **visual) = 0;

    virtual HRESULT STDMETHODCALLTYPE CreateSurface(
        UINT width,
        UINT height,
        DXGI_FORMAT pixel_format,
        DXGI_ALPHA_MODE alpha_mode,
        IDCompositionSurface **surface) = 0;

    virtual HRESULT STDMETHODCALLTYPE CreateVirtualSurface(
        UINT width,
        UINT height,
        DXGI_FORMAT pixel_format,
        DXGI_ALPHA_MODE alpha_mode,
        IDCompositionVirtualSurface **surface) = 0;

    virtual HRESULT STDMETHODCALLTYPE CreateSurfaceFromHandle(
        HANDLE handle,
        IUnknown **surface) = 0;

    virtual HRESULT STDMETHODCALLTYPE CreateSurfaceFromHwnd(
        HWND hwnd,
        IUnknown **surface) = 0;

    virtual HRESULT STDMETHODCALLTYPE CreateTranslateTransform(
        IDCompositionTranslateTransform **transform) = 0;

    virtual HRESULT STDMETHODCALLTYPE CreateScaleTransform(
        IDCompositionScaleTransform **transform) = 0;

    virtual HRESULT STDMETHODCALLTYPE CreateRotateTransform(
        IDCompositionRotateTransform **transform) = 0;

    virtual HRESULT STDMETHODCALLTYPE CreateSkewTransform(
        IDCompositionSkewTransform **transform) = 0;

    virtual HRESULT STDMETHODCALLTYPE CreateMatrixTransform(
        IDCompositionMatrixTransform **transform) = 0;

    virtual HRESULT STDMETHODCALLTYPE CreateTransformGroup(
        IDCompositionTransform **transforms,
        UINT elements,
        IDCompositionTransform **transform_group) = 0;

    virtual HRESULT STDMETHODCALLTYPE CreateTranslateTransform3D(
        IDCompositionTranslateTransform3D **transform_3d) = 0;

    virtual HRESULT STDMETHODCALLTYPE CreateScaleTransform3D(
        IDCompositionScaleTransform3D **transform_3d) = 0;

    virtual HRESULT STDMETHODCALLTYPE CreateRotateTransform3D(
        IDCompositionRotateTransform3D **transform_3d) = 0;

    virtual HRESULT STDMETHODCALLTYPE CreateMatrixTransform3D(
        IDCompositionMatrixTransform3D **transform_3d) = 0;

    virtual HRESULT STDMETHODCALLTYPE CreateTransform3DGroup(
        IDCompositionTransform3D **transforms_3d,
        UINT elements,
        IDCompositionTransform3D **transform_3d_group) = 0;

    virtual HRESULT STDMETHODCALLTYPE CreateEffectGroup(
        IDCompositionEffectGroup **effect_group) = 0;

    virtual HRESULT STDMETHODCALLTYPE CreateRectangleClip(
        IDCompositionRectangleClip **clip) = 0;

    virtual HRESULT STDMETHODCALLTYPE CreateAnimation(
        IDCompositionAnimation **animation) = 0;

    virtual HRESULT STDMETHODCALLTYPE CheckDeviceState(
        BOOL *valid) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IDCompositionDevice, 0xc37ea93a, 0xe7aa, 0x450d, 0xb1,0x6f, 0x97,0x46,0xcb,0x04,0x07,0xf3)
#endif
#else
typedef struct IDCompositionDeviceVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IDCompositionDevice *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IDCompositionDevice *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IDCompositionDevice *This);

    /*** IDCompositionDevice methods ***/
    HRESULT (STDMETHODCALLTYPE *Commit)(
        IDCompositionDevice *This);

    HRESULT (STDMETHODCALLTYPE *WaitForCommitCompletion)(
        IDCompositionDevice *This);

    HRESULT (STDMETHODCALLTYPE *GetFrameStatistics)(
        IDCompositionDevice *This,
        DCOMPOSITION_FRAME_STATISTICS *statistics);

    HRESULT (STDMETHODCALLTYPE *CreateTargetForHwnd)(
        IDCompositionDevice *This,
        HWND hwnd,
        BOOL topmost,
        IDCompositionTarget **target);

    HRESULT (STDMETHODCALLTYPE *CreateVisual)(
        IDCompositionDevice *This,
        IDCompositionVisual **visual);

    HRESULT (STDMETHODCALLTYPE *CreateSurface)(
        IDCompositionDevice *This,
        UINT width,
        UINT height,
        DXGI_FORMAT pixel_format,
        DXGI_ALPHA_MODE alpha_mode,
        IDCompositionSurface **surface);

    HRESULT (STDMETHODCALLTYPE *CreateVirtualSurface)(
        IDCompositionDevice *This,
        UINT width,
        UINT height,
        DXGI_FORMAT pixel_format,
        DXGI_ALPHA_MODE alpha_mode,
        IDCompositionVirtualSurface **surface);

    HRESULT (STDMETHODCALLTYPE *CreateSurfaceFromHandle)(
        IDCompositionDevice *This,
        HANDLE handle,
        IUnknown **surface);

    HRESULT (STDMETHODCALLTYPE *CreateSurfaceFromHwnd)(
        IDCompositionDevice *This,
        HWND hwnd,
        IUnknown **surface);

    HRESULT (STDMETHODCALLTYPE *CreateTranslateTransform)(
        IDCompositionDevice *This,
        IDCompositionTranslateTransform **transform);

    HRESULT (STDMETHODCALLTYPE *CreateScaleTransform)(
        IDCompositionDevice *This,
        IDCompositionScaleTransform **transform);

    HRESULT (STDMETHODCALLTYPE *CreateRotateTransform)(
        IDCompositionDevice *This,
        IDCompositionRotateTransform **transform);

    HRESULT (STDMETHODCALLTYPE *CreateSkewTransform)(
        IDCompositionDevice *This,
        IDCompositionSkewTransform **transform);

    HRESULT (STDMETHODCALLTYPE *CreateMatrixTransform)(
        IDCompositionDevice *This,
        IDCompositionMatrixTransform **transform);

    HRESULT (STDMETHODCALLTYPE *CreateTransformGroup)(
        IDCompositionDevice *This,
        IDCompositionTransform **transforms,
        UINT elements,
        IDCompositionTransform **transform_group);

    HRESULT (STDMETHODCALLTYPE *CreateTranslateTransform3D)(
        IDCompositionDevice *This,
        IDCompositionTranslateTransform3D **transform_3d);

    HRESULT (STDMETHODCALLTYPE *CreateScaleTransform3D)(
        IDCompositionDevice *This,
        IDCompositionScaleTransform3D **transform_3d);

    HRESULT (STDMETHODCALLTYPE *CreateRotateTransform3D)(
        IDCompositionDevice *This,
        IDCompositionRotateTransform3D **transform_3d);

    HRESULT (STDMETHODCALLTYPE *CreateMatrixTransform3D)(
        IDCompositionDevice *This,
        IDCompositionMatrixTransform3D **transform_3d);

    HRESULT (STDMETHODCALLTYPE *CreateTransform3DGroup)(
        IDCompositionDevice *This,
        IDCompositionTransform3D **transforms_3d,
        UINT elements,
        IDCompositionTransform3D **transform_3d_group);

    HRESULT (STDMETHODCALLTYPE *CreateEffectGroup)(
        IDCompositionDevice *This,
        IDCompositionEffectGroup **effect_group);

    HRESULT (STDMETHODCALLTYPE *CreateRectangleClip)(
        IDCompositionDevice *This,
        IDCompositionRectangleClip **clip);

    HRESULT (STDMETHODCALLTYPE *CreateAnimation)(
        IDCompositionDevice *This,
        IDCompositionAnimation **animation);

    HRESULT (STDMETHODCALLTYPE *CheckDeviceState)(
        IDCompositionDevice *This,
        BOOL *valid);

    END_INTERFACE
} IDCompositionDeviceVtbl;

interface IDCompositionDevice {
    CONST_VTBL IDCompositionDeviceVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IDCompositionDevice_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDCompositionDevice_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDCompositionDevice_Release(This) (This)->lpVtbl->Release(This)
/*** IDCompositionDevice methods ***/
#define IDCompositionDevice_Commit(This) (This)->lpVtbl->Commit(This)
#define IDCompositionDevice_WaitForCommitCompletion(This) (This)->lpVtbl->WaitForCommitCompletion(This)
#define IDCompositionDevice_GetFrameStatistics(This,statistics) (This)->lpVtbl->GetFrameStatistics(This,statistics)
#define IDCompositionDevice_CreateTargetForHwnd(This,hwnd,topmost,target) (This)->lpVtbl->CreateTargetForHwnd(This,hwnd,topmost,target)
#define IDCompositionDevice_CreateVisual(This,visual) (This)->lpVtbl->CreateVisual(This,visual)
#define IDCompositionDevice_CreateSurface(This,width,height,pixel_format,alpha_mode,surface) (This)->lpVtbl->CreateSurface(This,width,height,pixel_format,alpha_mode,surface)
#define IDCompositionDevice_CreateVirtualSurface(This,width,height,pixel_format,alpha_mode,surface) (This)->lpVtbl->CreateVirtualSurface(This,width,height,pixel_format,alpha_mode,surface)
#define IDCompositionDevice_CreateSurfaceFromHandle(This,handle,surface) (This)->lpVtbl->CreateSurfaceFromHandle(This,handle,surface)
#define IDCompositionDevice_CreateSurfaceFromHwnd(This,hwnd,surface) (This)->lpVtbl->CreateSurfaceFromHwnd(This,hwnd,surface)
#define IDCompositionDevice_CreateTranslateTransform(This,transform) (This)->lpVtbl->CreateTranslateTransform(This,transform)
#define IDCompositionDevice_CreateScaleTransform(This,transform) (This)->lpVtbl->CreateScaleTransform(This,transform)
#define IDCompositionDevice_CreateRotateTransform(This,transform) (This)->lpVtbl->CreateRotateTransform(This,transform)
#define IDCompositionDevice_CreateSkewTransform(This,transform) (This)->lpVtbl->CreateSkewTransform(This,transform)
#define IDCompositionDevice_CreateMatrixTransform(This,transform) (This)->lpVtbl->CreateMatrixTransform(This,transform)
#define IDCompositionDevice_CreateTransformGroup(This,transforms,elements,transform_group) (This)->lpVtbl->CreateTransformGroup(This,transforms,elements,transform_group)
#define IDCompositionDevice_CreateTranslateTransform3D(This,transform_3d) (This)->lpVtbl->CreateTranslateTransform3D(This,transform_3d)
#define IDCompositionDevice_CreateScaleTransform3D(This,transform_3d) (This)->lpVtbl->CreateScaleTransform3D(This,transform_3d)
#define IDCompositionDevice_CreateRotateTransform3D(This,transform_3d) (This)->lpVtbl->CreateRotateTransform3D(This,transform_3d)
#define IDCompositionDevice_CreateMatrixTransform3D(This,transform_3d) (This)->lpVtbl->CreateMatrixTransform3D(This,transform_3d)
#define IDCompositionDevice_CreateTransform3DGroup(This,transforms_3d,elements,transform_3d_group) (This)->lpVtbl->CreateTransform3DGroup(This,transforms_3d,elements,transform_3d_group)
#define IDCompositionDevice_CreateEffectGroup(This,effect_group) (This)->lpVtbl->CreateEffectGroup(This,effect_group)
#define IDCompositionDevice_CreateRectangleClip(This,clip) (This)->lpVtbl->CreateRectangleClip(This,clip)
#define IDCompositionDevice_CreateAnimation(This,animation) (This)->lpVtbl->CreateAnimation(This,animation)
#define IDCompositionDevice_CheckDeviceState(This,valid) (This)->lpVtbl->CheckDeviceState(This,valid)
#else
/*** IUnknown methods ***/
static inline HRESULT IDCompositionDevice_QueryInterface(IDCompositionDevice* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IDCompositionDevice_AddRef(IDCompositionDevice* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IDCompositionDevice_Release(IDCompositionDevice* This) {
    return This->lpVtbl->Release(This);
}
/*** IDCompositionDevice methods ***/
static inline HRESULT IDCompositionDevice_Commit(IDCompositionDevice* This) {
    return This->lpVtbl->Commit(This);
}
static inline HRESULT IDCompositionDevice_WaitForCommitCompletion(IDCompositionDevice* This) {
    return This->lpVtbl->WaitForCommitCompletion(This);
}
static inline HRESULT IDCompositionDevice_GetFrameStatistics(IDCompositionDevice* This,DCOMPOSITION_FRAME_STATISTICS *statistics) {
    return This->lpVtbl->GetFrameStatistics(This,statistics);
}
static inline HRESULT IDCompositionDevice_CreateTargetForHwnd(IDCompositionDevice* This,HWND hwnd,BOOL topmost,IDCompositionTarget **target) {
    return This->lpVtbl->CreateTargetForHwnd(This,hwnd,topmost,target);
}
static inline HRESULT IDCompositionDevice_CreateVisual(IDCompositionDevice* This,IDCompositionVisual **visual) {
    return This->lpVtbl->CreateVisual(This,visual);
}
static inline HRESULT IDCompositionDevice_CreateSurface(IDCompositionDevice* This,UINT width,UINT height,DXGI_FORMAT pixel_format,DXGI_ALPHA_MODE alpha_mode,IDCompositionSurface **surface) {
    return This->lpVtbl->CreateSurface(This,width,height,pixel_format,alpha_mode,surface);
}
static inline HRESULT IDCompositionDevice_CreateVirtualSurface(IDCompositionDevice* This,UINT width,UINT height,DXGI_FORMAT pixel_format,DXGI_ALPHA_MODE alpha_mode,IDCompositionVirtualSurface **surface) {
    return This->lpVtbl->CreateVirtualSurface(This,width,height,pixel_format,alpha_mode,surface);
}
static inline HRESULT IDCompositionDevice_CreateSurfaceFromHandle(IDCompositionDevice* This,HANDLE handle,IUnknown **surface) {
    return This->lpVtbl->CreateSurfaceFromHandle(This,handle,surface);
}
static inline HRESULT IDCompositionDevice_CreateSurfaceFromHwnd(IDCompositionDeviceThis,HWND hwnd,IUnknown **surface) {
    return This->lpVtbl->CreateSurfaceFromHwnd(This,hwnd,surface);
}
static inline HRESULT IDCompositionDevice_CreateTranslateTransform(IDCompositionDevice* This,IDCompositionTranslateTransform **transform) {
    return This->lpVtbl->CreateTranslateTransform(This,transform);
}
static inline HRESULT IDCompositionDevice_CreateScaleTransform(IDCompositionDevice* This,IDCompositionScaleTransform **transform) {
    return This->lpVtbl->CreateScaleTransform(This,transform);
}
static inline HRESULT IDCompositionDevice_CreateRotateTransform(IDCompositionDeviceThis,IDCompositionRotateTransform **transform) {
    return This->lpVtbl->CreateRotateTransform(This,transform);
}
static inline HRESULT IDCompositionDevice_CreateSkewTransform(IDCompositionDevice* This,IDCompositionSkewTransform **transform) {
    return This->lpVtbl->CreateSkewTransform(This,transform);
}
static inline HRESULT IDCompositionDevice_CreateMatrixTransform(IDCompositionDeviceThis,IDCompositionMatrixTransform **transform) {
    return This->lpVtbl->CreateMatrixTransform(This,transform);
}
static inline HRESULT IDCompositionDevice_CreateTransformGroup(IDCompositionDevice* This,IDCompositionTransform **transforms,UINT elements,IDCompositionTransform **transform_group) {
    return This->lpVtbl->CreateTransformGroup(This,transforms,elements,transform_group);
}
static inline HRESULT IDCompositionDevice_CreateTranslateTransform3D(IDCompositionDevice* This,IDCompositionTranslateTransform3D **transform_3d) {
    return This->lpVtbl->CreateTranslateTransform3D(This,transform_3d);
}
static inline HRESULT IDCompositionDevice_CreateScaleTransform3D(IDCompositionDevice* This,IDCompositionScaleTransform3D **transform_3d) {
    return This->lpVtbl->CreateScaleTransform3D(This,transform_3d);
}
static inline HRESULT IDCompositionDevice_CreateRotateTransform3D(IDCompositionDevice* This,IDCompositionRotateTransform3D **transform_3d) {
    return This->lpVtbl->CreateRotateTransform3D(This,transform_3d);
}
static inline HRESULT IDCompositionDevice_CreateMatrixTransform3D(IDCompositionDevice* This,IDCompositionMatrixTransform3D **transform_3d) {
    return This->lpVtbl->CreateMatrixTransform3D(This,transform_3d);
}
static inline HRESULT IDCompositionDevice_CreateTransform3DGroup(IDCompositionDevice* This,IDCompositionTransform3D **transforms_3d,UINT elements,IDCompositionTransform3D **transform_3d_group) {
    return This->lpVtbl->CreateTransform3DGroup(This,transforms_3d,elements,transform_3d_group);
}
static inline HRESULT IDCompositionDevice_CreateEffectGroup(IDCompositionDevice* This,IDCompositionEffectGroup **effect_group) {
    return This->lpVtbl->CreateEffectGroup(This,effect_group);
}
static inline HRESULT IDCompositionDevice_CreateRectangleClip(IDCompositionDevice* This,IDCompositionRectangleClip **clip) {
    return This->lpVtbl->CreateRectangleClip(This,clip);
}
static inline HRESULT IDCompositionDevice_CreateAnimation(IDCompositionDevice* This,IDCompositionAnimation **animation) {
    return This->lpVtbl->CreateAnimation(This,animation);
}
static inline HRESULT IDCompositionDevice_CheckDeviceState(IDCompositionDevice* This,BOOL *valid) {
    return This->lpVtbl->CheckDeviceState(This,valid);
}
#endif
#endif

#endif


#endif  /* __IDCompositionDevice_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IDCompositionDevice2 interface
 */

#ifndef __IDCompositionDevice2_INTERFACE_DEFINED__
#define __IDCompositionDevice2_INTERFACE_DEFINED__

DEFINE_GUID(IID_IDCompositionDevice2, 0x75f6468d, 0x1b8e, 0x447c, 0x9b,0xc6, 0x75,0xfe,0xa8,0x0b,0x5b,0x25);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("75f6468d-1b8e-447c-9bc6-75fea80b5b25")
IDCompositionDevice2 : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE Commit(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE WaitForCommitCompletion(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetFrameStatistics(
        DCOMPOSITION_FRAME_STATISTICS *statistics) = 0;

    virtual HRESULT STDMETHODCALLTYPE CreateVisual(
        IDCompositionVisual2 **visual) = 0;

    virtual HRESULT STDMETHODCALLTYPE CreateSurfaceFactory(
        IUnknown *rendering_device,
        IDCompositionSurfaceFactory **surface_factory) = 0;

    virtual HRESULT STDMETHODCALLTYPE CreateSurface(
        UINT width,
        UINT height,
        DXGI_FORMAT pixel_format,
        DXGI_ALPHA_MODE alpha_mode,
        IDCompositionSurface **surface) = 0;

    virtual HRESULT STDMETHODCALLTYPE CreateVirtualSurface(
        UINT width,
        UINT height,
        DXGI_FORMAT pixel_format,
        DXGI_ALPHA_MODE alpha_mode,
        IDCompositionVirtualSurface **surface) = 0;

    virtual HRESULT STDMETHODCALLTYPE CreateTranslateTransform(
        IDCompositionTranslateTransform **transform) = 0;

    virtual HRESULT STDMETHODCALLTYPE CreateScaleTransform(
        IDCompositionScaleTransform **transform) = 0;

    virtual HRESULT STDMETHODCALLTYPE CreateRotateTransform(
        IDCompositionRotateTransform **transform) = 0;

    virtual HRESULT STDMETHODCALLTYPE CreateSkewTransform(
        IDCompositionSkewTransform **transform) = 0;

    virtual HRESULT STDMETHODCALLTYPE CreateMatrixTransform(
        IDCompositionMatrixTransform **transform) = 0;

    virtual HRESULT STDMETHODCALLTYPE CreateTransformGroup(
        IDCompositionTransform **transforms,
        UINT elements,
        IDCompositionTransform **transform_group) = 0;

    virtual HRESULT STDMETHODCALLTYPE CreateTranslateTransform3D(
        IDCompositionTranslateTransform3D **transform_3d) = 0;

    virtual HRESULT STDMETHODCALLTYPE CreateScaleTransform3D(
        IDCompositionScaleTransform3D **transform_3d) = 0;

    virtual HRESULT STDMETHODCALLTYPE CreateRotateTransform3D(
        IDCompositionRotateTransform3D **transform_3d) = 0;

    virtual HRESULT STDMETHODCALLTYPE CreateMatrixTransform3D(
        IDCompositionMatrixTransform3D **transform_3d) = 0;

    virtual HRESULT STDMETHODCALLTYPE CreateTransform3DGroup(
        IDCompositionTransform3D **transforms_3d,
        UINT elements,
        IDCompositionTransform3D **transform_3d_group) = 0;

    virtual HRESULT STDMETHODCALLTYPE CreateEffectGroup(
        IDCompositionEffectGroup **effect_group) = 0;

    virtual HRESULT STDMETHODCALLTYPE CreateRectangleClip(
        IDCompositionRectangleClip **clip) = 0;

    virtual HRESULT STDMETHODCALLTYPE CreateAnimation(
        IDCompositionAnimation **animation) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IDCompositionDevice2, 0x75f6468d, 0x1b8e, 0x447c, 0x9b,0xc6, 0x75,0xfe,0xa8,0x0b,0x5b,0x25)
#endif
#else
typedef struct IDCompositionDevice2Vtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IDCompositionDevice2 *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IDCompositionDevice2 *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IDCompositionDevice2 *This);

    /*** IDCompositionDevice2 methods ***/
    HRESULT (STDMETHODCALLTYPE *Commit)(
        IDCompositionDevice2 *This);

    HRESULT (STDMETHODCALLTYPE *WaitForCommitCompletion)(
        IDCompositionDevice2 *This);

    HRESULT (STDMETHODCALLTYPE *GetFrameStatistics)(
        IDCompositionDevice2 *This,
        DCOMPOSITION_FRAME_STATISTICS *statistics);

    HRESULT (STDMETHODCALLTYPE *CreateVisual)(
        IDCompositionDevice2 *This,
        IDCompositionVisual2 **visual);

    HRESULT (STDMETHODCALLTYPE *CreateSurfaceFactory)(
        IDCompositionDevice2 *This,
        IUnknown *rendering_device,
        IDCompositionSurfaceFactory **surface_factory);

    HRESULT (STDMETHODCALLTYPE *CreateSurface)(
        IDCompositionDevice2 *This,
        UINT width,
        UINT height,
        DXGI_FORMAT pixel_format,
        DXGI_ALPHA_MODE alpha_mode,
        IDCompositionSurface **surface);

    HRESULT (STDMETHODCALLTYPE *CreateVirtualSurface)(
        IDCompositionDevice2 *This,
        UINT width,
        UINT height,
        DXGI_FORMAT pixel_format,
        DXGI_ALPHA_MODE alpha_mode,
        IDCompositionVirtualSurface **surface);

    HRESULT (STDMETHODCALLTYPE *CreateTranslateTransform)(
        IDCompositionDevice2 *This,
        IDCompositionTranslateTransform **transform);

    HRESULT (STDMETHODCALLTYPE *CreateScaleTransform)(
        IDCompositionDevice2 *This,
        IDCompositionScaleTransform **transform);

    HRESULT (STDMETHODCALLTYPE *CreateRotateTransform)(
        IDCompositionDevice2 *This,
        IDCompositionRotateTransform **transform);

    HRESULT (STDMETHODCALLTYPE *CreateSkewTransform)(
        IDCompositionDevice2 *This,
        IDCompositionSkewTransform **transform);

    HRESULT (STDMETHODCALLTYPE *CreateMatrixTransform)(
        IDCompositionDevice2 *This,
        IDCompositionMatrixTransform **transform);

    HRESULT (STDMETHODCALLTYPE *CreateTransformGroup)(
        IDCompositionDevice2 *This,
        IDCompositionTransform **transforms,
        UINT elements,
        IDCompositionTransform **transform_group);

    HRESULT (STDMETHODCALLTYPE *CreateTranslateTransform3D)(
        IDCompositionDevice2 *This,
        IDCompositionTranslateTransform3D **transform_3d);

    HRESULT (STDMETHODCALLTYPE *CreateScaleTransform3D)(
        IDCompositionDevice2 *This,
        IDCompositionScaleTransform3D **transform_3d);

    HRESULT (STDMETHODCALLTYPE *CreateRotateTransform3D)(
        IDCompositionDevice2 *This,
        IDCompositionRotateTransform3D **transform_3d);

    HRESULT (STDMETHODCALLTYPE *CreateMatrixTransform3D)(
        IDCompositionDevice2 *This,
        IDCompositionMatrixTransform3D **transform_3d);

    HRESULT (STDMETHODCALLTYPE *CreateTransform3DGroup)(
        IDCompositionDevice2 *This,
        IDCompositionTransform3D **transforms_3d,
        UINT elements,
        IDCompositionTransform3D **transform_3d_group);

    HRESULT (STDMETHODCALLTYPE *CreateEffectGroup)(
        IDCompositionDevice2 *This,
        IDCompositionEffectGroup **effect_group);

    HRESULT (STDMETHODCALLTYPE *CreateRectangleClip)(
        IDCompositionDevice2 *This,
        IDCompositionRectangleClip **clip);

    HRESULT (STDMETHODCALLTYPE *CreateAnimation)(
        IDCompositionDevice2 *This,
        IDCompositionAnimation **animation);

    END_INTERFACE
} IDCompositionDevice2Vtbl;

interface IDCompositionDevice2 {
    CONST_VTBL IDCompositionDevice2Vtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IDCompositionDevice2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDCompositionDevice2_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDCompositionDevice2_Release(This) (This)->lpVtbl->Release(This)
/*** IDCompositionDevice2 methods ***/
#define IDCompositionDevice2_Commit(This) (This)->lpVtbl->Commit(This)
#define IDCompositionDevice2_WaitForCommitCompletion(This) (This)->lpVtbl->WaitForCommitCompletion(This)
#define IDCompositionDevice2_GetFrameStatistics(This,statistics) (This)->lpVtbl->GetFrameStatistics(This,statistics)
#define IDCompositionDevice2_CreateVisual(This,visual) (This)->lpVtbl->CreateVisual(This,visual)
#define IDCompositionDevice2_CreateSurfaceFactory(This,rendering_device,surface_factory) (This)->lpVtbl->CreateSurfaceFactory(This,rendering_device,surface_factory)
#define IDCompositionDevice2_CreateSurface(This,width,height,pixel_format,alpha_mode,surface) (This)->lpVtbl->CreateSurface(This,width,height,pixel_format,alpha_mode,surface)
#define IDCompositionDevice2_CreateVirtualSurface(This,width,height,pixel_format,alpha_mode,surface) (This)->lpVtbl->CreateVirtualSurface(This,width,height,pixel_format,alpha_mode,surface)
#define IDCompositionDevice2_CreateTranslateTransform(This,transform) (This)->lpVtbl->CreateTranslateTransform(This,transform)
#define IDCompositionDevice2_CreateScaleTransform(This,transform) (This)->lpVtbl->CreateScaleTransform(This,transform)
#define IDCompositionDevice2_CreateRotateTransform(This,transform) (This)->lpVtbl->CreateRotateTransform(This,transform)
#define IDCompositionDevice2_CreateSkewTransform(This,transform) (This)->lpVtbl->CreateSkewTransform(This,transform)
#define IDCompositionDevice2_CreateMatrixTransform(This,transform) (This)->lpVtbl->CreateMatrixTransform(This,transform)
#define IDCompositionDevice2_CreateTransformGroup(This,transforms,elements,transform_group) (This)->lpVtbl->CreateTransformGroup(This,transforms,elements,transform_group)
#define IDCompositionDevice2_CreateTranslateTransform3D(This,transform_3d) (This)->lpVtbl->CreateTranslateTransform3D(This,transform_3d)
#define IDCompositionDevice2_CreateScaleTransform3D(This,transform_3d) (This)->lpVtbl->CreateScaleTransform3D(This,transform_3d)
#define IDCompositionDevice2_CreateRotateTransform3D(This,transform_3d) (This)->lpVtbl->CreateRotateTransform3D(This,transform_3d)
#define IDCompositionDevice2_CreateMatrixTransform3D(This,transform_3d) (This)->lpVtbl->CreateMatrixTransform3D(This,transform_3d)
#define IDCompositionDevice2_CreateTransform3DGroup(This,transforms_3d,elements,transform_3d_group) (This)->lpVtbl->CreateTransform3DGroup(This,transforms_3d,elements,transform_3d_group)
#define IDCompositionDevice2_CreateEffectGroup(This,effect_group) (This)->lpVtbl->CreateEffectGroup(This,effect_group)
#define IDCompositionDevice2_CreateRectangleClip(This,clip) (This)->lpVtbl->CreateRectangleClip(This,clip)
#define IDCompositionDevice2_CreateAnimation(This,animation) (This)->lpVtbl->CreateAnimation(This,animation)
#else
/*** IUnknown methods ***/
static inline HRESULT IDCompositionDevice2_QueryInterface(IDCompositionDevice2* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IDCompositionDevice2_AddRef(IDCompositionDevice2* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IDCompositionDevice2_Release(IDCompositionDevice2* This) {
    return This->lpVtbl->Release(This);
}
/*** IDCompositionDevice2 methods ***/
static inline HRESULT IDCompositionDevice2_Commit(IDCompositionDevice2* This) {
    return This->lpVtbl->Commit(This);
}
static inline HRESULT IDCompositionDevice2_WaitForCommitCompletion(IDCompositionDevice2* This) {
    return This->lpVtbl->WaitForCommitCompletion(This);
}
static inline HRESULT IDCompositionDevice2_GetFrameStatistics(IDCompositionDevice2* This,DCOMPOSITION_FRAME_STATISTICS *statistics) {
    return This->lpVtbl->GetFrameStatistics(This,statistics);
}
static inline HRESULT IDCompositionDevice2_CreateVisual(IDCompositionDevice2* This,IDCompositionVisual2 **visual) {
    return This->lpVtbl->CreateVisual(This,visual);
}
static inline HRESULT IDCompositionDevice2_CreateSurfaceFactory(IDCompositionDevice2* This,IUnknown *rendering_device,IDCompositionSurfaceFactory **surface_factory) {
    return This->lpVtbl->CreateSurfaceFactory(This,rendering_device,surface_factory);
}
static inline HRESULT IDCompositionDevice2_CreateSurface(IDCompositionDevice2* This,UINT width,UINT height,DXGI_FORMAT pixel_format,DXGI_ALPHA_MODE alpha_mode,IDCompositionSurface **surface) {
    return This->lpVtbl->CreateSurface(This,width,height,pixel_format,alpha_mode,surface);
}
static inline HRESULT IDCompositionDevice2_CreateVirtualSurface(IDCompositionDevice2* This,UINT width,UINT height,DXGI_FORMAT pixel_format,DXGI_ALPHA_MODE alpha_mode,IDCompositionVirtualSurface **surface) {
    return This->lpVtbl->CreateVirtualSurface(This,width,height,pixel_format,alpha_mode,surface);
}
static inline HRESULT IDCompositionDevice2_CreateTranslateTransform(IDCompositionDevice2* This,IDCompositionTranslateTransform **transform) {
    return This->lpVtbl->CreateTranslateTransform(This,transform);
}
static inline HRESULT IDCompositionDevice2_CreateScaleTransform(IDCompositionDevice2* This,IDCompositionScaleTransform **transform) {
    return This->lpVtbl->CreateScaleTransform(This,transform);
}
static inline HRESULT IDCompositionDevice2_CreateRotateTransform(IDCompositionDevice2* This,IDCompositionRotateTransform **transform) {
    return This->lpVtbl->CreateRotateTransform(This,transform);
}
static inline HRESULT IDCompositionDevice2_CreateSkewTransform(IDCompositionDevice2This,IDCompositionSkewTransform **transform) {
    return This->lpVtbl->CreateSkewTransform(This,transform);
}
static inline HRESULT IDCompositionDevice2_CreateMatrixTransform(IDCompositionDevice2* This,IDCompositionMatrixTransform **transform) {
    return This->lpVtbl->CreateMatrixTransform(This,transform);
}
static inline HRESULT IDCompositionDevice2_CreateTransformGroup(IDCompositionDevice2* This,IDCompositionTransform **transforms,UINT elements,IDCompositionTransform **transform_group) {
    return This->lpVtbl->CreateTransformGroup(This,transforms,elements,transform_group);
}
static inline HRESULT IDCompositionDevice2_CreateTranslateTransform3D(IDCompositionDevice2* This,IDCompositionTranslateTransform3D **transform_3d) {
    return This->lpVtbl->CreateTranslateTransform3D(This,transform_3d);
}
static inline HRESULT IDCompositionDevice2_CreateScaleTransform3D(IDCompositionDevice2* This,IDCompositionScaleTransform3D **transform_3d) {
    return This->lpVtbl->CreateScaleTransform3D(This,transform_3d);
}
static inline HRESULT IDCompositionDevice2_CreateRotateTransform3D(IDCompositionDevice2* This,IDCompositionRotateTransform3D **transform_3d) {
    return This->lpVtbl->CreateRotateTransform3D(This,transform_3d);
}
static inline HRESULT IDCompositionDevice2_CreateMatrixTransform3D(IDCompositionDevice2* This,IDCompositionMatrixTransform3D **transform_3d) {
    return This->lpVtbl->CreateMatrixTransform3D(This,transform_3d);
}
static inline HRESULT IDCompositionDevice2_CreateTransform3DGroup(IDCompositionDevice2* This,IDCompositionTransform3D **transforms_3d,UINT elements,IDCompositionTransform3D **transform_3d_group) {
    return This->lpVtbl->CreateTransform3DGroup(This,transforms_3d,elements,transform_3d_group);
}
static inline HRESULT IDCompositionDevice2_CreateEffectGroup(IDCompositionDevice2* This,IDCompositionEffectGroup **effect_group) {
    return This->lpVtbl->CreateEffectGroup(This,effect_group);
}
static inline HRESULT IDCompositionDevice2_CreateRectangleClip(IDCompositionDevice2This,IDCompositionRectangleClip **clip) {
    return This->lpVtbl->CreateRectangleClip(This,clip);
}
static inline HRESULT IDCompositionDevice2_CreateAnimation(IDCompositionDevice2* This,IDCompositionAnimation **animation) {
    return This->lpVtbl->CreateAnimation(This,animation);
}
#endif
#endif

#endif


#endif  /* __IDCompositionDevice2_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IDCompositionDesktopDevice interface
 */

#ifndef __IDCompositionDesktopDevice_INTERFACE_DEFINED__
#define __IDCompositionDesktopDevice_INTERFACE_DEFINED__

DEFINE_GUID(IID_IDCompositionDesktopDevice, 0x5f4633fe, 0x1e08, 0x4cb8, 0x8c,0x75, 0xce,0x24,0x33,0x3f,0x56,0x02);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("5f4633fe-1e08-4cb8-8c75-ce24333f5602")
IDCompositionDesktopDevice : public IDCompositionDevice2
{
    virtual HRESULT STDMETHODCALLTYPE CreateTargetForHwnd(
        HWND hwnd,
        BOOL topmost,
        IDCompositionTarget **target) = 0;

    virtual HRESULT STDMETHODCALLTYPE CreateSurfaceFromHandle(
        HANDLE handle,
        IUnknown **surface) = 0;

    virtual HRESULT STDMETHODCALLTYPE CreateSurfaceFromHwnd(
        HWND hwnd,
        IUnknown **surface) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IDCompositionDesktopDevice, 0x5f4633fe, 0x1e08, 0x4cb8, 0x8c,0x75, 0xce,0x24,0x33,0x3f,0x56,0x02)
#endif
#else
typedef struct IDCompositionDesktopDeviceVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IDCompositionDesktopDevice *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IDCompositionDesktopDevice *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IDCompositionDesktopDevice *This);

    /*** IDCompositionDevice2 methods ***/
    HRESULT (STDMETHODCALLTYPE *Commit)(
        IDCompositionDesktopDevice *This);

    HRESULT (STDMETHODCALLTYPE *WaitForCommitCompletion)(
        IDCompositionDesktopDevice *This);

    HRESULT (STDMETHODCALLTYPE *GetFrameStatistics)(
        IDCompositionDesktopDevice *This,
        DCOMPOSITION_FRAME_STATISTICS *statistics);

    HRESULT (STDMETHODCALLTYPE *CreateVisual)(
        IDCompositionDesktopDevice *This,
        IDCompositionVisual2 **visual);

    HRESULT (STDMETHODCALLTYPE *CreateSurfaceFactory)(
        IDCompositionDesktopDevice *This,
        IUnknown *rendering_device,
        IDCompositionSurfaceFactory **surface_factory);

    HRESULT (STDMETHODCALLTYPE *CreateSurface)(
        IDCompositionDesktopDevice *This,
        UINT width,
        UINT height,
        DXGI_FORMAT pixel_format,
        DXGI_ALPHA_MODE alpha_mode,
        IDCompositionSurface **surface);

    HRESULT (STDMETHODCALLTYPE *CreateVirtualSurface)(
        IDCompositionDesktopDevice *This,
        UINT width,
        UINT height,
        DXGI_FORMAT pixel_format,
        DXGI_ALPHA_MODE alpha_mode,
        IDCompositionVirtualSurface **surface);

    HRESULT (STDMETHODCALLTYPE *CreateTranslateTransform)(
        IDCompositionDesktopDevice *This,
        IDCompositionTranslateTransform **transform);

    HRESULT (STDMETHODCALLTYPE *CreateScaleTransform)(
        IDCompositionDesktopDevice *This,
        IDCompositionScaleTransform **transform);

    HRESULT (STDMETHODCALLTYPE *CreateRotateTransform)(
        IDCompositionDesktopDevice *This,
        IDCompositionRotateTransform **transform);

    HRESULT (STDMETHODCALLTYPE *CreateSkewTransform)(
        IDCompositionDesktopDevice *This,
        IDCompositionSkewTransform **transform);

    HRESULT (STDMETHODCALLTYPE *CreateMatrixTransform)(
        IDCompositionDesktopDevice *This,
        IDCompositionMatrixTransform **transform);

    HRESULT (STDMETHODCALLTYPE *CreateTransformGroup)(
        IDCompositionDesktopDevice *This,
        IDCompositionTransform **transforms,
        UINT elements,
        IDCompositionTransform **transform_group);

    HRESULT (STDMETHODCALLTYPE *CreateTranslateTransform3D)(
        IDCompositionDesktopDevice *This,
        IDCompositionTranslateTransform3D **transform_3d);

    HRESULT (STDMETHODCALLTYPE *CreateScaleTransform3D)(
        IDCompositionDesktopDevice *This,
        IDCompositionScaleTransform3D **transform_3d);

    HRESULT (STDMETHODCALLTYPE *CreateRotateTransform3D)(
        IDCompositionDesktopDevice *This,
        IDCompositionRotateTransform3D **transform_3d);

    HRESULT (STDMETHODCALLTYPE *CreateMatrixTransform3D)(
        IDCompositionDesktopDevice *This,
        IDCompositionMatrixTransform3D **transform_3d);

    HRESULT (STDMETHODCALLTYPE *CreateTransform3DGroup)(
        IDCompositionDesktopDevice *This,
        IDCompositionTransform3D **transforms_3d,
        UINT elements,
        IDCompositionTransform3D **transform_3d_group);

    HRESULT (STDMETHODCALLTYPE *CreateEffectGroup)(
        IDCompositionDesktopDevice *This,
        IDCompositionEffectGroup **effect_group);

    HRESULT (STDMETHODCALLTYPE *CreateRectangleClip)(
        IDCompositionDesktopDevice *This,
        IDCompositionRectangleClip **clip);

    HRESULT (STDMETHODCALLTYPE *CreateAnimation)(
        IDCompositionDesktopDevice *This,
        IDCompositionAnimation **animation);

    /*** IDCompositionDesktopDevice methods ***/
    HRESULT (STDMETHODCALLTYPE *CreateTargetForHwnd)(
        IDCompositionDesktopDevice *This,
        HWND hwnd,
        BOOL topmost,
        IDCompositionTarget **target);

    HRESULT (STDMETHODCALLTYPE *CreateSurfaceFromHandle)(
        IDCompositionDesktopDevice *This,
        HANDLE handle,
        IUnknown **surface);

    HRESULT (STDMETHODCALLTYPE *CreateSurfaceFromHwnd)(
        IDCompositionDesktopDevice *This,
        HWND hwnd,
        IUnknown **surface);

    END_INTERFACE
} IDCompositionDesktopDeviceVtbl;

interface IDCompositionDesktopDevice {
    CONST_VTBL IDCompositionDesktopDeviceVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IDCompositionDesktopDevice_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDCompositionDesktopDevice_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDCompositionDesktopDevice_Release(This) (This)->lpVtbl->Release(This)
/*** IDCompositionDevice2 methods ***/
#define IDCompositionDesktopDevice_Commit(This) (This)->lpVtbl->Commit(This)
#define IDCompositionDesktopDevice_WaitForCommitCompletion(This) (This)->lpVtbl->WaitForCommitCompletion(This)
#define IDCompositionDesktopDevice_GetFrameStatistics(This,statistics) (This)->lpVtbl->GetFrameStatistics(This,statistics)
#define IDCompositionDesktopDevice_CreateVisual(This,visual) (This)->lpVtbl->CreateVisual(This,visual)
#define IDCompositionDesktopDevice_CreateSurfaceFactory(This,rendering_device,surface_factory) (This)->lpVtbl->CreateSurfaceFactory(This,rendering_device,surface_factory)
#define IDCompositionDesktopDevice_CreateSurface(This,width,height,pixel_format,alpha_mode,surface) (This)->lpVtbl->CreateSurface(This,width,height,pixel_format,alpha_mode,surface)
#define IDCompositionDesktopDevice_CreateVirtualSurface(This,width,height,pixel_format,alpha_mode,surface) (This)->lpVtbl->CreateVirtualSurface(This,width,height,pixel_format,alpha_mode,surface)
#define IDCompositionDesktopDevice_CreateTranslateTransform(This,transform) (This)->lpVtbl->CreateTranslateTransform(This,transform)
#define IDCompositionDesktopDevice_CreateScaleTransform(This,transform) (This)->lpVtbl->CreateScaleTransform(This,transform)
#define IDCompositionDesktopDevice_CreateRotateTransform(This,transform) (This)->lpVtbl->CreateRotateTransform(This,transform)
#define IDCompositionDesktopDevice_CreateSkewTransform(This,transform) (This)->lpVtbl->CreateSkewTransform(This,transform)
#define IDCompositionDesktopDevice_CreateMatrixTransform(This,transform) (This)->lpVtbl->CreateMatrixTransform(This,transform)
#define IDCompositionDesktopDevice_CreateTransformGroup(This,transforms,elements,transform_group) (This)->lpVtbl->CreateTransformGroup(This,transforms,elements,transform_group)
#define IDCompositionDesktopDevice_CreateTranslateTransform3D(This,transform_3d) (This)->lpVtbl->CreateTranslateTransform3D(This,transform_3d)
#define IDCompositionDesktopDevice_CreateScaleTransform3D(This,transform_3d) (This)->lpVtbl->CreateScaleTransform3D(This,transform_3d)
#define IDCompositionDesktopDevice_CreateRotateTransform3D(This,transform_3d) (This)->lpVtbl->CreateRotateTransform3D(This,transform_3d)
#define IDCompositionDesktopDevice_CreateMatrixTransform3D(This,transform_3d) (This)->lpVtbl->CreateMatrixTransform3D(This,transform_3d)
#define IDCompositionDesktopDevice_CreateTransform3DGroup(This,transforms_3d,elements,transform_3d_group) (This)->lpVtbl->CreateTransform3DGroup(This,transforms_3d,elements,transform_3d_group)
#define IDCompositionDesktopDevice_CreateEffectGroup(This,effect_group) (This)->lpVtbl->CreateEffectGroup(This,effect_group)
#define IDCompositionDesktopDevice_CreateRectangleClip(This,clip) (This)->lpVtbl->CreateRectangleClip(This,clip)
#define IDCompositionDesktopDevice_CreateAnimation(This,animation) (This)->lpVtbl->CreateAnimation(This,animation)
/*** IDCompositionDesktopDevice methods ***/
#define IDCompositionDesktopDevice_CreateTargetForHwnd(This,hwnd,topmost,target) (This)->lpVtbl->CreateTargetForHwnd(This,hwnd,topmost,target)
#define IDCompositionDesktopDevice_CreateSurfaceFromHandle(This,handle,surface) (This)->lpVtbl->CreateSurfaceFromHandle(This,handle,surface)
#define IDCompositionDesktopDevice_CreateSurfaceFromHwnd(This,hwnd,surface) (This)->lpVtbl->CreateSurfaceFromHwnd(This,hwnd,surface)
#else
/*** IUnknown methods ***/
static inline HRESULT IDCompositionDesktopDevice_QueryInterface(IDCompositionDesktopDevice* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG IDCompositionDesktopDevice_AddRef(IDCompositionDesktopDevice* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG IDCompositionDesktopDevice_Release(IDCompositionDesktopDevice* This) {
    return This->lpVtbl->Release(This);
}
/*** IDCompositionDevice2 methods ***/
static inline HRESULT IDCompositionDesktopDevice_Commit(IDCompositionDesktopDevice* This) {
    return This->lpVtbl->Commit(This);
}
static inline HRESULT IDCompositionDesktopDevice_WaitForCommitCompletion(IDCompositionDesktopDevice* This) {
    return This->lpVtbl->WaitForCommitCompletion(This);
}
static inline HRESULT IDCompositionDesktopDevice_GetFrameStatistics(IDCompositionDesktopDevice* This,DCOMPOSITION_FRAME_STATISTICS *statistics) {
    return This->lpVtbl->GetFrameStatistics(This,statistics);
}
static inline HRESULT IDCompositionDesktopDevice_CreateVisual(IDCompositionDesktopDevice* This,IDCompositionVisual2 **visual) {
    return This->lpVtbl->CreateVisual(This,visual);
}
static inline HRESULT IDCompositionDesktopDevice_CreateSurfaceFactory(IDCompositionDesktopDevice* This,IUnknown *rendering_device,IDCompositionSurfaceFactory **surface_factory) {
    return This->lpVtbl->CreateSurfaceFactory(This,rendering_device,surface_factory);
}
static inline HRESULT IDCompositionDesktopDevice_CreateSurface(IDCompositionDesktopDevice* This,UINT width,UINT height,DXGI_FORMAT pixel_format,DXGI_ALPHA_MODE alpha_mode,IDCompositionSurface **surface) {
    return This->lpVtbl->CreateSurface(This,width,height,pixel_format,alpha_mode,surface);
}
static inline HRESULT IDCompositionDesktopDevice_CreateVirtualSurface(IDCompositionDesktopDevice* This,UINT width,UINT height,DXGI_FORMAT pixel_format,DXGI_ALPHA_MODE alpha_mode,IDCompositionVirtualSurface **surface) {
    return This->lpVtbl->CreateVirtualSurface(This,width,height,pixel_format,alpha_mode,surface);
}
static inline HRESULT IDCompositionDesktopDevice_CreateTranslateTransform(IDCompositionDesktopDevice* This,IDCompositionTranslateTransform **transform) {
    return This->lpVtbl->CreateTranslateTransform(This,transform);
}
static inline HRESULT IDCompositionDesktopDevice_CreateScaleTransform(IDCompositionDesktopDevice* This,IDCompositionScaleTransform **transform) {
    return This->lpVtbl->CreateScaleTransform(This,transform);
}
static inline HRESULT IDCompositionDesktopDevice_CreateRotateTransform(IDCompositionDesktopDevice* This,IDCompositionRotateTransform **transform) {
    return This->lpVtbl->CreateRotateTransform(This,transform);
}
static inline HRESULT IDCompositionDesktopDevice_CreateSkewTransform(IDCompositionDesktopDevice* This,IDCompositionSkewTransform **transform) {
    return This->lpVtbl->CreateSkewTransform(This,transform);
}
static inline HRESULT IDCompositionDesktopDevice_CreateMatrixTransform(IDCompositionDesktopDevice* This,IDCompositionMatrixTransform **transform) {
    return This->lpVtbl->CreateMatrixTransform(This,transform);
}
static inline HRESULT IDCompositionDesktopDevice_CreateTransformGroup(IDCompositionDesktopDevice* This,IDCompositionTransform **transforms,UINT elements,IDCompositionTransform **transform_group) {
    return This->lpVtbl->CreateTransformGroup(This,transforms,elements,transform_group);
}
static inline HRESULT IDCompositionDesktopDevice_CreateTranslateTransform3D(IDCompositionDesktopDevice* This,IDCompositionTranslateTransform3D **transform_3d) {
    return This->lpVtbl->CreateTranslateTransform3D(This,transform_3d);
}
static inline HRESULT IDCompositionDesktopDevice_CreateScaleTransform3D(IDCompositionDesktopDevice* This,IDCompositionScaleTransform3D **transform_3d) {
    return This->lpVtbl->CreateScaleTransform3D(This,transform_3d);
}
static inline HRESULT IDCompositionDesktopDevice_CreateRotateTransform3D(IDCompositionDesktopDevice* This,IDCompositionRotateTransform3D **transform_3d) {
    return This->lpVtbl->CreateRotateTransform3D(This,transform_3d);
}
static inline HRESULT IDCompositionDesktopDevice_CreateMatrixTransform3D(IDCompositionDesktopDevice* This,IDCompositionMatrixTransform3D **transform_3d) {
    return This->lpVtbl->CreateMatrixTransform3D(This,transform_3d);
}
static inline HRESULT IDCompositionDesktopDevice_CreateTransform3DGroup(IDCompositionDesktopDevice* This,IDCompositionTransform3D **transforms_3d,UINT elements,IDCompositionTransform3D **transform_3d_group) {
    return This->lpVtbl->CreateTransform3DGroup(This,transforms_3d,elements,transform_3d_group);
}
static inline HRESULT IDCompositionDesktopDevice_CreateEffectGroup(IDCompositionDesktopDevice* This,IDCompositionEffectGroup **effect_group) {
    return This->lpVtbl->CreateEffectGroup(This,effect_group);
}
static inline HRESULT IDCompositionDesktopDevice_CreateRectangleClip(IDCompositionDesktopDevice* This,IDCompositionRectangleClip **clip) {
    return This->lpVtbl->CreateRectangleClip(This,clip);
}
static inline HRESULT IDCompositionDesktopDevice_CreateAnimation(IDCompositionDesktopDevice* This,IDCompositionAnimation **animation) {
    return This->lpVtbl->CreateAnimation(This,animation);
}
/*** IDCompositionDesktopDevice methods ***/
static inline HRESULT IDCompositionDesktopDevice_CreateTargetForHwnd(IDCompositionDesktopDevice* This,HWND hwnd,BOOL topmost,IDCompositionTarget **target) {
    return This->lpVtbl->CreateTargetForHwnd(This,hwnd,topmost,target);
}
static inline HRESULT IDCompositionDesktopDevice_CreateSurfaceFromHandle(IDCompositionDesktopDevice* This,HANDLE handle,IUnknown **surface) {
    return This->lpVtbl->CreateSurfaceFromHandle(This,handle,surface);
}
static inline HRESULT IDCompositionDesktopDevice_CreateSurfaceFromHwnd(IDCompositionDesktopDevice* This,HWND hwnd,IUnknown **surface) {
    return This->lpVtbl->CreateSurfaceFromHwnd(This,hwnd,surface);
}
#endif
#endif

#endif


#endif  /* __IDCompositionDesktopDevice_INTERFACE_DEFINED__ */

STDAPI DCompositionCreateDevice(IDXGIDevice *dxgi_device, REFIID iid, void **device);
STDAPI DCompositionCreateDevice2(IUnknown *rendering_device, REFIID iid, void **device);
/* Begin additional prototypes for all interfaces */


/* End additional prototypes */

#ifdef __cplusplus
}
#endif

#endif /* __dcomp_h__ */

Messung V0.5 in Prozent
C=95 H=100 G=97

¤ Dauer der Verarbeitung: 0.70 Sekunden  (vorverarbeitet am  2026-07-03) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik