home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / msdn_vcb / samples / vc98 / sdk / dbmsg / oledb / tablecopy / wizard.h < prev   
Encoding:
C/C++ Source or Header  |  1998-03-12  |  5.5 KB  |  243 lines

  1. //-----------------------------------------------------------------------------
  2. // Microsoft OLE DB TABLECOPY Sample
  3. // Copyright (C) 1995-1998 Microsoft Corporation
  4. //
  5. // @doc
  6. //
  7. // @module WIZARD.H
  8. //
  9. //-----------------------------------------------------------------------------
  10.  
  11. #ifndef _WIZARD_H_
  12. #define _WIZARD_H_
  13.  
  14. /////////////////////////////////////////////////////////////////////
  15. // Includes
  16. //
  17. /////////////////////////////////////////////////////////////////////
  18. #include "winmain.h"
  19. #include "Table.h"
  20.  
  21.  
  22. /////////////////////////////////////////////////////////////////
  23. // Defines
  24. //
  25. /////////////////////////////////////////////////////////////////
  26. enum WIZ_STEP
  27. {
  28.     WIZ_STEP1    = 0,
  29.     WIZ_STEP2    = 1,
  30.     WIZ_STEP3    = 2,
  31.     WIZ_STEP4    = 3,
  32.     WIZ_TYPES    = 4,
  33.     END_WIZ        = 5
  34. };
  35.  
  36. struct TREEINFO
  37. {
  38.     ULONG ulIndex;
  39.     HTREEITEM hParent;
  40.     HTREEITEM hItem;
  41. };
  42.  
  43.  
  44. /////////////////////////////////////////////////////////////////
  45. // Forward Declarations
  46. //
  47. /////////////////////////////////////////////////////////////////
  48. class CTableCopy;
  49. class CDataSource;
  50. class CProgress;
  51.  
  52.  
  53. /////////////////////////////////////////////////////////////////////
  54. // CDialogBase
  55. //
  56. /////////////////////////////////////////////////////////////////////
  57. class CDialogBase
  58. {
  59. public:
  60.     //constructors
  61.     CDialogBase(HWND hWnd, HINSTANCE hInst);
  62.     virtual ~CDialogBase();
  63.  
  64.     //members
  65.     virtual ULONG Display() = 0;
  66.     virtual ULONG Destroy();
  67.  
  68.     //Data
  69.     HWND        m_hWnd;
  70.     HINSTANCE    m_hInst;
  71. };
  72.  
  73.  
  74. /////////////////////////////////////////////////////////////////////
  75. // CS1Dialog
  76. //
  77. /////////////////////////////////////////////////////////////////////
  78. class CS1Dialog : public CDialogBase
  79. {
  80. public:
  81.     //constructors
  82.     CS1Dialog(HWND hWnd, HINSTANCE hInst, CTableCopy* pTableCopy);
  83.     virtual ~CS1Dialog();
  84.  
  85.     //abstract members
  86.     static BOOL WINAPI DlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
  87.     virtual ULONG Display();
  88.  
  89.     //members
  90.     virtual BOOL InitControls();
  91.     virtual BOOL RefreshControls();
  92.  
  93.     virtual BOOL ResetTableList(HWND hWndTable, HWND hWndCol);
  94.     virtual BOOL ChangeTableName(LONG iIndex);
  95.  
  96.     virtual BOOL ResetColInfo(HWND hWndCol);
  97.     virtual BOOL GetTableColInfo(HWND hWndCol);
  98.     virtual BOOL CreateTableNode(TREEINFO* rgTreeInfo, ULONG ulNameOffset, LONG iParam = 0, LONG iImage = 0, LONG iSelectedImage = 0);
  99.  
  100.     //Data
  101.     CTableCopy* m_pCTableCopy;
  102.     BOOL        m_fEditing;
  103.  
  104.     ULONG        m_cTables;
  105.     TABLEINFO*    m_rgTableInfo;
  106. };
  107.  
  108.  
  109. /////////////////////////////////////////////////////////////////////
  110. // CS2Dialog
  111. //
  112. /////////////////////////////////////////////////////////////////////
  113. class CS2Dialog : public CDialogBase
  114. {
  115. public:
  116.     //constructors
  117.     CS2Dialog(HWND hWnd, HINSTANCE hInst, CTableCopy* pTableCopy);
  118.     virtual ~CS2Dialog();
  119.  
  120.     //abstract members
  121.     static BOOL WINAPI DlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
  122.     virtual ULONG Display();
  123.  
  124.     //members
  125.     virtual BOOL InitControls();
  126.     virtual BOOL RefreshControls();
  127.  
  128.     virtual BOOL GetPrimaryKeys();
  129.  
  130.     virtual BOOL ResetIndexList(HWND hWnd);
  131.     virtual BOOL RecordSelectedIndexes(HWND hWnd);
  132.  
  133.     //Data
  134.     CTableCopy* m_pCTableCopy;
  135. };
  136.  
  137.  
  138.  
  139. /////////////////////////////////////////////////////////////////////
  140. // CS3Dialog
  141. //
  142. /////////////////////////////////////////////////////////////////////
  143. class CS3Dialog : public CDialogBase
  144. {
  145. public:
  146.     //constructors
  147.     CS3Dialog(HWND hWnd, HINSTANCE hInst, CTableCopy* pTableCopy);
  148.     virtual ~CS3Dialog();
  149.  
  150.     //abstract members
  151.     static BOOL WINAPI DlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
  152.     virtual ULONG Display();
  153.  
  154.     //members
  155.     virtual BOOL InitControls();
  156.     virtual BOOL RefreshControls();
  157.  
  158.     virtual BOOL Connect(CDataSource* pCDataSource = NULL);
  159.     virtual BOOL EnableTable();
  160.  
  161.     //Data
  162.     CTableCopy* m_pCTableCopy;
  163. };
  164.  
  165.  
  166. /////////////////////////////////////////////////////////////////////
  167. // CS4Dialog
  168. //
  169. /////////////////////////////////////////////////////////////////////
  170. class CS4Dialog : public CDialogBase
  171. {
  172. public:
  173.     //constructors
  174.     CS4Dialog(HWND hWnd, HINSTANCE hInst, CTableCopy* pTableCopy);
  175.     virtual ~CS4Dialog();
  176.  
  177.     //abstract members
  178.     static BOOL WINAPI DlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
  179.     virtual ULONG Display();
  180.     
  181.     //members
  182.     virtual BOOL InitControls();
  183.     virtual BOOL RefreshControls();
  184.  
  185.     //Data
  186.     CTableCopy* m_pCTableCopy;
  187. };
  188.  
  189.  
  190. /////////////////////////////////////////////////////////////////////
  191. // CTypesDialog
  192. //
  193. /////////////////////////////////////////////////////////////////////
  194. class CTypesDialog : public CDialogBase
  195. {
  196. public:
  197.     //constructors
  198.     CTypesDialog(HWND hWnd, HINSTANCE hInst, CTableCopy* pTableCopy);
  199.     virtual ~CTypesDialog();
  200.  
  201.     //abstract members
  202.     static BOOL WINAPI DlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
  203.     virtual ULONG Display();
  204.  
  205.     //members
  206.     virtual BOOL InitControls();
  207.     virtual BOOL RefreshControls();
  208.     
  209.     virtual BOOL ResetTypeLists();
  210.  
  211.     //Data
  212.     CTableCopy* m_pCTableCopy;
  213. };
  214.  
  215.  
  216. /////////////////////////////////////////////////////////////////////
  217. // CWizard
  218. //
  219. /////////////////////////////////////////////////////////////////////
  220. class CWizard : public CDialogBase
  221. {
  222. public:
  223.     //Constructors
  224.     CWizard(HWND hWnd, HINSTANCE hInst);
  225.     virtual ~CWizard();
  226.  
  227.     //Members
  228.     virtual ULONG Display();
  229.     virtual ULONG DisplayStep(ULONG iStep);
  230.     virtual ULONG DestroyPrevStep(ULONG iCurStep);
  231.  
  232.     //Data
  233.     CTableCopy*    m_pCTableCopy;
  234.     CProgress*  m_pCProgress;
  235.  
  236.     ULONG        m_iPrevStep;
  237.     CDialogBase*    m_rgDialogSteps[END_WIZ];
  238. };
  239.  
  240.  
  241.  
  242. #endif    //_WIZARD_H_
  243.