// usb_toolsDlg.h: 头文件 // #pragma once #include #include #include #include "DlgScanner.h" // CusbtoolsDlg 对话框 class CusbtoolsDlg : public CDialogEx { typedef struct _scanner { DWORD id; ONLNSCANNER usb; CDlgScanner* dlg; }SCANNER; std::vector pnp_que_; HMENU tray_; HWND desktop_; DWORD id_ = 1; void enable_io_ui(bool enable); void add_pnp_que(ONLNSCANNER* pnp); void remove_pnp_que(ONLNSCANNER* pnp = NULL); void append_log(const wchar_t* log, UINT id); void log_pnp(ONLNSCANNER* pnp, bool arrive); bool endpoint_from_combo_text(wchar_t* text, BYTE& type, BYTE& addr); void close_device(SCANNER& pnp); ONLNSCANNER* get_cur_device(void); void open_usb(SCANNER& pnp, bool from_list = true); // 构造 public: CusbtoolsDlg(CWnd* pParent = nullptr); // 标准构造函数 ~CusbtoolsDlg(); // 对话框数据 #ifdef AFX_DESIGN_TIME enum { IDD = IDD_USB_TOOLS_DIALOG }; #endif protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持 // 实现 protected: HICON m_hIcon; std::string log_file_; // 生成的消息映射函数 virtual BOOL OnInitDialog(); afx_msg void OnPaint(); afx_msg HCURSOR OnQueryDragIcon(); DECLARE_MESSAGE_MAP() public: afx_msg LRESULT OnUsbPnp(WPARAM wp, LPARAM lp); afx_msg LRESULT OnRcvMsg(WPARAM wp, LPARAM lp); afx_msg LRESULT OnDevDlgClosed(WPARAM wp, LPARAM lp); afx_msg LRESULT OnTray(WPARAM wp, LPARAM lp); afx_msg void OnBnClickedCheckAutoMon(); CListCtrl devl_; afx_msg void OnNMDblclkListDevices(NMHDR* pNMHDR, LRESULT* pResult); CComboBox ep2_; afx_msg void OnBnClickedButtonClear(); afx_msg void OnSysCommand(UINT nID, LPARAM lParam); afx_msg void OnTrayExit(); afx_msg void OnTrayDevice(UINT id); afx_msg void OnBnClickedOk(); afx_msg void OnSize(UINT nType, int cx, int cy); };