I need to detect when a digital camera is plugged into my pc using a usb lead. I have successfully added code to my application which detects when the camera in plugged in/removed using WM_DEVICECHANGE , however, the code that I found which uses DBT_DEVICEARRIV AL/DBT_DEVICEREMOV ECOMPLETE does not work with this device - it may be because it does not have a volume label and drive letter. How can I detect the camera being plugged in and identify what it is so that my code can then continue and find the images to be manipulated.