WPF 用到的触摸的 COM 接口

2021-05-27 17:34:07 浏览数 (1)

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

消息

用到了 WM_TABLET_ADDED 和 WM_TABLET_DELETED 消息

使用的代码是 srcMicrosoft.DotNet.WpfsrcPresentationCoreSystemWindowsInputStylusWispWispLogic.cs 的 HandleMessage 方法

代码语言:javascript复制
        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

基本引用代码在 srcMicrosoft.DotNet.WpfsrcPenImcinctpcpen.h 文件,这是 WPF 的 PenImc 层

对此的封装是 srcMicrosoft.DotNet.WpfsrcPenImcdllPimcTablet.cppsrcMicrosoft.DotNet.WpfsrcPenImcdllPimcManager.cpp 文件,封装依然作为 COM 方式提供

在框架顶层,在 srcMicrosoft.DotNet.WpfsrcPresentationCoreSystemWindowsInputStylusWispPenImcRcw.cs 文件通过 COM 方法拿到

请看官方文档 COM API Used by Windows Presentation Foundation - Win32 apps


0 人点赞