// CDialogUsbException.cpp: 구현 파일 // #include "pch.h" #include "tool.h" #include "afxdialogex.h" #include "CDialogUsbException.h" // CDialogUsbException 대화 상자 IMPLEMENT_DYNAMIC(CDialogUsbException, CDialogEx) CDialogUsbException::CDialogUsbException(CWnd* pParent /*=nullptr*/) : CDialogEx(IDD_DIALOG_USB_EXCEPTION, pParent) { } CDialogUsbException::~CDialogUsbException() { } void CDialogUsbException::DoDataExchange(CDataExchange* pDX) { CDialogEx::DoDataExchange(pDX); DDX_Control(pDX, IDC_EDIT_VID, editVid); DDX_Control(pDX, IDC_EDIT_PID, editPid); DDX_Control(pDX, IDC_EDIT_PARAM2, editParam3); } BEGIN_MESSAGE_MAP(CDialogUsbException, CDialogEx) ON_BN_CLICKED(IDC_BUTTON_SET_USB_EXCEPTION, &CDialogUsbException::OnBnClickedButtonSetUsbException) ON_BN_CLICKED(IDC_BUTTON_SET_USB_EXCEPTION2, &CDialogUsbException::OnBnClickedButtonSetUsbException2) END_MESSAGE_MAP() // CDialogUsbException 메시지 처리기 void CDialogUsbException::OnBnClickedButtonSetUsbException() { // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다. CString vid; CString pid; CString param2; if (!bs1flt_.Bs1fltSetUsbException) { MessageBox(L"bs1flt가 초기화 되지 않았습니다.", L"BS1FLT ALRAM", MB_ICONERROR | MB_OK); return; } editVid.GetWindowText(vid); editPid.GetWindowText(pid); editParam3.GetWindowText(param2); if (vid.IsEmpty() || pid.IsEmpty() ) { MessageBox(L"입력 데이터가 없습니다.", L"BS1FLT ALRAM", MB_ICONERROR | MB_OK); return; } vid.MakeUpper(); pid.MakeUpper(); theApp.dlg.listLog_.AddString(L"[USB EXCEPTION SET] VID:" + vid + L", PID:" + pid + L", SERIAL:" + param2); bs1flt_.Bs1fltSetUsbException(vid.GetBuffer(), pid.GetBuffer(), NULL, param2.GetBuffer()); } BOOL CDialogUsbException::OnInitDialog() { CDialogEx::OnInitDialog(); MessageBox(L"OnInitDialog", L"정보", MB_OK | MB_ICONINFORMATION); GetDlgItem(IDC_STATIC_USB_EXCEPTION_COMMENT)->SetWindowTextW( L"USB 예외 장치로 등록합니다.\n" L"장치 관리자의 디크스 드라이브의 해당 창치의 인스턴드 경로 값을 등록합니다.\n" L"예>USBSTOR\DISK&VEN_VENDORCO&PROD_PRODUCTCODE&REV_2.00\8328501217610604362&0\n" L"vendor : VENDORCO, product : PRODUCTCODE, serial : 8328501217610604362\n" L"장치 관리자의 범용 직렬 버스 컨트롤러의 해당 창치의 인스턴드 경로 값을 등록합니다.\n" L"USB\\VID_346D & PID_5678\\8328501217610604362"); GetDlgItem(IDC_STATIC_USB_EXCEPTION_COMMENT2)->SetWindowTextW( L"장치 관리자의 범용 직렬 버스 컨트롤러의 해당 창치의 인스턴드 경로 값을 등록합니다.\n" L"USB\\VID_346D & PID_5678\\8328501217610604362\n" L"vendor : 346D, product : 5678, serial : 8328501217610604362\n"); return TRUE; } void CDialogUsbException::OnBnClickedButtonSetUsbException2() { // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다. CString vid; CString pid; CString param2; if (!bs1flt_.Bs1fltSetUsbPortException) { MessageBox(L"bs1flt가 초기화 되지 않았습니다.", L"BS1FLT ALRAM", MB_ICONERROR | MB_OK); return; } GetDlgItem(IDC_EDIT_VID2)->GetWindowText(vid); GetDlgItem(IDC_EDIT_PID2)->GetWindowText(pid); GetDlgItem(IDC_EDIT_PARAM2)->GetWindowText(param2); if (vid.IsEmpty() || pid.IsEmpty()) { MessageBox(L"입력 데이터가 없습니다.", L"BS1FLT ALRAM", MB_ICONERROR | MB_OK); return; } theApp.dlg.listLog_.AddString(L"[USB EXCEPTION SET] VID:" + vid + L", PID:" + pid + L", SERIAL:" + param2); DWORD vid_dw = wcstoul(vid.GetBuffer(), NULL, 16); DWORD pid_dw = wcstoul(pid.GetBuffer(), NULL, 16); bs1flt_.Bs1fltSetUsbPortException(vid_dw, pid_dw, NULL, param2.GetBuffer()); }