Windows Ink开发使用COM组件开发

官方示例初始化

HRESULT Init(
HWND hWnd)
{// Initialize event sink. This consists of setting//  up the free threaded marshaler.HRESULT hr = m_InkEvents.Init(hWnd);if (FAILED(hr))...// Create the ink collectorhr = CoCreateInstance(CLSID_InkCollector, NULL, CLSCTX_ALL, IID_IInkCollector, (void **) &m_pInkCollector);
/*
CLSID_InkCollector 创建时会自动加载InkObj.dll
但是如果动态库加载位置不对,很有可能会导致后面的put_hWnd或者put_Enabled出现crash的情况
我在项目中曾经就栽在这个坑上。它加载的位置是用户安装的老版office下面的目录下,导致程序崩溃。
在我windows10正常的加载模块目录应该是下面这个InkObj.dll    C:\Program Files (x86)\Common Files\microsoft shared\Ink\InkObj.dll    N/A    N/A    未加载符号。        177    10.0.17763.806 (WinBuild.160101.0800)    2026/10/12 7:01    58AF0000-58C75000    [12296] TrainLine.exe: 本机
动态库加载后可以先通过如下代码获取并检查HMODULE dll_hInstance = ::GetModuleHandle(_T("inkobj.dll"));if(dll_hInstance == NULL)return FALSE;TCHAR path[MAX_PATH] = {0};GetModuleFileName(dll_hInstance, path, MAX_PATH);OS_INFO_TRACE_THIS("CInkCollector::Init dll path = "<<Encoding::ToUtf8(path));if(path[0] == 0)return FALSE;CString strTemp = path;strTemp.MakeUpper();int nPos = strTemp.Find(_T("OFFICE"));if(nPos > 0)return FALSE;
当然这种方法并不准确,我们可以使用查找注册表的方法来获取正确的加载路径,具体代码我就不贴了,大家可以自行摸索。
*/if (FAILED(hr))...// Set up connection between Ink Collector and our event sinkhr = m_InkEvents.AdviseInkCollector(m_pInkCollector);if (FAILED(hr))...// Attach Ink Collector to windowhr = m_pInkCollector->put_hWnd((long) hWnd);if (FAILED(hr))...// Allow Ink Collector to receive input.return m_pInkCollector->put_Enabled(VARIANT_TRUE);
}

最后放上我对官方demo改动后的代码,加入了Windows墨迹数据采集功能,并采用gdi+渲染采集到的数据。

