?? default.js
字號:
function OnFinish(selProj, selObj)
{
try
{
var strProjectPath = wizard.FindSymbol('PROJECT_PATH');
var strProjectName = wizard.FindSymbol('PROJECT_NAME');
// Create symbols based on the project name
//selProj = CreateProject(strProjectName, strProjectPath);
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());
wizard.AddSymbol("DDK_NAME",strSafeProjectName);
wizard.AddSymbol("DDK_UPPER_NAME",strSafeProjectName.toUpperCase());
// Create project and configurations
selProj = CreateCustomProject(strProjectName, strProjectPath);
AddConfigurations(selProj, strProjectName);
AddFilters(selProj);
var InfFile = CreateCustomInfFile();
AddFilesToCustomProj(selProj, strProjectName, strProjectPath, InfFile);
InfFile.Delete();
selProj.Object.Save();
}
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
{
var nCntr;
for(nCntr = 0; nCntr < nNumConfigs; nCntr++)
{
// Check if it's Debug configuration
var bDebug = false;
if(astrConfigName[nCntr].search("Debug") != -1)
bDebug = true;
// General settings
var config = proj.Object.Configurations(astrConfigName[nCntr]);
config.CharacterSet = charSetMBCS;
if(bDebug)
{
config.IntermediateDirectory = 'Debug';
config.OutputDirectory = 'Debug';
config.ATLMinimizesCRunTimeLibraryUsage = false;
}
else
{
config.IntermediateDirectory = 'Release';
config.OutputDirectory = 'Release';
config.ATLMinimizesCRunTimeLibraryUsage = true;
}
// Compiler settings
var CLTool = config.Tools('VCCLCompilerTool');
CLTool.UsePrecompiledHeader = pchNone;
CLTool.WarningLevel = warningLevel_3;
CLTool.CallingConvention = callConventionStdCall;
CLTool.CompileAs=compileAsC;
CLTool.AdditionalIncludeDirectories="$(ddkroot)\\inc\\ddk;$(ddkroot)\\inc";
if(bDebug)
var strDefines = "WIN32=100;STD_CALL;CONDITION_HANDLING=1;NT_UP=1;NT_INST=0;_NT1X_=100;WINNT=1;_WIN32_WINNT=0x0500;WIN32_LEAN_AND_MEAN=1;DBG=1;DEVL=1;FPO=0;_DEBUG;_DLL=1;_X86_=1;i386=1;"
else
var strDefines = "WIN32=100;STD_CALL;CONDITION_HANDLING=1;NT_UP=1;NT_INST=0;_NT1X_=100;WINNT=1;_WIN32_WINNT=0x0500;WIN32_LEAN_AND_MEAN=1;DEVL=1;FPO=1;_IDWBUILD;NDEBUG;_DLL=1;_X86_=1;i386=1;";
CLTool.PreprocessorDefinitions = strDefines;
// Linker settings
var LinkTool = config.Tools('VCLinkerTool');
LinkTool.TargetMachine = machineX86;
LinkTool.BaseAddress="0x10000";
LinkTool.MergeSections = ".rdata=.text";
LinkTool.EntryPointSymbol = "DriverEntry";
LinkTool.OutputFile = "$(OutDir)\\$(ProjectName).sys";
LinkTool.IgnoreAllDefaultLibraries = true;
LinkTool.AdditionalDependencies=" int64.lib ntoskrnl.lib hal.lib";
LinkTool.AdditionalOptions = " /subsystem:native";
LinkTool.AdditionalOptions=LinkTool.AdditionalOptions+" /SECTION:INIT,D";
LinkTool.AdditionalOptions=LinkTool.AdditionalOptions+" /FORCE:MULTIPLE";
LinkTool.AdditionalOptions=LinkTool.AdditionalOptions+" /IGNORE:4001,4037,4039,4065,4070,4078,4087,4089,4096";
if(bDebug)
{
LinkTool.LinkIncremental = linkIncrementalYes;
LinkTool.GenerateDebugInformation = true;
LinkTool.AdditionalLibraryDirectories="$(ddkroot)\\libchk\\i386;$(ddkroot)\\lib\\i386\\checked";
}
else
{
LinkTool.LinkIncremental = linkIncrementalNo;
LinkTool.AdditionalLibraryDirectories="$(ddkroot)\\libfre\\i386;$(ddkroot)\\lib\\i386\\free";
}
// Resource settings
var RCTool = config.Tools("VCResourceCompilerTool");
RCTool.Culture = rcEnglishUS;
RCTool.AdditionalIncludeDirectories = "$(IntDir)";
if(bDebug)
RCTool.PreprocessorDefinitions = "_DEBUG";
else
RCTool.PreprocessorDefinitions = "NDEBUG";
// MIDL settings
var MidlTool = config.Tools("VCMidlTool");
MidlTool.MkTypLibCompatible = false;
if(IsPlatformWin32(config))
MidlTool.TargetEnvironment = midlTargetWin32;
if(bDebug)
MidlTool.PreprocessorDefinitions = "_DEBUG";
else
MidlTool.PreprocessorDefinitions = "NDEBUG";
MidlTool.HeaderFileName = strProjectName + ".h";
MidlTool.InterfaceIdentifierFileName = strProjectName + "_i.c";
MidlTool.ProxyFileName = strProjectName + "_p.c";
MidlTool.GenerateStublessProxies = true;
MidlTool.TypeLibraryName = "$(IntDir)/" + strProjectName + ".tlb";
MidlTool.DLLDataFileName = "";
// Post-build settings
if(wizard.FindSymbol('WTL_COM_SERVER'))
{
var PostBuildTool = config.Tools("VCPostBuildEventTool");
PostBuildTool.Description = "Performing registration...";
PostBuildTool.CommandLine = "\"$(TargetPath)\" /RegServer";
}
}
}
catch(e)
{
throw e;
}
}
function DelFile(fso, strWizTempFile)
{
try
{
if (fso.FileExists(strWizTempFile))
{
var tmpFile = fso.GetFile(strWizTempFile);
tmpFile.Delete();
}
}
catch(e)
{
throw e;
}
}
function CreateCustomInfFile()
{
try
{
var fso, TemplatesFolder, TemplateFiles, strTemplate;
fso = new ActiveXObject('Scripting.FileSystemObject');
var TemporaryFolder = 2;
var tfolder = fso.GetSpecialFolder(TemporaryFolder);
var strTempFolder = tfolder.Drive + '\\' + tfolder.Name;
var strWizTempFile = strTempFolder + "\\" + fso.GetTempName();
var strTemplatePath = wizard.FindSymbol('TEMPLATES_PATH');
var strInfFile = strTemplatePath + '\\Templates.inf';
wizard.RenderTemplate(strInfFile, strWizTempFile);
var WizTempFile = fso.GetFile(strWizTempFile);
return WizTempFile;
}
catch(e)
{
throw e;
}
}
function GetTargetName(strName, strProjectName)
{
try
{
var strTarget = strName;
var strResPath = "res\\";
if(strName.substr(0, 4) == "root")
{
var nNameLen=strName.length;
strTarget = strProjectName + strName.substr(4, nNameLen - 4);
}
return strTarget;
}
catch(e)
{
throw e;
}
}
function AddFilesToCustomProj(proj, strProjectName, strProjectPath, InfFile)
{
try
{
var projItems = proj.ProjectItems
var strTemplatePath = wizard.FindSymbol('TEMPLATES_PATH');
var strTpl = '';
var strName = '';
var strTextStream = InfFile.OpenAsTextStream(1, -2);
while (!strTextStream.AtEndOfStream)
{
strTpl = strTextStream.ReadLine();
if (strTpl != '')
{
strName = strTpl;
var strTarget = GetTargetName(strName, strProjectName);
var strTemplate = strTemplatePath + '\\' + strTpl;
var strFile = strProjectPath + '\\' + strTarget;
var bCopyOnly = false; //"true" will only copy the file from strTemplate to strTarget without rendering/adding to the project
var strExt = strName.substr(strName.lastIndexOf("."));
wizard.RenderTemplate(strTemplate, strFile, bCopyOnly);
proj.Object.AddFile(strFile);
}
}
strTextStream.Close();
}
catch(e)
{
throw e;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -