ZHCACO6A january 2011 – may 2023
与传统的 COM 端口不同,USB 应用必须注意,用户可以随时断开(或连接)器件。这是 USB 的动态“即插即用”方面。Windows 通过在 MFC 库中实现的通知来处理此功能。这发生在 API 之外,因为通知直接发送到应用程序的窗口对象;但是,当接收到这些通知时,应用程序可以调用专为此目的提供的 API 处理程序。演示应用程序展示了如何做到这一点。
以下是应用程序处理这些通知所需的步骤:
函数的定义应如下所示:
afx_msg BOOL OnDeviceChange(
UINT nEventType,
DWORD_PTR dwData
);
此函数需要确定是否从系统中移除了此应用程序使用的任何“HID 器件”。 为此,它可以为每个打开的 HID 器件调用 HID_IsDeviceAffected(),以确定它们是否已被移除。
退出应用程序时,应用程序应确保使用 HID_UnregisterForDeviceNotification() 取消寄存。