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_ */