本文记录 WPF 用到的触摸的 COM 接口
消息
用到了 WM_TABLET_ADDED 和 WM_TABLET_DELETED 消息
使用的代码是 src\Microsoft.DotNet.Wpf\src\PresentationCore\System\Windows\Input\Stylus\Wisp\WispLogic.cs
的 HandleMessage 方法
internal override void HandleMessage(WindowMessage msg, IntPtr wParam, IntPtr lParam)
{
switch (msg)
{
// 忽略代码
case WindowMessage.WM_TABLET_ADDED:
OnTabletAdded((uint)NativeMethods.IntPtrToInt32(wParam));
break;
case WindowMessage.WM_TABLET_DELETED:
OnTabletRemovedImpl((uint)NativeMethods.IntPtrToInt32(wParam), isInternalCall: true);
break;
}
}
接口
包括:
- ITablet Interface
- ITablet2 Interface
- ITablet3 Interface
- ITabletContextP Interface
- ITabletCursor Interface
- ITabletCursorButton Interface
- ITabletEventSink Interface
- ITabletManager Interface
基本引用代码在 src\Microsoft.DotNet.Wpf\src\PenImc\inc\tpcpen.h
文件,这是 WPF 的 PenImc 层
对此的封装是 src\Microsoft.DotNet.Wpf\src\PenImc\dll\PimcTablet.cpp
和 src\Microsoft.DotNet.Wpf\src\PenImc\dll\PimcManager.cpp
文件,封装依然作为 COM 方式提供
在框架顶层,在 src\Microsoft.DotNet.Wpf\src\PresentationCore\System\Windows\Input\Stylus\Wisp\PenImcRcw.cs
文件通过 COM 方法拿到
请看官方文档 COM API Used by Windows Presentation Foundation - Win32 apps
我搭建了自己的博客 https://blog.lindexi.com/ 欢迎大家访问,里面有很多新的博客。只有在我看到博客写成熟之后才会放在csdn或博客园,但是一旦发布了就不再更新
如果在博客看到有任何不懂的,欢迎交流,我搭建了 dotnet 职业技术学院 欢迎大家加入
如有不方便在博客评论的问题,可以加我 QQ 2844808902 交流
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系。