# HKMGetError

名称 | HKMGetError 获得错误代码
功能 | 获得错误代码。如果要获得错误代码在设备对象有关函数执行后立刻执行该函数，执行其它设备对象有关函数会覆盖之前的值。
参数 | 参数1　设备对象：无类型指针。使用HKMOpen可以创建它。

返回值

无符号32位整型数。低16位是错误代码，高16位是错误编号。错误代码中，0是成功，低于57344是系统错误代码，与系统API“GetLastError”获得的值相同，具体值的解释可以在微软网站查看，高于或等于57344的错误代码如下：

值 | 说明 | 值 | 说明
--- | --- | --- | ---
0000(0) | 成功 | E020(57376) | 打开设备失败
E001(57345) | 失败 | E021(57377) | 通信失败
E002(57346) | 无效的参数 | E022(57378) | 无访问权限
E003(57347) | 无效的指针 | E023(57379) | 超时
E004(57348) | 无效的对象 | E024(57380) | 运行应用失败
E005(57349) | 无效的初始化值 | E025(57381) | 超出限制
E006(57350) | 无效的数据 | E026(57382) | 获取DPI信息失败
E007(57351) | 数据太大 | E027(57383) | 获取数据失败
E008(57352) | 字符串太长 | E028(57384) | 设备失败
E009(57353) | 数据区域太小 | E029(57385) | 设备超时
E00A(57354) | 不支持 |  |
E00B(57355) | 对象已存在 |  |
E00C(57356) | 系统错误 |  |

C语言 例子 | DWORD dwDevId; LPVOID lpDev; dwDevId=HKMSearchDevice(0x1234,0xABCD,0); if(dwDevId==0xFFFFFFFF) { printf("未找到无涯键鼠盒子\n"); return 0; } lpDev=HKMOpen(dwDevId,0); if(lpDev==NULL) { printf("打开无涯键鼠盒子失败\n"); return 0; } printf("错误代码:%04X\n",HKMGetError(lpDev) & 0xFFFF); HKMClose(lpDev);