📄 default.js
字号:
// Windows Template Library - WTL version 8.0
// Copyright (C) Microsoft Corporation. All rights reserved.
//
// This file is a part of the Windows Template Library.
// The use and distribution terms for this software are covered by the
// Microsoft Permissive License (Ms-PL) which can be found in the file
// Ms-PL.txt at the root of this distribution.
function OnFinish(selProj, selObj)
{
try
{
var strProjectPath = wizard.FindSymbol('PROJECT_PATH');
var strProjectName = wizard.FindSymbol('PROJECT_NAME');
var WizardVersion = wizard.FindSymbol('WIZARD_VERSION');
if(WizardVersion >= 8.0)
{
// Use embedded manifest for VS2005
if(wizard.FindSymbol("WTL_USE_MANIFEST"))
{
wizard.AddSymbol("WTL_USE_EMBEDDED_MANIFEST", true);
wizard.AddSymbol("WTL_USE_MANIFEST", false);
}
// Use ATL3 from SDK for VS2005 Express
if(wizard.FindSymbol("VC_EXPRESS"))
{
wizard.AddSymbol("WTL_USE_SDK_ATL3", true);
}
}
// Create symbols based on the project name
var strSafeProjectName = CreateSafeName(strProjectName);
wizard.AddSymbol("SAFE_PROJECT_NAME", strSafeProjectName);
wizard.AddSymbol("NICE_SAFE_PROJECT_NAME", strSafeProjectName.substr(0, 1).toUpperCase() + strSafeProjectName.substr(1))
wizard.AddSymbol("UPPERCASE_SAFE_PROJECT_NAME", strSafeProjectName.toUpperCase());
// Set current year symbol
var d = new Date();
var nYear = 0;
nYear = d.getFullYear();
if(nYear >= 2003)
wizard.AddSymbol("WTL_CURRENT_YEAR", nYear);
// Set APPID and LIBID symbols for COM servers
if(wizard.FindSymbol("WTL_COM_SERVER"))
{
var strGuid = wizard.CreateGuid();
var strVal = wizard.FormatGuid(strGuid, 0);
wizard.AddSymbol("WTL_APPID", strVal);
strGuid = wizard.CreateGuid();
strVal = wizard.FormatGuid(strGuid, 0);
wizard.AddSymbol("WTL_LIBID", strVal);
}
// Set app type symbols
if(wizard.FindSymbol("WTL_APPTYPE_SDI"))
{
wizard.AddSymbol("WTL_FRAME_BASE_CLASS","CFrameWindowImpl");
}
else if(wizard.FindSymbol("WTL_APPTYPE_MTSDI"))
{
wizard.AddSymbol("WTL_FRAME_BASE_CLASS","CFrameWindowImpl");
}
else if(wizard.FindSymbol("WTL_APPTYPE_MDI"))
{
wizard.AddSymbol("WTL_FRAME_BASE_CLASS","CMDIFrameWindowImpl");
wizard.AddSymbol("WTL_CHILD_FRAME_BASE_CLASS","CMDIChildWindowImpl");
}
else if(wizard.FindSymbol("WTL_APPTYPE_DLG"))
{
wizard.AddSymbol("WTL_MAINDLG_CLASS","CMainDlg");
if(wizard.FindSymbol("WTL_ENABLE_AX"))
wizard.AddSymbol("WTL_MAINDLG_BASE_CLASS", "CAxDialogImpl");
else
wizard.AddSymbol("WTL_MAINDLG_BASE_CLASS", "CDialogImpl");
wizard.AddSymbol("WTL_USE_TOOLBAR", false);
wizard.AddSymbol("WTL_USE_REBAR", false);
wizard.AddSymbol("WTL_USE_CMDBAR", false);
wizard.AddSymbol("WTL_USE_STATUSBAR", false);
wizard.AddSymbol("WTL_USE_VIEW", false);
}
// Set view symbols
if(wizard.FindSymbol("WTL_USE_VIEW"))
{
var strViewFile = strProjectName + "View";
wizard.AddSymbol("WTL_VIEW_FILE", strViewFile);
var strViewClass = "C" + wizard.FindSymbol("NICE_SAFE_PROJECT_NAME") + "View";
wizard.AddSymbol("WTL_VIEW_CLASS", strViewClass);
wizard.AddSymbol("WTL_VIEWTYPE_GENERIC", false);
var strView = wizard.FindSymbol("WTL_COMBO_VIEW_TYPE");
switch(strView)
{
case "WTL_VIEWTYPE_FORM":
wizard.AddSymbol("WTL_VIEWTYPE_FORM", true);
if(wizard.FindSymbol("WTL_ENABLE_AX") && wizard.FindSymbol("WTL_HOST_AX"))
wizard.AddSymbol("WTL_VIEW_BASE_CLASS", "CAxDialogImpl");
else
wizard.AddSymbol("WTL_VIEW_BASE_CLASS", "CDialogImpl");
break;
case "WTL_VIEWTYPE_LISTBOX":
wizard.AddSymbol("WTL_VIEWTYPE_LISTBOX", true);
wizard.AddSymbol("WTL_VIEW_BASE", "CListBox");
wizard.AddSymbol("WTL_VIEW_STYLES", "WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | LBS_NOINTEGRALHEIGHT | LBS_NOTIFY | LBS_WANTKEYBOARDINPUT");
break;
case "WTL_VIEWTYPE_EDIT":
wizard.AddSymbol("WTL_VIEWTYPE_EDIT", true);
wizard.AddSymbol("WTL_VIEW_BASE", "CEdit");
wizard.AddSymbol("WTL_VIEW_STYLES", "WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_HSCROLL | WS_VSCROLL | ES_AUTOHSCROLL | ES_AUTOVSCROLL | ES_MULTILINE | ES_NOHIDESEL");
break;
case "WTL_VIEWTYPE_LISTVIEW":
wizard.AddSymbol("WTL_VIEWTYPE_LISTVIEW", true);
wizard.AddSymbol("WTL_VIEW_BASE", "CListViewCtrl");
wizard.AddSymbol("WTL_VIEW_STYLES", "WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | LVS_REPORT | LVS_SHOWSELALWAYS");
break;
case "WTL_VIEWTYPE_TREEVIEW":
wizard.AddSymbol("WTL_VIEWTYPE_TREEVIEW", true);
wizard.AddSymbol("WTL_VIEW_BASE", "CTreeViewCtrl");
wizard.AddSymbol("WTL_VIEW_STYLES", "WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | TVS_HASLINES | TVS_LINESATROOT | TVS_SHOWSELALWAYS");
break;
case "WTL_VIEWTYPE_RICHEDIT":
wizard.AddSymbol("WTL_VIEWTYPE_RICHEDIT", true);
wizard.AddSymbol("WTL_VIEW_BASE", "CRichEditCtrl");
wizard.AddSymbol("WTL_VIEW_STYLES", "WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_HSCROLL | WS_VSCROLL | ES_AUTOHSCROLL | ES_AUTOVSCROLL | ES_MULTILINE | ES_NOHIDESEL | ES_SAVESEL");
break;
case "WTL_VIEWTYPE_HTML":
wizard.AddSymbol("WTL_VIEWTYPE_HTML", true);
wizard.AddSymbol("WTL_VIEW_BASE", "CAxWindow");
wizard.AddSymbol("WTL_ENABLE_AX", true);
wizard.AddSymbol("WTL_VIEW_STYLES", "WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_HSCROLL | WS_VSCROLL");
break;
case "WTL_VIEWTYPE_SCROLL":
wizard.AddSymbol("WTL_VIEWTYPE_SCROLL", true);
wizard.AddSymbol("WTL_VIEW_BASE_CLASS", "CScrollWindowImpl");
wizard.AddSymbol("WTL_VIEW_STYLES", "WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_HSCROLL | WS_VSCROLL");
break;
default:
wizard.AddSymbol("WTL_VIEWTYPE_GENERIC", true);
break;
}
if(wizard.FindSymbol("WTL_APPTYPE_TABVIEW"))
wizard.AddSymbol("WTL_VIEW_EX_STYLES", "0");
}
// Create project and configurations
selProj = CreateCustomProject(strProjectName, strProjectPath);
AddConfigurations(selProj, strProjectName);
AddFilters(selProj);
var InfFile = CreateCustomInfFile();
AddFilesToCustomProj(selProj, strProjectName, strProjectPath, InfFile);
AddPchSettings(selProj);
InfFile.Delete();
selProj.Object.Save();
// Open resource editor if not VS2005 Express
if(!wizard.FindSymbol('VC_EXPRESS'))
{
if(wizard.FindSymbol("WTL_APPTYPE_DLG"))
{
var ResHelper = wizard.ResourceHelper;
ResHelper.OpenResourceFile(strProjectPath + "\\" + strProjectName + ".rc");
ResHelper.OpenResourceInEditor("DIALOG", "IDD_MAINDLG");
ResHelper.CloseResourceFile();
}
else if(wizard.FindSymbol("WTL_USE_VIEW") && wizard.FindSymbol("WTL_VIEWTYPE_FORM"))
{
var strDialogID = "IDD_" + wizard.FindSymbol("UPPERCASE_SAFE_PROJECT_NAME") + "_FORM";
var ResHelper = wizard.ResourceHelper;
ResHelper.OpenResourceFile(strProjectPath + "\\" + strProjectName + ".rc");
ResHelper.OpenResourceInEditor("DIALOG", strDialogID);
ResHelper.CloseResourceFile();
}
}
}
catch(e)
{
if (e.description.length != 0)
SetErrorInfo(e);
return e.number
}
}
function CreateCustomProject(strProjectName, strProjectPath)
{
try
{
var strProjTemplatePath = wizard.FindSymbol('PROJECT_TEMPLATE_PATH');
var strProjTemplate = '';
strProjTemplate = strProjTemplatePath + '\\default.vcproj';
var Solution = dte.Solution;
var strSolutionName = "";
if (wizard.FindSymbol("CLOSE_SOLUTION"))
{
Solution.Close();
strSolutionName = wizard.FindSymbol("VS_SOLUTION_NAME");
if (strSolutionName.length)
{
var strSolutionPath = strProjectPath.substr(0, strProjectPath.length - strProjectName.length);
Solution.Create(strSolutionPath, strSolutionName);
}
}
var strProjectNameWithExt = '';
strProjectNameWithExt = strProjectName + '.vcproj';
var oTarget = wizard.FindSymbol("TARGET");
var prj;
if (wizard.FindSymbol("WIZARD_TYPE") == vsWizardAddSubProject) // vsWizardAddSubProject
{
var prjItem = oTarget.AddFromTemplate(strProjTemplate, strProjectNameWithExt);
prj = prjItem.SubProject;
}
else
{
prj = oTarget.AddFromTemplate(strProjTemplate, strProjectPath, strProjectNameWithExt);
}
return prj;
}
catch(e)
{
throw e;
}
}
function AddFilters(proj)
{
try
{
// Add the folders to your project
var strSrcFilter = wizard.FindSymbol('SOURCE_FILTER');
var group = proj.Object.AddFilter('Source Files');
group.Filter = strSrcFilter;
strSrcFilter = wizard.FindSymbol('INCLUDE_FILTER');
group = proj.Object.AddFilter('Header Files');
group.Filter = strSrcFilter;
strSrcFilter = wizard.FindSymbol('RESOURCE_FILTER');
group = proj.Object.AddFilter('Resource Files');
group.Filter = strSrcFilter;
}
catch(e)
{
throw e;
}
}
// Configurations data
var nNumConfigs = 2;
var astrConfigName = new Array();
astrConfigName[0] = "Debug";
astrConfigName[1] = "Release";
function AddConfigurations(proj, strProjectName)
{
try
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -