home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgLangD.iso / C++-7 / DISK8 / MFC / SAMPLES / DLLTRACE / TRACER.CP$ / tracer
Encoding:
Text File  |  1992-01-15  |  2.6 KB  |  111 lines

  1. // tracer.cpp : Contains TRACER.DLL implementation and initialization
  2. //              code.
  3. //
  4. // This is a part of the Microsoft Foundation Classes C++ library.
  5. // Copyright (C) 1992 Microsoft Corporation
  6. // All rights reserved.
  7. //
  8. // This source code is only intended as a supplement to the
  9. // Microsoft Foundation Classes Reference and Microsoft
  10. // QuickHelp documentation provided with the library.
  11. // See these sources for detailed information regarding the
  12. // Microsoft Foundation Classes product.
  13.  
  14.  
  15. #include <afxwin.h>
  16. #include "traceapi.h"
  17.  
  18. #ifndef _DEBUG
  19. #error This source file must be compiled with _DEBUG defined
  20. #endif
  21.  
  22. /////////////////////////////////////////////////////////////////////////////
  23. // Dialog class
  24.  
  25. class CPromptDlg : public CModalDialog
  26. {
  27.     TracerData FAR* m_lpData;
  28. public:
  29.     CPromptDlg(TracerData FAR* lpData)
  30.         : CModalDialog("PROMPT")
  31.         { m_lpData = lpData; }
  32.  
  33.     BOOL OnInitDialog();
  34.     void OnOK();
  35. };
  36.  
  37. BOOL CPromptDlg::OnInitDialog()
  38. {
  39.     if (m_lpData->bEnabled)
  40.         ((CButton*)GetDlgItem(512))->SetCheck(TRUE);
  41.  
  42.     for (int i = 0; i < 16; i++)
  43.     {
  44.         CButton* pCheck = (CButton*)GetDlgItem(256 + i);
  45.         if (pCheck == NULL)
  46.             break;      // no more checkboxes
  47.         if (m_lpData->flags & (1 << i))
  48.             pCheck->SetCheck(TRUE);
  49.     }
  50.     return TRUE;
  51. }
  52.  
  53. void CPromptDlg::OnOK()
  54. {
  55.     m_lpData->bEnabled = ((CButton*)GetDlgItem(512))->GetCheck();
  56.     m_lpData->flags = 0;
  57.  
  58.     for (int i = 0; i < 16; i++)
  59.     {
  60.         CButton* pCheck = (CButton*)GetDlgItem(256 + i);
  61.         if (pCheck == NULL)
  62.             break;      // no more checkboxes
  63.         if (pCheck->GetCheck())
  64.             m_lpData->flags |= (1 << i);
  65.     }
  66.     EndDialog(IDOK);
  67. }
  68.  
  69. /////////////////////////////////////////////////////////////////////////////
  70. // Public C interface
  71.  
  72. extern "C"
  73. BOOL FAR PASCAL _export PromptTraceFlags(TracerData FAR* lpData)
  74. {
  75.     TRACE("Inside Tracer DLL\n");
  76.     CPromptDlg  dlg(lpData);
  77.  
  78.     return (dlg.DoModal() == IDOK);
  79. }
  80.  
  81. /////////////////////////////////////////////////////////////////////////////
  82. // Library init
  83.  
  84. class CTracerDLL : public CWinApp
  85. {
  86. public:
  87.     virtual BOOL InitInstance();
  88.  
  89.     // nothing special for the constructor
  90.     CTracerDLL(const char* pszAppName)
  91.         : CWinApp(pszAppName)
  92.         { }
  93. };
  94.  
  95. BOOL CTracerDLL::InitInstance()
  96. {
  97.     // any DLL initialization goes here
  98.     TRACE("TRACER.DLL initializing\n");
  99.     return TRUE;
  100. }
  101.  
  102. extern "C"
  103. BOOL FAR PASCAL _export FilterDllMsg(LPMSG lpMsg)
  104. {
  105.     return AfxGetApp()->PreTranslateMessage(lpMsg);
  106. }
  107.  
  108. CTracerDLL  tracerDLL("tracer.dll");
  109.  
  110. /////////////////////////////////////////////////////////////////////////////
  111.