// $$filebase$$aw.cpp : implementation file // #include "stdafx.h" #include "$$root$$.h" #include "$$filebase$$aw.h" $$IF(HAS_NEW_STEPS || CUSTOMTYPE_SEQUENCE) #include "chooser.h" $$ENDIF //HAS_NEW_STEPS || CUSTOMTYPE_SEQUENCE #ifdef _PSEUDO_DEBUG #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif // This is called immediately after the custom AppWizard is loaded. Initialize // the state of the custom AppWizard here. void C$$Safe_root$$AppWiz::InitCustomAppWiz() { $$IF(HAS_NEW_STEPS || CUSTOMTYPE_SEQUENCE) // Create a new dialog chooser; CDialogChooser's constructor initializes // its internal array with pointers to the steps. m_pChooser = new CDialogChooser; $$ENDIF $$IF(APWZSEQ_EXE) // At first, we don't know the total number of steps, since there are two // possible "tracks" (MDI/SDI app and dialog-based app). SetNumberOfSteps(-1); // Inform AppWizard of the languages we support SetSupportedLanguages(_T("$$SUPPORTED_LANGS$$")); $$ELIF(APWZSEQ_DLL) // Set the maximum number of steps. SetNumberOfSteps(LAST_DLG); // Inform AppWizard that we're making a DLL. m_Dictionary[_T("PROJTYPE_DLL")] = _T("1"); $$ELIF(CUSTOMTYPE_ZAP || !HAS_NEW_STEPS) // There are no steps in this custom AppWizard. SetNumberOfSteps(0); $$IF(CUSTOMTYPE_ZAP) // Add build step to .hpj if there is one m_Dictionary[_T("HELP")] = _T("1"); $$IF(CREATE_DLL_PROJECT) // Inform AppWizard that we're making a DLL. m_Dictionary[_T("PROJTYPE_DLL")] = _T("1"); $$ENDIF //CREATE_DLL_PROJECT $$ENDIF //CUSTOMTYPE_ZAP $$ELSE // Set the maximum number of steps. SetNumberOfSteps(LAST_DLG); $$ENDIF // TODO: Add any other custom AppWizard-wide initialization here. } // This is called just before the custom AppWizard is unloaded. void C$$Safe_root$$AppWiz::ExitCustomAppWiz() { $$IF(HAS_NEW_STEPS || CUSTOMTYPE_SEQUENCE) // Deallocate memory used for the dialog chooser ASSERT(m_pChooser != NULL); delete m_pChooser; m_pChooser = NULL; $$ENDIF //HAS_NEW_STEPS || CUSTOMTYPE_SEQUENCE // TODO: Add code here to deallocate resources used by the custom AppWizard } // This is called when the user clicks "Create..." on the New Project dialog $$IF(!CUSTOMTYPE_ZAP) // or "Next" on one of the custom AppWizard's steps. $$ENDIF //!CUSTOMTYPE_ZAP CAppWizStepDlg* C$$Safe_root$$AppWiz::Next(CAppWizStepDlg* pDlg) { $$IF(CUSTOMTYPE_ZAP) ASSERT(pDlg == NULL); // By default, this custom AppWizard has no steps // Set template macros based on the project name entered by the user. // Get value of $$$$root$$$$ (already set by AppWizard) CString strRoot; m_Dictionary.Lookup(_T("root"), strRoot); // Set value of $$$$Doc$$$$, $$$$DOC$$$$ CString strDoc = strRoot.Left(6); m_Dictionary[_T("Doc")] = strDoc; strDoc.MakeUpper(); m_Dictionary[_T("DOC")] = strDoc; // Set value of $$$$MAC_TYPE$$$$ strRoot = strRoot.Left(4); int nLen = strRoot.GetLength(); if (strRoot.GetLength() < 4) { CString strPad(_T(' '), 4 - nLen); strRoot += strPad; } strRoot.MakeUpper(); m_Dictionary[_T("MAC_TYPE")] = strRoot; // Return NULL to indicate there are no more steps. (In this case, there are // no steps at all.) return NULL; $$ELIF(HAS_NEW_STEPS || CUSTOMTYPE_SEQUENCE) // Delegate to the dialog chooser return m_pChooser->Next(pDlg); $$ELSE return NULL; $$ENDIF //CUSTOMTYPE_ZAP/HAS_NEW_STEPS || CUSTOMTYPE_SEQUENCE } $$IF(HAS_NEW_STEPS || CUSTOMTYPE_SEQUENCE) // This is called when the user clicks "Back" on one of the custom // AppWizard's steps. CAppWizStepDlg* C$$Safe_root$$AppWiz::Back(CAppWizStepDlg* pDlg) { // Delegate to the dialog chooser return m_pChooser->Back(pDlg); } $$ENDIF //HAS_NEW_STEPS || CUSTOMTYPE_SEQUENCE void C$$Safe_root$$AppWiz::CustomizeProject(IBuildProject* pProject) { // TODO: Add code here to customize the project. If you don't wish // to customize project, you may remove this virtual override. // This is called immediately after the default Debug and Release // configurations have been created for each platform. You may customize // existing configurations on this project by using the methods // of IBuildProject and IConfiguration such as AddToolSettings, // RemoveToolSettings, and AddCustomBuildStep. These are documented in // the Developer Studio object model documentation. // WARNING!! IBuildProject and all interfaces you can get from it are OLE // COM interfaces. You must be careful to release all new interfaces // you acquire. In accordance with the standard rules of COM, you must // NOT release pProject, unless you explicitly AddRef it, since pProject // is passed as an "in" parameter to this function. See the documentation // on CCustomAppWiz::CustomizeProject for more information. } // Here we define one instance of the C$$Safe_root$$AppWiz class. You can access // m_Dictionary and any other public members of this class through the // global $$safe_root$$aw. C$$Safe_root$$AppWiz $$safe_root$$aw;