12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- /*该文件是用作互操作的调用文件,用作其他语言(如C#)调用该模块的触摸相关功能*/
- #include "pch.h"
- #include <windows.h>
- #include <assert.h>
- #define ASSERT assert
- #include <stdio.h>
- #include <io.h>
- #include <fcntl.h>
- #include "ManipulationEventSink.h"
- #include "ManipulationHelper.h"
- namespace ManipulationHelper
- {
- /// <summary>
- /// 注册一个窗口(控件)具有触摸功能
- /// <param name="formHandle">窗口(控件)的句柄</param>
- /// <param name="msCallback">操作开始的回调函数</param>
- /// <param name="mdCallback">操作过程变化的回调函数</param>
- /// <param name="mcCallback">操作结束的回调函数</param>
- /// <return>操作帮助器</return>
- /// </summary>
- extern "C" __declspec(dllexport) ManipulationHelper* RegisterWnd(
- HWND formHandle,
- ManipulationStartedCallBack msCallback,
- ManipulationDeltaCallBack mdCallback,
- ManipulationCompletedCallBack mcCallback)
- {
- //初始化一个ManipulationHelper,并放回该实例
- ManipulationHelper* helper = new ManipulationHelper(formHandle);
- if (helper->InitOkFlag)
- {
- helper->SetManipulationStartedCallBack(msCallback);
- helper->SetManipulationDeltaCallBack(mdCallback);
- helper->SetManipulationCompletedCallBack(mcCallback);
- return helper;
- }
- else
- {
- delete helper;
- return NULL;
- }
- }
- /// <summary>
- /// 把TouchDown类型的触摸消息拿到ManipulationHelper里的IManipulationProcessor处理
- /// <param name="helper">触摸功能帮助器</param>
- /// <param name="manipulatorId">Touch消息对应的操作ID</param>
- /// <param name="x">Touch消息触点的X坐标(屏幕坐标系)</param>
- /// <param name="y">触摸功能帮助器</param>
- /// </summary>
- extern "C" __declspec(dllexport) void ProcessDown(
- ManipulationHelper * helper
- , MANIPULATOR_ID manipulatorId
- , FLOAT x
- , FLOAT y)
- {
- helper->ProcessDown(manipulatorId, x, y);
- }
- // 把TouchMove类型的触摸消息拿到ManipulationHelper里的IManipulationProcessor处理
- extern "C" __declspec(dllexport) void ProcessMove(
- ManipulationHelper * helper
- , MANIPULATOR_ID manipulatorId
- , FLOAT x
- , FLOAT y)
- {
- helper->ProcessMove(manipulatorId, x, y);
- }
- // 把TouchUp类型的触摸消息拿到ManipulationHelper里的IManipulationProcessor处理
- extern "C" __declspec(dllexport) void ProcessUp(
- ManipulationHelper * helper
- , MANIPULATOR_ID manipulatorId
- , FLOAT x
- , FLOAT y)
- {
- helper->ProcessUp(manipulatorId, x, y);
- }
- }
|