OnDeviceChange收到7并多次调用

         今天调试程序,在OnDeviceChange加了一个断点,我插入U盘的时候nEventType的值是7.在网上搜了一下说是要注册消息RegisterDeviceNotification。我很奇怪为什么我直接运行的时候可以截获到DBT_DEVICEARRIVAL和DBT_DEVICEREMOVECOMPLETE。

         于是我在OnDeviceChange函数末尾加了一个消息框显示nEventType的值,结果是我插入U盘后先后弹出7,32768(DBT_DEVICEARRIVAL),7,7,7,7,7 。

         每一次第一次都是7DBT_DEVNODES_CHANGED第二次才是我们想要的值。所以第一次我就没管了。

为什么OnDeviceChange会在设备改变时收到时会多次被调用,想在还不太明白。


Guess you like

Origin blog.csdn.net/sstya/article/details/17163791