rlm@1: // Associate.cpp : implementation file rlm@1: // rlm@1: rlm@1: #include "stdafx.h" rlm@1: #include "resource.h" rlm@1: #include "Associate.h" rlm@1: #include "Reg.h" rlm@1: rlm@1: ///////////////////////////////////////////////////////////////////////////// rlm@1: // Associate dialog rlm@1: rlm@1: Associate::Associate(CWnd*pParent /*=NULL*/) rlm@1: : CDialog(Associate::IDD, pParent) rlm@1: { rlm@1: //{{AFX_DATA_INIT(Associate) rlm@1: m_agb = FALSE; rlm@1: m_bin = FALSE; rlm@1: m_cgb = FALSE; rlm@1: m_gb = FALSE; rlm@1: m_gba = FALSE; rlm@1: m_gbc = FALSE; rlm@1: m_sgb = FALSE; rlm@1: //}}AFX_DATA_INIT rlm@1: } rlm@1: rlm@1: void Associate::DoDataExchange(CDataExchange*pDX) rlm@1: { rlm@1: CDialog::DoDataExchange(pDX); rlm@1: //{{AFX_DATA_MAP(Associate) rlm@1: DDX_Check(pDX, IDC_AGB, m_agb); rlm@1: DDX_Check(pDX, IDC_BIN, m_bin); rlm@1: DDX_Check(pDX, IDC_CGB, m_cgb); rlm@1: DDX_Check(pDX, IDC_GB, m_gb); rlm@1: DDX_Check(pDX, IDC_GBA, m_gba); rlm@1: DDX_Check(pDX, IDC_GBC, m_gbc); rlm@1: DDX_Check(pDX, IDC_SGB, m_sgb); rlm@1: //}}AFX_DATA_MAP rlm@1: } rlm@1: rlm@1: BEGIN_MESSAGE_MAP(Associate, CDialog) rlm@1: //{{AFX_MSG_MAP(Associate) rlm@1: ON_BN_CLICKED(ID_CANCEL, OnCancel) rlm@1: ON_BN_CLICKED(ID_OK, OnOk) rlm@1: //}}AFX_MSG_MAP rlm@1: END_MESSAGE_MAP() rlm@1: rlm@1: ///////////////////////////////////////////////////////////////////////////// rlm@1: // Associate message handlers rlm@1: rlm@1: BOOL Associate::OnInitDialog() rlm@1: { rlm@1: CDialog::OnInitDialog(); rlm@1: rlm@1: CenterWindow(); rlm@1: rlm@1: return TRUE; // return TRUE unless you set the focus to a control rlm@1: // EXCEPTION: OCX Property Pages should return FALSE rlm@1: } rlm@1: rlm@1: void Associate::OnCancel() rlm@1: { rlm@1: EndDialog(FALSE); rlm@1: } rlm@1: rlm@1: void Associate::OnOk() rlm@1: { rlm@1: UpdateData(); rlm@1: rlm@1: int mask = 0; rlm@1: if (m_gb) rlm@1: mask |= 1; rlm@1: if (m_sgb) rlm@1: mask |= 2; rlm@1: if (m_cgb) rlm@1: mask |= 4; rlm@1: if (m_gbc) rlm@1: mask |= 8; rlm@1: if (m_gba) rlm@1: mask |= 16; rlm@1: if (m_agb) rlm@1: mask |= 32; rlm@1: if (m_bin) rlm@1: mask |= 64; rlm@1: if (mask) rlm@1: { rlm@1: char applicationPath[2048]; rlm@1: CString commandPath; rlm@1: LPCTSTR types[] = { ".gb", ".sgb", ".cgb", ".gbc", ".gba", ".agb", ".bin" }; rlm@1: GetModuleFileName(NULL, applicationPath, 2048); rlm@1: commandPath.Format("\"%s\" \"%%1\"", applicationPath); rlm@1: regAssociateType("VisualBoyAdvance.Binary", rlm@1: "Binary", rlm@1: commandPath); rlm@1: rlm@1: for (int i = 0; i < 7; i++) rlm@1: { rlm@1: if (mask & (1<