Windows NT 4.0 source code leak
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

118 lines
2.8 KiB

4 years ago
  1. // sendmac.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "sendmac.h"
  5. #ifdef _DEBUG
  6. #undef THIS_FILE
  7. static char BASED_CODE THIS_FILE[] = __FILE__;
  8. #endif
  9. /////////////////////////////////////////////////////////////////////////////
  10. // CSendMacro dialog
  11. CSendMacro::CSendMacro(PSTR pszFile, PSTR pszMacro, CWnd* pParent /*=NULL*/)
  12. : CDialog(CSendMacro::IDD, pParent)
  13. {
  14. //{{AFX_DATA_INIT(CSendMacro)
  15. m_cszHelpFile = pszFile;
  16. m_cszMacro = pszMacro;
  17. //}}AFX_DATA_INIT
  18. m_pszMacro = pszMacro;
  19. m_pszFile = pszFile;
  20. pMacrohistory = new CFileHistory(IDS_HISTORY_MACROS);
  21. }
  22. CSendMacro::~CSendMacro()
  23. {
  24. if (pMacrohistory)
  25. delete pMacrohistory;
  26. }
  27. BOOL CSendMacro::OnInitDialog()
  28. {
  29. SetChicagoDialogStyles(m_hWnd);
  30. CDialog::OnInitDialog();
  31. CComboBox* pcombo = (CComboBox*) GetDlgItem(IDC_COMBO_MACROS);
  32. pMacrohistory->FillComboBox(pcombo);
  33. // If a macro wasn't specified when we were called, then
  34. // select the first macro in our list, which will be the
  35. // last macro sent.
  36. if (!*m_pszMacro) {
  37. pcombo->SetCurSel(0);
  38. pcombo->SetEditSel(0, -1);
  39. }
  40. pcombo = (CComboBox*) GetDlgItem(IDC_COMBO_HELP_FILES);
  41. phlpFile->FillComboBox(pcombo);
  42. // If a filename wasn't specified when we were called, then
  43. // select the first filename in our list, which will be the
  44. // last filename compiled.
  45. if (m_cszHelpFile.IsEmpty())
  46. pcombo->SetCurSel(0);
  47. return TRUE;
  48. }
  49. void CSendMacro::DoDataExchange(CDataExchange* pDX)
  50. {
  51. CDialog::DoDataExchange(pDX);
  52. //{{AFX_DATA_MAP(CSendMacro)
  53. DDX_CBString(pDX, IDC_COMBO_MACROS, m_cszMacro);
  54. DDV_MaxChars(pDX, m_cszMacro, MACRO_LIMIT);
  55. DDX_CBString(pDX, IDC_COMBO_HELP_FILES, m_cszHelpFile);
  56. DDV_MaxChars(pDX, m_cszHelpFile, 255);
  57. //}}AFX_DATA_MAP
  58. DDV_EmptyFile(pDX, m_cszHelpFile, IDS_PROMPT_EMPTY_FILENAME);
  59. if (pDX->m_bSaveAndValidate) {
  60. strcpy(m_pszMacro, m_cszMacro);
  61. pMacrohistory->AddData(m_cszMacro);
  62. strcpy(m_pszFile, m_cszHelpFile);
  63. phlpFile->Add(m_cszHelpFile);
  64. }
  65. }
  66. BEGIN_MESSAGE_MAP(CSendMacro, CDialog)
  67. //{{AFX_MSG_MAP(CSendMacro)
  68. // NOTE: the ClassWizard will add message map macros here
  69. //}}AFX_MSG_MAP
  70. ON_MESSAGE(WM_CONTEXTMENU, OnContextMenu)
  71. ON_MESSAGE(WM_HELP, OnHelp)
  72. END_MESSAGE_MAP()
  73. /////////////////////////////////////////////////////////////////////////////
  74. // CSendMacro message handlers
  75. static const DWORD aHelpIds[] = {
  76. IDC_COMBO_MACROS, IDH_COMBO_SEND_MACRO_NAME,
  77. IDC_COMBO_HELP_FILES, IDH_COMBO_SEND_MACRO_HELP,
  78. IDOK, IDH_BTN_SEND_MACRO,
  79. 0, 0
  80. };
  81. LRESULT CSendMacro::OnContextMenu(WPARAM wParam, LPARAM lParam)
  82. {
  83. ::WinHelp((HWND) wParam,
  84. AfxGetApp()->m_pszHelpFilePath,
  85. HELP_CONTEXTMENU, (DWORD) (LPVOID) aHelpIds);
  86. return 0;
  87. }
  88. LRESULT CSendMacro::OnHelp(WPARAM wParam, LPARAM lParam)
  89. {
  90. ::WinHelp((HWND) ((LPHELPINFO) lParam)->hItemHandle,
  91. AfxGetApp()->m_pszHelpFilePath,
  92. HELP_WM_HELP, (DWORD) (LPVOID) aHelpIds);
  93. return 0;
  94. }