zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

dcomp.h (31043B) - Raw


      1 /**
      2  * This file has no copyright assigned and is placed in the Public Domain.
      3  * This file is part of the mingw-w64 runtime package.
      4  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
      5  */
      6 
      7 #ifndef _DCOMP_H_
      8 #define _DCOMP_H_
      9 
     10 #include <d2dbasetypes.h>
     11 #ifndef D3DMATRIX_DEFINED
     12 #include <d3d9types.h>
     13 #endif
     14 #include <d2d1_1.h>
     15 #include <winapifamily.h>
     16 
     17 #include <dcomptypes.h>
     18 #include <dcompanimation.h>
     19 
     20 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
     21 
     22 #undef INTERFACE
     23 #define INTERFACE IDCompositionSurface
     24 DECLARE_INTERFACE_IID_(IDCompositionSurface,IUnknown,"bb8a4953-2c99-4f5a-96f5-4819027fa3ac")
     25 {
     26     STDMETHOD(BeginDraw)(THIS_ const RECT*,REFIID,void**,POINT*) PURE;
     27     STDMETHOD(EndDraw)(THIS) PURE;
     28     STDMETHOD(SuspendDraw)(THIS) PURE;
     29     STDMETHOD(ResumeDraw)(THIS) PURE;
     30     STDMETHOD(Scroll)(THIS_ const RECT*,const RECT*,int,int) PURE;
     31 };
     32 
     33 #undef INTERFACE
     34 #define INTERFACE IDCompositionVirtualSurface
     35 DECLARE_INTERFACE_IID_(IDCompositionVirtualSurface,IDCompositionSurface,"ae471c51-5f53-4a24-8d3e-d0c39c30b3f0")
     36 {
     37     STDMETHOD(Resize)(THIS_ UINT,UINT) PURE;
     38     STDMETHOD(Trim)(THIS_ const RECT*,UINT) PURE;
     39 };
     40 
     41 #undef INTERFACE
     42 #define INTERFACE IDCompositionEffect
     43 DECLARE_INTERFACE_IID_(IDCompositionEffect,IUnknown,"ec81b08f-bfcb-4e8d-b193-a915587999e8")
     44 {
     45 };
     46 
     47 #undef INTERFACE
     48 #define INTERFACE IDCompositionTransform3D
     49 DECLARE_INTERFACE_IID_(IDCompositionTransform3D,IDCompositionEffect,"71185722-246b-41f2-aad1-0443f7f4bfc2")
     50 {
     51 };
     52 
     53 #undef INTERFACE
     54 #define INTERFACE IDCompositionTransform
     55 DECLARE_INTERFACE_IID_(IDCompositionTransform,IDCompositionTransform3D,"fd55faa7-37e0-4c20-95d2-9be45bc33f55")
     56 {
     57 };
     58 
     59 #undef INTERFACE
     60 #define INTERFACE IDCompositionTranslateTransform
     61 DECLARE_INTERFACE_IID_(IDCompositionTranslateTransform,IDCompositionTransform,"06791122-c6f0-417d-8323-269e987f5954")
     62 {
     63 #if defined(_MSC_VER) && defined(__cplusplus)
     64     STDMETHOD(SetOffsetX)(THIS_ float) PURE;
     65     STDMETHOD(SetOffsetX)(THIS_ IDCompositionAnimation*) PURE;
     66     STDMETHOD(SetOffsetY)(THIS_ float) PURE;
     67     STDMETHOD(SetOffsetY)(THIS_ IDCompositionAnimation*) PURE;
     68 #else
     69     STDMETHOD(SetOffsetX)(THIS_ IDCompositionAnimation*) PURE;
     70     STDMETHOD(SetOffsetX)(THIS_ float) PURE;
     71     STDMETHOD(SetOffsetY)(THIS_ IDCompositionAnimation*) PURE;
     72     STDMETHOD(SetOffsetY)(THIS_ float) PURE;
     73 #endif
     74 };
     75 
     76 #undef INTERFACE
     77 #define INTERFACE IDCompositionScaleTransform
     78 DECLARE_INTERFACE_IID_(IDCompositionScaleTransform,IDCompositionTransform,"71fde914-40ef-45ef-bd51-68b037c339f9")
     79 {
     80 #if defined(_MSC_VER) && defined(__cplusplus)
     81     STDMETHOD(SetScaleX)(THIS_ float) PURE;
     82     STDMETHOD(SetScaleX)(THIS_ IDCompositionAnimation*) PURE;
     83     STDMETHOD(SetScaleY)(THIS_ float) PURE;
     84     STDMETHOD(SetScaleY)(THIS_ IDCompositionAnimation*) PURE;
     85     STDMETHOD(SetCenterX)(THIS_ float) PURE;
     86     STDMETHOD(SetCenterX)(THIS_ IDCompositionAnimation*) PURE;
     87     STDMETHOD(SetCenterY)(THIS_ float) PURE;
     88     STDMETHOD(SetCenterY)(THIS_ IDCompositionAnimation*) PURE;
     89 #else
     90     STDMETHOD(SetScaleX)(THIS_ IDCompositionAnimation*) PURE;
     91     STDMETHOD(SetScaleX)(THIS_ float) PURE;
     92     STDMETHOD(SetScaleY)(THIS_ IDCompositionAnimation*) PURE;
     93     STDMETHOD(SetScaleY)(THIS_ float) PURE;
     94     STDMETHOD(SetCenterX)(THIS_ IDCompositionAnimation*) PURE;
     95     STDMETHOD(SetCenterX)(THIS_ float) PURE;
     96     STDMETHOD(SetCenterY)(THIS_ IDCompositionAnimation*) PURE;
     97     STDMETHOD(SetCenterY)(THIS_ float) PURE;
     98 #endif
     99 };
    100 
    101 #undef INTERFACE
    102 #define INTERFACE IDCompositionRotateTransform
    103 DECLARE_INTERFACE_IID_(IDCompositionRotateTransform,IDCompositionTransform,"641ed83c-ae96-46c5-90dc-32774cc5c6d5")
    104 {
    105 #if defined(_MSC_VER) && defined(__cplusplus)
    106     STDMETHOD(SetAngle)(THIS_ float) PURE;
    107     STDMETHOD(SetAngle)(THIS_ IDCompositionAnimation*) PURE;
    108     STDMETHOD(SetCenterX)(THIS_ float) PURE;
    109     STDMETHOD(SetCenterX)(THIS_ IDCompositionAnimation*) PURE;
    110     STDMETHOD(SetCenterY)(THIS_ float) PURE;
    111     STDMETHOD(SetCenterY)(THIS_ IDCompositionAnimation*) PURE;
    112 #else
    113     STDMETHOD(SetAngle)(THIS_ IDCompositionAnimation*) PURE;
    114     STDMETHOD(SetAngle)(THIS_ float) PURE;
    115     STDMETHOD(SetCenterX)(THIS_ IDCompositionAnimation*) PURE;
    116     STDMETHOD(SetCenterX)(THIS_ float) PURE;
    117     STDMETHOD(SetCenterY)(THIS_ IDCompositionAnimation*) PURE;
    118     STDMETHOD(SetCenterY)(THIS_ float) PURE;
    119 #endif
    120 };
    121 
    122 #undef INTERFACE
    123 #define INTERFACE IDCompositionSkewTransform
    124 DECLARE_INTERFACE_IID_(IDCompositionSkewTransform,IDCompositionTransform,"e57aa735-dcdb-4c72-9c61-0591f58889ee")
    125 {
    126 #if defined(_MSC_VER) && defined(__cplusplus)
    127     STDMETHOD(SetAngleX)(THIS_ float) PURE;
    128     STDMETHOD(SetAngleX)(THIS_ IDCompositionAnimation*) PURE;
    129     STDMETHOD(SetAngleY)(THIS_ float) PURE;
    130     STDMETHOD(SetAngleY)(THIS_ IDCompositionAnimation*) PURE;
    131     STDMETHOD(SetCenterX)(THIS_ float) PURE;
    132     STDMETHOD(SetCenterX)(THIS_ IDCompositionAnimation*) PURE;
    133     STDMETHOD(SetCenterY)(THIS_ float) PURE;
    134     STDMETHOD(SetCenterY)(THIS_ IDCompositionAnimation*) PURE;
    135 #else
    136     STDMETHOD(SetAngleX)(THIS_ IDCompositionAnimation*) PURE;
    137     STDMETHOD(SetAngleX)(THIS_ float) PURE;
    138     STDMETHOD(SetAngleY)(THIS_ IDCompositionAnimation*) PURE;
    139     STDMETHOD(SetAngleY)(THIS_ float) PURE;
    140     STDMETHOD(SetCenterX)(THIS_ IDCompositionAnimation*) PURE;
    141     STDMETHOD(SetCenterX)(THIS_ float) PURE;
    142     STDMETHOD(SetCenterY)(THIS_ IDCompositionAnimation*) PURE;
    143     STDMETHOD(SetCenterY)(THIS_ float) PURE;
    144 #endif
    145 };
    146 
    147 #undef INTERFACE
    148 #define INTERFACE IDCompositionMatrixTransform
    149 DECLARE_INTERFACE_IID_(IDCompositionMatrixTransform,IDCompositionTransform,"16cdff07-c503-419c-83f2-0965c7af1fa6")
    150 {
    151     STDMETHOD(SetMatrix)(THIS_ const D2D_MATRIX_3X2_F&) PURE;
    152 #if defined(_MSC_VER) && defined(__cplusplus)
    153     STDMETHOD(SetMatrixElement)(THIS_ int,int,float) PURE;
    154     STDMETHOD(SetMatrixElement)(THIS_ int,int,IDCompositionAnimation*) PURE;
    155 #else
    156     STDMETHOD(SetMatrixElement)(THIS_ int,int,IDCompositionAnimation*) PURE;
    157     STDMETHOD(SetMatrixElement)(THIS_ int,int,float) PURE;
    158 #endif
    159 };
    160 
    161 #undef INTERFACE
    162 #define INTERFACE IDCompositionTranslateTransform3D
    163 DECLARE_INTERFACE_IID_(IDCompositionTranslateTransform3D,IDCompositionTransform3D,"91636d4b-9ba1-4532-aaf7-e3344994d788")
    164 {
    165 #if defined(_MSC_VER) && defined(__cplusplus)
    166     STDMETHOD(SetOffsetX)(THIS_ float) PURE;
    167     STDMETHOD(SetOffsetX)(THIS_ IDCompositionAnimation*) PURE;
    168     STDMETHOD(SetOffsetY)(THIS_ float) PURE;
    169     STDMETHOD(SetOffsetY)(THIS_ IDCompositionAnimation*) PURE;
    170     STDMETHOD(SetOffsetZ)(THIS_ float) PURE;
    171     STDMETHOD(SetOffsetZ)(THIS_ IDCompositionAnimation*) PURE;
    172 #else
    173     STDMETHOD(SetOffsetX)(THIS_ IDCompositionAnimation*) PURE;
    174     STDMETHOD(SetOffsetX)(THIS_ float) PURE;
    175     STDMETHOD(SetOffsetY)(THIS_ IDCompositionAnimation*) PURE;
    176     STDMETHOD(SetOffsetY)(THIS_ float) PURE;
    177     STDMETHOD(SetOffsetZ)(THIS_ IDCompositionAnimation*) PURE;
    178     STDMETHOD(SetOffsetZ)(THIS_ float) PURE;
    179 #endif
    180 };
    181 
    182 #undef INTERFACE
    183 #define INTERFACE IDCompositionScaleTransform3D
    184 DECLARE_INTERFACE_IID_(IDCompositionScaleTransform3D,IDCompositionTransform3D,"2a9e9ead-364b-4b15-a7c4-a1997f78b389")
    185 {
    186 #if defined(_MSC_VER) && defined(__cplusplus)
    187     STDMETHOD(SetScaleX)(THIS_ float) PURE;
    188     STDMETHOD(SetScaleX)(THIS_ IDCompositionAnimation*) PURE;
    189     STDMETHOD(SetScaleY)(THIS_ float) PURE;
    190     STDMETHOD(SetScaleY)(THIS_ IDCompositionAnimation*) PURE;
    191     STDMETHOD(SetScaleZ)(THIS_ float) PURE;
    192     STDMETHOD(SetScaleZ)(THIS_ IDCompositionAnimation*) PURE;
    193     STDMETHOD(SetCenterX)(THIS_ float) PURE;
    194     STDMETHOD(SetCenterX)(THIS_ IDCompositionAnimation*) PURE;
    195     STDMETHOD(SetCenterY)(THIS_ float) PURE;
    196     STDMETHOD(SetCenterY)(THIS_ IDCompositionAnimation*) PURE;
    197     STDMETHOD(SetCenterZ)(THIS_ float) PURE;
    198     STDMETHOD(SetCenterZ)(THIS_ IDCompositionAnimation*) PURE;
    199 #else
    200     STDMETHOD(SetScaleX)(THIS_ IDCompositionAnimation*) PURE;
    201     STDMETHOD(SetScaleX)(THIS_ float) PURE;
    202     STDMETHOD(SetScaleY)(THIS_ IDCompositionAnimation*) PURE;
    203     STDMETHOD(SetScaleY)(THIS_ float) PURE;
    204     STDMETHOD(SetScaleZ)(THIS_ IDCompositionAnimation*) PURE;
    205     STDMETHOD(SetScaleZ)(THIS_ float) PURE;
    206     STDMETHOD(SetCenterX)(THIS_ IDCompositionAnimation*) PURE;
    207     STDMETHOD(SetCenterX)(THIS_ float) PURE;
    208     STDMETHOD(SetCenterY)(THIS_ IDCompositionAnimation*) PURE;
    209     STDMETHOD(SetCenterY)(THIS_ float) PURE;
    210     STDMETHOD(SetCenterZ)(THIS_ IDCompositionAnimation*) PURE;
    211     STDMETHOD(SetCenterZ)(THIS_ float) PURE;
    212 #endif
    213 };
    214 
    215 #undef INTERFACE
    216 #define INTERFACE IDCompositionRotateTransform3D
    217 DECLARE_INTERFACE_IID_(IDCompositionRotateTransform3D,IDCompositionTransform3D,"d8f5b23f-d429-4a91-b55a-d2f45fd75b18")
    218 {
    219 #if defined(_MSC_VER) && defined(__cplusplus)
    220     STDMETHOD(SetAngle)(THIS_ float) PURE;
    221     STDMETHOD(SetAngle)(THIS_ IDCompositionAnimation*) PURE;
    222     STDMETHOD(SetAxisX)(THIS_ float) PURE;
    223     STDMETHOD(SetAxisX)(THIS_ IDCompositionAnimation*) PURE;
    224     STDMETHOD(SetAxisY)(THIS_ float) PURE;
    225     STDMETHOD(SetAxisY)(THIS_ IDCompositionAnimation*) PURE;
    226     STDMETHOD(SetAxisZ)(THIS_ float) PURE;
    227     STDMETHOD(SetAxisZ)(THIS_ IDCompositionAnimation*) PURE;
    228     STDMETHOD(SetCenterX)(THIS_ float) PURE;
    229     STDMETHOD(SetCenterX)(THIS_ IDCompositionAnimation*) PURE;
    230     STDMETHOD(SetCenterY)(THIS_ float) PURE;
    231     STDMETHOD(SetCenterY)(THIS_ IDCompositionAnimation*) PURE;
    232     STDMETHOD(SetCenterZ)(THIS_ float) PURE;
    233     STDMETHOD(SetCenterZ)(THIS_ IDCompositionAnimation*) PURE;
    234 #else
    235     STDMETHOD(SetAngle)(THIS_ IDCompositionAnimation*) PURE;
    236     STDMETHOD(SetAngle)(THIS_ float) PURE;
    237     STDMETHOD(SetAxisX)(THIS_ IDCompositionAnimation*) PURE;
    238     STDMETHOD(SetAxisX)(THIS_ float) PURE;
    239     STDMETHOD(SetAxisY)(THIS_ IDCompositionAnimation*) PURE;
    240     STDMETHOD(SetAxisY)(THIS_ float) PURE;
    241     STDMETHOD(SetAxisZ)(THIS_ IDCompositionAnimation*) PURE;
    242     STDMETHOD(SetAxisZ)(THIS_ float) PURE;
    243     STDMETHOD(SetCenterX)(THIS_ IDCompositionAnimation*) PURE;
    244     STDMETHOD(SetCenterX)(THIS_ float) PURE;
    245     STDMETHOD(SetCenterY)(THIS_ IDCompositionAnimation*) PURE;
    246     STDMETHOD(SetCenterY)(THIS_ float) PURE;
    247     STDMETHOD(SetCenterZ)(THIS_ IDCompositionAnimation*) PURE;
    248     STDMETHOD(SetCenterZ)(THIS_ float) PURE;
    249 #endif
    250 };
    251 
    252 #undef INTERFACE
    253 #define INTERFACE IDCompositionMatrixTransform3D
    254 DECLARE_INTERFACE_IID_(IDCompositionMatrixTransform3D,IDCompositionTransform3D,"4b3363f0-643b-41b7-b6e0-ccf22d34467c")
    255 {
    256     STDMETHOD(SetMatrix)(THIS_ const D3DMATRIX&) PURE;
    257 #if defined(_MSC_VER) && defined(__cplusplus)
    258     STDMETHOD(SetMatrixElement)(THIS_ int,int,float) PURE;
    259     STDMETHOD(SetMatrixElement)(THIS_ int,int,IDCompositionAnimation*) PURE;
    260 #else
    261     STDMETHOD(SetMatrixElement)(THIS_ int,int,IDCompositionAnimation*) PURE;
    262     STDMETHOD(SetMatrixElement)(THIS_ int,int,float) PURE;
    263 #endif
    264 };
    265 
    266 #undef INTERFACE
    267 #define INTERFACE IDCompositionEffectGroup
    268 DECLARE_INTERFACE_IID_(IDCompositionEffectGroup,IDCompositionEffect,"a7929a74-e6b2-4bd6-8b95-4040119ca34d")
    269 {
    270 #if defined(_MSC_VER) && defined(__cplusplus)
    271     STDMETHOD(SetOpacity)(THIS_ float) PURE;
    272     STDMETHOD(SetOpacity)(THIS_ IDCompositionAnimation*) PURE;
    273 #else
    274     STDMETHOD(SetOpacity)(THIS_ IDCompositionAnimation*) PURE;
    275     STDMETHOD(SetOpacity)(THIS_ float) PURE;
    276 #endif
    277     STDMETHOD(SetTransform3D)(THIS_ IDCompositionTransform3D*) PURE;
    278 };
    279 
    280 #undef INTERFACE
    281 #define INTERFACE IDCompositionClip
    282 DECLARE_INTERFACE_IID_(IDCompositionClip,IUnknown,"64ac3703-9d3f-45ec-a109-7cac0e7a13a7")
    283 {
    284 };
    285 
    286 #undef INTERFACE
    287 #define INTERFACE IDCompositionRectangleClip
    288 DECLARE_INTERFACE_IID_(IDCompositionRectangleClip,IDCompositionClip,"9842ad7d-d9cf-4908-aed7-48b51da5e7c2")
    289 {
    290 #if defined(_MSC_VER) && defined(__cplusplus)
    291     STDMETHOD(SetLeft)(THIS_ float) PURE;
    292     STDMETHOD(SetLeft)(THIS_ IDCompositionAnimation*) PURE;
    293     STDMETHOD(SetTop)(THIS_ float) PURE;
    294     STDMETHOD(SetTop)(THIS_ IDCompositionAnimation*) PURE;
    295     STDMETHOD(SetRight)(THIS_ float) PURE;
    296     STDMETHOD(SetRight)(THIS_ IDCompositionAnimation*) PURE;
    297     STDMETHOD(SetBottom)(THIS_ float) PURE;
    298     STDMETHOD(SetBottom)(THIS_ IDCompositionAnimation*) PURE;
    299     STDMETHOD(SetTopLeftRadiusX)(THIS_ float) PURE;
    300     STDMETHOD(SetTopLeftRadiusX)(THIS_ IDCompositionAnimation*) PURE;
    301     STDMETHOD(SetTopLeftRadiusY)(THIS_ float) PURE;
    302     STDMETHOD(SetTopLeftRadiusY)(THIS_ IDCompositionAnimation*) PURE;
    303     STDMETHOD(SetTopRightRadiusX)(THIS_ float) PURE;
    304     STDMETHOD(SetTopRightRadiusX)(THIS_ IDCompositionAnimation*) PURE;
    305     STDMETHOD(SetTopRightRadiusY)(THIS_ float) PURE;
    306     STDMETHOD(SetTopRightRadiusY)(THIS_ IDCompositionAnimation*) PURE;
    307     STDMETHOD(SetBottomLeftRadiusX)(THIS_ float) PURE;
    308     STDMETHOD(SetBottomLeftRadiusX)(THIS_ IDCompositionAnimation*) PURE;
    309     STDMETHOD(SetBottomLeftRadiusY)(THIS_ float) PURE;
    310     STDMETHOD(SetBottomLeftRadiusY)(THIS_ IDCompositionAnimation*) PURE;
    311     STDMETHOD(SetBottomRightRadiusX)(THIS_ float) PURE;
    312     STDMETHOD(SetBottomRightRadiusX)(THIS_ IDCompositionAnimation*) PURE;
    313     STDMETHOD(SetBottomRightRadiusY)(THIS_ float) PURE;
    314     STDMETHOD(SetBottomRightRadiusY)(THIS_ IDCompositionAnimation*) PURE;
    315 #else
    316     STDMETHOD(SetLeft)(THIS_ IDCompositionAnimation*) PURE;
    317     STDMETHOD(SetLeft)(THIS_ float) PURE;
    318     STDMETHOD(SetTop)(THIS_ IDCompositionAnimation*) PURE;
    319     STDMETHOD(SetTop)(THIS_ float) PURE;
    320     STDMETHOD(SetRight)(THIS_ IDCompositionAnimation*) PURE;
    321     STDMETHOD(SetRight)(THIS_ float) PURE;
    322     STDMETHOD(SetBottom)(THIS_ IDCompositionAnimation*) PURE;
    323     STDMETHOD(SetBottom)(THIS_ float) PURE;
    324     STDMETHOD(SetTopLeftRadiusX)(THIS_ IDCompositionAnimation*) PURE;
    325     STDMETHOD(SetTopLeftRadiusX)(THIS_ float) PURE;
    326     STDMETHOD(SetTopLeftRadiusY)(THIS_ IDCompositionAnimation*) PURE;
    327     STDMETHOD(SetTopLeftRadiusY)(THIS_ float) PURE;
    328     STDMETHOD(SetTopRightRadiusX)(THIS_ IDCompositionAnimation*) PURE;
    329     STDMETHOD(SetTopRightRadiusX)(THIS_ float) PURE;
    330     STDMETHOD(SetTopRightRadiusY)(THIS_ IDCompositionAnimation*) PURE;
    331     STDMETHOD(SetTopRightRadiusY)(THIS_ float) PURE;
    332     STDMETHOD(SetBottomLeftRadiusX)(THIS_ IDCompositionAnimation*) PURE;
    333     STDMETHOD(SetBottomLeftRadiusX)(THIS_ float) PURE;
    334     STDMETHOD(SetBottomLeftRadiusY)(THIS_ IDCompositionAnimation*) PURE;
    335     STDMETHOD(SetBottomLeftRadiusY)(THIS_ float) PURE;
    336     STDMETHOD(SetBottomRightRadiusX)(THIS_ IDCompositionAnimation*) PURE;
    337     STDMETHOD(SetBottomRightRadiusX)(THIS_ float) PURE;
    338     STDMETHOD(SetBottomRightRadiusY)(THIS_ IDCompositionAnimation*) PURE;
    339     STDMETHOD(SetBottomRightRadiusY)(THIS_ float) PURE;
    340 #endif
    341 };
    342 
    343 #undef INTERFACE
    344 #define INTERFACE IDCompositionVisual
    345 DECLARE_INTERFACE_IID_(IDCompositionVisual,IUnknown,"4d93059d-097b-4651-9a60-f0f25116e2f3")
    346 {
    347 #if defined(_MSC_VER) && defined(__cplusplus)
    348     STDMETHOD(SetOffsetX)(THIS_ float) PURE;
    349     STDMETHOD(SetOffsetX)(THIS_ IDCompositionAnimation*) PURE;
    350     STDMETHOD(SetOffsetY)(THIS_ float) PURE;
    351     STDMETHOD(SetOffsetY)(THIS_ IDCompositionAnimation*) PURE;
    352     STDMETHOD(SetTransform)(THIS_ const D2D_MATRIX_3X2_F&) PURE;
    353     STDMETHOD(SetTransform)(THIS_ IDCompositionTransform*) PURE;
    354 #else
    355     STDMETHOD(SetOffsetX)(THIS_ IDCompositionAnimation*) PURE;
    356     STDMETHOD(SetOffsetX)(THIS_ float) PURE;
    357     STDMETHOD(SetOffsetY)(THIS_ IDCompositionAnimation*) PURE;
    358     STDMETHOD(SetOffsetY)(THIS_ float) PURE;
    359     STDMETHOD(SetTransform)(THIS_ IDCompositionTransform*) PURE;
    360     STDMETHOD(SetTransform)(THIS_ const D2D_MATRIX_3X2_F&) PURE;
    361 #endif
    362     STDMETHOD(SetTransformParent)(THIS_ IDCompositionVisual*) PURE;
    363     STDMETHOD(SetEffect)(THIS_ IDCompositionEffect*) PURE;
    364     STDMETHOD(SetBitmapInterpolationMode)(THIS_ DCOMPOSITION_BITMAP_INTERPOLATION_MODE) PURE;
    365     STDMETHOD(SetBorderMode)(THIS_ DCOMPOSITION_BORDER_MODE) PURE;
    366 #if defined(_MSC_VER) && defined(__cplusplus)
    367     STDMETHOD(SetClip)(THIS_ const D2D_RECT_F&) PURE;
    368     STDMETHOD(SetClip)(THIS_ IDCompositionClip*) PURE;
    369 #else
    370     STDMETHOD(SetClip)(THIS_ IDCompositionClip*) PURE;
    371     STDMETHOD(SetClip)(THIS_ const D2D_RECT_F&) PURE;
    372 #endif
    373     STDMETHOD(SetContent)(THIS_ IUnknown*) PURE;
    374     STDMETHOD(AddVisual)(THIS_ IDCompositionVisual*,BOOL,IDCompositionVisual*) PURE;
    375     STDMETHOD(RemoveVisual)(THIS_ IDCompositionVisual*) PURE;
    376     STDMETHOD(RemoveAllVisuals)(THIS_) PURE;
    377     STDMETHOD(SetCompositeMode)(THIS_ DCOMPOSITION_COMPOSITE_MODE) PURE;
    378 };
    379 
    380 #undef INTERFACE
    381 #define INTERFACE IDCompositionTarget
    382 DECLARE_INTERFACE_IID_(IDCompositionTarget,IUnknown,"eacdd04c-117e-4e17-88f4-d1b12b0e3d89")
    383 {
    384     STDMETHOD(SetRoot)(THIS_ IDCompositionVisual*) PURE;
    385 };
    386 
    387 #undef INTERFACE
    388 #define INTERFACE IDCompositionDevice
    389 DECLARE_INTERFACE_IID_(IDCompositionDevice,IUnknown,"c37ea93a-e7aa-450d-b16f-9746cb0407f3")
    390 {
    391     STDMETHOD(Commit)(THIS) PURE;
    392     STDMETHOD(WaitForCommitCompletion)(THIS) PURE;
    393     STDMETHOD(GetFrameStatistics)(THIS_ DCOMPOSITION_FRAME_STATISTICS*) PURE;
    394     STDMETHOD(CreateTargetForHwnd)(THIS_ HWND,BOOL,IDCompositionTarget**) PURE;
    395     STDMETHOD(CreateVisual)(THIS_ IDCompositionVisual**) PURE;
    396     STDMETHOD(CreateSurface)(THIS_ UINT,UINT,DXGI_FORMAT,DXGI_ALPHA_MODE,IDCompositionSurface**) PURE;
    397     STDMETHOD(CreateVirtualSurface)(THIS_ UINT,UINT,DXGI_FORMAT,DXGI_ALPHA_MODE,IDCompositionVirtualSurface**) PURE;
    398     STDMETHOD(CreateSurfaceFromHandle)(THIS_ HANDLE,IUnknown**) PURE;
    399     STDMETHOD(CreateSurfaceFromHwnd)(THIS_ HWND,IUnknown**) PURE;
    400     STDMETHOD(CreateTranslateTransform)(THIS_ IDCompositionTranslateTransform**) PURE;
    401     STDMETHOD(CreateScaleTransform)(THIS_ IDCompositionScaleTransform**) PURE;
    402     STDMETHOD(CreateRotateTransform)(THIS_ IDCompositionRotateTransform**) PURE;
    403     STDMETHOD(CreateSkewTransform)(THIS_ IDCompositionSkewTransform**) PURE;
    404     STDMETHOD(CreateMatrixTransform)(THIS_ IDCompositionMatrixTransform**) PURE;
    405     STDMETHOD(CreateTransformGroup)(THIS_ IDCompositionTransform**,UINT,IDCompositionTransform**) PURE;
    406     STDMETHOD(CreateTranslateTransform3D)(THIS_ IDCompositionTranslateTransform3D**) PURE;
    407     STDMETHOD(CreateScaleTransform3D)(THIS_ IDCompositionScaleTransform3D**) PURE;
    408     STDMETHOD(CreateRotateTransform3D)(THIS_ IDCompositionRotateTransform3D**) PURE;
    409     STDMETHOD(CreateMatrixTransform3D)(THIS_ IDCompositionMatrixTransform3D**) PURE;
    410     STDMETHOD(CreateTransform3DGroup)(THIS_ IDCompositionTransform3D**,UINT,IDCompositionTransform3D**) PURE;
    411     STDMETHOD(CreateEffectGroup)(THIS_ IDCompositionEffectGroup**) PURE;
    412     STDMETHOD(CreateRectangleClip)(THIS_ IDCompositionRectangleClip**) PURE;
    413     STDMETHOD(CreateAnimation)(THIS_ IDCompositionAnimation**) PURE;
    414     STDMETHOD(CheckDeviceState)(THIS_ BOOL*) PURE;
    415 };
    416 
    417 #ifdef __CRT_UUID_DECL
    418 __CRT_UUID_DECL(IDCompositionDevice,0xc37ea93a,0xe7aa,0x450d,0xb1,0x6f,0x97,0x46,0xcb,0x04,0x07,0xf3);
    419 #endif
    420 
    421 STDAPI DCompositionCreateDevice(IDXGIDevice *dxgiDevice, REFIID iid, void **dcompositionDevice);
    422 
    423 #if (_WIN32_WINNT >= 0x0603)
    424 
    425 STDAPI DCompositionCreateDevice2(IUnknown *renderingDevice, REFIID iid, void **dcompositionDevice);
    426 
    427 #undef INTERFACE
    428 #define INTERFACE IDCompositionVisual2
    429 DECLARE_INTERFACE_IID_(IDCompositionVisual2, IDCompositionVisual, "E8DE1639-4331-4B26-BC5F-6A321D347A85")
    430 {
    431     STDMETHOD(SetOpacityMode)(THIS_ DCOMPOSITION_OPACITY_MODE) PURE;
    432     STDMETHOD(SetBackFaceVisibility)(THIS_ DCOMPOSITION_BACKFACE_VISIBILITY) PURE;
    433 };
    434 
    435 #ifdef __CRT_UUID_DECL
    436 __CRT_UUID_DECL(IDCompositionVisual2,0xe8de1639,0x4331,0x4b26,0xbc,0x5f,0x6a,0x32,0x1d,0x34,0x7a,0x85);
    437 #endif
    438 
    439 
    440 #undef INTERFACE
    441 #define INTERFACE IDCompositionSurfaceFactory
    442 DECLARE_INTERFACE_IID_(IDCompositionSurfaceFactory, IUnknown, "E334BC12-3937-4E02-85EB-FCF4EB30D2C8")
    443 {
    444     STDMETHOD(CreateSurface)(THIS_ UINT,UINT, DXGI_FORMAT, DXGI_ALPHA_MODE, IDCompositionSurface**) PURE;
    445     STDMETHOD(CreateVirtualSurface)(THIS_ UINT, UINT, DXGI_FORMAT , DXGI_ALPHA_MODE, IDCompositionVirtualSurface**) PURE;
    446 };
    447 
    448 #ifdef __CRT_UUID_DECL
    449 __CRT_UUID_DECL(IDCompositionSurfaceFactory,0xe334bc12,0x3937,0x4e02,0x85,0xeb,0xfc,0xf4,0xeb,0x30,0xd2,0xc8);
    450 #endif
    451 
    452 
    453 #undef INTERFACE
    454 #define INTERFACE IDCompositionDevice2
    455 DECLARE_INTERFACE_IID_(IDCompositionDevice2, IUnknown, "75F6468D-1B8E-447C-9BC6-75FEA80B5B25")
    456 {
    457     STDMETHOD(Commit)(THIS) PURE;
    458     STDMETHOD(WaitForCommitCompletion)(THIS) PURE;
    459     STDMETHOD(GetFrameStatistics)(THIS_ DCOMPOSITION_FRAME_STATISTICS*) PURE;
    460     STDMETHOD(CreateVisual)(THIS_ IDCompositionVisual2**) PURE;
    461     STDMETHOD(CreateSurfaceFactory)(THIS_ IUnknown*, IDCompositionSurfaceFactory**) PURE;
    462     STDMETHOD(CreateSurface)(THIS_ UINT, UINT, DXGI_FORMAT, DXGI_ALPHA_MODE, IDCompositionSurface**) PURE;
    463     STDMETHOD(CreateVirtualSurface)(THIS_ UINT, UINT, DXGI_FORMAT, DXGI_ALPHA_MODE, IDCompositionVirtualSurface**) PURE;
    464     STDMETHOD(CreateTranslateTransform)(THIS_ IDCompositionTranslateTransform**) PURE;
    465     STDMETHOD(CreateScaleTransform)(THIS_ IDCompositionScaleTransform**) PURE;
    466     STDMETHOD(CreateRotateTransform)(THIS_ IDCompositionRotateTransform**) PURE;
    467     STDMETHOD(CreateSkewTransform)(THIS_ IDCompositionSkewTransform**) PURE;
    468     STDMETHOD(CreateMatrixTransform)(THIS_ IDCompositionMatrixTransform**) PURE;
    469     STDMETHOD(CreateTransformGroup)(THIS_ IDCompositionTransform**, UINT, IDCompositionTransform**) PURE;
    470     STDMETHOD(CreateTranslateTransform3D)(THIS_ IDCompositionTranslateTransform3D**) PURE;
    471     STDMETHOD(CreateScaleTransform3D)(THIS_ IDCompositionScaleTransform3D**) PURE;
    472     STDMETHOD(CreateRotateTransform3D)(THIS_ IDCompositionRotateTransform3D**) PURE;
    473     STDMETHOD(CreateMatrixTransform3D)(THIS_ IDCompositionMatrixTransform3D**) PURE;
    474     STDMETHOD(CreateTransform3DGroup)(THIS_ IDCompositionTransform3D**, UINT, IDCompositionTransform3D**) PURE;
    475     STDMETHOD(CreateEffectGroup)(THIS_ IDCompositionEffectGroup**) PURE;
    476     STDMETHOD(CreateRectangleClip)(THIS_ IDCompositionRectangleClip**) PURE;
    477     STDMETHOD(CreateAnimation)(THIS_ IDCompositionAnimation**) PURE;
    478 };
    479 
    480 #ifdef __CRT_UUID_DECL
    481 __CRT_UUID_DECL(IDCompositionDevice2,0x75f6468d,0x1b8e,0x447c,0x9b,0xc6,0x75,0xfe,0xa8,0x0b,0x5b,0x25);
    482 #endif
    483 
    484 
    485 #undef INTERFACE
    486 #define INTERFACE IDCompositionDesktopDevice
    487 DECLARE_INTERFACE_IID_(IDCompositionDesktopDevice, IDCompositionDevice2, "5F4633FE-1E08-4CB8-8C75-CE24333F5602")
    488 {
    489     STDMETHOD(CreateTargetForHwnd)(THIS_ HWND, BOOL, IDCompositionTarget**) PURE;
    490     STDMETHOD(CreateSurfaceFromHandle)(THIS_ HANDLE, IUnknown**) PURE;
    491     STDMETHOD(CreateSurfaceFromHwnd)(THIS_ HWND, IUnknown**) PURE;
    492 };
    493 
    494 #ifdef __CRT_UUID_DECL
    495 __CRT_UUID_DECL(IDCompositionDesktopDevice,0x5f4633fe,0x1e08,0x4cb8,0x8c,0x75,0xce,0x24,0x33,0x3f,0x56,0x02);
    496 #endif
    497 
    498 
    499 #undef INTERFACE
    500 #define INTERFACE IDCompositionDeviceDebug
    501 DECLARE_INTERFACE_IID_(IDCompositionDeviceDebug, IUnknown, "A1A3C64A-224F-4A81-9773-4F03A89D3C6C")
    502 {
    503     STDMETHOD(EnableDebugCounters)(THIS_) PURE;
    504     STDMETHOD(DisableDebugCounters)(THIS_) PURE;
    505 };
    506 
    507 #ifdef __CRT_UUID_DECL
    508 __CRT_UUID_DECL(IDCompositionDeviceDebug,0xa1a3c64a,0x224f,0x4a81,0x97,0x73,0x4f,0x03,0xa8,0x9d,0x3c,0x6c);
    509 #endif
    510 
    511 
    512 #undef INTERFACE
    513 #define INTERFACE IDCompositionVisualDebug
    514 DECLARE_INTERFACE_IID_(IDCompositionVisualDebug, IDCompositionVisual2, "FED2B808-5EB4-43A0-AEA3-35F65280F91B")
    515 {
    516     STDMETHOD(EnableHeatMap)(THIS_ const D2D1_COLOR_F &color) PURE;
    517     STDMETHOD(DisableHeatMap)(THIS_) PURE;
    518     STDMETHOD(EnableRedrawRegions)(THIS_) PURE;
    519     STDMETHOD(DisableRedrawRegions)(THIS_) PURE;
    520 };
    521 
    522 #ifdef __CRT_UUID_DECL
    523 __CRT_UUID_DECL(IDCompositionVisualDebug,0xfed2b808,0x5eb4,0x43a0,0xae,0xa3,0x35,0xf6,0x52,0x80,0xf9,0x1b);
    524 #endif
    525 
    526 
    527 #undef INTERFACE
    528 #define INTERFACE IDCompositionFilterEffect
    529 DECLARE_INTERFACE_IID_(IDCompositionFilterEffect, IDCompositionEffect, "30C421D5-8CB2-4E9F-B133-37BE270D4AC2")
    530 {
    531     STDMETHOD(SetInput)(THIS_ UINT index, IUnknown *input, UINT flags) PURE;
    532 };
    533 
    534 #ifdef __CRT_UUID_DECL
    535 __CRT_UUID_DECL(IDCompositionFilterEffect,0x30c421d5,0x8cb2,0x4e9f,0xb1,0x33,0x37,0xbe,0x27,0x0d,0x4a,0xc2);
    536 #endif
    537 
    538 
    539 #undef INTERFACE
    540 #define INTERFACE IDCompositionSaturationEffect
    541 DECLARE_INTERFACE_IID_(IDCompositionSaturationEffect, IDCompositionFilterEffect, "A08DEBDA-3258-4FA4-9F16-9174D3FE93B1")
    542 {
    543 #if defined(_MSC_VER) && defined(__cplusplus)
    544     STDMETHOD(SetSaturation)(THIS_ float ratio) PURE;
    545     STDMETHOD(SetSaturation)(THIS_ IDCompositionAnimation* animation) PURE;
    546 #else
    547     STDMETHOD(SetSaturation)(THIS_ IDCompositionAnimation* animation) PURE;
    548     STDMETHOD(SetSaturation)(THIS_ float ratio ) PURE;
    549 #endif
    550 };
    551 
    552 #ifdef __CRT_UUID_DECL
    553 __CRT_UUID_DECL(IDCompositionSaturationEffect,0xa08debda,0x3258,0x4fa4,0x9f,0x16,0x91,0x74,0xd3,0xfe,0x93,0xb1);
    554 #endif
    555 
    556 
    557 #undef INTERFACE
    558 #define INTERFACE IDCompositionTableTransferEffect
    559 DECLARE_INTERFACE_IID_(IDCompositionTableTransferEffect, IDCompositionFilterEffect, "9B7E82E2-69C5-4EB4-A5F5-A7033F5132CD")
    560 {
    561     STDMETHOD(SetRedTable)(THIS_ const float *tableValues, UINT count) PURE;
    562     STDMETHOD(SetGreenTable)(THIS_ const float *tableValues, UINT count) PURE;
    563     STDMETHOD(SetBlueTable)(THIS_ const float *tableValues, UINT count) PURE;
    564     STDMETHOD(SetAlphaTable)(THIS_ const float *tableValues, UINT count) PURE;
    565     STDMETHOD(SetRedDisable)(THIS_ BOOL redDisable) PURE;
    566     STDMETHOD(SetGreenDisable)(THIS_ BOOL greenDisable) PURE;
    567     STDMETHOD(SetBlueDisable)(THIS_ BOOL blueDisable) PURE;
    568     STDMETHOD(SetAlphaDisable)(THIS_ BOOL alphaDisable) PURE;
    569     STDMETHOD(SetClampOutput)(THIS_ BOOL clampOutput) PURE;
    570 #if defined(_MSC_VER) && defined(__cplusplus)
    571     STDMETHOD(SetRedTableValue)(THIS_ UINT index, float value) PURE;
    572     STDMETHOD(SetRedTableValue)(THIS_ UINT index, IDCompositionAnimation *animation) PURE;
    573 #else
    574     STDMETHOD(SetRedTableValue)(THIS_ UINT index, IDCompositionAnimation *animation) PURE;
    575     STDMETHOD(SetRedTableValue)(THIS_ UINT index, float value) PURE;
    576 #endif
    577 #if defined(_MSC_VER) && defined(__cplusplus)
    578     STDMETHOD(SetGreenTableValue)(THIS_ UINT index, float value) PURE;
    579     STDMETHOD(SetGreenTableValue)(THIS_ UINT index, IDCompositionAnimation *animation) PURE;
    580 #else
    581     STDMETHOD(SetGreenTableValue)(THIS_ UINT index, IDCompositionAnimation *animation) PURE;
    582     STDMETHOD(SetGreenTableValue)(THIS_ UINT index, float value) PURE;
    583 #endif
    584 #if defined(_MSC_VER) && defined(__cplusplus)
    585     STDMETHOD(SetBlueTableValue)(THIS_ UINT index, float value) PURE;
    586     STDMETHOD(SetBlueTableValue)(THIS_ UINT index, IDCompositionAnimation *animation) PURE;
    587 #else
    588     STDMETHOD(SetBlueTableValue)(THIS_ UINT index, IDCompositionAnimation *animation) PURE;
    589     STDMETHOD(SetBlueTableValue)(THIS_ UINT index, float value) PURE;
    590 #endif
    591 #if defined(_MSC_VER) && defined(__cplusplus)
    592     STDMETHOD(SetAlphaTableValue)(THIS_ UINT index, float value) PURE;
    593     STDMETHOD(SetAlphaTableValue)(THIS_ UINT index, IDCompositionAnimation *animation) PURE;
    594 #else
    595     STDMETHOD(SetAlphaTableValue)(THIS_ UINT index, IDCompositionAnimation *animation) PURE;
    596     STDMETHOD(SetAlphaTableValue)(THIS_ UINT index, float value) PURE;
    597 #endif
    598 };
    599 
    600 #ifdef __CRT_UUID_DECL
    601 __CRT_UUID_DECL(IDCompositionTableTransferEffect,0x9b7e82e2,0x69c5,0x4eb4,0xa5,0xf5,0xa7,0x03,0x3f,0x51,0x32,0xcd);
    602 #endif
    603 
    604 
    605 #undef INTERFACE
    606 #define INTERFACE IDCompositionGaussianBlurEffect
    607 DECLARE_INTERFACE_IID_(IDCompositionGaussianBlurEffect, IDCompositionFilterEffect, "45D4D0B7-1BD4-454E-8894-2BFA68443033")
    608 {
    609 
    610 #if defined(_MSC_VER) && defined(__cplusplus)
    611     STDMETHOD(SetStandardDeviation)(THIS_ float amount) PURE;
    612     STDMETHOD(SetStandardDeviation)(THIS_ IDCompositionAnimation* animation) PURE;
    613 #else
    614     STDMETHOD(SetStandardDeviation)(THIS_ IDCompositionAnimation* animation) PURE;
    615     STDMETHOD(SetStandardDeviation)(THIS_ float amount) PURE;
    616 #endif
    617     STDMETHOD(SetBorderMode)(THIS_ D2D1_BORDER_MODE mode) PURE;
    618 };
    619 
    620 #ifdef __CRT_UUID_DECL
    621 __CRT_UUID_DECL(IDCompositionGaussianBlurEffect,0x45d4d0b7,0x1bd4,0x454e,0x88,0x94,0x2b,0xfa,0x68,0x44,0x30,0x33);
    622 #endif
    623 
    624 
    625 #undef INTERFACE
    626 #define INTERFACE IDCompositionColorMatrixEffect
    627 DECLARE_INTERFACE_IID_(IDCompositionColorMatrixEffect, IDCompositionFilterEffect, "C1170A22-3CE2-4966-90D4-55408BFC84C4")
    628 {
    629     STDMETHOD(SetMatrix)(THIS_ const D2D1_MATRIX_5X4_F &matrix) PURE;
    630 #if defined(_MSC_VER) && defined(__cplusplus)
    631     STDMETHOD(SetMatrixElement)(THIS_ int row, int column, float value) PURE;
    632     STDMETHOD(SetMatrixElement)(THIS_ int row, int column, IDCompositionAnimation *animation) PURE;
    633 #else
    634     STDMETHOD(SetMatrixElement)(THIS_ int row, int column, IDCompositionAnimation *animation) PURE;
    635     STDMETHOD(SetMatrixElement)(THIS_ int row, int column, float value) PURE;
    636 #endif
    637     STDMETHOD(SetAlphaMode)(THIS_ D2D1_COLORMATRIX_ALPHA_MODE mode) PURE;
    638     STDMETHOD(SetClampOutput)(THIS_ BOOL clamp) PURE;
    639 };
    640 
    641 #ifdef __CRT_UUID_DECL
    642 __CRT_UUID_DECL(IDCompositionColorMatrixEffect,0xc1170a22,0x3ce2,0x4966,0x90,0xd4,0x55,0x40,0x8b,0xfc,0x84,0xc4);
    643 #endif
    644 
    645 
    646 /* WARNING: some of the arguments are replaced with void*, only what's used has been kept */
    647 #undef INTERFACE
    648 #define INTERFACE IDCompositionDevice3
    649 DECLARE_INTERFACE_IID_(IDCompositionDevice3, IDCompositionDevice2, "0987CB06-F916-48BF-8D35-CE7641781BD9")
    650 {
    651     STDMETHOD(CreateGaussianBlurEffect)(THIS_ IDCompositionGaussianBlurEffect **gaussianBlurEffect) PURE;
    652     STDMETHOD(CreateBrightnessEffect)(THIS_ /* TODO IDCompositionBrightnessEffect */ void **brightnessEffect) PURE;
    653     STDMETHOD(CreateColorMatrixEffect)(THIS_ IDCompositionColorMatrixEffect **colorMatrixEffect) PURE;
    654     STDMETHOD(CreateShadowEffect)(THIS_ /* TODO IDCompositionShadowEffect */ void **shadowEffect) PURE;
    655     STDMETHOD(CreateHueRotationEffect)(THIS_ /* IDCompositionHueRotationEffect */ void **hueRotationEffect) PURE;
    656     STDMETHOD(CreateSaturationEffect)(THIS_ IDCompositionSaturationEffect **saturationEffect) PURE;
    657     STDMETHOD(CreateTurbulenceEffect)(THIS_ /* IDCompositionTurbulenceEffect */ void **turbulenceEffect) PURE;
    658     STDMETHOD(CreateLinearTransferEffect)(THIS_ /* IDCompositionLinearTransferEffect */ void **linearTransferEffect) PURE;
    659     STDMETHOD(CreateTableTransferEffect)(THIS_ IDCompositionTableTransferEffect **tableTransferEffect) PURE;
    660     STDMETHOD(CreateCompositeEffect)(THIS_ /* IDCompositionCompositeEffect */ void **compositeEffect) PURE;
    661     STDMETHOD(CreateBlendEffect)(THIS_ /* TODO IDCompositionBlendEffect */ void **blendEffect) PURE;
    662     STDMETHOD(CreateArithmeticCompositeEffect)(THIS_ /* IDCompositionArithmeticCompositeEffect */ void **arithmeticCompositeEffect) PURE;
    663     STDMETHOD(CreateAffineTransform2DEffect)(THIS_ /* IDCompositionAffineTransform2DEffect */ void **affineTransform2dEffect) PURE;
    664 };
    665 
    666 #ifdef __CRT_UUID_DECL
    667 __CRT_UUID_DECL(IDCompositionDevice3,0x0987cb06,0xf916,0x48bf,0x8d,0x35,0xce,0x76,0x41,0x78,0x1b,0xd9);
    668 #endif
    669 
    670 #endif /* WINAPI_PARTITION_DESKTOP */
    671 
    672 #if (_WIN32_WINNT >= 0x0A00)
    673 
    674 STDAPI DCompositionCreateDevice3(IUnknown *renderingDevice, REFIID iid, void **dcompositionDevice);
    675 
    676 #endif
    677 
    678 STDAPI DCompositionCreateSurfaceHandle(DWORD desiredAccess, SECURITY_ATTRIBUTES *securityAttributes, HANDLE *surfaceHandle);
    679 
    680 STDAPI DCompositionAttachMouseWheelToHwnd(IDCompositionVisual* visual, HWND hwnd, BOOL enable);
    681 
    682 STDAPI DCompositionAttachMouseDragToHwnd(IDCompositionVisual* visual, HWND hwnd, BOOL enable);
    683 
    684 
    685 #endif
    686 #endif /* _DCOMP_H_ */