master
   1/*** Autogenerated by WIDL 10.4 from include/directmanipulation.idl - Do not edit ***/
   2
   3#ifdef _WIN32
   4#ifndef __REQUIRED_RPCNDR_H_VERSION__
   5#define __REQUIRED_RPCNDR_H_VERSION__ 475
   6#endif
   7#include <rpc.h>
   8#include <rpcndr.h>
   9#endif
  10
  11#ifndef COM_NO_WINDOWS_H
  12#include <windows.h>
  13#include <ole2.h>
  14#endif
  15
  16#ifndef __directmanipulation_h__
  17#define __directmanipulation_h__
  18
  19/* Forward declarations */
  20
  21#ifndef __IDirectManipulationFrameInfoProvider_FWD_DEFINED__
  22#define __IDirectManipulationFrameInfoProvider_FWD_DEFINED__
  23typedef interface IDirectManipulationFrameInfoProvider IDirectManipulationFrameInfoProvider;
  24#ifdef __cplusplus
  25interface IDirectManipulationFrameInfoProvider;
  26#endif /* __cplusplus */
  27#endif
  28
  29#ifndef __IDirectManipulationManager_FWD_DEFINED__
  30#define __IDirectManipulationManager_FWD_DEFINED__
  31typedef interface IDirectManipulationManager IDirectManipulationManager;
  32#ifdef __cplusplus
  33interface IDirectManipulationManager;
  34#endif /* __cplusplus */
  35#endif
  36
  37#ifndef __IDirectManipulationContent_FWD_DEFINED__
  38#define __IDirectManipulationContent_FWD_DEFINED__
  39typedef interface IDirectManipulationContent IDirectManipulationContent;
  40#ifdef __cplusplus
  41interface IDirectManipulationContent;
  42#endif /* __cplusplus */
  43#endif
  44
  45#ifndef __IDirectManipulationUpdateHandler_FWD_DEFINED__
  46#define __IDirectManipulationUpdateHandler_FWD_DEFINED__
  47typedef interface IDirectManipulationUpdateHandler IDirectManipulationUpdateHandler;
  48#ifdef __cplusplus
  49interface IDirectManipulationUpdateHandler;
  50#endif /* __cplusplus */
  51#endif
  52
  53#ifndef __IDirectManipulationUpdateManager_FWD_DEFINED__
  54#define __IDirectManipulationUpdateManager_FWD_DEFINED__
  55typedef interface IDirectManipulationUpdateManager IDirectManipulationUpdateManager;
  56#ifdef __cplusplus
  57interface IDirectManipulationUpdateManager;
  58#endif /* __cplusplus */
  59#endif
  60
  61#ifndef __IDirectManipulationCompositor_FWD_DEFINED__
  62#define __IDirectManipulationCompositor_FWD_DEFINED__
  63typedef interface IDirectManipulationCompositor IDirectManipulationCompositor;
  64#ifdef __cplusplus
  65interface IDirectManipulationCompositor;
  66#endif /* __cplusplus */
  67#endif
  68
  69#ifndef __IDirectManipulationViewport_FWD_DEFINED__
  70#define __IDirectManipulationViewport_FWD_DEFINED__
  71typedef interface IDirectManipulationViewport IDirectManipulationViewport;
  72#ifdef __cplusplus
  73interface IDirectManipulationViewport;
  74#endif /* __cplusplus */
  75#endif
  76
  77#ifndef __IDirectManipulationViewport2_FWD_DEFINED__
  78#define __IDirectManipulationViewport2_FWD_DEFINED__
  79typedef interface IDirectManipulationViewport2 IDirectManipulationViewport2;
  80#ifdef __cplusplus
  81interface IDirectManipulationViewport2;
  82#endif /* __cplusplus */
  83#endif
  84
  85#ifndef __IDirectManipulationViewportEventHandler_FWD_DEFINED__
  86#define __IDirectManipulationViewportEventHandler_FWD_DEFINED__
  87typedef interface IDirectManipulationViewportEventHandler IDirectManipulationViewportEventHandler;
  88#ifdef __cplusplus
  89interface IDirectManipulationViewportEventHandler;
  90#endif /* __cplusplus */
  91#endif
  92
  93#ifndef __IDirectManipulationManager2_FWD_DEFINED__
  94#define __IDirectManipulationManager2_FWD_DEFINED__
  95typedef interface IDirectManipulationManager2 IDirectManipulationManager2;
  96#ifdef __cplusplus
  97interface IDirectManipulationManager2;
  98#endif /* __cplusplus */
  99#endif
 100
 101#ifndef __IDirectManipulationPrimaryContent_FWD_DEFINED__
 102#define __IDirectManipulationPrimaryContent_FWD_DEFINED__
 103typedef interface IDirectManipulationPrimaryContent IDirectManipulationPrimaryContent;
 104#ifdef __cplusplus
 105interface IDirectManipulationPrimaryContent;
 106#endif /* __cplusplus */
 107#endif
 108
 109#ifndef __IDirectManipulationCompositor2_FWD_DEFINED__
 110#define __IDirectManipulationCompositor2_FWD_DEFINED__
 111typedef interface IDirectManipulationCompositor2 IDirectManipulationCompositor2;
 112#ifdef __cplusplus
 113interface IDirectManipulationCompositor2;
 114#endif /* __cplusplus */
 115#endif
 116
 117#ifndef __IDirectManipulationInteractionEventHandler_FWD_DEFINED__
 118#define __IDirectManipulationInteractionEventHandler_FWD_DEFINED__
 119typedef interface IDirectManipulationInteractionEventHandler IDirectManipulationInteractionEventHandler;
 120#ifdef __cplusplus
 121interface IDirectManipulationInteractionEventHandler;
 122#endif /* __cplusplus */
 123#endif
 124
 125#ifndef __DirectManipulationManager_FWD_DEFINED__
 126#define __DirectManipulationManager_FWD_DEFINED__
 127#ifdef __cplusplus
 128typedef class DirectManipulationManager DirectManipulationManager;
 129#else
 130typedef struct DirectManipulationManager DirectManipulationManager;
 131#endif /* defined __cplusplus */
 132#endif /* defined __DirectManipulationManager_FWD_DEFINED__ */
 133
 134#ifndef __DirectManipulationSharedManager_FWD_DEFINED__
 135#define __DirectManipulationSharedManager_FWD_DEFINED__
 136#ifdef __cplusplus
 137typedef class DirectManipulationSharedManager DirectManipulationSharedManager;
 138#else
 139typedef struct DirectManipulationSharedManager DirectManipulationSharedManager;
 140#endif /* defined __cplusplus */
 141#endif /* defined __DirectManipulationSharedManager_FWD_DEFINED__ */
 142
 143#ifndef __DCompManipulationCompositor_FWD_DEFINED__
 144#define __DCompManipulationCompositor_FWD_DEFINED__
 145#ifdef __cplusplus
 146typedef class DCompManipulationCompositor DCompManipulationCompositor;
 147#else
 148typedef struct DCompManipulationCompositor DCompManipulationCompositor;
 149#endif /* defined __cplusplus */
 150#endif /* defined __DCompManipulationCompositor_FWD_DEFINED__ */
 151
 152#ifndef __DirectManipulationViewport_FWD_DEFINED__
 153#define __DirectManipulationViewport_FWD_DEFINED__
 154#ifdef __cplusplus
 155typedef class DirectManipulationViewport DirectManipulationViewport;
 156#else
 157typedef struct DirectManipulationViewport DirectManipulationViewport;
 158#endif /* defined __cplusplus */
 159#endif /* defined __DirectManipulationViewport_FWD_DEFINED__ */
 160
 161/* Headers for imported files */
 162
 163#include <oaidl.h>
 164#include <ocidl.h>
 165
 166#ifdef __cplusplus
 167extern "C" {
 168#endif
 169
 170#if 0
 171typedef void *HWND;
 172#endif
 173#ifndef __IDirectManipulationViewportEventHandler_FWD_DEFINED__
 174#define __IDirectManipulationViewportEventHandler_FWD_DEFINED__
 175typedef interface IDirectManipulationViewportEventHandler IDirectManipulationViewportEventHandler;
 176#ifdef __cplusplus
 177interface IDirectManipulationViewportEventHandler;
 178#endif /* __cplusplus */
 179#endif
 180
 181typedef enum DIRECTMANIPULATION_HITTEST_TYPE {
 182    DIRECTMANIPULATION_HITTEST_TYPE_ASYNCHRONOUS = 0x0,
 183    DIRECTMANIPULATION_HITTEST_TYPE_SYNCHRONOUS = 0x1,
 184    DIRECTMANIPULATION_HITTEST_TYPE_AUTO_SYNCHRONOUS = 0x2
 185} DIRECTMANIPULATION_HITTEST_TYPE;
 186DEFINE_ENUM_FLAG_OPERATORS(DIRECTMANIPULATION_HITTEST_TYPE)
 187typedef enum DIRECTMANIPULATION_STATUS {
 188    DIRECTMANIPULATION_BUILDING = 0,
 189    DIRECTMANIPULATION_ENABLED = 1,
 190    DIRECTMANIPULATION_DISABLED = 2,
 191    DIRECTMANIPULATION_RUNNING = 3,
 192    DIRECTMANIPULATION_INERTIA = 4,
 193    DIRECTMANIPULATION_READY = 5,
 194    DIRECTMANIPULATION_SUSPENDED = 6
 195} DIRECTMANIPULATION_STATUS;
 196typedef enum DIRECTMANIPULATION_VIEWPORT_OPTIONS {
 197    DIRECTMANIPULATION_VIEWPORT_OPTIONS_DEFAULT = 0x0,
 198    DIRECTMANIPULATION_VIEWPORT_OPTIONS_AUTODISABLE = 0x1,
 199    DIRECTMANIPULATION_VIEWPORT_OPTIONS_MANUALUPDATE = 0x2,
 200    DIRECTMANIPULATION_VIEWPORT_OPTIONS_INPUT = 0x4,
 201    DIRECTMANIPULATION_VIEWPORT_OPTIONS_EXPLICITHITTEST = 0x8,
 202    DIRECTMANIPULATION_VIEWPORT_OPTIONS_DISABLEPIXELSNAPPING = 0x10
 203} DIRECTMANIPULATION_VIEWPORT_OPTIONS;
 204DEFINE_ENUM_FLAG_OPERATORS(DIRECTMANIPULATION_VIEWPORT_OPTIONS)
 205typedef enum DIRECTMANIPULATION_CONFIGURATION {
 206    DIRECTMANIPULATION_CONFIGURATION_NONE = 0x0,
 207    DIRECTMANIPULATION_CONFIGURATION_INTERACTION = 0x1,
 208    DIRECTMANIPULATION_CONFIGURATION_TRANSLATION_X = 0x2,
 209    DIRECTMANIPULATION_CONFIGURATION_TRANSLATION_Y = 0x4,
 210    DIRECTMANIPULATION_CONFIGURATION_SCALING = 0x10,
 211    DIRECTMANIPULATION_CONFIGURATION_TRANSLATION_INERTIA = 0x20,
 212    DIRECTMANIPULATION_CONFIGURATION_SCALING_INERTIA = 0x80,
 213    DIRECTMANIPULATION_CONFIGURATION_RAILS_X = 0x100,
 214    DIRECTMANIPULATION_CONFIGURATION_RAILS_Y = 0x200
 215} DIRECTMANIPULATION_CONFIGURATION;
 216DEFINE_ENUM_FLAG_OPERATORS(DIRECTMANIPULATION_CONFIGURATION)
 217typedef enum DIRECTMANIPULATION_GESTURE_CONFIGURATION {
 218    DIRECTMANIPULATION_GESTURE_NONE = 0x0,
 219    DIRECTMANIPULATION_GESTURE_DEFAULT = 0x0,
 220    DIRECTMANIPULATION_GESTURE_CROSS_SLIDE_VERTICAL = 0x8,
 221    DIRECTMANIPULATION_GESTURE_CROSS_SLIDE_HORIZONTAL = 0x10,
 222    DIRECTMANIPULATION_GESTURE_PINCH_ZOOM = 0x20
 223} DIRECTMANIPULATION_GESTURE_CONFIGURATION;
 224DEFINE_ENUM_FLAG_OPERATORS(DIRECTMANIPULATION_GESTURE_CONFIGURATION)
 225typedef enum DIRECTMANIPULATION_MOTION_TYPES {
 226    DIRECTMANIPULATION_MOTION_NONE = 0x0,
 227    DIRECTMANIPULATION_MOTION_TRANSLATEX = 0x1,
 228    DIRECTMANIPULATION_MOTION_TRANSLATEY = 0x2,
 229    DIRECTMANIPULATION_MOTION_ZOOM = 0x4,
 230    DIRECTMANIPULATION_MOTION_CENTERX = 0x10,
 231    DIRECTMANIPULATION_MOTION_CENTERY = 0x20,
 232    DIRECTMANIPULATION_MOTION_ALL = (((DIRECTMANIPULATION_MOTION_TRANSLATEX | DIRECTMANIPULATION_MOTION_TRANSLATEY) | DIRECTMANIPULATION_MOTION_ZOOM) | DIRECTMANIPULATION_MOTION_CENTERX) | DIRECTMANIPULATION_MOTION_CENTERY
 233} DIRECTMANIPULATION_MOTION_TYPES;
 234DEFINE_ENUM_FLAG_OPERATORS(DIRECTMANIPULATION_MOTION_TYPES)
 235typedef enum DIRECTMANIPULATION_SNAPPOINT_TYPE {
 236    DIRECTMANIPULATION_SNAPPOINT_MANDATORY = 0,
 237    DIRECTMANIPULATION_SNAPPOINT_OPTIONAL = 1,
 238    DIRECTMANIPULATION_SNAPPOINT_MANDATORY_SINGLE = 2,
 239    DIRECTMANIPULATION_SNAPPOINT_OPTIONAL_SINGLE = 3
 240} DIRECTMANIPULATION_SNAPPOINT_TYPE;
 241typedef enum DIRECTMANIPULATION_SNAPPOINT_COORDINATE {
 242    DIRECTMANIPULATION_COORDINATE_BOUNDARY = 0x0,
 243    DIRECTMANIPULATION_COORDINATE_ORIGIN = 0x1,
 244    DIRECTMANIPULATION_COORDINATE_MIRRORED = 0x10
 245} DIRECTMANIPULATION_SNAPPOINT_COORDINATE;
 246DEFINE_ENUM_FLAG_OPERATORS(DIRECTMANIPULATION_SNAPPOINT_COORDINATE)
 247typedef enum DIRECTMANIPULATION_HORIZONTALALIGNMENT {
 248    DIRECTMANIPULATION_HORIZONTALALIGNMENT_NONE = 0x0,
 249    DIRECTMANIPULATION_HORIZONTALALIGNMENT_LEFT = 0x1,
 250    DIRECTMANIPULATION_HORIZONTALALIGNMENT_CENTER = 0x2,
 251    DIRECTMANIPULATION_HORIZONTALALIGNMENT_RIGHT = 0x4,
 252    DIRECTMANIPULATION_HORIZONTALALIGNMENT_UNLOCKCENTER = 0x8
 253} DIRECTMANIPULATION_HORIZONTALALIGNMENT;
 254DEFINE_ENUM_FLAG_OPERATORS(DIRECTMANIPULATION_HORIZONTALALIGNMENT)
 255typedef enum DIRECTMANIPULATION_VERTICALALIGNMENT {
 256    DIRECTMANIPULATION_VERTICALALIGNMENT_NONE = 0x0,
 257    DIRECTMANIPULATION_VERTICALALIGNMENT_TOP = 0x1,
 258    DIRECTMANIPULATION_VERTICALALIGNMENT_CENTER = 0x2,
 259    DIRECTMANIPULATION_VERTICALALIGNMENT_BOTTOM = 0x4,
 260    DIRECTMANIPULATION_VERTICALALIGNMENT_UNLOCKCENTER = 0x8
 261} DIRECTMANIPULATION_VERTICALALIGNMENT;
 262DEFINE_ENUM_FLAG_OPERATORS(DIRECTMANIPULATION_VERTICALALIGNMENT)
 263typedef enum DIRECTMANIPULATION_INPUT_MODE {
 264    DIRECTMANIPULATION_INPUT_MODE_AUTOMATIC = 0,
 265    DIRECTMANIPULATION_INPUT_MODE_MANUAL = 1
 266} DIRECTMANIPULATION_INPUT_MODE;
 267typedef enum DIRECTMANIPULATION_INTERACTION_TYPE {
 268    DIRECTMANIPULATION_INTERACTION_BEGIN = 0,
 269    DIRECTMANIPULATION_INTERACTION_TYPE_MANIPULATION = 1,
 270    DIRECTMANIPULATION_INTERACTION_TYPE_GESTURE_TAP = 2,
 271    DIRECTMANIPULATION_INTERACTION_TYPE_GESTURE_HOLD = 3,
 272    DIRECTMANIPULATION_INTERACTION_TYPE_GESTURE_CROSS_SLIDE = 4,
 273    DIRECTMANIPULATION_INTERACTION_TYPE_GESTURE_PINCH_ZOOM = 5,
 274    DIRECTMANIPULATION_INTERACTION_END = 100
 275} DIRECTMANIPULATION_INTERACTION_TYPE;
 276/*****************************************************************************
 277 * IDirectManipulationFrameInfoProvider interface
 278 */
 279#ifndef __IDirectManipulationFrameInfoProvider_INTERFACE_DEFINED__
 280#define __IDirectManipulationFrameInfoProvider_INTERFACE_DEFINED__
 281
 282DEFINE_GUID(IID_IDirectManipulationFrameInfoProvider, 0xfb759dba, 0x6f4c, 0x4c01, 0x87,0x4e, 0x19,0xc8,0xa0,0x59,0x07,0xf9);
 283#if defined(__cplusplus) && !defined(CINTERFACE)
 284MIDL_INTERFACE("fb759dba-6f4c-4c01-874e-19c8a05907f9")
 285IDirectManipulationFrameInfoProvider : public IUnknown
 286{
 287    virtual HRESULT STDMETHODCALLTYPE GetNextFrameInfo(
 288        ULONGLONG *time,
 289        ULONGLONG *process,
 290        ULONGLONG *composition) = 0;
 291
 292};
 293#ifdef __CRT_UUID_DECL
 294__CRT_UUID_DECL(IDirectManipulationFrameInfoProvider, 0xfb759dba, 0x6f4c, 0x4c01, 0x87,0x4e, 0x19,0xc8,0xa0,0x59,0x07,0xf9)
 295#endif
 296#else
 297typedef struct IDirectManipulationFrameInfoProviderVtbl {
 298    BEGIN_INTERFACE
 299
 300    /*** IUnknown methods ***/
 301    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 302        IDirectManipulationFrameInfoProvider *This,
 303        REFIID riid,
 304        void **ppvObject);
 305
 306    ULONG (STDMETHODCALLTYPE *AddRef)(
 307        IDirectManipulationFrameInfoProvider *This);
 308
 309    ULONG (STDMETHODCALLTYPE *Release)(
 310        IDirectManipulationFrameInfoProvider *This);
 311
 312    /*** IDirectManipulationFrameInfoProvider methods ***/
 313    HRESULT (STDMETHODCALLTYPE *GetNextFrameInfo)(
 314        IDirectManipulationFrameInfoProvider *This,
 315        ULONGLONG *time,
 316        ULONGLONG *process,
 317        ULONGLONG *composition);
 318
 319    END_INTERFACE
 320} IDirectManipulationFrameInfoProviderVtbl;
 321
 322interface IDirectManipulationFrameInfoProvider {
 323    CONST_VTBL IDirectManipulationFrameInfoProviderVtbl* lpVtbl;
 324};
 325
 326#ifdef COBJMACROS
 327#ifndef WIDL_C_INLINE_WRAPPERS
 328/*** IUnknown methods ***/
 329#define IDirectManipulationFrameInfoProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 330#define IDirectManipulationFrameInfoProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
 331#define IDirectManipulationFrameInfoProvider_Release(This) (This)->lpVtbl->Release(This)
 332/*** IDirectManipulationFrameInfoProvider methods ***/
 333#define IDirectManipulationFrameInfoProvider_GetNextFrameInfo(This,time,process,composition) (This)->lpVtbl->GetNextFrameInfo(This,time,process,composition)
 334#else
 335/*** IUnknown methods ***/
 336static inline HRESULT IDirectManipulationFrameInfoProvider_QueryInterface(IDirectManipulationFrameInfoProvider* This,REFIID riid,void **ppvObject) {
 337    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 338}
 339static inline ULONG IDirectManipulationFrameInfoProvider_AddRef(IDirectManipulationFrameInfoProvider* This) {
 340    return This->lpVtbl->AddRef(This);
 341}
 342static inline ULONG IDirectManipulationFrameInfoProvider_Release(IDirectManipulationFrameInfoProvider* This) {
 343    return This->lpVtbl->Release(This);
 344}
 345/*** IDirectManipulationFrameInfoProvider methods ***/
 346static inline HRESULT IDirectManipulationFrameInfoProvider_GetNextFrameInfo(IDirectManipulationFrameInfoProvider* This,ULONGLONG *time,ULONGLONG *process,ULONGLONG *composition) {
 347    return This->lpVtbl->GetNextFrameInfo(This,time,process,composition);
 348}
 349#endif
 350#endif
 351
 352#endif
 353
 354
 355#endif  /* __IDirectManipulationFrameInfoProvider_INTERFACE_DEFINED__ */
 356
 357/*****************************************************************************
 358 * IDirectManipulationManager interface
 359 */
 360#ifndef __IDirectManipulationManager_INTERFACE_DEFINED__
 361#define __IDirectManipulationManager_INTERFACE_DEFINED__
 362
 363DEFINE_GUID(IID_IDirectManipulationManager, 0xfbf5d3b4, 0x70c7, 0x4163, 0x93,0x22, 0x5a,0x6f,0x66,0x0d,0x6f,0xbc);
 364#if defined(__cplusplus) && !defined(CINTERFACE)
 365MIDL_INTERFACE("fbf5d3b4-70c7-4163-9322-5a6f660d6fbc")
 366IDirectManipulationManager : public IUnknown
 367{
 368    virtual HRESULT STDMETHODCALLTYPE Activate(
 369        HWND window) = 0;
 370
 371    virtual HRESULT STDMETHODCALLTYPE Deactivate(
 372        HWND window) = 0;
 373
 374    virtual HRESULT STDMETHODCALLTYPE RegisterHitTestTarget(
 375        HWND window,
 376        HWND hittest,
 377        DIRECTMANIPULATION_HITTEST_TYPE type) = 0;
 378
 379    virtual HRESULT STDMETHODCALLTYPE ProcessInput(
 380        const MSG *msg,
 381        WINBOOL *handled) = 0;
 382
 383    virtual HRESULT STDMETHODCALLTYPE GetUpdateManager(
 384        REFIID riid,
 385        void **obj) = 0;
 386
 387    virtual HRESULT STDMETHODCALLTYPE CreateViewport(
 388        IDirectManipulationFrameInfoProvider *frame,
 389        HWND window,
 390        REFIID riid,
 391        void **obj) = 0;
 392
 393    virtual HRESULT STDMETHODCALLTYPE CreateContent(
 394        IDirectManipulationFrameInfoProvider *frame,
 395        REFCLSID clsid,
 396        REFIID riid,
 397        void **obj) = 0;
 398
 399};
 400#ifdef __CRT_UUID_DECL
 401__CRT_UUID_DECL(IDirectManipulationManager, 0xfbf5d3b4, 0x70c7, 0x4163, 0x93,0x22, 0x5a,0x6f,0x66,0x0d,0x6f,0xbc)
 402#endif
 403#else
 404typedef struct IDirectManipulationManagerVtbl {
 405    BEGIN_INTERFACE
 406
 407    /*** IUnknown methods ***/
 408    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 409        IDirectManipulationManager *This,
 410        REFIID riid,
 411        void **ppvObject);
 412
 413    ULONG (STDMETHODCALLTYPE *AddRef)(
 414        IDirectManipulationManager *This);
 415
 416    ULONG (STDMETHODCALLTYPE *Release)(
 417        IDirectManipulationManager *This);
 418
 419    /*** IDirectManipulationManager methods ***/
 420    HRESULT (STDMETHODCALLTYPE *Activate)(
 421        IDirectManipulationManager *This,
 422        HWND window);
 423
 424    HRESULT (STDMETHODCALLTYPE *Deactivate)(
 425        IDirectManipulationManager *This,
 426        HWND window);
 427
 428    HRESULT (STDMETHODCALLTYPE *RegisterHitTestTarget)(
 429        IDirectManipulationManager *This,
 430        HWND window,
 431        HWND hittest,
 432        DIRECTMANIPULATION_HITTEST_TYPE type);
 433
 434    HRESULT (STDMETHODCALLTYPE *ProcessInput)(
 435        IDirectManipulationManager *This,
 436        const MSG *msg,
 437        WINBOOL *handled);
 438
 439    HRESULT (STDMETHODCALLTYPE *GetUpdateManager)(
 440        IDirectManipulationManager *This,
 441        REFIID riid,
 442        void **obj);
 443
 444    HRESULT (STDMETHODCALLTYPE *CreateViewport)(
 445        IDirectManipulationManager *This,
 446        IDirectManipulationFrameInfoProvider *frame,
 447        HWND window,
 448        REFIID riid,
 449        void **obj);
 450
 451    HRESULT (STDMETHODCALLTYPE *CreateContent)(
 452        IDirectManipulationManager *This,
 453        IDirectManipulationFrameInfoProvider *frame,
 454        REFCLSID clsid,
 455        REFIID riid,
 456        void **obj);
 457
 458    END_INTERFACE
 459} IDirectManipulationManagerVtbl;
 460
 461interface IDirectManipulationManager {
 462    CONST_VTBL IDirectManipulationManagerVtbl* lpVtbl;
 463};
 464
 465#ifdef COBJMACROS
 466#ifndef WIDL_C_INLINE_WRAPPERS
 467/*** IUnknown methods ***/
 468#define IDirectManipulationManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 469#define IDirectManipulationManager_AddRef(This) (This)->lpVtbl->AddRef(This)
 470#define IDirectManipulationManager_Release(This) (This)->lpVtbl->Release(This)
 471/*** IDirectManipulationManager methods ***/
 472#define IDirectManipulationManager_Activate(This,window) (This)->lpVtbl->Activate(This,window)
 473#define IDirectManipulationManager_Deactivate(This,window) (This)->lpVtbl->Deactivate(This,window)
 474#define IDirectManipulationManager_RegisterHitTestTarget(This,window,hittest,type) (This)->lpVtbl->RegisterHitTestTarget(This,window,hittest,type)
 475#define IDirectManipulationManager_ProcessInput(This,msg,handled) (This)->lpVtbl->ProcessInput(This,msg,handled)
 476#define IDirectManipulationManager_GetUpdateManager(This,riid,obj) (This)->lpVtbl->GetUpdateManager(This,riid,obj)
 477#define IDirectManipulationManager_CreateViewport(This,frame,window,riid,obj) (This)->lpVtbl->CreateViewport(This,frame,window,riid,obj)
 478#define IDirectManipulationManager_CreateContent(This,frame,clsid,riid,obj) (This)->lpVtbl->CreateContent(This,frame,clsid,riid,obj)
 479#else
 480/*** IUnknown methods ***/
 481static inline HRESULT IDirectManipulationManager_QueryInterface(IDirectManipulationManager* This,REFIID riid,void **ppvObject) {
 482    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 483}
 484static inline ULONG IDirectManipulationManager_AddRef(IDirectManipulationManager* This) {
 485    return This->lpVtbl->AddRef(This);
 486}
 487static inline ULONG IDirectManipulationManager_Release(IDirectManipulationManager* This) {
 488    return This->lpVtbl->Release(This);
 489}
 490/*** IDirectManipulationManager methods ***/
 491static inline HRESULT IDirectManipulationManager_Activate(IDirectManipulationManager* This,HWND window) {
 492    return This->lpVtbl->Activate(This,window);
 493}
 494static inline HRESULT IDirectManipulationManager_Deactivate(IDirectManipulationManager* This,HWND window) {
 495    return This->lpVtbl->Deactivate(This,window);
 496}
 497static inline HRESULT IDirectManipulationManager_RegisterHitTestTarget(IDirectManipulationManager* This,HWND window,HWND hittest,DIRECTMANIPULATION_HITTEST_TYPE type) {
 498    return This->lpVtbl->RegisterHitTestTarget(This,window,hittest,type);
 499}
 500static inline HRESULT IDirectManipulationManager_ProcessInput(IDirectManipulationManager* This,const MSG *msg,WINBOOL *handled) {
 501    return This->lpVtbl->ProcessInput(This,msg,handled);
 502}
 503static inline HRESULT IDirectManipulationManager_GetUpdateManager(IDirectManipulationManager* This,REFIID riid,void **obj) {
 504    return This->lpVtbl->GetUpdateManager(This,riid,obj);
 505}
 506static inline HRESULT IDirectManipulationManager_CreateViewport(IDirectManipulationManager* This,IDirectManipulationFrameInfoProvider *frame,HWND window,REFIID riid,void **obj) {
 507    return This->lpVtbl->CreateViewport(This,frame,window,riid,obj);
 508}
 509static inline HRESULT IDirectManipulationManager_CreateContent(IDirectManipulationManager* This,IDirectManipulationFrameInfoProvider *frame,REFCLSID clsid,REFIID riid,void **obj) {
 510    return This->lpVtbl->CreateContent(This,frame,clsid,riid,obj);
 511}
 512#endif
 513#endif
 514
 515#endif
 516
 517
 518#endif  /* __IDirectManipulationManager_INTERFACE_DEFINED__ */
 519
 520/*****************************************************************************
 521 * IDirectManipulationContent interface
 522 */
 523#ifndef __IDirectManipulationContent_INTERFACE_DEFINED__
 524#define __IDirectManipulationContent_INTERFACE_DEFINED__
 525
 526DEFINE_GUID(IID_IDirectManipulationContent, 0xb89962cb, 0x3d89, 0x442b, 0xbb,0x58, 0x50,0x98,0xfa,0x0f,0x9f,0x16);
 527#if defined(__cplusplus) && !defined(CINTERFACE)
 528MIDL_INTERFACE("b89962cb-3d89-442b-bb58-5098fa0f9f16")
 529IDirectManipulationContent : public IUnknown
 530{
 531    virtual HRESULT STDMETHODCALLTYPE GetContentRect(
 532        RECT *size) = 0;
 533
 534    virtual HRESULT STDMETHODCALLTYPE SetContentRect(
 535        const RECT *size) = 0;
 536
 537    virtual HRESULT STDMETHODCALLTYPE GetViewport(
 538        REFIID riid,
 539        void **object) = 0;
 540
 541    virtual HRESULT STDMETHODCALLTYPE GetTag(
 542        REFIID riid,
 543        void **object,
 544        UINT32 *id) = 0;
 545
 546    virtual HRESULT STDMETHODCALLTYPE SetTag(
 547        IUnknown *object,
 548        UINT32 id) = 0;
 549
 550    virtual HRESULT STDMETHODCALLTYPE GetOutputTransform(
 551        float *matrix,
 552        DWORD count) = 0;
 553
 554    virtual HRESULT STDMETHODCALLTYPE GetContentTransform(
 555        float *matrix,
 556        DWORD count) = 0;
 557
 558    virtual HRESULT STDMETHODCALLTYPE SyncContentTransform(
 559        const float *matrix,
 560        DWORD count) = 0;
 561
 562};
 563#ifdef __CRT_UUID_DECL
 564__CRT_UUID_DECL(IDirectManipulationContent, 0xb89962cb, 0x3d89, 0x442b, 0xbb,0x58, 0x50,0x98,0xfa,0x0f,0x9f,0x16)
 565#endif
 566#else
 567typedef struct IDirectManipulationContentVtbl {
 568    BEGIN_INTERFACE
 569
 570    /*** IUnknown methods ***/
 571    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 572        IDirectManipulationContent *This,
 573        REFIID riid,
 574        void **ppvObject);
 575
 576    ULONG (STDMETHODCALLTYPE *AddRef)(
 577        IDirectManipulationContent *This);
 578
 579    ULONG (STDMETHODCALLTYPE *Release)(
 580        IDirectManipulationContent *This);
 581
 582    /*** IDirectManipulationContent methods ***/
 583    HRESULT (STDMETHODCALLTYPE *GetContentRect)(
 584        IDirectManipulationContent *This,
 585        RECT *size);
 586
 587    HRESULT (STDMETHODCALLTYPE *SetContentRect)(
 588        IDirectManipulationContent *This,
 589        const RECT *size);
 590
 591    HRESULT (STDMETHODCALLTYPE *GetViewport)(
 592        IDirectManipulationContent *This,
 593        REFIID riid,
 594        void **object);
 595
 596    HRESULT (STDMETHODCALLTYPE *GetTag)(
 597        IDirectManipulationContent *This,
 598        REFIID riid,
 599        void **object,
 600        UINT32 *id);
 601
 602    HRESULT (STDMETHODCALLTYPE *SetTag)(
 603        IDirectManipulationContent *This,
 604        IUnknown *object,
 605        UINT32 id);
 606
 607    HRESULT (STDMETHODCALLTYPE *GetOutputTransform)(
 608        IDirectManipulationContent *This,
 609        float *matrix,
 610        DWORD count);
 611
 612    HRESULT (STDMETHODCALLTYPE *GetContentTransform)(
 613        IDirectManipulationContent *This,
 614        float *matrix,
 615        DWORD count);
 616
 617    HRESULT (STDMETHODCALLTYPE *SyncContentTransform)(
 618        IDirectManipulationContent *This,
 619        const float *matrix,
 620        DWORD count);
 621
 622    END_INTERFACE
 623} IDirectManipulationContentVtbl;
 624
 625interface IDirectManipulationContent {
 626    CONST_VTBL IDirectManipulationContentVtbl* lpVtbl;
 627};
 628
 629#ifdef COBJMACROS
 630#ifndef WIDL_C_INLINE_WRAPPERS
 631/*** IUnknown methods ***/
 632#define IDirectManipulationContent_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 633#define IDirectManipulationContent_AddRef(This) (This)->lpVtbl->AddRef(This)
 634#define IDirectManipulationContent_Release(This) (This)->lpVtbl->Release(This)
 635/*** IDirectManipulationContent methods ***/
 636#define IDirectManipulationContent_GetContentRect(This,size) (This)->lpVtbl->GetContentRect(This,size)
 637#define IDirectManipulationContent_SetContentRect(This,size) (This)->lpVtbl->SetContentRect(This,size)
 638#define IDirectManipulationContent_GetViewport(This,riid,object) (This)->lpVtbl->GetViewport(This,riid,object)
 639#define IDirectManipulationContent_GetTag(This,riid,object,id) (This)->lpVtbl->GetTag(This,riid,object,id)
 640#define IDirectManipulationContent_SetTag(This,object,id) (This)->lpVtbl->SetTag(This,object,id)
 641#define IDirectManipulationContent_GetOutputTransform(This,matrix,count) (This)->lpVtbl->GetOutputTransform(This,matrix,count)
 642#define IDirectManipulationContent_GetContentTransform(This,matrix,count) (This)->lpVtbl->GetContentTransform(This,matrix,count)
 643#define IDirectManipulationContent_SyncContentTransform(This,matrix,count) (This)->lpVtbl->SyncContentTransform(This,matrix,count)
 644#else
 645/*** IUnknown methods ***/
 646static inline HRESULT IDirectManipulationContent_QueryInterface(IDirectManipulationContent* This,REFIID riid,void **ppvObject) {
 647    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 648}
 649static inline ULONG IDirectManipulationContent_AddRef(IDirectManipulationContent* This) {
 650    return This->lpVtbl->AddRef(This);
 651}
 652static inline ULONG IDirectManipulationContent_Release(IDirectManipulationContent* This) {
 653    return This->lpVtbl->Release(This);
 654}
 655/*** IDirectManipulationContent methods ***/
 656static inline HRESULT IDirectManipulationContent_GetContentRect(IDirectManipulationContent* This,RECT *size) {
 657    return This->lpVtbl->GetContentRect(This,size);
 658}
 659static inline HRESULT IDirectManipulationContent_SetContentRect(IDirectManipulationContent* This,const RECT *size) {
 660    return This->lpVtbl->SetContentRect(This,size);
 661}
 662static inline HRESULT IDirectManipulationContent_GetViewport(IDirectManipulationContent* This,REFIID riid,void **object) {
 663    return This->lpVtbl->GetViewport(This,riid,object);
 664}
 665static inline HRESULT IDirectManipulationContent_GetTag(IDirectManipulationContent* This,REFIID riid,void **object,UINT32 *id) {
 666    return This->lpVtbl->GetTag(This,riid,object,id);
 667}
 668static inline HRESULT IDirectManipulationContent_SetTag(IDirectManipulationContent* This,IUnknown *object,UINT32 id) {
 669    return This->lpVtbl->SetTag(This,object,id);
 670}
 671static inline HRESULT IDirectManipulationContent_GetOutputTransform(IDirectManipulationContent* This,float *matrix,DWORD count) {
 672    return This->lpVtbl->GetOutputTransform(This,matrix,count);
 673}
 674static inline HRESULT IDirectManipulationContent_GetContentTransform(IDirectManipulationContent* This,float *matrix,DWORD count) {
 675    return This->lpVtbl->GetContentTransform(This,matrix,count);
 676}
 677static inline HRESULT IDirectManipulationContent_SyncContentTransform(IDirectManipulationContent* This,const float *matrix,DWORD count) {
 678    return This->lpVtbl->SyncContentTransform(This,matrix,count);
 679}
 680#endif
 681#endif
 682
 683#endif
 684
 685
 686#endif  /* __IDirectManipulationContent_INTERFACE_DEFINED__ */
 687
 688/*****************************************************************************
 689 * IDirectManipulationUpdateHandler interface
 690 */
 691#ifndef __IDirectManipulationUpdateHandler_INTERFACE_DEFINED__
 692#define __IDirectManipulationUpdateHandler_INTERFACE_DEFINED__
 693
 694DEFINE_GUID(IID_IDirectManipulationUpdateHandler, 0x790b6337, 0x64f8, 0x4ff5, 0xa2,0x69, 0xb3,0x2b,0xc2,0xaf,0x27,0xa7);
 695#if defined(__cplusplus) && !defined(CINTERFACE)
 696MIDL_INTERFACE("790b6337-64f8-4ff5-a269-b32bc2af27a7")
 697IDirectManipulationUpdateHandler : public IUnknown
 698{
 699    virtual HRESULT STDMETHODCALLTYPE Update(
 700        ) = 0;
 701
 702};
 703#ifdef __CRT_UUID_DECL
 704__CRT_UUID_DECL(IDirectManipulationUpdateHandler, 0x790b6337, 0x64f8, 0x4ff5, 0xa2,0x69, 0xb3,0x2b,0xc2,0xaf,0x27,0xa7)
 705#endif
 706#else
 707typedef struct IDirectManipulationUpdateHandlerVtbl {
 708    BEGIN_INTERFACE
 709
 710    /*** IUnknown methods ***/
 711    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 712        IDirectManipulationUpdateHandler *This,
 713        REFIID riid,
 714        void **ppvObject);
 715
 716    ULONG (STDMETHODCALLTYPE *AddRef)(
 717        IDirectManipulationUpdateHandler *This);
 718
 719    ULONG (STDMETHODCALLTYPE *Release)(
 720        IDirectManipulationUpdateHandler *This);
 721
 722    /*** IDirectManipulationUpdateHandler methods ***/
 723    HRESULT (STDMETHODCALLTYPE *Update)(
 724        IDirectManipulationUpdateHandler *This);
 725
 726    END_INTERFACE
 727} IDirectManipulationUpdateHandlerVtbl;
 728
 729interface IDirectManipulationUpdateHandler {
 730    CONST_VTBL IDirectManipulationUpdateHandlerVtbl* lpVtbl;
 731};
 732
 733#ifdef COBJMACROS
 734#ifndef WIDL_C_INLINE_WRAPPERS
 735/*** IUnknown methods ***/
 736#define IDirectManipulationUpdateHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 737#define IDirectManipulationUpdateHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
 738#define IDirectManipulationUpdateHandler_Release(This) (This)->lpVtbl->Release(This)
 739/*** IDirectManipulationUpdateHandler methods ***/
 740#define IDirectManipulationUpdateHandler_Update(This) (This)->lpVtbl->Update(This)
 741#else
 742/*** IUnknown methods ***/
 743static inline HRESULT IDirectManipulationUpdateHandler_QueryInterface(IDirectManipulationUpdateHandler* This,REFIID riid,void **ppvObject) {
 744    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 745}
 746static inline ULONG IDirectManipulationUpdateHandler_AddRef(IDirectManipulationUpdateHandler* This) {
 747    return This->lpVtbl->AddRef(This);
 748}
 749static inline ULONG IDirectManipulationUpdateHandler_Release(IDirectManipulationUpdateHandler* This) {
 750    return This->lpVtbl->Release(This);
 751}
 752/*** IDirectManipulationUpdateHandler methods ***/
 753static inline HRESULT IDirectManipulationUpdateHandler_Update(IDirectManipulationUpdateHandler* This) {
 754    return This->lpVtbl->Update(This);
 755}
 756#endif
 757#endif
 758
 759#endif
 760
 761
 762#endif  /* __IDirectManipulationUpdateHandler_INTERFACE_DEFINED__ */
 763
 764/*****************************************************************************
 765 * IDirectManipulationUpdateManager interface
 766 */
 767#ifndef __IDirectManipulationUpdateManager_INTERFACE_DEFINED__
 768#define __IDirectManipulationUpdateManager_INTERFACE_DEFINED__
 769
 770DEFINE_GUID(IID_IDirectManipulationUpdateManager, 0xb0ae62fd, 0xbe34, 0x46e7, 0x9c,0xaa, 0xd3,0x61,0xfa,0xcb,0xb9,0xcc);
 771#if defined(__cplusplus) && !defined(CINTERFACE)
 772MIDL_INTERFACE("b0ae62fd-be34-46e7-9caa-d361facbb9cc")
 773IDirectManipulationUpdateManager : public IUnknown
 774{
 775    virtual HRESULT STDMETHODCALLTYPE RegisterWaitHandleCallback(
 776        HANDLE handle,
 777        IDirectManipulationUpdateHandler *handler,
 778        DWORD *cookie) = 0;
 779
 780    virtual HRESULT STDMETHODCALLTYPE UnregisterWaitHandleCallback(
 781        DWORD cookie) = 0;
 782
 783    virtual HRESULT STDMETHODCALLTYPE Update(
 784        IDirectManipulationFrameInfoProvider *provider) = 0;
 785
 786};
 787#ifdef __CRT_UUID_DECL
 788__CRT_UUID_DECL(IDirectManipulationUpdateManager, 0xb0ae62fd, 0xbe34, 0x46e7, 0x9c,0xaa, 0xd3,0x61,0xfa,0xcb,0xb9,0xcc)
 789#endif
 790#else
 791typedef struct IDirectManipulationUpdateManagerVtbl {
 792    BEGIN_INTERFACE
 793
 794    /*** IUnknown methods ***/
 795    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 796        IDirectManipulationUpdateManager *This,
 797        REFIID riid,
 798        void **ppvObject);
 799
 800    ULONG (STDMETHODCALLTYPE *AddRef)(
 801        IDirectManipulationUpdateManager *This);
 802
 803    ULONG (STDMETHODCALLTYPE *Release)(
 804        IDirectManipulationUpdateManager *This);
 805
 806    /*** IDirectManipulationUpdateManager methods ***/
 807    HRESULT (STDMETHODCALLTYPE *RegisterWaitHandleCallback)(
 808        IDirectManipulationUpdateManager *This,
 809        HANDLE handle,
 810        IDirectManipulationUpdateHandler *handler,
 811        DWORD *cookie);
 812
 813    HRESULT (STDMETHODCALLTYPE *UnregisterWaitHandleCallback)(
 814        IDirectManipulationUpdateManager *This,
 815        DWORD cookie);
 816
 817    HRESULT (STDMETHODCALLTYPE *Update)(
 818        IDirectManipulationUpdateManager *This,
 819        IDirectManipulationFrameInfoProvider *provider);
 820
 821    END_INTERFACE
 822} IDirectManipulationUpdateManagerVtbl;
 823
 824interface IDirectManipulationUpdateManager {
 825    CONST_VTBL IDirectManipulationUpdateManagerVtbl* lpVtbl;
 826};
 827
 828#ifdef COBJMACROS
 829#ifndef WIDL_C_INLINE_WRAPPERS
 830/*** IUnknown methods ***/
 831#define IDirectManipulationUpdateManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 832#define IDirectManipulationUpdateManager_AddRef(This) (This)->lpVtbl->AddRef(This)
 833#define IDirectManipulationUpdateManager_Release(This) (This)->lpVtbl->Release(This)
 834/*** IDirectManipulationUpdateManager methods ***/
 835#define IDirectManipulationUpdateManager_RegisterWaitHandleCallback(This,handle,handler,cookie) (This)->lpVtbl->RegisterWaitHandleCallback(This,handle,handler,cookie)
 836#define IDirectManipulationUpdateManager_UnregisterWaitHandleCallback(This,cookie) (This)->lpVtbl->UnregisterWaitHandleCallback(This,cookie)
 837#define IDirectManipulationUpdateManager_Update(This,provider) (This)->lpVtbl->Update(This,provider)
 838#else
 839/*** IUnknown methods ***/
 840static inline HRESULT IDirectManipulationUpdateManager_QueryInterface(IDirectManipulationUpdateManager* This,REFIID riid,void **ppvObject) {
 841    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 842}
 843static inline ULONG IDirectManipulationUpdateManager_AddRef(IDirectManipulationUpdateManager* This) {
 844    return This->lpVtbl->AddRef(This);
 845}
 846static inline ULONG IDirectManipulationUpdateManager_Release(IDirectManipulationUpdateManager* This) {
 847    return This->lpVtbl->Release(This);
 848}
 849/*** IDirectManipulationUpdateManager methods ***/
 850static inline HRESULT IDirectManipulationUpdateManager_RegisterWaitHandleCallback(IDirectManipulationUpdateManager* This,HANDLE handle,IDirectManipulationUpdateHandler *handler,DWORD *cookie) {
 851    return This->lpVtbl->RegisterWaitHandleCallback(This,handle,handler,cookie);
 852}
 853static inline HRESULT IDirectManipulationUpdateManager_UnregisterWaitHandleCallback(IDirectManipulationUpdateManager* This,DWORD cookie) {
 854    return This->lpVtbl->UnregisterWaitHandleCallback(This,cookie);
 855}
 856static inline HRESULT IDirectManipulationUpdateManager_Update(IDirectManipulationUpdateManager* This,IDirectManipulationFrameInfoProvider *provider) {
 857    return This->lpVtbl->Update(This,provider);
 858}
 859#endif
 860#endif
 861
 862#endif
 863
 864
 865#endif  /* __IDirectManipulationUpdateManager_INTERFACE_DEFINED__ */
 866
 867/*****************************************************************************
 868 * IDirectManipulationCompositor interface
 869 */
 870#ifndef __IDirectManipulationCompositor_INTERFACE_DEFINED__
 871#define __IDirectManipulationCompositor_INTERFACE_DEFINED__
 872
 873DEFINE_GUID(IID_IDirectManipulationCompositor, 0x537a0825, 0x0387, 0x4efa, 0xb6,0x2f, 0x71,0xeb,0x1f,0x08,0x5a,0x7e);
 874#if defined(__cplusplus) && !defined(CINTERFACE)
 875MIDL_INTERFACE("537a0825-0387-4efa-b62f-71eb1f085a7e")
 876IDirectManipulationCompositor : public IUnknown
 877{
 878    virtual HRESULT STDMETHODCALLTYPE AddContent(
 879        IDirectManipulationContent *content,
 880        IUnknown *device,
 881        IUnknown *parent,
 882        IUnknown *child) = 0;
 883
 884    virtual HRESULT STDMETHODCALLTYPE RemoveContent(
 885        IDirectManipulationContent *content) = 0;
 886
 887    virtual HRESULT STDMETHODCALLTYPE SetUpdateManager(
 888        IDirectManipulationUpdateManager *manager) = 0;
 889
 890    virtual HRESULT STDMETHODCALLTYPE Flush(
 891        ) = 0;
 892
 893};
 894#ifdef __CRT_UUID_DECL
 895__CRT_UUID_DECL(IDirectManipulationCompositor, 0x537a0825, 0x0387, 0x4efa, 0xb6,0x2f, 0x71,0xeb,0x1f,0x08,0x5a,0x7e)
 896#endif
 897#else
 898typedef struct IDirectManipulationCompositorVtbl {
 899    BEGIN_INTERFACE
 900
 901    /*** IUnknown methods ***/
 902    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 903        IDirectManipulationCompositor *This,
 904        REFIID riid,
 905        void **ppvObject);
 906
 907    ULONG (STDMETHODCALLTYPE *AddRef)(
 908        IDirectManipulationCompositor *This);
 909
 910    ULONG (STDMETHODCALLTYPE *Release)(
 911        IDirectManipulationCompositor *This);
 912
 913    /*** IDirectManipulationCompositor methods ***/
 914    HRESULT (STDMETHODCALLTYPE *AddContent)(
 915        IDirectManipulationCompositor *This,
 916        IDirectManipulationContent *content,
 917        IUnknown *device,
 918        IUnknown *parent,
 919        IUnknown *child);
 920
 921    HRESULT (STDMETHODCALLTYPE *RemoveContent)(
 922        IDirectManipulationCompositor *This,
 923        IDirectManipulationContent *content);
 924
 925    HRESULT (STDMETHODCALLTYPE *SetUpdateManager)(
 926        IDirectManipulationCompositor *This,
 927        IDirectManipulationUpdateManager *manager);
 928
 929    HRESULT (STDMETHODCALLTYPE *Flush)(
 930        IDirectManipulationCompositor *This);
 931
 932    END_INTERFACE
 933} IDirectManipulationCompositorVtbl;
 934
 935interface IDirectManipulationCompositor {
 936    CONST_VTBL IDirectManipulationCompositorVtbl* lpVtbl;
 937};
 938
 939#ifdef COBJMACROS
 940#ifndef WIDL_C_INLINE_WRAPPERS
 941/*** IUnknown methods ***/
 942#define IDirectManipulationCompositor_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 943#define IDirectManipulationCompositor_AddRef(This) (This)->lpVtbl->AddRef(This)
 944#define IDirectManipulationCompositor_Release(This) (This)->lpVtbl->Release(This)
 945/*** IDirectManipulationCompositor methods ***/
 946#define IDirectManipulationCompositor_AddContent(This,content,device,parent,child) (This)->lpVtbl->AddContent(This,content,device,parent,child)
 947#define IDirectManipulationCompositor_RemoveContent(This,content) (This)->lpVtbl->RemoveContent(This,content)
 948#define IDirectManipulationCompositor_SetUpdateManager(This,manager) (This)->lpVtbl->SetUpdateManager(This,manager)
 949#define IDirectManipulationCompositor_Flush(This) (This)->lpVtbl->Flush(This)
 950#else
 951/*** IUnknown methods ***/
 952static inline HRESULT IDirectManipulationCompositor_QueryInterface(IDirectManipulationCompositor* This,REFIID riid,void **ppvObject) {
 953    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 954}
 955static inline ULONG IDirectManipulationCompositor_AddRef(IDirectManipulationCompositor* This) {
 956    return This->lpVtbl->AddRef(This);
 957}
 958static inline ULONG IDirectManipulationCompositor_Release(IDirectManipulationCompositor* This) {
 959    return This->lpVtbl->Release(This);
 960}
 961/*** IDirectManipulationCompositor methods ***/
 962static inline HRESULT IDirectManipulationCompositor_AddContent(IDirectManipulationCompositor* This,IDirectManipulationContent *content,IUnknown *device,IUnknown *parent,IUnknown *child) {
 963    return This->lpVtbl->AddContent(This,content,device,parent,child);
 964}
 965static inline HRESULT IDirectManipulationCompositor_RemoveContent(IDirectManipulationCompositor* This,IDirectManipulationContent *content) {
 966    return This->lpVtbl->RemoveContent(This,content);
 967}
 968static inline HRESULT IDirectManipulationCompositor_SetUpdateManager(IDirectManipulationCompositor* This,IDirectManipulationUpdateManager *manager) {
 969    return This->lpVtbl->SetUpdateManager(This,manager);
 970}
 971static inline HRESULT IDirectManipulationCompositor_Flush(IDirectManipulationCompositor* This) {
 972    return This->lpVtbl->Flush(This);
 973}
 974#endif
 975#endif
 976
 977#endif
 978
 979
 980#endif  /* __IDirectManipulationCompositor_INTERFACE_DEFINED__ */
 981
 982/*****************************************************************************
 983 * IDirectManipulationViewport interface
 984 */
 985#ifndef __IDirectManipulationViewport_INTERFACE_DEFINED__
 986#define __IDirectManipulationViewport_INTERFACE_DEFINED__
 987
 988DEFINE_GUID(IID_IDirectManipulationViewport, 0x28b85a3d, 0x60a0, 0x48bd, 0x9b,0xa1, 0x5c,0xe8,0xd9,0xea,0x3a,0x6d);
 989#if defined(__cplusplus) && !defined(CINTERFACE)
 990MIDL_INTERFACE("28b85a3d-60a0-48bd-9ba1-5ce8d9ea3a6d")
 991IDirectManipulationViewport : public IUnknown
 992{
 993    virtual HRESULT STDMETHODCALLTYPE Enable(
 994        ) = 0;
 995
 996    virtual HRESULT STDMETHODCALLTYPE Disable(
 997        ) = 0;
 998
 999    virtual HRESULT STDMETHODCALLTYPE SetContact(
1000        UINT32 id) = 0;
1001
1002    virtual HRESULT STDMETHODCALLTYPE ReleaseContact(
1003        UINT32 id) = 0;
1004
1005    virtual HRESULT STDMETHODCALLTYPE ReleaseAllContacts(
1006        ) = 0;
1007
1008    virtual HRESULT STDMETHODCALLTYPE GetStatus(
1009        DIRECTMANIPULATION_STATUS *status) = 0;
1010
1011    virtual HRESULT STDMETHODCALLTYPE GetTag(
1012        REFIID riid,
1013        void **object,
1014        UINT32 *id) = 0;
1015
1016    virtual HRESULT STDMETHODCALLTYPE SetTag(
1017        IUnknown *object,
1018        UINT32 id) = 0;
1019
1020    virtual HRESULT STDMETHODCALLTYPE GetViewportRect(
1021        RECT *viewport) = 0;
1022
1023    virtual HRESULT STDMETHODCALLTYPE SetViewportRect(
1024        const RECT *viewport) = 0;
1025
1026    virtual HRESULT STDMETHODCALLTYPE ZoomToRect(
1027        const float left,
1028        const float top,
1029        const float right,
1030        const float bottom,
1031        WINBOOL animate) = 0;
1032
1033    virtual HRESULT STDMETHODCALLTYPE SetViewportTransform(
1034        const float *matrix,
1035        DWORD count) = 0;
1036
1037    virtual HRESULT STDMETHODCALLTYPE SyncDisplayTransform(
1038        const float *matrix,
1039        DWORD count) = 0;
1040
1041    virtual HRESULT STDMETHODCALLTYPE GetPrimaryContent(
1042        REFIID riid,
1043        void **object) = 0;
1044
1045    virtual HRESULT STDMETHODCALLTYPE AddContent(
1046        IDirectManipulationContent *content) = 0;
1047
1048    virtual HRESULT STDMETHODCALLTYPE RemoveContent(
1049        IDirectManipulationContent *content) = 0;
1050
1051    virtual HRESULT STDMETHODCALLTYPE SetViewportOptions(
1052        DIRECTMANIPULATION_VIEWPORT_OPTIONS options) = 0;
1053
1054    virtual HRESULT STDMETHODCALLTYPE AddConfiguration(
1055        DIRECTMANIPULATION_CONFIGURATION configuration) = 0;
1056
1057    virtual HRESULT STDMETHODCALLTYPE RemoveConfiguration(
1058        DIRECTMANIPULATION_CONFIGURATION configuration) = 0;
1059
1060    virtual HRESULT STDMETHODCALLTYPE ActivateConfiguration(
1061        DIRECTMANIPULATION_CONFIGURATION configuration) = 0;
1062
1063    virtual HRESULT STDMETHODCALLTYPE SetManualGesture(
1064        DIRECTMANIPULATION_GESTURE_CONFIGURATION configuration) = 0;
1065
1066    virtual HRESULT STDMETHODCALLTYPE SetChaining(
1067        DIRECTMANIPULATION_MOTION_TYPES enabledTypes) = 0;
1068
1069    virtual HRESULT STDMETHODCALLTYPE AddEventHandler(
1070        HWND window,
1071        IDirectManipulationViewportEventHandler *eventHandler,
1072        DWORD *cookie) = 0;
1073
1074    virtual HRESULT STDMETHODCALLTYPE RemoveEventHandler(
1075        DWORD cookie) = 0;
1076
1077    virtual HRESULT STDMETHODCALLTYPE SetInputMode(
1078        DIRECTMANIPULATION_INPUT_MODE mode) = 0;
1079
1080    virtual HRESULT STDMETHODCALLTYPE SetUpdateMode(
1081        DIRECTMANIPULATION_INPUT_MODE mode) = 0;
1082
1083    virtual HRESULT STDMETHODCALLTYPE Stop(
1084        ) = 0;
1085
1086    virtual HRESULT STDMETHODCALLTYPE Abandon(
1087        ) = 0;
1088
1089};
1090#ifdef __CRT_UUID_DECL
1091__CRT_UUID_DECL(IDirectManipulationViewport, 0x28b85a3d, 0x60a0, 0x48bd, 0x9b,0xa1, 0x5c,0xe8,0xd9,0xea,0x3a,0x6d)
1092#endif
1093#else
1094typedef struct IDirectManipulationViewportVtbl {
1095    BEGIN_INTERFACE
1096
1097    /*** IUnknown methods ***/
1098    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1099        IDirectManipulationViewport *This,
1100        REFIID riid,
1101        void **ppvObject);
1102
1103    ULONG (STDMETHODCALLTYPE *AddRef)(
1104        IDirectManipulationViewport *This);
1105
1106    ULONG (STDMETHODCALLTYPE *Release)(
1107        IDirectManipulationViewport *This);
1108
1109    /*** IDirectManipulationViewport methods ***/
1110    HRESULT (STDMETHODCALLTYPE *Enable)(
1111        IDirectManipulationViewport *This);
1112
1113    HRESULT (STDMETHODCALLTYPE *Disable)(
1114        IDirectManipulationViewport *This);
1115
1116    HRESULT (STDMETHODCALLTYPE *SetContact)(
1117        IDirectManipulationViewport *This,
1118        UINT32 id);
1119
1120    HRESULT (STDMETHODCALLTYPE *ReleaseContact)(
1121        IDirectManipulationViewport *This,
1122        UINT32 id);
1123
1124    HRESULT (STDMETHODCALLTYPE *ReleaseAllContacts)(
1125        IDirectManipulationViewport *This);
1126
1127    HRESULT (STDMETHODCALLTYPE *GetStatus)(
1128        IDirectManipulationViewport *This,
1129        DIRECTMANIPULATION_STATUS *status);
1130
1131    HRESULT (STDMETHODCALLTYPE *GetTag)(
1132        IDirectManipulationViewport *This,
1133        REFIID riid,
1134        void **object,
1135        UINT32 *id);
1136
1137    HRESULT (STDMETHODCALLTYPE *SetTag)(
1138        IDirectManipulationViewport *This,
1139        IUnknown *object,
1140        UINT32 id);
1141
1142    HRESULT (STDMETHODCALLTYPE *GetViewportRect)(
1143        IDirectManipulationViewport *This,
1144        RECT *viewport);
1145
1146    HRESULT (STDMETHODCALLTYPE *SetViewportRect)(
1147        IDirectManipulationViewport *This,
1148        const RECT *viewport);
1149
1150    HRESULT (STDMETHODCALLTYPE *ZoomToRect)(
1151        IDirectManipulationViewport *This,
1152        const float left,
1153        const float top,
1154        const float right,
1155        const float bottom,
1156        WINBOOL animate);
1157
1158    HRESULT (STDMETHODCALLTYPE *SetViewportTransform)(
1159        IDirectManipulationViewport *This,
1160        const float *matrix,
1161        DWORD count);
1162
1163    HRESULT (STDMETHODCALLTYPE *SyncDisplayTransform)(
1164        IDirectManipulationViewport *This,
1165        const float *matrix,
1166        DWORD count);
1167
1168    HRESULT (STDMETHODCALLTYPE *GetPrimaryContent)(
1169        IDirectManipulationViewport *This,
1170        REFIID riid,
1171        void **object);
1172
1173    HRESULT (STDMETHODCALLTYPE *AddContent)(
1174        IDirectManipulationViewport *This,
1175        IDirectManipulationContent *content);
1176
1177    HRESULT (STDMETHODCALLTYPE *RemoveContent)(
1178        IDirectManipulationViewport *This,
1179        IDirectManipulationContent *content);
1180
1181    HRESULT (STDMETHODCALLTYPE *SetViewportOptions)(
1182        IDirectManipulationViewport *This,
1183        DIRECTMANIPULATION_VIEWPORT_OPTIONS options);
1184
1185    HRESULT (STDMETHODCALLTYPE *AddConfiguration)(
1186        IDirectManipulationViewport *This,
1187        DIRECTMANIPULATION_CONFIGURATION configuration);
1188
1189    HRESULT (STDMETHODCALLTYPE *RemoveConfiguration)(
1190        IDirectManipulationViewport *This,
1191        DIRECTMANIPULATION_CONFIGURATION configuration);
1192
1193    HRESULT (STDMETHODCALLTYPE *ActivateConfiguration)(
1194        IDirectManipulationViewport *This,
1195        DIRECTMANIPULATION_CONFIGURATION configuration);
1196
1197    HRESULT (STDMETHODCALLTYPE *SetManualGesture)(
1198        IDirectManipulationViewport *This,
1199        DIRECTMANIPULATION_GESTURE_CONFIGURATION configuration);
1200
1201    HRESULT (STDMETHODCALLTYPE *SetChaining)(
1202        IDirectManipulationViewport *This,
1203        DIRECTMANIPULATION_MOTION_TYPES enabledTypes);
1204
1205    HRESULT (STDMETHODCALLTYPE *AddEventHandler)(
1206        IDirectManipulationViewport *This,
1207        HWND window,
1208        IDirectManipulationViewportEventHandler *eventHandler,
1209        DWORD *cookie);
1210
1211    HRESULT (STDMETHODCALLTYPE *RemoveEventHandler)(
1212        IDirectManipulationViewport *This,
1213        DWORD cookie);
1214
1215    HRESULT (STDMETHODCALLTYPE *SetInputMode)(
1216        IDirectManipulationViewport *This,
1217        DIRECTMANIPULATION_INPUT_MODE mode);
1218
1219    HRESULT (STDMETHODCALLTYPE *SetUpdateMode)(
1220        IDirectManipulationViewport *This,
1221        DIRECTMANIPULATION_INPUT_MODE mode);
1222
1223    HRESULT (STDMETHODCALLTYPE *Stop)(
1224        IDirectManipulationViewport *This);
1225
1226    HRESULT (STDMETHODCALLTYPE *Abandon)(
1227        IDirectManipulationViewport *This);
1228
1229    END_INTERFACE
1230} IDirectManipulationViewportVtbl;
1231
1232interface IDirectManipulationViewport {
1233    CONST_VTBL IDirectManipulationViewportVtbl* lpVtbl;
1234};
1235
1236#ifdef COBJMACROS
1237#ifndef WIDL_C_INLINE_WRAPPERS
1238/*** IUnknown methods ***/
1239#define IDirectManipulationViewport_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1240#define IDirectManipulationViewport_AddRef(This) (This)->lpVtbl->AddRef(This)
1241#define IDirectManipulationViewport_Release(This) (This)->lpVtbl->Release(This)
1242/*** IDirectManipulationViewport methods ***/
1243#define IDirectManipulationViewport_Enable(This) (This)->lpVtbl->Enable(This)
1244#define IDirectManipulationViewport_Disable(This) (This)->lpVtbl->Disable(This)
1245#define IDirectManipulationViewport_SetContact(This,id) (This)->lpVtbl->SetContact(This,id)
1246#define IDirectManipulationViewport_ReleaseContact(This,id) (This)->lpVtbl->ReleaseContact(This,id)
1247#define IDirectManipulationViewport_ReleaseAllContacts(This) (This)->lpVtbl->ReleaseAllContacts(This)
1248#define IDirectManipulationViewport_GetStatus(This,status) (This)->lpVtbl->GetStatus(This,status)
1249#define IDirectManipulationViewport_GetTag(This,riid,object,id) (This)->lpVtbl->GetTag(This,riid,object,id)
1250#define IDirectManipulationViewport_SetTag(This,object,id) (This)->lpVtbl->SetTag(This,object,id)
1251#define IDirectManipulationViewport_GetViewportRect(This,viewport) (This)->lpVtbl->GetViewportRect(This,viewport)
1252#define IDirectManipulationViewport_SetViewportRect(This,viewport) (This)->lpVtbl->SetViewportRect(This,viewport)
1253#define IDirectManipulationViewport_ZoomToRect(This,left,top,right,bottom,animate) (This)->lpVtbl->ZoomToRect(This,left,top,right,bottom,animate)
1254#define IDirectManipulationViewport_SetViewportTransform(This,matrix,count) (This)->lpVtbl->SetViewportTransform(This,matrix,count)
1255#define IDirectManipulationViewport_SyncDisplayTransform(This,matrix,count) (This)->lpVtbl->SyncDisplayTransform(This,matrix,count)
1256#define IDirectManipulationViewport_GetPrimaryContent(This,riid,object) (This)->lpVtbl->GetPrimaryContent(This,riid,object)
1257#define IDirectManipulationViewport_AddContent(This,content) (This)->lpVtbl->AddContent(This,content)
1258#define IDirectManipulationViewport_RemoveContent(This,content) (This)->lpVtbl->RemoveContent(This,content)
1259#define IDirectManipulationViewport_SetViewportOptions(This,options) (This)->lpVtbl->SetViewportOptions(This,options)
1260#define IDirectManipulationViewport_AddConfiguration(This,configuration) (This)->lpVtbl->AddConfiguration(This,configuration)
1261#define IDirectManipulationViewport_RemoveConfiguration(This,configuration) (This)->lpVtbl->RemoveConfiguration(This,configuration)
1262#define IDirectManipulationViewport_ActivateConfiguration(This,configuration) (This)->lpVtbl->ActivateConfiguration(This,configuration)
1263#define IDirectManipulationViewport_SetManualGesture(This,configuration) (This)->lpVtbl->SetManualGesture(This,configuration)
1264#define IDirectManipulationViewport_SetChaining(This,enabledTypes) (This)->lpVtbl->SetChaining(This,enabledTypes)
1265#define IDirectManipulationViewport_AddEventHandler(This,window,eventHandler,cookie) (This)->lpVtbl->AddEventHandler(This,window,eventHandler,cookie)
1266#define IDirectManipulationViewport_RemoveEventHandler(This,cookie) (This)->lpVtbl->RemoveEventHandler(This,cookie)
1267#define IDirectManipulationViewport_SetInputMode(This,mode) (This)->lpVtbl->SetInputMode(This,mode)
1268#define IDirectManipulationViewport_SetUpdateMode(This,mode) (This)->lpVtbl->SetUpdateMode(This,mode)
1269#define IDirectManipulationViewport_Stop(This) (This)->lpVtbl->Stop(This)
1270#define IDirectManipulationViewport_Abandon(This) (This)->lpVtbl->Abandon(This)
1271#else
1272/*** IUnknown methods ***/
1273static inline HRESULT IDirectManipulationViewport_QueryInterface(IDirectManipulationViewport* This,REFIID riid,void **ppvObject) {
1274    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1275}
1276static inline ULONG IDirectManipulationViewport_AddRef(IDirectManipulationViewport* This) {
1277    return This->lpVtbl->AddRef(This);
1278}
1279static inline ULONG IDirectManipulationViewport_Release(IDirectManipulationViewport* This) {
1280    return This->lpVtbl->Release(This);
1281}
1282/*** IDirectManipulationViewport methods ***/
1283static inline HRESULT IDirectManipulationViewport_Enable(IDirectManipulationViewport* This) {
1284    return This->lpVtbl->Enable(This);
1285}
1286static inline HRESULT IDirectManipulationViewport_Disable(IDirectManipulationViewport* This) {
1287    return This->lpVtbl->Disable(This);
1288}
1289static inline HRESULT IDirectManipulationViewport_SetContact(IDirectManipulationViewport* This,UINT32 id) {
1290    return This->lpVtbl->SetContact(This,id);
1291}
1292static inline HRESULT IDirectManipulationViewport_ReleaseContact(IDirectManipulationViewport* This,UINT32 id) {
1293    return This->lpVtbl->ReleaseContact(This,id);
1294}
1295static inline HRESULT IDirectManipulationViewport_ReleaseAllContacts(IDirectManipulationViewport* This) {
1296    return This->lpVtbl->ReleaseAllContacts(This);
1297}
1298static inline HRESULT IDirectManipulationViewport_GetStatus(IDirectManipulationViewport* This,DIRECTMANIPULATION_STATUS *status) {
1299    return This->lpVtbl->GetStatus(This,status);
1300}
1301static inline HRESULT IDirectManipulationViewport_GetTag(IDirectManipulationViewport* This,REFIID riid,void **object,UINT32 *id) {
1302    return This->lpVtbl->GetTag(This,riid,object,id);
1303}
1304static inline HRESULT IDirectManipulationViewport_SetTag(IDirectManipulationViewport* This,IUnknown *object,UINT32 id) {
1305    return This->lpVtbl->SetTag(This,object,id);
1306}
1307static inline HRESULT IDirectManipulationViewport_GetViewportRect(IDirectManipulationViewport* This,RECT *viewport) {
1308    return This->lpVtbl->GetViewportRect(This,viewport);
1309}
1310static inline HRESULT IDirectManipulationViewport_SetViewportRect(IDirectManipulationViewport* This,const RECT *viewport) {
1311    return This->lpVtbl->SetViewportRect(This,viewport);
1312}
1313static inline HRESULT IDirectManipulationViewport_ZoomToRect(IDirectManipulationViewport* This,const float left,const float top,const float right,const float bottom,WINBOOL animate) {
1314    return This->lpVtbl->ZoomToRect(This,left,top,right,bottom,animate);
1315}
1316static inline HRESULT IDirectManipulationViewport_SetViewportTransform(IDirectManipulationViewport* This,const float *matrix,DWORD count) {
1317    return This->lpVtbl->SetViewportTransform(This,matrix,count);
1318}
1319static inline HRESULT IDirectManipulationViewport_SyncDisplayTransform(IDirectManipulationViewport* This,const float *matrix,DWORD count) {
1320    return This->lpVtbl->SyncDisplayTransform(This,matrix,count);
1321}
1322static inline HRESULT IDirectManipulationViewport_GetPrimaryContent(IDirectManipulationViewport* This,REFIID riid,void **object) {
1323    return This->lpVtbl->GetPrimaryContent(This,riid,object);
1324}
1325static inline HRESULT IDirectManipulationViewport_AddContent(IDirectManipulationViewport* This,IDirectManipulationContent *content) {
1326    return This->lpVtbl->AddContent(This,content);
1327}
1328static inline HRESULT IDirectManipulationViewport_RemoveContent(IDirectManipulationViewport* This,IDirectManipulationContent *content) {
1329    return This->lpVtbl->RemoveContent(This,content);
1330}
1331static inline HRESULT IDirectManipulationViewport_SetViewportOptions(IDirectManipulationViewport* This,DIRECTMANIPULATION_VIEWPORT_OPTIONS options) {
1332    return This->lpVtbl->SetViewportOptions(This,options);
1333}
1334static inline HRESULT IDirectManipulationViewport_AddConfiguration(IDirectManipulationViewport* This,DIRECTMANIPULATION_CONFIGURATION configuration) {
1335    return This->lpVtbl->AddConfiguration(This,configuration);
1336}
1337static inline HRESULT IDirectManipulationViewport_RemoveConfiguration(IDirectManipulationViewport* This,DIRECTMANIPULATION_CONFIGURATION configuration) {
1338    return This->lpVtbl->RemoveConfiguration(This,configuration);
1339}
1340static inline HRESULT IDirectManipulationViewport_ActivateConfiguration(IDirectManipulationViewport* This,DIRECTMANIPULATION_CONFIGURATION configuration) {
1341    return This->lpVtbl->ActivateConfiguration(This,configuration);
1342}
1343static inline HRESULT IDirectManipulationViewport_SetManualGesture(IDirectManipulationViewport* This,DIRECTMANIPULATION_GESTURE_CONFIGURATION configuration) {
1344    return This->lpVtbl->SetManualGesture(This,configuration);
1345}
1346static inline HRESULT IDirectManipulationViewport_SetChaining(IDirectManipulationViewport* This,DIRECTMANIPULATION_MOTION_TYPES enabledTypes) {
1347    return This->lpVtbl->SetChaining(This,enabledTypes);
1348}
1349static inline HRESULT IDirectManipulationViewport_AddEventHandler(IDirectManipulationViewport* This,HWND window,IDirectManipulationViewportEventHandler *eventHandler,DWORD *cookie) {
1350    return This->lpVtbl->AddEventHandler(This,window,eventHandler,cookie);
1351}
1352static inline HRESULT IDirectManipulationViewport_RemoveEventHandler(IDirectManipulationViewport* This,DWORD cookie) {
1353    return This->lpVtbl->RemoveEventHandler(This,cookie);
1354}
1355static inline HRESULT IDirectManipulationViewport_SetInputMode(IDirectManipulationViewport* This,DIRECTMANIPULATION_INPUT_MODE mode) {
1356    return This->lpVtbl->SetInputMode(This,mode);
1357}
1358static inline HRESULT IDirectManipulationViewport_SetUpdateMode(IDirectManipulationViewport* This,DIRECTMANIPULATION_INPUT_MODE mode) {
1359    return This->lpVtbl->SetUpdateMode(This,mode);
1360}
1361static inline HRESULT IDirectManipulationViewport_Stop(IDirectManipulationViewport* This) {
1362    return This->lpVtbl->Stop(This);
1363}
1364static inline HRESULT IDirectManipulationViewport_Abandon(IDirectManipulationViewport* This) {
1365    return This->lpVtbl->Abandon(This);
1366}
1367#endif
1368#endif
1369
1370#endif
1371
1372
1373#endif  /* __IDirectManipulationViewport_INTERFACE_DEFINED__ */
1374
1375/*****************************************************************************
1376 * IDirectManipulationViewport2 interface
1377 */
1378#ifndef __IDirectManipulationViewport2_INTERFACE_DEFINED__
1379#define __IDirectManipulationViewport2_INTERFACE_DEFINED__
1380
1381DEFINE_GUID(IID_IDirectManipulationViewport2, 0x923ccaac, 0x61e1, 0x4385, 0xb7,0x26, 0x01,0x7a,0xf1,0x89,0x88,0x2a);
1382#if defined(__cplusplus) && !defined(CINTERFACE)
1383MIDL_INTERFACE("923ccaac-61e1-4385-b726-017af189882a")
1384IDirectManipulationViewport2 : public IDirectManipulationViewport
1385{
1386    virtual HRESULT STDMETHODCALLTYPE AddBehavior(
1387        IUnknown *behavior,
1388        DWORD *cookie) = 0;
1389
1390    virtual HRESULT STDMETHODCALLTYPE RemoveBehavior(
1391        DWORD cookie) = 0;
1392
1393    virtual HRESULT STDMETHODCALLTYPE RemoveAllBehaviors(
1394        ) = 0;
1395
1396};
1397#ifdef __CRT_UUID_DECL
1398__CRT_UUID_DECL(IDirectManipulationViewport2, 0x923ccaac, 0x61e1, 0x4385, 0xb7,0x26, 0x01,0x7a,0xf1,0x89,0x88,0x2a)
1399#endif
1400#else
1401typedef struct IDirectManipulationViewport2Vtbl {
1402    BEGIN_INTERFACE
1403
1404    /*** IUnknown methods ***/
1405    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1406        IDirectManipulationViewport2 *This,
1407        REFIID riid,
1408        void **ppvObject);
1409
1410    ULONG (STDMETHODCALLTYPE *AddRef)(
1411        IDirectManipulationViewport2 *This);
1412
1413    ULONG (STDMETHODCALLTYPE *Release)(
1414        IDirectManipulationViewport2 *This);
1415
1416    /*** IDirectManipulationViewport methods ***/
1417    HRESULT (STDMETHODCALLTYPE *Enable)(
1418        IDirectManipulationViewport2 *This);
1419
1420    HRESULT (STDMETHODCALLTYPE *Disable)(
1421        IDirectManipulationViewport2 *This);
1422
1423    HRESULT (STDMETHODCALLTYPE *SetContact)(
1424        IDirectManipulationViewport2 *This,
1425        UINT32 id);
1426
1427    HRESULT (STDMETHODCALLTYPE *ReleaseContact)(
1428        IDirectManipulationViewport2 *This,
1429        UINT32 id);
1430
1431    HRESULT (STDMETHODCALLTYPE *ReleaseAllContacts)(
1432        IDirectManipulationViewport2 *This);
1433
1434    HRESULT (STDMETHODCALLTYPE *GetStatus)(
1435        IDirectManipulationViewport2 *This,
1436        DIRECTMANIPULATION_STATUS *status);
1437
1438    HRESULT (STDMETHODCALLTYPE *GetTag)(
1439        IDirectManipulationViewport2 *This,
1440        REFIID riid,
1441        void **object,
1442        UINT32 *id);
1443
1444    HRESULT (STDMETHODCALLTYPE *SetTag)(
1445        IDirectManipulationViewport2 *This,
1446        IUnknown *object,
1447        UINT32 id);
1448
1449    HRESULT (STDMETHODCALLTYPE *GetViewportRect)(
1450        IDirectManipulationViewport2 *This,
1451        RECT *viewport);
1452
1453    HRESULT (STDMETHODCALLTYPE *SetViewportRect)(
1454        IDirectManipulationViewport2 *This,
1455        const RECT *viewport);
1456
1457    HRESULT (STDMETHODCALLTYPE *ZoomToRect)(
1458        IDirectManipulationViewport2 *This,
1459        const float left,
1460        const float top,
1461        const float right,
1462        const float bottom,
1463        WINBOOL animate);
1464
1465    HRESULT (STDMETHODCALLTYPE *SetViewportTransform)(
1466        IDirectManipulationViewport2 *This,
1467        const float *matrix,
1468        DWORD count);
1469
1470    HRESULT (STDMETHODCALLTYPE *SyncDisplayTransform)(
1471        IDirectManipulationViewport2 *This,
1472        const float *matrix,
1473        DWORD count);
1474
1475    HRESULT (STDMETHODCALLTYPE *GetPrimaryContent)(
1476        IDirectManipulationViewport2 *This,
1477        REFIID riid,
1478        void **object);
1479
1480    HRESULT (STDMETHODCALLTYPE *AddContent)(
1481        IDirectManipulationViewport2 *This,
1482        IDirectManipulationContent *content);
1483
1484    HRESULT (STDMETHODCALLTYPE *RemoveContent)(
1485        IDirectManipulationViewport2 *This,
1486        IDirectManipulationContent *content);
1487
1488    HRESULT (STDMETHODCALLTYPE *SetViewportOptions)(
1489        IDirectManipulationViewport2 *This,
1490        DIRECTMANIPULATION_VIEWPORT_OPTIONS options);
1491
1492    HRESULT (STDMETHODCALLTYPE *AddConfiguration)(
1493        IDirectManipulationViewport2 *This,
1494        DIRECTMANIPULATION_CONFIGURATION configuration);
1495
1496    HRESULT (STDMETHODCALLTYPE *RemoveConfiguration)(
1497        IDirectManipulationViewport2 *This,
1498        DIRECTMANIPULATION_CONFIGURATION configuration);
1499
1500    HRESULT (STDMETHODCALLTYPE *ActivateConfiguration)(
1501        IDirectManipulationViewport2 *This,
1502        DIRECTMANIPULATION_CONFIGURATION configuration);
1503
1504    HRESULT (STDMETHODCALLTYPE *SetManualGesture)(
1505        IDirectManipulationViewport2 *This,
1506        DIRECTMANIPULATION_GESTURE_CONFIGURATION configuration);
1507
1508    HRESULT (STDMETHODCALLTYPE *SetChaining)(
1509        IDirectManipulationViewport2 *This,
1510        DIRECTMANIPULATION_MOTION_TYPES enabledTypes);
1511
1512    HRESULT (STDMETHODCALLTYPE *AddEventHandler)(
1513        IDirectManipulationViewport2 *This,
1514        HWND window,
1515        IDirectManipulationViewportEventHandler *eventHandler,
1516        DWORD *cookie);
1517
1518    HRESULT (STDMETHODCALLTYPE *RemoveEventHandler)(
1519        IDirectManipulationViewport2 *This,
1520        DWORD cookie);
1521
1522    HRESULT (STDMETHODCALLTYPE *SetInputMode)(
1523        IDirectManipulationViewport2 *This,
1524        DIRECTMANIPULATION_INPUT_MODE mode);
1525
1526    HRESULT (STDMETHODCALLTYPE *SetUpdateMode)(
1527        IDirectManipulationViewport2 *This,
1528        DIRECTMANIPULATION_INPUT_MODE mode);
1529
1530    HRESULT (STDMETHODCALLTYPE *Stop)(
1531        IDirectManipulationViewport2 *This);
1532
1533    HRESULT (STDMETHODCALLTYPE *Abandon)(
1534        IDirectManipulationViewport2 *This);
1535
1536    /*** IDirectManipulationViewport2 methods ***/
1537    HRESULT (STDMETHODCALLTYPE *AddBehavior)(
1538        IDirectManipulationViewport2 *This,
1539        IUnknown *behavior,
1540        DWORD *cookie);
1541
1542    HRESULT (STDMETHODCALLTYPE *RemoveBehavior)(
1543        IDirectManipulationViewport2 *This,
1544        DWORD cookie);
1545
1546    HRESULT (STDMETHODCALLTYPE *RemoveAllBehaviors)(
1547        IDirectManipulationViewport2 *This);
1548
1549    END_INTERFACE
1550} IDirectManipulationViewport2Vtbl;
1551
1552interface IDirectManipulationViewport2 {
1553    CONST_VTBL IDirectManipulationViewport2Vtbl* lpVtbl;
1554};
1555
1556#ifdef COBJMACROS
1557#ifndef WIDL_C_INLINE_WRAPPERS
1558/*** IUnknown methods ***/
1559#define IDirectManipulationViewport2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1560#define IDirectManipulationViewport2_AddRef(This) (This)->lpVtbl->AddRef(This)
1561#define IDirectManipulationViewport2_Release(This) (This)->lpVtbl->Release(This)
1562/*** IDirectManipulationViewport methods ***/
1563#define IDirectManipulationViewport2_Enable(This) (This)->lpVtbl->Enable(This)
1564#define IDirectManipulationViewport2_Disable(This) (This)->lpVtbl->Disable(This)
1565#define IDirectManipulationViewport2_SetContact(This,id) (This)->lpVtbl->SetContact(This,id)
1566#define IDirectManipulationViewport2_ReleaseContact(This,id) (This)->lpVtbl->ReleaseContact(This,id)
1567#define IDirectManipulationViewport2_ReleaseAllContacts(This) (This)->lpVtbl->ReleaseAllContacts(This)
1568#define IDirectManipulationViewport2_GetStatus(This,status) (This)->lpVtbl->GetStatus(This,status)
1569#define IDirectManipulationViewport2_GetTag(This,riid,object,id) (This)->lpVtbl->GetTag(This,riid,object,id)
1570#define IDirectManipulationViewport2_SetTag(This,object,id) (This)->lpVtbl->SetTag(This,object,id)
1571#define IDirectManipulationViewport2_GetViewportRect(This,viewport) (This)->lpVtbl->GetViewportRect(This,viewport)
1572#define IDirectManipulationViewport2_SetViewportRect(This,viewport) (This)->lpVtbl->SetViewportRect(This,viewport)
1573#define IDirectManipulationViewport2_ZoomToRect(This,left,top,right,bottom,animate) (This)->lpVtbl->ZoomToRect(This,left,top,right,bottom,animate)
1574#define IDirectManipulationViewport2_SetViewportTransform(This,matrix,count) (This)->lpVtbl->SetViewportTransform(This,matrix,count)
1575#define IDirectManipulationViewport2_SyncDisplayTransform(This,matrix,count) (This)->lpVtbl->SyncDisplayTransform(This,matrix,count)
1576#define IDirectManipulationViewport2_GetPrimaryContent(This,riid,object) (This)->lpVtbl->GetPrimaryContent(This,riid,object)
1577#define IDirectManipulationViewport2_AddContent(This,content) (This)->lpVtbl->AddContent(This,content)
1578#define IDirectManipulationViewport2_RemoveContent(This,content) (This)->lpVtbl->RemoveContent(This,content)
1579#define IDirectManipulationViewport2_SetViewportOptions(This,options) (This)->lpVtbl->SetViewportOptions(This,options)
1580#define IDirectManipulationViewport2_AddConfiguration(This,configuration) (This)->lpVtbl->AddConfiguration(This,configuration)
1581#define IDirectManipulationViewport2_RemoveConfiguration(This,configuration) (This)->lpVtbl->RemoveConfiguration(This,configuration)
1582#define IDirectManipulationViewport2_ActivateConfiguration(This,configuration) (This)->lpVtbl->ActivateConfiguration(This,configuration)
1583#define IDirectManipulationViewport2_SetManualGesture(This,configuration) (This)->lpVtbl->SetManualGesture(This,configuration)
1584#define IDirectManipulationViewport2_SetChaining(This,enabledTypes) (This)->lpVtbl->SetChaining(This,enabledTypes)
1585#define IDirectManipulationViewport2_AddEventHandler(This,window,eventHandler,cookie) (This)->lpVtbl->AddEventHandler(This,window,eventHandler,cookie)
1586#define IDirectManipulationViewport2_RemoveEventHandler(This,cookie) (This)->lpVtbl->RemoveEventHandler(This,cookie)
1587#define IDirectManipulationViewport2_SetInputMode(This,mode) (This)->lpVtbl->SetInputMode(This,mode)
1588#define IDirectManipulationViewport2_SetUpdateMode(This,mode) (This)->lpVtbl->SetUpdateMode(This,mode)
1589#define IDirectManipulationViewport2_Stop(This) (This)->lpVtbl->Stop(This)
1590#define IDirectManipulationViewport2_Abandon(This) (This)->lpVtbl->Abandon(This)
1591/*** IDirectManipulationViewport2 methods ***/
1592#define IDirectManipulationViewport2_AddBehavior(This,behavior,cookie) (This)->lpVtbl->AddBehavior(This,behavior,cookie)
1593#define IDirectManipulationViewport2_RemoveBehavior(This,cookie) (This)->lpVtbl->RemoveBehavior(This,cookie)
1594#define IDirectManipulationViewport2_RemoveAllBehaviors(This) (This)->lpVtbl->RemoveAllBehaviors(This)
1595#else
1596/*** IUnknown methods ***/
1597static inline HRESULT IDirectManipulationViewport2_QueryInterface(IDirectManipulationViewport2* This,REFIID riid,void **ppvObject) {
1598    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1599}
1600static inline ULONG IDirectManipulationViewport2_AddRef(IDirectManipulationViewport2* This) {
1601    return This->lpVtbl->AddRef(This);
1602}
1603static inline ULONG IDirectManipulationViewport2_Release(IDirectManipulationViewport2* This) {
1604    return This->lpVtbl->Release(This);
1605}
1606/*** IDirectManipulationViewport methods ***/
1607static inline HRESULT IDirectManipulationViewport2_Enable(IDirectManipulationViewport2* This) {
1608    return This->lpVtbl->Enable(This);
1609}
1610static inline HRESULT IDirectManipulationViewport2_Disable(IDirectManipulationViewport2* This) {
1611    return This->lpVtbl->Disable(This);
1612}
1613static inline HRESULT IDirectManipulationViewport2_SetContact(IDirectManipulationViewport2* This,UINT32 id) {
1614    return This->lpVtbl->SetContact(This,id);
1615}
1616static inline HRESULT IDirectManipulationViewport2_ReleaseContact(IDirectManipulationViewport2* This,UINT32 id) {
1617    return This->lpVtbl->ReleaseContact(This,id);
1618}
1619static inline HRESULT IDirectManipulationViewport2_ReleaseAllContacts(IDirectManipulationViewport2* This) {
1620    return This->lpVtbl->ReleaseAllContacts(This);
1621}
1622static inline HRESULT IDirectManipulationViewport2_GetStatus(IDirectManipulationViewport2* This,DIRECTMANIPULATION_STATUS *status) {
1623    return This->lpVtbl->GetStatus(This,status);
1624}
1625static inline HRESULT IDirectManipulationViewport2_GetTag(IDirectManipulationViewport2* This,REFIID riid,void **object,UINT32 *id) {
1626    return This->lpVtbl->GetTag(This,riid,object,id);
1627}
1628static inline HRESULT IDirectManipulationViewport2_SetTag(IDirectManipulationViewport2* This,IUnknown *object,UINT32 id) {
1629    return This->lpVtbl->SetTag(This,object,id);
1630}
1631static inline HRESULT IDirectManipulationViewport2_GetViewportRect(IDirectManipulationViewport2* This,RECT *viewport) {
1632    return This->lpVtbl->GetViewportRect(This,viewport);
1633}
1634static inline HRESULT IDirectManipulationViewport2_SetViewportRect(IDirectManipulationViewport2* This,const RECT *viewport) {
1635    return This->lpVtbl->SetViewportRect(This,viewport);
1636}
1637static inline HRESULT IDirectManipulationViewport2_ZoomToRect(IDirectManipulationViewport2* This,const float left,const float top,const float right,const float bottom,WINBOOL animate) {
1638    return This->lpVtbl->ZoomToRect(This,left,top,right,bottom,animate);
1639}
1640static inline HRESULT IDirectManipulationViewport2_SetViewportTransform(IDirectManipulationViewport2* This,const float *matrix,DWORD count) {
1641    return This->lpVtbl->SetViewportTransform(This,matrix,count);
1642}
1643static inline HRESULT IDirectManipulationViewport2_SyncDisplayTransform(IDirectManipulationViewport2* This,const float *matrix,DWORD count) {
1644    return This->lpVtbl->SyncDisplayTransform(This,matrix,count);
1645}
1646static inline HRESULT IDirectManipulationViewport2_GetPrimaryContent(IDirectManipulationViewport2* This,REFIID riid,void **object) {
1647    return This->lpVtbl->GetPrimaryContent(This,riid,object);
1648}
1649static inline HRESULT IDirectManipulationViewport2_AddContent(IDirectManipulationViewport2* This,IDirectManipulationContent *content) {
1650    return This->lpVtbl->AddContent(This,content);
1651}
1652static inline HRESULT IDirectManipulationViewport2_RemoveContent(IDirectManipulationViewport2* This,IDirectManipulationContent *content) {
1653    return This->lpVtbl->RemoveContent(This,content);
1654}
1655static inline HRESULT IDirectManipulationViewport2_SetViewportOptions(IDirectManipulationViewport2* This,DIRECTMANIPULATION_VIEWPORT_OPTIONS options) {
1656    return This->lpVtbl->SetViewportOptions(This,options);
1657}
1658static inline HRESULT IDirectManipulationViewport2_AddConfiguration(IDirectManipulationViewport2* This,DIRECTMANIPULATION_CONFIGURATION configuration) {
1659    return This->lpVtbl->AddConfiguration(This,configuration);
1660}
1661static inline HRESULT IDirectManipulationViewport2_RemoveConfiguration(IDirectManipulationViewport2* This,DIRECTMANIPULATION_CONFIGURATION configuration) {
1662    return This->lpVtbl->RemoveConfiguration(This,configuration);
1663}
1664static inline HRESULT IDirectManipulationViewport2_ActivateConfiguration(IDirectManipulationViewport2* This,DIRECTMANIPULATION_CONFIGURATION configuration) {
1665    return This->lpVtbl->ActivateConfiguration(This,configuration);
1666}
1667static inline HRESULT IDirectManipulationViewport2_SetManualGesture(IDirectManipulationViewport2* This,DIRECTMANIPULATION_GESTURE_CONFIGURATION configuration) {
1668    return This->lpVtbl->SetManualGesture(This,configuration);
1669}
1670static inline HRESULT IDirectManipulationViewport2_SetChaining(IDirectManipulationViewport2* This,DIRECTMANIPULATION_MOTION_TYPES enabledTypes) {
1671    return This->lpVtbl->SetChaining(This,enabledTypes);
1672}
1673static inline HRESULT IDirectManipulationViewport2_AddEventHandler(IDirectManipulationViewport2* This,HWND window,IDirectManipulationViewportEventHandler *eventHandler,DWORD *cookie) {
1674    return This->lpVtbl->AddEventHandler(This,window,eventHandler,cookie);
1675}
1676static inline HRESULT IDirectManipulationViewport2_RemoveEventHandler(IDirectManipulationViewport2* This,DWORD cookie) {
1677    return This->lpVtbl->RemoveEventHandler(This,cookie);
1678}
1679static inline HRESULT IDirectManipulationViewport2_SetInputMode(IDirectManipulationViewport2* This,DIRECTMANIPULATION_INPUT_MODE mode) {
1680    return This->lpVtbl->SetInputMode(This,mode);
1681}
1682static inline HRESULT IDirectManipulationViewport2_SetUpdateMode(IDirectManipulationViewport2* This,DIRECTMANIPULATION_INPUT_MODE mode) {
1683    return This->lpVtbl->SetUpdateMode(This,mode);
1684}
1685static inline HRESULT IDirectManipulationViewport2_Stop(IDirectManipulationViewport2* This) {
1686    return This->lpVtbl->Stop(This);
1687}
1688static inline HRESULT IDirectManipulationViewport2_Abandon(IDirectManipulationViewport2* This) {
1689    return This->lpVtbl->Abandon(This);
1690}
1691/*** IDirectManipulationViewport2 methods ***/
1692static inline HRESULT IDirectManipulationViewport2_AddBehavior(IDirectManipulationViewport2* This,IUnknown *behavior,DWORD *cookie) {
1693    return This->lpVtbl->AddBehavior(This,behavior,cookie);
1694}
1695static inline HRESULT IDirectManipulationViewport2_RemoveBehavior(IDirectManipulationViewport2* This,DWORD cookie) {
1696    return This->lpVtbl->RemoveBehavior(This,cookie);
1697}
1698static inline HRESULT IDirectManipulationViewport2_RemoveAllBehaviors(IDirectManipulationViewport2* This) {
1699    return This->lpVtbl->RemoveAllBehaviors(This);
1700}
1701#endif
1702#endif
1703
1704#endif
1705
1706
1707#endif  /* __IDirectManipulationViewport2_INTERFACE_DEFINED__ */
1708
1709/*****************************************************************************
1710 * IDirectManipulationViewportEventHandler interface
1711 */
1712#ifndef __IDirectManipulationViewportEventHandler_INTERFACE_DEFINED__
1713#define __IDirectManipulationViewportEventHandler_INTERFACE_DEFINED__
1714
1715DEFINE_GUID(IID_IDirectManipulationViewportEventHandler, 0x952121da, 0xd69f, 0x45f9, 0xb0,0xf9, 0xf2,0x39,0x44,0x32,0x1a,0x6d);
1716#if defined(__cplusplus) && !defined(CINTERFACE)
1717MIDL_INTERFACE("952121da-d69f-45f9-b0f9-f23944321a6d")
1718IDirectManipulationViewportEventHandler : public IUnknown
1719{
1720    virtual HRESULT STDMETHODCALLTYPE OnViewportStatusChanged(
1721        IDirectManipulationViewport *viewport,
1722        DIRECTMANIPULATION_STATUS current,
1723        DIRECTMANIPULATION_STATUS previous) = 0;
1724
1725    virtual HRESULT STDMETHODCALLTYPE OnViewportUpdated(
1726        IDirectManipulationViewport *viewport) = 0;
1727
1728    virtual HRESULT STDMETHODCALLTYPE OnContentUpdated(
1729        IDirectManipulationViewport *viewport,
1730        IDirectManipulationContent *content) = 0;
1731
1732};
1733#ifdef __CRT_UUID_DECL
1734__CRT_UUID_DECL(IDirectManipulationViewportEventHandler, 0x952121da, 0xd69f, 0x45f9, 0xb0,0xf9, 0xf2,0x39,0x44,0x32,0x1a,0x6d)
1735#endif
1736#else
1737typedef struct IDirectManipulationViewportEventHandlerVtbl {
1738    BEGIN_INTERFACE
1739
1740    /*** IUnknown methods ***/
1741    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1742        IDirectManipulationViewportEventHandler *This,
1743        REFIID riid,
1744        void **ppvObject);
1745
1746    ULONG (STDMETHODCALLTYPE *AddRef)(
1747        IDirectManipulationViewportEventHandler *This);
1748
1749    ULONG (STDMETHODCALLTYPE *Release)(
1750        IDirectManipulationViewportEventHandler *This);
1751
1752    /*** IDirectManipulationViewportEventHandler methods ***/
1753    HRESULT (STDMETHODCALLTYPE *OnViewportStatusChanged)(
1754        IDirectManipulationViewportEventHandler *This,
1755        IDirectManipulationViewport *viewport,
1756        DIRECTMANIPULATION_STATUS current,
1757        DIRECTMANIPULATION_STATUS previous);
1758
1759    HRESULT (STDMETHODCALLTYPE *OnViewportUpdated)(
1760        IDirectManipulationViewportEventHandler *This,
1761        IDirectManipulationViewport *viewport);
1762
1763    HRESULT (STDMETHODCALLTYPE *OnContentUpdated)(
1764        IDirectManipulationViewportEventHandler *This,
1765        IDirectManipulationViewport *viewport,
1766        IDirectManipulationContent *content);
1767
1768    END_INTERFACE
1769} IDirectManipulationViewportEventHandlerVtbl;
1770
1771interface IDirectManipulationViewportEventHandler {
1772    CONST_VTBL IDirectManipulationViewportEventHandlerVtbl* lpVtbl;
1773};
1774
1775#ifdef COBJMACROS
1776#ifndef WIDL_C_INLINE_WRAPPERS
1777/*** IUnknown methods ***/
1778#define IDirectManipulationViewportEventHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1779#define IDirectManipulationViewportEventHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
1780#define IDirectManipulationViewportEventHandler_Release(This) (This)->lpVtbl->Release(This)
1781/*** IDirectManipulationViewportEventHandler methods ***/
1782#define IDirectManipulationViewportEventHandler_OnViewportStatusChanged(This,viewport,current,previous) (This)->lpVtbl->OnViewportStatusChanged(This,viewport,current,previous)
1783#define IDirectManipulationViewportEventHandler_OnViewportUpdated(This,viewport) (This)->lpVtbl->OnViewportUpdated(This,viewport)
1784#define IDirectManipulationViewportEventHandler_OnContentUpdated(This,viewport,content) (This)->lpVtbl->OnContentUpdated(This,viewport,content)
1785#else
1786/*** IUnknown methods ***/
1787static inline HRESULT IDirectManipulationViewportEventHandler_QueryInterface(IDirectManipulationViewportEventHandler* This,REFIID riid,void **ppvObject) {
1788    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1789}
1790static inline ULONG IDirectManipulationViewportEventHandler_AddRef(IDirectManipulationViewportEventHandler* This) {
1791    return This->lpVtbl->AddRef(This);
1792}
1793static inline ULONG IDirectManipulationViewportEventHandler_Release(IDirectManipulationViewportEventHandler* This) {
1794    return This->lpVtbl->Release(This);
1795}
1796/*** IDirectManipulationViewportEventHandler methods ***/
1797static inline HRESULT IDirectManipulationViewportEventHandler_OnViewportStatusChanged(IDirectManipulationViewportEventHandler* This,IDirectManipulationViewport *viewport,DIRECTMANIPULATION_STATUS current,DIRECTMANIPULATION_STATUS previous) {
1798    return This->lpVtbl->OnViewportStatusChanged(This,viewport,current,previous);
1799}
1800static inline HRESULT IDirectManipulationViewportEventHandler_OnViewportUpdated(IDirectManipulationViewportEventHandler* This,IDirectManipulationViewport *viewport) {
1801    return This->lpVtbl->OnViewportUpdated(This,viewport);
1802}
1803static inline HRESULT IDirectManipulationViewportEventHandler_OnContentUpdated(IDirectManipulationViewportEventHandler* This,IDirectManipulationViewport *viewport,IDirectManipulationContent *content) {
1804    return This->lpVtbl->OnContentUpdated(This,viewport,content);
1805}
1806#endif
1807#endif
1808
1809#endif
1810
1811
1812#endif  /* __IDirectManipulationViewportEventHandler_INTERFACE_DEFINED__ */
1813
1814/*****************************************************************************
1815 * IDirectManipulationManager2 interface
1816 */
1817#ifndef __IDirectManipulationManager2_INTERFACE_DEFINED__
1818#define __IDirectManipulationManager2_INTERFACE_DEFINED__
1819
1820DEFINE_GUID(IID_IDirectManipulationManager2, 0xfa1005e9, 0x3d16, 0x484c, 0xbf,0xc9, 0x62,0xb6,0x1e,0x56,0xec,0x4e);
1821#if defined(__cplusplus) && !defined(CINTERFACE)
1822MIDL_INTERFACE("fa1005e9-3d16-484c-bfc9-62b61e56ec4e")
1823IDirectManipulationManager2 : public IDirectManipulationManager
1824{
1825    virtual HRESULT STDMETHODCALLTYPE CreateBehavior(
1826        REFCLSID clsid,
1827        REFIID riid,
1828        void **obj) = 0;
1829
1830};
1831#ifdef __CRT_UUID_DECL
1832__CRT_UUID_DECL(IDirectManipulationManager2, 0xfa1005e9, 0x3d16, 0x484c, 0xbf,0xc9, 0x62,0xb6,0x1e,0x56,0xec,0x4e)
1833#endif
1834#else
1835typedef struct IDirectManipulationManager2Vtbl {
1836    BEGIN_INTERFACE
1837
1838    /*** IUnknown methods ***/
1839    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1840        IDirectManipulationManager2 *This,
1841        REFIID riid,
1842        void **ppvObject);
1843
1844    ULONG (STDMETHODCALLTYPE *AddRef)(
1845        IDirectManipulationManager2 *This);
1846
1847    ULONG (STDMETHODCALLTYPE *Release)(
1848        IDirectManipulationManager2 *This);
1849
1850    /*** IDirectManipulationManager methods ***/
1851    HRESULT (STDMETHODCALLTYPE *Activate)(
1852        IDirectManipulationManager2 *This,
1853        HWND window);
1854
1855    HRESULT (STDMETHODCALLTYPE *Deactivate)(
1856        IDirectManipulationManager2 *This,
1857        HWND window);
1858
1859    HRESULT (STDMETHODCALLTYPE *RegisterHitTestTarget)(
1860        IDirectManipulationManager2 *This,
1861        HWND window,
1862        HWND hittest,
1863        DIRECTMANIPULATION_HITTEST_TYPE type);
1864
1865    HRESULT (STDMETHODCALLTYPE *ProcessInput)(
1866        IDirectManipulationManager2 *This,
1867        const MSG *msg,
1868        WINBOOL *handled);
1869
1870    HRESULT (STDMETHODCALLTYPE *GetUpdateManager)(
1871        IDirectManipulationManager2 *This,
1872        REFIID riid,
1873        void **obj);
1874
1875    HRESULT (STDMETHODCALLTYPE *CreateViewport)(
1876        IDirectManipulationManager2 *This,
1877        IDirectManipulationFrameInfoProvider *frame,
1878        HWND window,
1879        REFIID riid,
1880        void **obj);
1881
1882    HRESULT (STDMETHODCALLTYPE *CreateContent)(
1883        IDirectManipulationManager2 *This,
1884        IDirectManipulationFrameInfoProvider *frame,
1885        REFCLSID clsid,
1886        REFIID riid,
1887        void **obj);
1888
1889    /*** IDirectManipulationManager2 methods ***/
1890    HRESULT (STDMETHODCALLTYPE *CreateBehavior)(
1891        IDirectManipulationManager2 *This,
1892        REFCLSID clsid,
1893        REFIID riid,
1894        void **obj);
1895
1896    END_INTERFACE
1897} IDirectManipulationManager2Vtbl;
1898
1899interface IDirectManipulationManager2 {
1900    CONST_VTBL IDirectManipulationManager2Vtbl* lpVtbl;
1901};
1902
1903#ifdef COBJMACROS
1904#ifndef WIDL_C_INLINE_WRAPPERS
1905/*** IUnknown methods ***/
1906#define IDirectManipulationManager2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1907#define IDirectManipulationManager2_AddRef(This) (This)->lpVtbl->AddRef(This)
1908#define IDirectManipulationManager2_Release(This) (This)->lpVtbl->Release(This)
1909/*** IDirectManipulationManager methods ***/
1910#define IDirectManipulationManager2_Activate(This,window) (This)->lpVtbl->Activate(This,window)
1911#define IDirectManipulationManager2_Deactivate(This,window) (This)->lpVtbl->Deactivate(This,window)
1912#define IDirectManipulationManager2_RegisterHitTestTarget(This,window,hittest,type) (This)->lpVtbl->RegisterHitTestTarget(This,window,hittest,type)
1913#define IDirectManipulationManager2_ProcessInput(This,msg,handled) (This)->lpVtbl->ProcessInput(This,msg,handled)
1914#define IDirectManipulationManager2_GetUpdateManager(This,riid,obj) (This)->lpVtbl->GetUpdateManager(This,riid,obj)
1915#define IDirectManipulationManager2_CreateViewport(This,frame,window,riid,obj) (This)->lpVtbl->CreateViewport(This,frame,window,riid,obj)
1916#define IDirectManipulationManager2_CreateContent(This,frame,clsid,riid,obj) (This)->lpVtbl->CreateContent(This,frame,clsid,riid,obj)
1917/*** IDirectManipulationManager2 methods ***/
1918#define IDirectManipulationManager2_CreateBehavior(This,clsid,riid,obj) (This)->lpVtbl->CreateBehavior(This,clsid,riid,obj)
1919#else
1920/*** IUnknown methods ***/
1921static inline HRESULT IDirectManipulationManager2_QueryInterface(IDirectManipulationManager2* This,REFIID riid,void **ppvObject) {
1922    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1923}
1924static inline ULONG IDirectManipulationManager2_AddRef(IDirectManipulationManager2* This) {
1925    return This->lpVtbl->AddRef(This);
1926}
1927static inline ULONG IDirectManipulationManager2_Release(IDirectManipulationManager2* This) {
1928    return This->lpVtbl->Release(This);
1929}
1930/*** IDirectManipulationManager methods ***/
1931static inline HRESULT IDirectManipulationManager2_Activate(IDirectManipulationManager2* This,HWND window) {
1932    return This->lpVtbl->Activate(This,window);
1933}
1934static inline HRESULT IDirectManipulationManager2_Deactivate(IDirectManipulationManager2* This,HWND window) {
1935    return This->lpVtbl->Deactivate(This,window);
1936}
1937static inline HRESULT IDirectManipulationManager2_RegisterHitTestTarget(IDirectManipulationManager2* This,HWND window,HWND hittest,DIRECTMANIPULATION_HITTEST_TYPE type) {
1938    return This->lpVtbl->RegisterHitTestTarget(This,window,hittest,type);
1939}
1940static inline HRESULT IDirectManipulationManager2_ProcessInput(IDirectManipulationManager2* This,const MSG *msg,WINBOOL *handled) {
1941    return This->lpVtbl->ProcessInput(This,msg,handled);
1942}
1943static inline HRESULT IDirectManipulationManager2_GetUpdateManager(IDirectManipulationManager2* This,REFIID riid,void **obj) {
1944    return This->lpVtbl->GetUpdateManager(This,riid,obj);
1945}
1946static inline HRESULT IDirectManipulationManager2_CreateViewport(IDirectManipulationManager2* This,IDirectManipulationFrameInfoProvider *frame,HWND window,REFIID riid,void **obj) {
1947    return This->lpVtbl->CreateViewport(This,frame,window,riid,obj);
1948}
1949static inline HRESULT IDirectManipulationManager2_CreateContent(IDirectManipulationManager2* This,IDirectManipulationFrameInfoProvider *frame,REFCLSID clsid,REFIID riid,void **obj) {
1950    return This->lpVtbl->CreateContent(This,frame,clsid,riid,obj);
1951}
1952/*** IDirectManipulationManager2 methods ***/
1953static inline HRESULT IDirectManipulationManager2_CreateBehavior(IDirectManipulationManager2* This,REFCLSID clsid,REFIID riid,void **obj) {
1954    return This->lpVtbl->CreateBehavior(This,clsid,riid,obj);
1955}
1956#endif
1957#endif
1958
1959#endif
1960
1961
1962#endif  /* __IDirectManipulationManager2_INTERFACE_DEFINED__ */
1963
1964/*****************************************************************************
1965 * IDirectManipulationPrimaryContent interface
1966 */
1967#ifndef __IDirectManipulationPrimaryContent_INTERFACE_DEFINED__
1968#define __IDirectManipulationPrimaryContent_INTERFACE_DEFINED__
1969
1970DEFINE_GUID(IID_IDirectManipulationPrimaryContent, 0xc12851e4, 0x1698, 0x4625, 0xb9,0xb1, 0x7c,0xa3,0xec,0x18,0x63,0x0b);
1971#if defined(__cplusplus) && !defined(CINTERFACE)
1972MIDL_INTERFACE("c12851e4-1698-4625-b9b1-7ca3ec18630b")
1973IDirectManipulationPrimaryContent : public IUnknown
1974{
1975    virtual HRESULT STDMETHODCALLTYPE SetSnapInterval(
1976        DIRECTMANIPULATION_MOTION_TYPES motion,
1977        float interval,
1978        float offset) = 0;
1979
1980    virtual HRESULT STDMETHODCALLTYPE SetSnapPoints(
1981        DIRECTMANIPULATION_MOTION_TYPES motion,
1982        const float *points,
1983        DWORD count) = 0;
1984
1985    virtual HRESULT STDMETHODCALLTYPE SetSnapType(
1986        DIRECTMANIPULATION_MOTION_TYPES motion,
1987        DIRECTMANIPULATION_SNAPPOINT_TYPE type) = 0;
1988
1989    virtual HRESULT STDMETHODCALLTYPE SetSnapCoordinate(
1990        DIRECTMANIPULATION_MOTION_TYPES motion,
1991        DIRECTMANIPULATION_SNAPPOINT_COORDINATE coordinate,
1992        float origin) = 0;
1993
1994    virtual HRESULT STDMETHODCALLTYPE SetZoomBoundaries(
1995        float minimum,
1996        float maximum) = 0;
1997
1998    virtual HRESULT STDMETHODCALLTYPE SetHorizontalAlignment(
1999        DIRECTMANIPULATION_HORIZONTALALIGNMENT alignment) = 0;
2000
2001    virtual HRESULT STDMETHODCALLTYPE SetVerticalAlignment(
2002        DIRECTMANIPULATION_VERTICALALIGNMENT alignment) = 0;
2003
2004    virtual HRESULT STDMETHODCALLTYPE GetInertiaEndTransform(
2005        float *matrix,
2006        DWORD count) = 0;
2007
2008    virtual HRESULT STDMETHODCALLTYPE GetCenterPoint(
2009        float *x,
2010        float *y) = 0;
2011
2012};
2013#ifdef __CRT_UUID_DECL
2014__CRT_UUID_DECL(IDirectManipulationPrimaryContent, 0xc12851e4, 0x1698, 0x4625, 0xb9,0xb1, 0x7c,0xa3,0xec,0x18,0x63,0x0b)
2015#endif
2016#else
2017typedef struct IDirectManipulationPrimaryContentVtbl {
2018    BEGIN_INTERFACE
2019
2020    /*** IUnknown methods ***/
2021    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2022        IDirectManipulationPrimaryContent *This,
2023        REFIID riid,
2024        void **ppvObject);
2025
2026    ULONG (STDMETHODCALLTYPE *AddRef)(
2027        IDirectManipulationPrimaryContent *This);
2028
2029    ULONG (STDMETHODCALLTYPE *Release)(
2030        IDirectManipulationPrimaryContent *This);
2031
2032    /*** IDirectManipulationPrimaryContent methods ***/
2033    HRESULT (STDMETHODCALLTYPE *SetSnapInterval)(
2034        IDirectManipulationPrimaryContent *This,
2035        DIRECTMANIPULATION_MOTION_TYPES motion,
2036        float interval,
2037        float offset);
2038
2039    HRESULT (STDMETHODCALLTYPE *SetSnapPoints)(
2040        IDirectManipulationPrimaryContent *This,
2041        DIRECTMANIPULATION_MOTION_TYPES motion,
2042        const float *points,
2043        DWORD count);
2044
2045    HRESULT (STDMETHODCALLTYPE *SetSnapType)(
2046        IDirectManipulationPrimaryContent *This,
2047        DIRECTMANIPULATION_MOTION_TYPES motion,
2048        DIRECTMANIPULATION_SNAPPOINT_TYPE type);
2049
2050    HRESULT (STDMETHODCALLTYPE *SetSnapCoordinate)(
2051        IDirectManipulationPrimaryContent *This,
2052        DIRECTMANIPULATION_MOTION_TYPES motion,
2053        DIRECTMANIPULATION_SNAPPOINT_COORDINATE coordinate,
2054        float origin);
2055
2056    HRESULT (STDMETHODCALLTYPE *SetZoomBoundaries)(
2057        IDirectManipulationPrimaryContent *This,
2058        float minimum,
2059        float maximum);
2060
2061    HRESULT (STDMETHODCALLTYPE *SetHorizontalAlignment)(
2062        IDirectManipulationPrimaryContent *This,
2063        DIRECTMANIPULATION_HORIZONTALALIGNMENT alignment);
2064
2065    HRESULT (STDMETHODCALLTYPE *SetVerticalAlignment)(
2066        IDirectManipulationPrimaryContent *This,
2067        DIRECTMANIPULATION_VERTICALALIGNMENT alignment);
2068
2069    HRESULT (STDMETHODCALLTYPE *GetInertiaEndTransform)(
2070        IDirectManipulationPrimaryContent *This,
2071        float *matrix,
2072        DWORD count);
2073
2074    HRESULT (STDMETHODCALLTYPE *GetCenterPoint)(
2075        IDirectManipulationPrimaryContent *This,
2076        float *x,
2077        float *y);
2078
2079    END_INTERFACE
2080} IDirectManipulationPrimaryContentVtbl;
2081
2082interface IDirectManipulationPrimaryContent {
2083    CONST_VTBL IDirectManipulationPrimaryContentVtbl* lpVtbl;
2084};
2085
2086#ifdef COBJMACROS
2087#ifndef WIDL_C_INLINE_WRAPPERS
2088/*** IUnknown methods ***/
2089#define IDirectManipulationPrimaryContent_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2090#define IDirectManipulationPrimaryContent_AddRef(This) (This)->lpVtbl->AddRef(This)
2091#define IDirectManipulationPrimaryContent_Release(This) (This)->lpVtbl->Release(This)
2092/*** IDirectManipulationPrimaryContent methods ***/
2093#define IDirectManipulationPrimaryContent_SetSnapInterval(This,motion,interval,offset) (This)->lpVtbl->SetSnapInterval(This,motion,interval,offset)
2094#define IDirectManipulationPrimaryContent_SetSnapPoints(This,motion,points,count) (This)->lpVtbl->SetSnapPoints(This,motion,points,count)
2095#define IDirectManipulationPrimaryContent_SetSnapType(This,motion,type) (This)->lpVtbl->SetSnapType(This,motion,type)
2096#define IDirectManipulationPrimaryContent_SetSnapCoordinate(This,motion,coordinate,origin) (This)->lpVtbl->SetSnapCoordinate(This,motion,coordinate,origin)
2097#define IDirectManipulationPrimaryContent_SetZoomBoundaries(This,minimum,maximum) (This)->lpVtbl->SetZoomBoundaries(This,minimum,maximum)
2098#define IDirectManipulationPrimaryContent_SetHorizontalAlignment(This,alignment) (This)->lpVtbl->SetHorizontalAlignment(This,alignment)
2099#define IDirectManipulationPrimaryContent_SetVerticalAlignment(This,alignment) (This)->lpVtbl->SetVerticalAlignment(This,alignment)
2100#define IDirectManipulationPrimaryContent_GetInertiaEndTransform(This,matrix,count) (This)->lpVtbl->GetInertiaEndTransform(This,matrix,count)
2101#define IDirectManipulationPrimaryContent_GetCenterPoint(This,x,y) (This)->lpVtbl->GetCenterPoint(This,x,y)
2102#else
2103/*** IUnknown methods ***/
2104static inline HRESULT IDirectManipulationPrimaryContent_QueryInterface(IDirectManipulationPrimaryContent* This,REFIID riid,void **ppvObject) {
2105    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2106}
2107static inline ULONG IDirectManipulationPrimaryContent_AddRef(IDirectManipulationPrimaryContent* This) {
2108    return This->lpVtbl->AddRef(This);
2109}
2110static inline ULONG IDirectManipulationPrimaryContent_Release(IDirectManipulationPrimaryContent* This) {
2111    return This->lpVtbl->Release(This);
2112}
2113/*** IDirectManipulationPrimaryContent methods ***/
2114static inline HRESULT IDirectManipulationPrimaryContent_SetSnapInterval(IDirectManipulationPrimaryContent* This,DIRECTMANIPULATION_MOTION_TYPES motion,float interval,float offset) {
2115    return This->lpVtbl->SetSnapInterval(This,motion,interval,offset);
2116}
2117static inline HRESULT IDirectManipulationPrimaryContent_SetSnapPoints(IDirectManipulationPrimaryContent* This,DIRECTMANIPULATION_MOTION_TYPES motion,const float *points,DWORD count) {
2118    return This->lpVtbl->SetSnapPoints(This,motion,points,count);
2119}
2120static inline HRESULT IDirectManipulationPrimaryContent_SetSnapType(IDirectManipulationPrimaryContent* This,DIRECTMANIPULATION_MOTION_TYPES motion,DIRECTMANIPULATION_SNAPPOINT_TYPE type) {
2121    return This->lpVtbl->SetSnapType(This,motion,type);
2122}
2123static inline HRESULT IDirectManipulationPrimaryContent_SetSnapCoordinate(IDirectManipulationPrimaryContent* This,DIRECTMANIPULATION_MOTION_TYPES motion,DIRECTMANIPULATION_SNAPPOINT_COORDINATE coordinate,float origin) {
2124    return This->lpVtbl->SetSnapCoordinate(This,motion,coordinate,origin);
2125}
2126static inline HRESULT IDirectManipulationPrimaryContent_SetZoomBoundaries(IDirectManipulationPrimaryContent* This,float minimum,float maximum) {
2127    return This->lpVtbl->SetZoomBoundaries(This,minimum,maximum);
2128}
2129static inline HRESULT IDirectManipulationPrimaryContent_SetHorizontalAlignment(IDirectManipulationPrimaryContent* This,DIRECTMANIPULATION_HORIZONTALALIGNMENT alignment) {
2130    return This->lpVtbl->SetHorizontalAlignment(This,alignment);
2131}
2132static inline HRESULT IDirectManipulationPrimaryContent_SetVerticalAlignment(IDirectManipulationPrimaryContent* This,DIRECTMANIPULATION_VERTICALALIGNMENT alignment) {
2133    return This->lpVtbl->SetVerticalAlignment(This,alignment);
2134}
2135static inline HRESULT IDirectManipulationPrimaryContent_GetInertiaEndTransform(IDirectManipulationPrimaryContent* This,float *matrix,DWORD count) {
2136    return This->lpVtbl->GetInertiaEndTransform(This,matrix,count);
2137}
2138static inline HRESULT IDirectManipulationPrimaryContent_GetCenterPoint(IDirectManipulationPrimaryContent* This,float *x,float *y) {
2139    return This->lpVtbl->GetCenterPoint(This,x,y);
2140}
2141#endif
2142#endif
2143
2144#endif
2145
2146
2147#endif  /* __IDirectManipulationPrimaryContent_INTERFACE_DEFINED__ */
2148
2149/*****************************************************************************
2150 * IDirectManipulationCompositor2 interface
2151 */
2152#ifndef __IDirectManipulationCompositor2_INTERFACE_DEFINED__
2153#define __IDirectManipulationCompositor2_INTERFACE_DEFINED__
2154
2155DEFINE_GUID(IID_IDirectManipulationCompositor2, 0xd38c7822, 0xf1cb, 0x43cb, 0xb4,0xb9, 0xac,0x0c,0x76,0x7a,0x41,0x2e);
2156#if defined(__cplusplus) && !defined(CINTERFACE)
2157MIDL_INTERFACE("d38c7822-f1cb-43cb-b4b9-ac0c767a412e")
2158IDirectManipulationCompositor2 : public IDirectManipulationCompositor
2159{
2160    virtual HRESULT STDMETHODCALLTYPE AddContentWithCrossProcessChaining(
2161        IDirectManipulationPrimaryContent *content,
2162        IUnknown *device,
2163        IUnknown *parentVisual,
2164        IUnknown *childVisual) = 0;
2165
2166};
2167#ifdef __CRT_UUID_DECL
2168__CRT_UUID_DECL(IDirectManipulationCompositor2, 0xd38c7822, 0xf1cb, 0x43cb, 0xb4,0xb9, 0xac,0x0c,0x76,0x7a,0x41,0x2e)
2169#endif
2170#else
2171typedef struct IDirectManipulationCompositor2Vtbl {
2172    BEGIN_INTERFACE
2173
2174    /*** IUnknown methods ***/
2175    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2176        IDirectManipulationCompositor2 *This,
2177        REFIID riid,
2178        void **ppvObject);
2179
2180    ULONG (STDMETHODCALLTYPE *AddRef)(
2181        IDirectManipulationCompositor2 *This);
2182
2183    ULONG (STDMETHODCALLTYPE *Release)(
2184        IDirectManipulationCompositor2 *This);
2185
2186    /*** IDirectManipulationCompositor methods ***/
2187    HRESULT (STDMETHODCALLTYPE *AddContent)(
2188        IDirectManipulationCompositor2 *This,
2189        IDirectManipulationContent *content,
2190        IUnknown *device,
2191        IUnknown *parent,
2192        IUnknown *child);
2193
2194    HRESULT (STDMETHODCALLTYPE *RemoveContent)(
2195        IDirectManipulationCompositor2 *This,
2196        IDirectManipulationContent *content);
2197
2198    HRESULT (STDMETHODCALLTYPE *SetUpdateManager)(
2199        IDirectManipulationCompositor2 *This,
2200        IDirectManipulationUpdateManager *manager);
2201
2202    HRESULT (STDMETHODCALLTYPE *Flush)(
2203        IDirectManipulationCompositor2 *This);
2204
2205    /*** IDirectManipulationCompositor2 methods ***/
2206    HRESULT (STDMETHODCALLTYPE *AddContentWithCrossProcessChaining)(
2207        IDirectManipulationCompositor2 *This,
2208        IDirectManipulationPrimaryContent *content,
2209        IUnknown *device,
2210        IUnknown *parentVisual,
2211        IUnknown *childVisual);
2212
2213    END_INTERFACE
2214} IDirectManipulationCompositor2Vtbl;
2215
2216interface IDirectManipulationCompositor2 {
2217    CONST_VTBL IDirectManipulationCompositor2Vtbl* lpVtbl;
2218};
2219
2220#ifdef COBJMACROS
2221#ifndef WIDL_C_INLINE_WRAPPERS
2222/*** IUnknown methods ***/
2223#define IDirectManipulationCompositor2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2224#define IDirectManipulationCompositor2_AddRef(This) (This)->lpVtbl->AddRef(This)
2225#define IDirectManipulationCompositor2_Release(This) (This)->lpVtbl->Release(This)
2226/*** IDirectManipulationCompositor methods ***/
2227#define IDirectManipulationCompositor2_AddContent(This,content,device,parent,child) (This)->lpVtbl->AddContent(This,content,device,parent,child)
2228#define IDirectManipulationCompositor2_RemoveContent(This,content) (This)->lpVtbl->RemoveContent(This,content)
2229#define IDirectManipulationCompositor2_SetUpdateManager(This,manager) (This)->lpVtbl->SetUpdateManager(This,manager)
2230#define IDirectManipulationCompositor2_Flush(This) (This)->lpVtbl->Flush(This)
2231/*** IDirectManipulationCompositor2 methods ***/
2232#define IDirectManipulationCompositor2_AddContentWithCrossProcessChaining(This,content,device,parentVisual,childVisual) (This)->lpVtbl->AddContentWithCrossProcessChaining(This,content,device,parentVisual,childVisual)
2233#else
2234/*** IUnknown methods ***/
2235static inline HRESULT IDirectManipulationCompositor2_QueryInterface(IDirectManipulationCompositor2* This,REFIID riid,void **ppvObject) {
2236    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2237}
2238static inline ULONG IDirectManipulationCompositor2_AddRef(IDirectManipulationCompositor2* This) {
2239    return This->lpVtbl->AddRef(This);
2240}
2241static inline ULONG IDirectManipulationCompositor2_Release(IDirectManipulationCompositor2* This) {
2242    return This->lpVtbl->Release(This);
2243}
2244/*** IDirectManipulationCompositor methods ***/
2245static inline HRESULT IDirectManipulationCompositor2_AddContent(IDirectManipulationCompositor2* This,IDirectManipulationContent *content,IUnknown *device,IUnknown *parent,IUnknown *child) {
2246    return This->lpVtbl->AddContent(This,content,device,parent,child);
2247}
2248static inline HRESULT IDirectManipulationCompositor2_RemoveContent(IDirectManipulationCompositor2* This,IDirectManipulationContent *content) {
2249    return This->lpVtbl->RemoveContent(This,content);
2250}
2251static inline HRESULT IDirectManipulationCompositor2_SetUpdateManager(IDirectManipulationCompositor2* This,IDirectManipulationUpdateManager *manager) {
2252    return This->lpVtbl->SetUpdateManager(This,manager);
2253}
2254static inline HRESULT IDirectManipulationCompositor2_Flush(IDirectManipulationCompositor2* This) {
2255    return This->lpVtbl->Flush(This);
2256}
2257/*** IDirectManipulationCompositor2 methods ***/
2258static inline HRESULT IDirectManipulationCompositor2_AddContentWithCrossProcessChaining(IDirectManipulationCompositor2* This,IDirectManipulationPrimaryContent *content,IUnknown *device,IUnknown *parentVisual,IUnknown *childVisual) {
2259    return This->lpVtbl->AddContentWithCrossProcessChaining(This,content,device,parentVisual,childVisual);
2260}
2261#endif
2262#endif
2263
2264#endif
2265
2266
2267#endif  /* __IDirectManipulationCompositor2_INTERFACE_DEFINED__ */
2268
2269/*****************************************************************************
2270 * IDirectManipulationInteractionEventHandler interface
2271 */
2272#ifndef __IDirectManipulationInteractionEventHandler_INTERFACE_DEFINED__
2273#define __IDirectManipulationInteractionEventHandler_INTERFACE_DEFINED__
2274
2275DEFINE_GUID(IID_IDirectManipulationInteractionEventHandler, 0xe43f45b8, 0x42b4, 0x403e, 0xb1,0xf2, 0x27,0x3b,0x8f,0x51,0x08,0x30);
2276#if defined(__cplusplus) && !defined(CINTERFACE)
2277MIDL_INTERFACE("e43f45b8-42b4-403e-b1f2-273b8f510830")
2278IDirectManipulationInteractionEventHandler : public IUnknown
2279{
2280    virtual HRESULT STDMETHODCALLTYPE OnInteraction(
2281        IDirectManipulationViewport2 *viewport,
2282        DIRECTMANIPULATION_INTERACTION_TYPE interaction) = 0;
2283
2284};
2285#ifdef __CRT_UUID_DECL
2286__CRT_UUID_DECL(IDirectManipulationInteractionEventHandler, 0xe43f45b8, 0x42b4, 0x403e, 0xb1,0xf2, 0x27,0x3b,0x8f,0x51,0x08,0x30)
2287#endif
2288#else
2289typedef struct IDirectManipulationInteractionEventHandlerVtbl {
2290    BEGIN_INTERFACE
2291
2292    /*** IUnknown methods ***/
2293    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2294        IDirectManipulationInteractionEventHandler *This,
2295        REFIID riid,
2296        void **ppvObject);
2297
2298    ULONG (STDMETHODCALLTYPE *AddRef)(
2299        IDirectManipulationInteractionEventHandler *This);
2300
2301    ULONG (STDMETHODCALLTYPE *Release)(
2302        IDirectManipulationInteractionEventHandler *This);
2303
2304    /*** IDirectManipulationInteractionEventHandler methods ***/
2305    HRESULT (STDMETHODCALLTYPE *OnInteraction)(
2306        IDirectManipulationInteractionEventHandler *This,
2307        IDirectManipulationViewport2 *viewport,
2308        DIRECTMANIPULATION_INTERACTION_TYPE interaction);
2309
2310    END_INTERFACE
2311} IDirectManipulationInteractionEventHandlerVtbl;
2312
2313interface IDirectManipulationInteractionEventHandler {
2314    CONST_VTBL IDirectManipulationInteractionEventHandlerVtbl* lpVtbl;
2315};
2316
2317#ifdef COBJMACROS
2318#ifndef WIDL_C_INLINE_WRAPPERS
2319/*** IUnknown methods ***/
2320#define IDirectManipulationInteractionEventHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2321#define IDirectManipulationInteractionEventHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
2322#define IDirectManipulationInteractionEventHandler_Release(This) (This)->lpVtbl->Release(This)
2323/*** IDirectManipulationInteractionEventHandler methods ***/
2324#define IDirectManipulationInteractionEventHandler_OnInteraction(This,viewport,interaction) (This)->lpVtbl->OnInteraction(This,viewport,interaction)
2325#else
2326/*** IUnknown methods ***/
2327static inline HRESULT IDirectManipulationInteractionEventHandler_QueryInterface(IDirectManipulationInteractionEventHandler* This,REFIID riid,void **ppvObject) {
2328    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2329}
2330static inline ULONG IDirectManipulationInteractionEventHandler_AddRef(IDirectManipulationInteractionEventHandler* This) {
2331    return This->lpVtbl->AddRef(This);
2332}
2333static inline ULONG IDirectManipulationInteractionEventHandler_Release(IDirectManipulationInteractionEventHandler* This) {
2334    return This->lpVtbl->Release(This);
2335}
2336/*** IDirectManipulationInteractionEventHandler methods ***/
2337static inline HRESULT IDirectManipulationInteractionEventHandler_OnInteraction(IDirectManipulationInteractionEventHandler* This,IDirectManipulationViewport2 *viewport,DIRECTMANIPULATION_INTERACTION_TYPE interaction) {
2338    return This->lpVtbl->OnInteraction(This,viewport,interaction);
2339}
2340#endif
2341#endif
2342
2343#endif
2344
2345
2346#endif  /* __IDirectManipulationInteractionEventHandler_INTERFACE_DEFINED__ */
2347
2348#ifndef __DirectManipulation_LIBRARY_DEFINED__
2349#define __DirectManipulation_LIBRARY_DEFINED__
2350
2351DEFINE_GUID(LIBID_DirectManipulation, 0x9fbedf98, 0xf6d8, 0x4e3b, 0xb4,0x88, 0xfa,0x66,0xdb,0xf5,0xe9,0xf3);
2352
2353/*****************************************************************************
2354 * DirectManipulationManager coclass
2355 */
2356
2357DEFINE_GUID(CLSID_DirectManipulationManager, 0x54e211b6, 0x3650, 0x4f75, 0x83,0x34, 0xfa,0x35,0x95,0x98,0xe1,0xc5);
2358
2359#ifdef __cplusplus
2360class DECLSPEC_UUID("54e211b6-3650-4f75-8334-fa359598e1c5") DirectManipulationManager;
2361#ifdef __CRT_UUID_DECL
2362__CRT_UUID_DECL(DirectManipulationManager, 0x54e211b6, 0x3650, 0x4f75, 0x83,0x34, 0xfa,0x35,0x95,0x98,0xe1,0xc5)
2363#endif
2364#endif
2365
2366/*****************************************************************************
2367 * DirectManipulationSharedManager coclass
2368 */
2369
2370DEFINE_GUID(CLSID_DirectManipulationSharedManager, 0x99793286, 0x77cc, 0x4b57, 0x96,0xdb, 0x3b,0x35,0x4f,0x6f,0x9f,0xb5);
2371
2372#ifdef __cplusplus
2373class DECLSPEC_UUID("99793286-77cc-4b57-96db-3b354f6f9fb5") DirectManipulationSharedManager;
2374#ifdef __CRT_UUID_DECL
2375__CRT_UUID_DECL(DirectManipulationSharedManager, 0x99793286, 0x77cc, 0x4b57, 0x96,0xdb, 0x3b,0x35,0x4f,0x6f,0x9f,0xb5)
2376#endif
2377#endif
2378
2379/*****************************************************************************
2380 * DCompManipulationCompositor coclass
2381 */
2382
2383DEFINE_GUID(CLSID_DCompManipulationCompositor, 0x79dea627, 0xa08a, 0x43ac, 0x8e,0xf5, 0x69,0x00,0xb9,0x29,0x91,0x26);
2384
2385#ifdef __cplusplus
2386class DECLSPEC_UUID("79dea627-a08a-43ac-8ef5-6900b9299126") DCompManipulationCompositor;
2387#ifdef __CRT_UUID_DECL
2388__CRT_UUID_DECL(DCompManipulationCompositor, 0x79dea627, 0xa08a, 0x43ac, 0x8e,0xf5, 0x69,0x00,0xb9,0x29,0x91,0x26)
2389#endif
2390#endif
2391
2392/*****************************************************************************
2393 * DirectManipulationViewport coclass
2394 */
2395
2396DEFINE_GUID(CLSID_DirectManipulationViewport, 0x34e211b6, 0x3650, 0x4f75, 0x83,0x34, 0xfa,0x35,0x95,0x98,0xe1,0xc5);
2397
2398#ifdef __cplusplus
2399class DECLSPEC_UUID("34e211b6-3650-4f75-8334-fa359598e1c5") DirectManipulationViewport;
2400#ifdef __CRT_UUID_DECL
2401__CRT_UUID_DECL(DirectManipulationViewport, 0x34e211b6, 0x3650, 0x4f75, 0x83,0x34, 0xfa,0x35,0x95,0x98,0xe1,0xc5)
2402#endif
2403#endif
2404
2405#endif /* __DirectManipulation_LIBRARY_DEFINED__ */
2406/* Begin additional prototypes for all interfaces */
2407
2408
2409/* End additional prototypes */
2410
2411#ifdef __cplusplus
2412}
2413#endif
2414
2415#endif /* __directmanipulation_h__ */