home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Tricks of the Windows Gam…ming Gurus (2nd Edition)
/
Disc2.iso
/
msdn_vcb
/
samples
/
vc98
/
appwiz
/
customwz
/
options.cpp
< prev
next >
Wrap
C/C++ Source or Header
|
1998-03-05
|
2KB
|
85 lines
// options.cpp : implementation of COptions class
//
// Copyright (c) 1985-1998, Microsoft Corporation. All rights reserved.
//
#include "stdafx.h"
#include "customwz.h"
#include "sampleaw.h"
#include "options.h"
#include "typedlg.h"
#include "seqdlg.h"
#ifdef _PSEUDO_DEBUG
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
// On construction, set the default values of user-selectable options
COptions::COptions()
{
m_nCustomType = CUSTOMTYPE_ZAP;
m_nCustomSteps = 1;
m_nApwzSeq = APWZSEQ_EXE;
}
#define FIRST_DLG_RSC 129 // For entries in generated custom appwiz's resource.h
// These must be in the same order as the corresponding enum & radio buttons
static LPCTSTR lpszApwzSeqMacros[] =
{
_T("APWZSEQ_EXE"),
_T("APWZSEQ_DLL"),
};
// Defines step-related template macros, which depend on which
// options were selected.
void COptions::DefineDlgMacros()
{
for (UINT i=0; i < APWZSEQ_MAX; i++)
DefineBoolMacro(lpszApwzSeqMacros[i], FALSE);
// Determine the number of standard AppWizard steps in the generated
// custom AppWizard
int nApwzSteps = 0;
if (m_nCustomType == CUSTOMTYPE_SEQUENCE)
{
nApwzSteps = (m_nApwzSeq == APWZSEQ_EXE) ?
NUM_APWZ_EXE_STEPS : NUM_APWZ_DLL_STEPS;
// Set macro corresponding to the AppWizard sequence (exe or dll) off of which
// we're basing this custom AppWizard (reset the others).
ASSERT(m_nApwzSeq == 0 || m_nApwzSeq == 1);
DefineBoolMacro(lpszApwzSeqMacros[m_nApwzSeq], TRUE);
}
// Set custom-dialog-dependent macros as appropriate
DefineBoolMacro(_T("HAS_NEW_STEPS"), m_nCustomSteps != 0);
ASSERT(m_nCustomSteps < 10);
DefineIntMacro(_T("NUM_NEW_STEPS"), m_nCustomSteps);
DefineIntMacro(_T("MPDLGS_INDEX_LAST"), m_nCustomSteps + nApwzSteps);
DefineIntMacro(_T("LAST_DOCTRACK_INDEX"), m_nCustomSteps + NUM_APWZ_EXE_DOC_STEPS);
DefineIntMacro(_T("LAST_DLGTRACK_INDEX"), m_nCustomSteps + NUM_APWZ_EXE_DLG_STEPS);
CString strCustomIndices;
for (i=0; i < m_nCustomSteps; i++)
{
DefineIntMacro(_T("ITERATOR"), i, i+1);
DefineIntMacro(_T("DLGID_VALUE"), i, i + FIRST_DLG_RSC);
DefineIntMacro(_T("MPDLGS_INDEX"), i, nApwzSteps + i + 1);
CString strCustomIndex;
strCustomIndex.Format(_T(", %d"), nApwzSteps + i + 1);
strCustomIndices += strCustomIndex;
}
DefineStringMacro(_T("CUSTOM_INDICES"), strCustomIndices);
}
// Create one global instance of this class anyone can see.
COptions g_options;