README.md
 1  # PowerToy ModuleTemplate
 2  
 3  # Introduction
 4  This project is used to generate the Visual Studio PowerToys Module Template
 5  
 6  # Instruction
 7  In Visual Studio from the menu Project->Export Template... generate the template.
 8  Set the name `PowerToys Module`, add a description `A project for creating a PowerToys module` and an icon.
 9  Open the resulting .zip file in `%USERNAME%\Documents\Visual Studio 2022\Templates\ProjectTemplates` if using VS 2022, or `%USERNAME%\Documents\Visual Studio 18\Templates\ProjectTemplates` for VS 2026. 
10  and edit `MyTemplate.vstemplate` to make the necessary changes, the resulting template should look like this:
11  
12  ```xml
13  <VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Project">
14    <TemplateData>
15      <Name>PowerToys Module</Name>
16      <Description>A project for creating a PowerToys module</Description>
17      <ProjectType>VC</ProjectType>
18      <ProjectSubType>
19      </ProjectSubType>
20  	  <LanguageTag>C++</LanguageTag>
21  	  <PlatformTag>windows</PlatformTag>
22  	  <ProjectTypeTag>extension</ProjectTypeTag>
23      <SortOrder>1000</SortOrder>
24      <CreateNewFolder>true</CreateNewFolder>
25      <DefaultName>PowerToy</DefaultName>
26      <ProvideDefaultName>true</ProvideDefaultName>
27      <LocationField>Enabled</LocationField>
28      <EnableLocationBrowseButton>true</EnableLocationBrowseButton>
29      <Icon>__TemplateIcon.ico</Icon>
30    </TemplateData>
31    <TemplateContent>
32      <Project TargetFileName="$projectname$.vcxproj" File="ModuleTemplate.vcxproj" ReplaceParameters="true">
33        <ProjectItem ReplaceParameters="false" TargetFileName="$projectname$.vcxproj.filters">ModuleTemplate.vcxproj.filters</ProjectItem>
34        <ProjectItem ReplaceParameters="true" TargetFileName="dllmain.cpp">dllmain.cpp</ProjectItem>
35        <ProjectItem ReplaceParameters="false" TargetFileName="pch.cpp">pch.cpp</ProjectItem>
36        <ProjectItem ReplaceParameters="false" TargetFileName="trace.cpp">trace.cpp</ProjectItem>
37        <ProjectItem ReplaceParameters="false" TargetFileName="pch.h">pch.h</ProjectItem>
38        <ProjectItem ReplaceParameters="false" TargetFileName="resource.h">resource.h</ProjectItem>
39        <ProjectItem ReplaceParameters="false" TargetFileName="trace.h">trace.h</ProjectItem>
40        <ProjectItem ReplaceParameters="true" TargetFileName="$projectname$.rc">ModuleTemplate.rc</ProjectItem>
41      </Project>
42    </TemplateContent>
43  </VSTemplate>
44  ```