|
|
1.1 ! root 1: // tracer.cpp : MFC Windows trace control application ! 2: // ! 3: // This is a part of the Microsoft Foundation Classes C++ library. ! 4: // Copyright (C) 1992 Microsoft Corporation ! 5: // All rights reserved. ! 6: // ! 7: // This source code is only intended as a supplement to the ! 8: // Microsoft Foundation Classes Reference and Microsoft ! 9: // QuickHelp documentation provided with the library. ! 10: // See these sources for detailed information regarding the ! 11: // Microsoft Foundation Classes product. ! 12: ! 13: #include <afxwin.h> ! 14: ! 15: ///////////////////////////////////////////////////////////////////////////// ! 16: // Dialog class ! 17: ! 18: class CPromptDlg : public CModalDialog ! 19: { ! 20: BOOL m_bEnabled; ! 21: UINT m_flags; ! 22: public: ! 23: CPromptDlg(); ! 24: ! 25: void Save(); ! 26: ! 27: BOOL OnInitDialog(); ! 28: void OnOK(); ! 29: }; ! 30: ! 31: static char BASED_CODE szIniFile[] = "AFX.INI"; ! 32: static char BASED_CODE szDiagSection[] = "Diagnostics"; ! 33: ! 34: CPromptDlg::CPromptDlg() ! 35: : CModalDialog("PROMPT") ! 36: { ! 37: m_bEnabled = ::GetPrivateProfileInt(szDiagSection, "TraceEnabled", ! 38: FALSE, szIniFile); ! 39: m_flags = ::GetPrivateProfileInt(szDiagSection, "TraceFlags", ! 40: 0, szIniFile); ! 41: } ! 42: ! 43: void CPromptDlg::Save() ! 44: { ! 45: char szT[32]; ! 46: wsprintf(szT, "%d", m_bEnabled); ! 47: ! 48: if (!::WritePrivateProfileString(szDiagSection, "TraceEnabled", ! 49: szT, szIniFile)) ! 50: { ! 51: MessageBox("Unable to Write to Initialization File", ! 52: "Tracer", MB_ICONEXCLAMATION); ! 53: } ! 54: ! 55: wsprintf(szT, "%d", m_flags); ! 56: if (!::WritePrivateProfileString(szDiagSection, "TraceFlags", szT, ! 57: szIniFile)) ! 58: { ! 59: MessageBox("Unable to Write to Initialization File", ! 60: "Tracer", MB_ICONEXCLAMATION); ! 61: } ! 62: } ! 63: ! 64: BOOL CPromptDlg::OnInitDialog() ! 65: { ! 66: if (m_bEnabled) ! 67: ((CButton*)GetDlgItem(512))->SetCheck(TRUE); ! 68: ! 69: for (int i = 0; i < 5; i++) ! 70: { ! 71: CButton* pCheck = (CButton*)GetDlgItem(256 + i); ! 72: if (pCheck == NULL) ! 73: break; // no more checkboxes ! 74: if (m_flags & (1 << i)) ! 75: pCheck->SetCheck(TRUE); ! 76: } ! 77: return TRUE; ! 78: } ! 79: ! 80: void CPromptDlg::OnOK() ! 81: { ! 82: m_bEnabled = ((CButton*)GetDlgItem(512))->GetCheck(); ! 83: m_flags = 0; ! 84: ! 85: for (int i = 0; i < 5; i++) ! 86: { ! 87: CButton* pCheck = (CButton*)GetDlgItem(256 + i); ! 88: if (pCheck == NULL) ! 89: break; // no more checkboxes ! 90: if (pCheck->GetCheck()) ! 91: m_flags |= (1 << i); ! 92: } ! 93: EndDialog(IDOK); ! 94: } ! 95: ! 96: ///////////////////////////////////////////////////////////////////////////// ! 97: // Application class ! 98: ! 99: class CTracerApp : public CWinApp ! 100: { ! 101: public: ! 102: virtual BOOL InitInstance(); ! 103: }; ! 104: ! 105: CTracerApp theTracerApp; ! 106: ! 107: BOOL CTracerApp::InitInstance() ! 108: { ! 109: CPromptDlg dlg; ! 110: ! 111: if (dlg.DoModal() == IDOK) ! 112: dlg.Save(); ! 113: ! 114: ::PostQuitMessage(0); // Exit application ! 115: return TRUE; ! 116: } ! 117: ! 118: /////////////////////////////////////////////////////////////////////////////
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.