/*该文件是用作互操作的调用文件,用作其他语言(如C#)调用该模块的触摸相关功能*/ #include "pch.h" #include #include #define ASSERT assert #include #include #include #include "ManipulationEventSink.h" #include "ManipulationHelper.h" namespace ManipulationHelper { /// /// 注册一个窗口(控件)具有触摸功能 /// 窗口(控件)的句柄 /// 操作开始的回调函数 /// 操作过程变化的回调函数 /// 操作结束的回调函数 /// 操作帮助器 /// 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; } } /// /// 把TouchDown类型的触摸消息拿到ManipulationHelper里的IManipulationProcessor处理 /// 触摸功能帮助器 /// Touch消息对应的操作ID /// Touch消息触点的X坐标(屏幕坐标系) /// 触摸功能帮助器 /// 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); } }