mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
115 lines
3.2 KiB
115 lines
3.2 KiB
// Extensionsaw.cpp : implementation file
|
|
//
|
|
|
|
#include "stdafx.h"
|
|
#include "Ext.h"
|
|
#include "Extaw.h"
|
|
#include "chooser.h"
|
|
|
|
#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 CExtensionsAppWiz::InitCustomAppWiz()
|
|
{
|
|
GUID guidTemp;
|
|
WCHAR wszGUID[50];
|
|
|
|
_pChooser = new CDialogChooser;
|
|
|
|
SetNumberOfSteps(2);
|
|
|
|
// Inform AppWizard that we're making a DLL.
|
|
m_Dictionary[_T("PROJTYPE_DLL")] = _T("1");
|
|
|
|
// 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;
|
|
|
|
if (SUCCEEDED(CoCreateGuid(&guidTemp)))
|
|
{
|
|
StringFromGUID2(guidTemp, wszGUID, ARRAYSIZE(wszGUID));
|
|
Extensionsaw.m_Dictionary[TEXT("LibGUID")] = StripCurly(wszGUID);
|
|
}
|
|
}
|
|
|
|
// This is called just before the custom AppWizard is unloaded.
|
|
void CExtensionsAppWiz::ExitCustomAppWiz()
|
|
{
|
|
if (_pChooser)
|
|
{
|
|
delete _pChooser;
|
|
_pChooser = NULL;
|
|
}
|
|
}
|
|
|
|
// This is called when the user clicks "Create..." on the New Project dialog
|
|
CAppWizStepDlg* CExtensionsAppWiz::Next(CAppWizStepDlg* pDlg)
|
|
{
|
|
return _pChooser->Next(pDlg);
|
|
}
|
|
|
|
// This is called when the user clicks "Back" on one of the custom
|
|
// AppWizard's steps.
|
|
CAppWizStepDlg* CExtensionsAppWiz::Back(CAppWizStepDlg* pDlg)
|
|
{
|
|
// Delegate to the dialog chooser
|
|
return _pChooser->Back(pDlg);
|
|
}
|
|
|
|
|
|
void CExtensionsAppWiz::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 CExtensionsAppWiz class. You can access
|
|
// m_Dictionary and any other public members of this class through the
|
|
// global Extensionsaw.
|
|
CExtensionsAppWiz Extensionsaw;
|
|
|
|
CString StripCurly(CString str)
|
|
{
|
|
return str.Mid(1, str.GetLength() - 2);
|
|
}
|