From 408573e07a4aa5b28382320349b4977309c8296c Mon Sep 17 00:00:00 2001 From: Tom Ritter Date: Tue, 7 Feb 2023 16:14:33 -0500 Subject: [PATCH 10/10] Direct Manipulation --- .../include/directmanipulation.h | 105 ++++++++++++++++++ 1 file changed, 105 insertions(+) diff --git a/mingw-w64-headers/include/directmanipulation.h b/mingw-w64-headers/include/directmanipulation.h index 3658bda6d..892538b38 100644 --- a/mingw-w64-headers/include/directmanipulation.h +++ b/mingw-w64-headers/include/directmanipulation.h @@ -90,6 +90,14 @@ interface IDirectManipulationViewport2; #endif /* __cplusplus */ #endif +#ifndef __IDirectManipulationInteractionEventHandler_FWD_DEFINED__ +#define __IDirectManipulationInteractionEventHandler_FWD_DEFINED__ +typedef interface IDirectManipulationInteractionEventHandler IDirectManipulationInteractionEventHandler; +#ifdef __cplusplus +interface IDirectManipulationInteractionEventHandler; +#endif /* __cplusplus */ +#endif + #ifndef __IDirectManipulationViewportEventHandler_FWD_DEFINED__ #define __IDirectManipulationViewportEventHandler_FWD_DEFINED__ typedef interface IDirectManipulationViewportEventHandler IDirectManipulationViewportEventHandler; @@ -170,6 +178,14 @@ extern "C" { #if 0 typedef void *HWND; #endif +#ifndef __IDirectManipulationInteractionEventHandler_FWD_DEFINED__ +#define __IDirectManipulationInteractionEventHandler_FWD_DEFINED__ +typedef interface IDirectManipulationInteractionEventHandler IDirectManipulationInteractionEventHandler; +#ifdef __cplusplus +interface IDirectManipulationInteractionEventHandler; +#endif /* __cplusplus */ +#endif + #ifndef __IDirectManipulationViewportEventHandler_FWD_DEFINED__ #define __IDirectManipulationViewportEventHandler_FWD_DEFINED__ typedef interface IDirectManipulationViewportEventHandler IDirectManipulationViewportEventHandler; @@ -222,6 +238,16 @@ typedef enum DIRECTMANIPULATION_GESTURE_CONFIGURATION { DIRECTMANIPULATION_GESTURE_PINCH_ZOOM = 0x20 } DIRECTMANIPULATION_GESTURE_CONFIGURATION; DEFINE_ENUM_FLAG_OPERATORS(DIRECTMANIPULATION_GESTURE_CONFIGURATION) +typedef enum DIRECTMANIPULATION_INTERACTION_TYPE { + DIRECTMANIPULATION_INTERACTION_BEGIN = 0x0, + DIRECTMANIPULATION_INTERACTION_TYPE_MANIPULATION = 0x1, + DIRECTMANIPULATION_INTERACTION_TYPE_GESTURE_TAP = 0x2, + DIRECTMANIPULATION_INTERACTION_TYPE_GESTURE_HOLD = 0x3, + DIRECTMANIPULATION_INTERACTION_TYPE_GESTURE_CROSS_SLIDE = 0x4, + DIRECTMANIPULATION_INTERACTION_TYPE_GESTURE_PINCH_ZOOM = 0x5, + DIRECTMANIPULATION_INTERACTION_END = 0x64 +} DIRECTMANIPULATION_INTERACTION_TYPE; +DEFINE_ENUM_FLAG_OPERATORS(DIRECTMANIPULATION_INTERACTION_TYPE) typedef enum DIRECTMANIPULATION_MOTION_TYPES { DIRECTMANIPULATION_MOTION_NONE = 0x0, DIRECTMANIPULATION_MOTION_TRANSLATEX = 0x1, @@ -1697,6 +1723,85 @@ static __WIDL_INLINE HRESULT IDirectManipulationViewport2_RemoveAllBehaviors(IDi #endif /* __IDirectManipulationViewport2_INTERFACE_DEFINED__ */ +/***************************************************************************** + * IDirectManipulationInteractionEventHandler interface + */ +#ifndef __IDirectManipulationInteractionEventHandler_INTERFACE_DEFINED__ +#define __IDirectManipulationInteractionEventHandler_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDirectManipulationInteractionEventHandler, 0xe43f45b8, 0x42b4, 0x403e, 0xb1, 0xf2, 0x27, 0x3b, 0x8f, 0x51, 0x08, 0x30); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("e43f45b8-42b4-403e-b1f2-273b8f510830") +IDirectManipulationInteractionEventHandler : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE OnInteraction( + IDirectManipulationViewport2 *viewport, + DIRECTMANIPULATION_INTERACTION_TYPE interaction) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDirectManipulationInteractionEventHandler, 0xe43f45b8, 0x42b4, 0x403e, 0xb1, 0xf2, 0x27, 0x3b, 0x8f, 0x51, 0x08, 0x30) +#endif +#else +typedef struct IDirectManipulationInteractionEventHandlerVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDirectManipulationInteractionEventHandler *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDirectManipulationInteractionEventHandler *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDirectManipulationInteractionEventHandler *This); + + /*** IDirectManipulationInteractionEventHandler methods ***/ + HRESULT (STDMETHODCALLTYPE *OnInteraction)( + IDirectManipulationInteractionEventHandler *This, + IDirectManipulationViewport2 *viewport, + DIRECTMANIPULATION_INTERACTION_TYPE interaction); + + END_INTERFACE +} IDirectManipulationInteractionEventHandlerVtbl; + +interface IDirectManipulationInteractionEventHandler { + CONST_VTBL IDirectManipulationInteractionEventHandlerVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDirectManipulationInteractionEventHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDirectManipulationInteractionEventHandler_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDirectManipulationInteractionEventHandler_Release(This) (This)->lpVtbl->Release(This) +/*** IDirectManipulationInteractionEventHandler methods ***/ +#define IDirectManipulationInteractionEventHandler_OnInteraction(This,viewport,interaction) (This)->lpVtbl->OnInteraction(This,viewport,interaction) +#else +/*** IUnknown methods ***/ +static __WIDL_INLINE HRESULT IDirectManipulationInteractionEventHandler_QueryInterface(IDirectManipulationInteractionEventHandler* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static __WIDL_INLINE ULONG IDirectManipulationInteractionEventHandler_AddRef(IDirectManipulationInteractionEventHandler* This) { + return This->lpVtbl->AddRef(This); +} +static __WIDL_INLINE ULONG IDirectManipulationInteractionEventHandler_Release(IDirectManipulationInteractionEventHandler* This) { + return This->lpVtbl->Release(This); +} +/*** IDirectManipulationInteractionEventHandler methods ***/ +static __WIDL_INLINE HRESULT IDirectManipulationInteractionEventHandler_OnInteraction(IDirectManipulationInteractionEventHandler* This,IDirectManipulationViewport2 *viewport,DIRECTMANIPULATION_INTERACTION_TYPE interaction) { + return This->lpVtbl->OnInteraction(This,viewport,interaction); +} +#endif +#endif + +#endif + + +#endif /* __IDirectManipulationInteractionEventHandler_INTERFACE_DEFINED__ */ + /***************************************************************************** * IDirectManipulationViewportEventHandler interface */ -- 2.25.1