I'm not Robert :) anyway:
in WM_POWERBROADCAST test for DBT_DEVICEARRIVAL if it is, the lParam will be then DEV_BROADCAST_HDR structure. Check for dbch_devicetype in this structure and if it equals to DBT_DEVTYP_OEM your lParam is the DEV_BROADCAST_OEM structure, just cast lParam to DEV_BROADCAST_OEM.
also read about SetupDiGetDeviceInterfaceDetail WINAPI function.
bq. Second even if I get this object or pointer, how do i get the OS name ??
if OEM is "Apple iPhone bla bla", you have got iPhone, do more specific tasks with iPhone SDK to get OS version or whatever you need... If it is HTC, do the over stuff... and so on...
You need to search on Specific Device devoplers forum for more information on how to get OS information for specified device. Qt and WINAPI can't help you here(WINAPI can help only for WM devices, maybe for WP too)