EnumDialog.h
上传用户:benben_wyd
上传日期:2010-02-26
资源大小:1229k
文件大小:2k
源码类别:

书籍源码

开发平台:

Visual C++

  1. // EnumDialog.h : Declaration of the CEnumDialog
  2. #ifndef __ENUMDIALOG_H_
  3. #define __ENUMDIALOG_H_
  4. #include "resource.h"       // main symbols
  5. #include <atlhost.h>
  6. //Added by Chuck Wood -- #include for CEnumerator support
  7. #include <atldbcli.h>
  8. //Added by Chuck Wood -- #include for ListBox_AddString support
  9. #include <WindowsX.h>
  10. //Added by Chuck Wood -- #include for sprintf support
  11. #include <stdio.h>
  12. /////////////////////////////////////////////////////////////////////////////
  13. // CEnumDialog
  14. class CEnumDialog : 
  15. public CAxDialogImpl<CEnumDialog>
  16. {
  17. public:
  18. CEnumDialog()
  19. {
  20. //Added by Chuck Wood to automatically go modal
  21. DoModal();
  22. }
  23. ~CEnumDialog()
  24. {
  25. }
  26. enum { IDD = IDD_ENUMDIALOG };
  27. BEGIN_MSG_MAP(CEnumDialog)
  28. MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
  29. COMMAND_ID_HANDLER(IDOK, OnOK)
  30. COMMAND_ID_HANDLER(IDCANCEL, OnCancel)
  31. END_MSG_MAP()
  32. // Handler prototypes:
  33. //  LRESULT MessageHandler(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
  34. //  LRESULT CommandHandler(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled);
  35. //  LRESULT NotifyHandler(int idCtrl, LPNMHDR pnmh, BOOL& bHandled);
  36. LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
  37. {
  38. //This function was written by Chuck Wood to show an enumerator
  39. CEnumerator cenum; //Declare an enumerator
  40. // String for building the list
  41. char strProviderList[255];
  42. cenum.Open(); //Open a class enumerator
  43. //Go to the first provider in the rowset
  44. HRESULT hr = cenum.MoveFirst();
  45. //Retrieve the list box control
  46. HWND hwndCtl = GetDlgItem(IDC_PROVIDERLIST);
  47. //Go until the end of the rowset
  48. while (hr == S_OK) {
  49. //Build a string with the name and parse name of the
  50. //Enumerator
  51. sprintf(strProviderList, "%-60S %S",
  52. cenum.m_szName, cenum.m_szDescription);
  53. //Use the ListBox_AddString function to add the string
  54. //to the list box
  55. ListBox_AddString(hwndCtl, strProviderList);
  56. //Get the next provider in the rowset
  57. hr = cenum.MoveNext();
  58. }
  59. //Close your rowset
  60. cenum.Close(); //Close the enumerator
  61. return 1;  // Let the system set the focus
  62. }
  63. LRESULT OnOK(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled)
  64. {
  65. EndDialog(wID);
  66. return 0;
  67. }
  68. LRESULT OnCancel(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled)
  69. {
  70. EndDialog(wID);
  71. return 0;
  72. }
  73. };
  74. #endif //__ENUMDIALOG_H_