#include <winbase.h>
#include <winreg.h>
#include <winsvc.h>
+#include <winuser.h>
+#include <dbt.h>
#include <stdio.h>
#include <cmfuncs.h>
#include <rtlfuncs.h>
#endif
case CM_DRP_REMOVAL_POLICY:
- PlugPlayData.Property = 0x12; // DevicePropertyRemovalPolicy
+ PlugPlayData.Property = 0x13; // DevicePropertyRemovalPolicy
break;
#if 0
}
else if (UuidEqual(&PnpEvent->EventGuid, (UUID*)&GUID_DEVICE_ARRIVAL, &RpcStatus))
{
+ DWORD dwRecipient;
+
DPRINT("Device arrival: %S\n", PnpEvent->TargetDevice.DeviceIds);
- /* FIXME: ? */
+
+ dwRecipient = BSM_ALLDESKTOPS | BSM_APPLICATIONS;
+ BroadcastSystemMessageW(BSF_POSTMESSAGE,
+ &dwRecipient,
+ WM_DEVICECHANGE,
+ DBT_DEVNODES_CHANGED,
+ 0);
}
else if (UuidEqual(&PnpEvent->EventGuid, (UUID*)&GUID_DEVICE_EJECT_VETOED, &RpcStatus))
{
}
else if (UuidEqual(&PnpEvent->EventGuid, (UUID*)&GUID_DEVICE_SAFE_REMOVAL, &RpcStatus))
{
+ DWORD dwRecipient;
+
DPRINT1("Safe removal: %S\n", PnpEvent->TargetDevice.DeviceIds);
+
+ dwRecipient = BSM_ALLDESKTOPS | BSM_APPLICATIONS;
+ BroadcastSystemMessageW(BSF_POSTMESSAGE,
+ &dwRecipient,
+ WM_DEVICECHANGE,
+ DBT_DEVNODES_CHANGED,
+ 0);
}
else if (UuidEqual(&PnpEvent->EventGuid, (UUID*)&GUID_DEVICE_SURPRISE_REMOVAL, &RpcStatus))
{
+ DWORD dwRecipient;
+
DPRINT1("Surprise removal: %S\n", PnpEvent->TargetDevice.DeviceIds);
+
+ dwRecipient = BSM_ALLDESKTOPS | BSM_APPLICATIONS;
+ BroadcastSystemMessageW(BSF_POSTMESSAGE,
+ &dwRecipient,
+ WM_DEVICECHANGE,
+ DBT_DEVNODES_CHANGED,
+ 0);
}
else if (UuidEqual(&PnpEvent->EventGuid, (UUID*)&GUID_DEVICE_REMOVAL_VETOED, &RpcStatus))
{