From 61033f8cde29e03787076b06c638ae5e7af7d02a Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Wed, 17 Jul 2019 08:17:16 +1000 Subject: [PATCH 1/4] include: Add directmanipulation.idl Signed-off-by: Alistair Leslie-Hughes --- include/Makefile.in | 1 + include/directmanipulation.idl | 103 +++++++++++++++++++++++++++++++++ 2 files changed, 104 insertions(+) create mode 100644 include/directmanipulation.idl diff --git a/include/Makefile.in b/include/Makefile.in index 69135879a9..a7fd4dc929 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -199,6 +199,7 @@ SOURCES = \ dimm.idl \ dinput.h \ dinputd.h \ + directmanipulation.idl \ dispdib.h \ dispex.idl \ dlgs.h \ diff --git a/include/directmanipulation.idl b/include/directmanipulation.idl new file mode 100644 index 0000000000..9dc2366cc3 --- /dev/null +++ b/include/directmanipulation.idl @@ -0,0 +1,103 @@ +/* + * Copyright 2019 Alistair Leslie-Hughes + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +import "oaidl.idl"; +import "ocidl.idl"; + +cpp_quote("#if 0") +typedef void* HWND; +cpp_quote("#endif") + +typedef enum DIRECTMANIPULATION_HITTEST_TYPE +{ + DIRECTMANIPULATION_HITTEST_TYPE_ASYNCHRONOUS = 0x00000000, + DIRECTMANIPULATION_HITTEST_TYPE_SYNCHRONOUS = 0x00000001, + DIRECTMANIPULATION_HITTEST_TYPE_AUTO_SYNCHRONOUS = 0x00000002 +} DIRECTMANIPULATION_HITTEST_TYPE; + +[ + local, + object, + uuid(fb759dba-6f4c-4c01-874e-19c8a05907f9), + pointer_default(unique) +] +interface IDirectManipulationFrameInfoProvider : IUnknown +{ + HRESULT GetNextFrameInfo([out] ULONGLONG *time, [out] ULONGLONG *process, [out] ULONGLONG *composition); +} + +[ + local, + object, + uuid(fbf5d3b4-70c7-4163-9322-5a6f660d6fbc), + pointer_default(unique) +] +interface IDirectManipulationManager : IUnknown +{ + HRESULT Activate([in] HWND window); + + HRESULT Deactivate([in] HWND window); + + HRESULT RegisterHitTestTarget([in] HWND window, [in] HWND hittest, [in] DIRECTMANIPULATION_HITTEST_TYPE type); + + HRESULT ProcessInput([in] const MSG *msg, [out, retval] BOOL *handled); + + HRESULT GetUpdateManager([in] REFIID riid, [out, iid_is(riid), retval,] void **obj); + + HRESULT CreateViewport([in] IDirectManipulationFrameInfoProvider *frame, [in] HWND window, + [in] REFIID riid, [out, iid_is(riid), retval] void **obj); + + HRESULT CreateContent([in] IDirectManipulationFrameInfoProvider *frame, [in] REFCLSID clsid, + [in] REFIID riid, [out, iid_is(riid), retval] void **obj); +} + +[ + local, + object, + uuid(fa1005e9-3d16-484c-bfc9-62b61e56ec4e), + pointer_default(unique) +] +interface IDirectManipulationManager2 : IDirectManipulationManager +{ + HRESULT CreateBehavior([in] REFCLSID clsid, [in] REFIID riid, [out, iid_is(riid), retval] void **obj); +} + +[ + uuid(9fbedf98-f6d8-4e3b-b488-fa66dbf5e9f3), + version(1.0) +] +library DirectManipulation +{ + [ + uuid(54e211b6-3650-4f75-8334-fa359598e1c5) + ] + coclass DirectManipulationManager + { + interface IDirectManipulationManager2; + [default] interface IDirectManipulationManager; + } + + [ + uuid(99793286-77cc-4b57-96db-3b354f6f9fb5) + ] + coclass DirectManipulationSharedManager + { + interface IDirectManipulationManager2; + [default] interface IDirectManipulationManager; + } +} -- 2.17.1