WIZARD.H

//----------------------------------------------------------------------------- 
// Microsoft OLE DB TABLECOPY Sample
// Copyright (C) 1996 By Microsoft Corporation.
//
// @doc
//
// @module WIZARD.H
//
//-----------------------------------------------------------------------------

#ifndef _WIZARD_H_
#define _WIZARD_H_

/////////////////////////////////////////////////////////////////////
// Includes
//
/////////////////////////////////////////////////////////////////////
#include "winmain.h"


/////////////////////////////////////////////////////////////////
// Forward Declarations
//
/////////////////////////////////////////////////////////////////
class CTableCopy;
class CProgress;


/////////////////////////////////////////////////////////////////////
// CDialog
//
/////////////////////////////////////////////////////////////////////
class CDialog
{
public:
//constructors
CDialog(HWND hWnd, HINSTANCE hInst);
virtual ~CDialog();

//Data
HWNDm_hWnd;
HINSTANCEm_hInst;
};


/////////////////////////////////////////////////////////////////////
// CS1Dialog
//
/////////////////////////////////////////////////////////////////////
class CS1Dialog : public CDialog
{
public:
//constructors
CS1Dialog(HWND hWnd, HINSTANCE hInst, CTableCopy* pTableCopy);
virtual ~CS1Dialog();

//abstract members
ULONG Display();
static BOOL WINAPI DlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);

//members
virtual BOOL InitControls();
virtual BOOL RefreshControls();

virtual BOOL ResetTableList(HWND hWndTable, HWND hWndCol);
virtual BOOL ResetColInfo(HWND hWndCol);
virtual BOOL GetTableColInfo();

virtual BOOL GetTypes(WCHAR* pwszTypes);

//Data
CTableCopy* m_pCTableCopy;
};


/////////////////////////////////////////////////////////////////////
// CS2Dialog
//
/////////////////////////////////////////////////////////////////////
class CS2Dialog : public CDialog
{
public:
//constructors
CS2Dialog(HWND hWnd, HINSTANCE hInst, CTableCopy* pTableCopy);
virtual ~CS2Dialog();

//abstract members
ULONG Display();
static BOOL WINAPI DlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);

//members
virtual BOOL GetPrimaryKeys();

virtual BOOL ResetIndexList(HWND hWnd);
virtual BOOL RecordSelectedIndexes(HWND hWnd);

//Data
CTableCopy* m_pCTableCopy;
};



/////////////////////////////////////////////////////////////////////
// CS3Dialog
//
/////////////////////////////////////////////////////////////////////
class CS3Dialog : public CDialog
{
public:
//constructors
CS3Dialog(HWND hWnd, HINSTANCE hInst, CTableCopy* pTableCopy);
virtual ~CS3Dialog();

//abstract members
ULONG Display();
static BOOL WINAPI DlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);

//members
virtual BOOL Connect();
virtual BOOL RefreshControls();
virtual BOOL EnableTable();

//Data
CTableCopy* m_pCTableCopy;
};


/////////////////////////////////////////////////////////////////////
// CS4Dialog
//
/////////////////////////////////////////////////////////////////////
class CS4Dialog : public CDialog
{
public:
//constructors
CS4Dialog(HWND hWnd, HINSTANCE hInst, CTableCopy* pTableCopy);
virtual ~CS4Dialog();

//abstract members
ULONG Display();
static BOOL WINAPI DlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);

//members
virtual BOOL InitControls();
virtual BOOL RefreshControls();

//Data
CTableCopy* m_pCTableCopy;
};


/////////////////////////////////////////////////////////////////////
// CTypesDialog
//
/////////////////////////////////////////////////////////////////////
class CTypesDialog : public CDialog
{
public:
//constructors
CTypesDialog(HWND hWnd, HINSTANCE hInst, CTableCopy* pTableCopy);
virtual ~CTypesDialog();

//abstract members
ULONG Display();
static BOOL WINAPI DlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);

//members
virtual BOOL RefreshLists();

//Data
CTableCopy* m_pCTableCopy;
};


/////////////////////////////////////////////////////////////////////
// CWizard
//
/////////////////////////////////////////////////////////////////////
class CWizard : public CDialog
{
public:
//Constructors
CWizard(HWND hWnd, HINSTANCE hInst);
virtual ~CWizard();

//Members
virtual ULONG Run();
virtual ULONG FindNextStep(ULONG iStep, ULONG iButton);

//Data
CTableCopy*m_pCTableCopy;
CProgress* m_pCProgress;
};



#endif//_WIZARD_H_