专栏首页林德熙的博客WPF 用到的触摸的 COM 接口

WPF 用到的触摸的 COM 接口

本文记录 WPF 用到的触摸的 COM 接口

消息

用到了 WM_TABLET_ADDEDWM_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;
            }
        }

接口

包括:

基本引用代码在 src\Microsoft.DotNet.Wpf\src\PenImc\inc\tpcpen.h 文件,这是 WPF 的 PenImc 层

对此的封装是 src\Microsoft.DotNet.Wpf\src\PenImc\dll\PimcTablet.cppsrc\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


本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 为什么 WPF 软件在 win7 启动时会尝试调起 wisptis 进程

    我看到一个问题是在 win7 系统上,如果开机启动的软件是 WPF 软件,而这个 WPF 软件在系统的 wisptis 进程启动之前就启动了,那么 WPF 将会...

    林德熙
  • 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇)

    发布于 2018-08-15 07:42 更新于 2018-08...

    walterlv
  • Win10 的 WPF 程序的 wisptis 服务是附加到进程的窗口

    在 Win10 下,没有 WISPTIS 服务进程,和 win7 不相同。但是 WPF 依然通过 PENIMC 从 COM 获取实时触摸消息,那么 WPF 是从...

    林德熙
  • dotnet 读 WPF 源代码笔记 插入触摸设备的初始化获取设备信息

    在 WPF 触摸应用中,插入触摸设备,即可在应用里面使用上插入的触摸设备。在 WPF 使用触摸设备的触摸时,需要获取到触摸设备的信息,才能实现触摸

    林德熙
  • WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices

    2018-08-15 07:42

    walterlv
  • WPF 插拔触摸设备触摸失效

    最近使用 WPF 程序,在不停插拔触摸设备会让 WPF 程序触摸失效。通过分析 WPF 源代码可以找到 WPF 触摸失效的原因。

    林德熙
  • WPF 触摸底层 PenImc 是如何工作的

    在 WPF 里面有其他软件完全比不上的超快速的触摸,这个触摸是通过 PenImc 获取的。现在 WPF 开源了,本文就带大家来阅读触摸底层的代码,阅读本文需要一...

    林德熙
  • WPF 不禁用实时触摸而收到 WM_Touch 触摸消息方法

    在 WPF 中,触摸默认通过 RealTimeStylus 实时触摸进来,根据官方文档,这个机制将会和 WM_Touch 触摸消息在同一个 HWND 是互斥的。...

    林德熙
  • UWP 和 WPF 对比

    本文告诉大家 UWP 和 WPF 的不同。 如果在遇到技术选择或者想和小伙伴吹的时候可以让他以为自己很厉害,那么请继续看。

    林德熙

扫码关注云+社区

领取腾讯云代金券