148 lines
3.4 KiB
C++
148 lines
3.4 KiB
C++
//
|
|
// Driver Verifier UI
|
|
// Copyright (c) Microsoft Corporation, 1999
|
|
//
|
|
//
|
|
//
|
|
// module: VerfPage.cpp
|
|
// author: DMihai
|
|
// created: 11/1/00
|
|
//
|
|
// Description:
|
|
//
|
|
|
|
#include "stdafx.h"
|
|
#include "verifier.h"
|
|
#include "VerfPage.h"
|
|
|
|
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
//
|
|
// Previous page IDs - used for implementing the "back"
|
|
// button functionality
|
|
//
|
|
|
|
CPtrArray g_aPageIds;
|
|
|
|
//
|
|
// The one and only "slow progress" dialog
|
|
//
|
|
|
|
CSlowProgressDlg g_SlowProgressDlg;
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CVerifierPropertyPage property page
|
|
|
|
IMPLEMENT_DYNAMIC(CVerifierPropertyPage, CPropertyPage)
|
|
|
|
CVerifierPropertyPage::CVerifierPropertyPage(ULONG uDialogId) :
|
|
CPropertyPage( uDialogId )
|
|
{
|
|
//{{AFX_DATA_INIT(CVerifierPropertyPage)
|
|
// NOTE: the ClassWizard will add member initialization here
|
|
//}}AFX_DATA_INIT
|
|
}
|
|
|
|
CVerifierPropertyPage::~CVerifierPropertyPage()
|
|
{
|
|
}
|
|
|
|
BEGIN_MESSAGE_MAP(CVerifierPropertyPage, CPropertyPage)
|
|
//{{AFX_MSG_MAP(CVerifierPropertyPage)
|
|
ON_WM_HELPINFO()
|
|
//}}AFX_MSG_MAP
|
|
END_MESSAGE_MAP()
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
ULONG CVerifierPropertyPage::GetDialogId() const
|
|
{
|
|
//
|
|
// Oops, how did we get here ?!?
|
|
// This is a virtual pure function.
|
|
//
|
|
|
|
//ASSERT( FALSE );
|
|
|
|
return 0;
|
|
}
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Return the previous page ID, based on our history array
|
|
// and remove it from the array because will activate. Called
|
|
// by our property pages when the "back" button is clicked
|
|
//
|
|
|
|
ULONG CVerifierPropertyPage::GetAndRemovePreviousDialogId()
|
|
{
|
|
ULONG uPrevId;
|
|
INT_PTR nPageIdsArraySize;
|
|
|
|
nPageIdsArraySize = g_aPageIds.GetSize();
|
|
|
|
ASSERT( nPageIdsArraySize > 0 );
|
|
|
|
uPrevId = PtrToUlong( g_aPageIds.GetAt( nPageIdsArraySize - 1 ) );
|
|
|
|
g_aPageIds.RemoveAt( nPageIdsArraySize - 1 );
|
|
|
|
return uPrevId;
|
|
}
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Property pages derived from this class should notify us
|
|
// whenever we go to a next page to record the current page ID in
|
|
// the global array g_aPageIds
|
|
//
|
|
|
|
VOID CVerifierPropertyPage::GoingToNextPageNotify( LRESULT lNextPageId )
|
|
{
|
|
ULONG uMyDialogId;
|
|
|
|
if( -1 != lNextPageId )
|
|
{
|
|
//
|
|
// Will go to the next page. Add our ID to the global IDs array
|
|
// used for implementing the "back" button functionality.
|
|
//
|
|
|
|
uMyDialogId = GetDialogId();
|
|
|
|
ASSERT( ( 0 == g_aPageIds.GetSize() ) || ( ULongToPtr( uMyDialogId ) != g_aPageIds.GetAt( g_aPageIds.GetSize() - 1 ) ) );
|
|
|
|
g_aPageIds.Add( ULongToPtr( uMyDialogId ) );
|
|
}
|
|
}
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Use this to kill any currently running worker threads
|
|
//
|
|
|
|
BOOL CVerifierPropertyPage::OnQueryCancel( )
|
|
{
|
|
g_SlowProgressDlg.KillWorkerThread();
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
LRESULT CVerifierPropertyPage::OnWizardBack()
|
|
{
|
|
return GetAndRemovePreviousDialogId();
|
|
}
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CVerifierPropertyPage message handlers
|
|
|
|
BOOL CVerifierPropertyPage::OnHelpInfo(HELPINFO* pHelpInfo)
|
|
{
|
|
return TRUE;
|
|
}
|