BSOne.SFC/Tocsg.Module/Bs1Flt/tool/CDialogUsbException.cpp

121 lines
3.7 KiB
C++

// 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());
}