Windows tablet数位板数位屏开发出现的问题相关推荐

  1. 数位板驱动压力测试_【又来甩锅了】数位板/数位屏延迟怎么办?

    最近看到一个绘王用户制作的开箱视频,多角度展示了新上市的Kamvas 16数位屏的实际使用效果,视频里面,有一段是专门测试'数位屏的延迟',让官方君发现一个用户对产品认知的误区. 数位板和鼠标键盘一样 ...

  2. 数位屏如何去光标_iPad还是数位板屏?我该选哪个?

    iPad和数位板\屏该选哪个? 这是很多同学刚接触板绘的时候的问题. 面对数位板眼花缭乱的型号和功能.面对最近风头正盛的ipad pro,买哪款产品才是最适合自己的呢? 老规矩,我给你们全部分析一遍, ...

  3. 数位板驱动压力测试_数位屏应如何选择?

    入门级数位屏,我更推荐绘王.友基这种国产品牌,相比wacom性价比更高. 进阶级只推荐wacom和绘王这两个牌子. 买数位屏需要关注的参数主要有: 屏幕是否是全贴合屏.压感级别.屏幕的色域分辨率以及读 ...

  4. Windows多屏开发小记

    这些天研究了下Windows系统下的多屏开发,这里做一个小分享. Windows系统下多屏模式原理 微软从Windows98后的操作系统就提供了多屏模式,并且在Windows7版本后微软对多屏模式从性 ...

  5. 数位板跟数位屏有什么区别,哪个好些?

    说到数位屏大家肯定会想到电磁笔."原笔迹"输入.手绘-,那么当与数位绘图板放在一起的时候很多朋友就非常容易混淆.虽然数位屏与数位绘图板从名字上看并无任何瓜葛,但在技术上与部分应用上 ...

  6. 对新手超友好的板绘工具推荐:数位板 or 数位屏 or Ipad

    对新手超友好的板绘工具推荐:数位板 or 数位屏 or Ipad 都知道的是普通的数位板对于新手来说实在是不太友好,在网上一搜,板绘新手最常见的问题就是:手眼分离很难受/线条画不直怎么办/找不准点怎么 ...

  7. Windows扩展屏开发总结

    本文来自网易云社区 作者:梁敏 一.多屏设置 在设置-系统-可以点击显示器1和2,可以进行单独设置: "使之成为我的主显示器"可以设置当前显示器是主屏:主屏的选择会决定整个虚拟屏幕 ...

  8. 绘王两款便携数位屏同时发售,全贴合防眩光屏配硬笔

    2020年11月11日,知名数字绘画设备品牌绘王(HUION)发售两款新数位屏产品--Kamvas 12与Kamvas 16(2021).其中Kamvas 12是绘王迄今尺寸最小.最轻的数位屏,重量仅 ...

  9. 科技新品 | 戴尔外星人曲面量子点OLED电竞显示器;TCL首款笔记本电脑及消费级XR眼镜;绘王新一代便携数位屏...

    "科技新产品动态"栏目把新鲜的具有代表性的科学产品带到您眼前,涉及消费电子,半导体.服务器.智能家电等众多品类,提供图片和简单的文字介绍. 戴尔ALIENWARE家族及XPS家族发 ...

  10. 《基于Windows 7特性的程序开发系列》视频分享

    前一阵录制了<基于Windows 7特性的程序开发系列>视频课程,主要针对WinForm.WPF 开发具有Windows 7 特性的程序.现已发布到MSDN Webcast 欢迎大家拍砖. ...

最新文章

  1. springboot超详细教程_全网最细致的SpringBoot实战教程,超适合新手小白入坑学习...
  2. 在线网摘收藏?让Google来吧!
  3. [Python从零到壹] 四十一.图像处理基础篇之图像采样处理
  4. mysql中 s命令_Mysql-概念及常用命令
  5. leetcode199. 二叉树的右视图(bfs)
  6. 【CodeForces - 735B】Urbanization (找规律,思维)
  7. 华为模拟器eNSP1
  8. “平行驾驶”是无人车上路的安全高效智能途径!
  9. pandas 字段操作
  10. 快戳!Python 开发者的福音来啦!
  11. win2003 程序时间提供程序 NtpClient错误解决
  12. OpenGL的几何变换[转]
  13. 【Eclipse】Eclipse使用技巧
  14. 锁定计算机好在下游戏吗,用windows7系统锁定计算机防止孩子沉迷游戏
  15. PUN☀️八、拓展网络同步:RPCs 和 Properties
  16. 华为快应用接入广告服务开发指导
  17. 采用GlodWave软件制作个性化铃声
  18. Codeforces 757F: Team Rocket Rises Again(支配树)
  19. WebRequest、WebResponse的使用示例
  20. 360浏览器html位置,win7系统查看360浏览器收藏夹位置的操作方法

热门文章

  1. game design原理系列学习笔记(四)
  2. Bat批处理脚本--常用命令
  3. 网售鞋王Zappos的戏剧性成功:做到极致
  4. 计算机组成原理试题和答案2017,【2017年整理】计算机组成原理试题及答案9.doc...
  5. Tapestry5单元测试
  6. 《Android框架揭秘》读书笔记——JNI
  7. html网页模板酒店预订,MUI 项目模板之 “酒店预订”
  8. 百度文库文档 下载券文档 代下载 原格式不变
  9. HI3518E 中Sample Venc分析
  10. 背包九讲——全篇详细理解与代码实现