コード例 #1
0
ファイル: Host.cpp プロジェクト: Anti-Ultimate/dolphin
void USBHost::DispatchHooks(const DeviceChangeHooks& hooks)
{
  for (const auto& hook : hooks)
  {
    INFO_LOG(IOS_USB, "%s - %s device: %04x:%04x", GetDeviceName().c_str(),
             hook.second == ChangeEvent::Inserted ? "New" : "Removed", hook.first->GetVid(),
             hook.first->GetPid());
    OnDeviceChange(hook.second, hook.first);
  }
  if (!hooks.empty())
    OnDeviceChangeEnd();
}
コード例 #2
0
/*************************************
* MainWndProc
**************************************/
LRESULT CALLBACK MainWndProc(
							 HWND hwnd, 
							 UINT uMsg, 
							 WPARAM wParam, 
							 LPARAM lParam)
{

	switch (uMsg)
	{
	case WM_DEVICECHANGE:
		OnDeviceChange ( hwnd, wParam, lParam);
		break;

	case WM_DESTROY:
		ExitProcess(0);
		return 0;

	default:
		return DefWindowProc(hwnd, uMsg, wParam, lParam);
	}
	return 0;
}
コード例 #3
0
ファイル: eventwnd.cpp プロジェクト: yzx65/ndas4windows
BOOL
CPnpEventConsumerWindow::OnDeviceChange(UINT EventType, LPVOID EventData)
{
    switch (EventType)
    {
    case DBT_CONFIGCHANGECANCELED:
        printf("DBT_CONFIGCHANGECANCELED\n");
        // no data
        break;
    case DBT_CONFIGCHANGED:
        printf("DBT_CONFIGCHANGED\n");
        // no data
        break;
    case DBT_DEVNODES_CHANGED:
        // printf("DBT_DEVNODES_CHANGED\n");
        // no data
        break;
    case DBT_QUERYCHANGECONFIG:
        printf("DBT_QUERYCHANGECONFIG\n");
        // no data
        break;
    case DBT_CUSTOMEVENT:
    case DBT_DEVICEARRIVAL:
    case DBT_DEVICEQUERYREMOVE:
    case DBT_DEVICEQUERYREMOVEFAILED:
    case DBT_DEVICEREMOVECOMPLETE:
    case DBT_DEVICEREMOVEPENDING:
    case DBT_DEVICETYPESPECIFIC:
    {
        PDEV_BROADCAST_HDR dbc = static_cast<PDEV_BROADCAST_HDR>(EventData);
        switch (dbc->dbch_devicetype)
        {
        case DBT_DEVTYP_DEVICEINTERFACE:
        {
            PDEV_BROADCAST_DEVICEINTERFACE dbcc =
                reinterpret_cast<PDEV_BROADCAST_DEVICEINTERFACE>(dbc);
            return OnDeviceChange(EventType, dbcc);
        }
        case DBT_DEVTYP_HANDLE:
        {
            PDEV_BROADCAST_HANDLE dbch =
                reinterpret_cast<PDEV_BROADCAST_HANDLE>(dbc);
            return OnDeviceChange(EventType, dbch);
        }
        case DBT_DEVTYP_OEM:
        {
            PDEV_BROADCAST_OEM dbco =
                reinterpret_cast<PDEV_BROADCAST_OEM>(dbc);
            return OnDeviceChange(EventType, dbco);
        }
        case DBT_DEVTYP_PORT:
        {
            PDEV_BROADCAST_PORT dbcp =
                reinterpret_cast<PDEV_BROADCAST_PORT>(dbc);
            return OnDeviceChange(EventType, dbcp);
        }
        case DBT_DEVTYP_VOLUME:
        {
            PDEV_BROADCAST_VOLUME dbcv =
                reinterpret_cast<PDEV_BROADCAST_VOLUME>(dbc);
            return OnDeviceChange(EventType, dbcv);
        }
        }
    }
    break;
    case DBT_USERDEFINED:
    {
        _DEV_BROADCAST_USERDEFINED* dbcu =
            static_cast<_DEV_BROADCAST_USERDEFINED*>(EventData);
        return OnDeviceChange(EventType, dbcu);
    }
    break;
    default:
        printf("unknown event\n");
    }
    return TRUE;
}