Kiln » TortoiseHg » TortoiseHg
Clone URL:  
Pushed to one repository · View In Graph Contained in tip

fogcreek shellext: migrate from makefile to VS project file

Changeset 18f5f8604f16

Parent e168a84b60ef

by David Golub

Changes to 8 files · Browse files at 18f5f8604f16 Showing diff from parent e168a84b60ef Diff from another changeset...

Change 1 of 1 Show Entire File win32/​shellext/​Makefile.nmake Stacked
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
@@ -1,68 +0,0 @@
- -OBJECTS_DIRSTATE = TortoiseUtils.obj \ - Direntry.obj \ - Directory.obj \ - Winstat.obj \ - RegistryConfig.obj \ - ThgDebug.obj - -OBJECTS_THGSGELL = $(OBJECTS_DIRSTATE) \ - InitStatus.obj \ - CShellExtCMenu.obj \ - CShellExtDnd.obj \ - CShellExtOverlay.obj \ - TortoiseIconBitmap.obj \ - IconBitmapUtils.obj \ - ShellExt.obj \ - StringUtils.obj \ - SysInfo.obj \ - dirstate.obj \ - Winstat64.obj \ - Dirstatecache.obj \ - DirectoryStatus.obj \ - Thgstatus.obj \ - QueryDirstate.obj \ - ThgVersion.obj \ - SimpleUnknown.obj - -OBJECTS_TERMINATE = Thgstatus.obj \ - RegistryConfig.obj \ - ThgDebug.obj - -LIBS = shlwapi.lib gdiplus.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib Msi.lib -DEFFILE = ShellExt.def - - -# /MT = statically linked runtime libraries /MD = dynamically linked -# THG_EXTRA_CPPFLAGS is taken from environment (may be undefined) -CPPFLAGS = /nologo /Ox /W2 /EHsc /MT /DAPPMAIN /DTHG_DEBUG $(THG_EXTRA_CPPFLAGS) -BASE_LDFLAGS = /nologo /INCREMENTAL:NO /MANIFEST $(LIBS) -LDFLAGS_THGSHELL = $(BASE_LDFLAGS) /DLL /DEF:$(DEFFILE) -LDFLAGS_DIRSTATE = $(BASE_LDFLAGS) /SUBSYSTEM:CONSOLE -LDFLAGS_TERMINATE = $(BASE_LDFLAGS) /DLL /DEF:terminate.def - - -THGSHELL_TARGET = THgShell$(THG_PLATFORM).dll -TERMINATE_TARGET = terminate-$(THG_PLATFORM).dll - -all: $(THGSHELL_TARGET) $(TERMINATE_TARGET) - -clean: - del *.obj *.dll *.exe *.lib *.exp *.manifest *.res parentid.h ThgCLSIDs.wxi - -ThgVersion: - create-parentid-h.cmd - -$(THGSHELL_TARGET): ThgVersion $(OBJECTS_THGSGELL) - cl /EP ThgCLSIDs-template.wxi > ThgCLSIDs.wxi - rc /dTHG_SHELL_FNAME="$@" $(THG_EXTRA_RCFLAGS) shellext.rc - link /OUT:$@ $(LDFLAGS_THGSHELL) $(OBJECTS_THGSGELL) shellext.res - mt -nologo -manifest $@.manifest -outputresource:"$@;#2" - -dirstate.exe: dirstate.obj $(OBJECTS_DIRSTATE) - link /OUT:$@ $(LDFLAGS_DIRSTATE) $** - mt -nologo -manifest $@.manifest -outputresource:"$@;#1" - -$(TERMINATE_TARGET): terminate.obj $(OBJECTS_TERMINATE) - link /OUT:$@ $(LDFLAGS_TERMINATE) $** - mt -nologo -manifest $@.manifest -outputresource:"$@;#1"
Change 1 of 1 Show Entire File win32/​shellext/​README.txt Stacked
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
@@ -1,221 +0,0 @@
-== C++ Shell Extension == - -=== Installing build tools === - -Get the gratis "Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1" -from microsoft.com. - -You can install from web or download an ISO image, burn a DVD and install from -that. Make sure you get the correct download for the Windows version you want to -use for building: the x86 (32 bit) download won't install on 64 bit platforms. - -The SDK contains the C++ compiler, linker, nmake, and header files, which is all -we need to build the x86 (32 bit) and 64 bit variants of the shell extension. - -The compiler and linker can build both the 32 bit and the 64 bit targets, no matter -if you install the 32 bit (x86) or the 64 bit version of the SDK. In other words: -it can cross compile. - -The SDK is compatible with Visual C++ 2005 and 2008 (including express versions). -But Visual C++ is *not* needed to build the shell extension! - -Leave all install options at their defaults. - -(see also C:\Program Files\Microsoft SDKs\Windows\v7.0\ReleaseNotes.Htm -section "4.4.2 Setting Build Environment Switches" after install) - - -=== Building the x86 (32 bit) target === - -Open a command shell and cd into win32/shellext of the TortoiseHg sources. - -Copy/paste the following line (including the double quotes) into that shell - -cmd.exe /E:ON /V:ON /K "C:\Program Files\Microsoft SDKs\Windows\v7.0\Bin\SetEnv.cmd" /xp /x86 /Release - -and execute it (see ReleaseNotes.Htm). - -This should show the following in your shell - -''' -Setting SDK environment relative to C:\Program Files\Microsoft SDKs\Windows\v7.0. -Targeting Windows XP x86 RELEASE -''' - -Then execute - - nmake /f Makefile.nmake clean - -followed by - - nmake /f Makefile.nmake - -Which should go like this: - -''' -$ nmake /f Makefile.nmake clean - -Microsoft (R) Program Maintenance Utility Version 9.00.30729.01 -Copyright (C) Microsoft Corporation. All rights reserved. - - del *.obj *.dll *.exe *.lib *.exp *.manifest - -$ nmake /f Makefile.nmake - -Microsoft (R) Program Maintenance Utility Version 9.00.30729.01 -Copyright (C) Microsoft Corporation. All rights reserved. - - cl /nologo /Ox /W2 /EHsc /MT /DAPPMAIN /DTHG_DEBUG /c TortoiseUtils.cpp Direntry.cpp Directory.cpp Winstat.cpp ThgDebug.cpp InitStatus.cpp CShellExtCMenu.cpp CShellExtOverlay.cpp IconBitmapUtils.cpp Registry.cpp ShellExt.cpp StringUtils.cpp SysInfo.cpp dirstate.cpp Winstat64.cpp Dirstatecache.cpp DirectoryStatus.cpp Thgstatus.cpp QueryDirstate.cpp -TortoiseUtils.cpp -Direntry.cpp -Directory.cpp -Winstat.cpp -ThgDebug.cpp -InitStatus.cpp -CShellExtCMenu.cpp -CShellExtOverlay.cpp -IconBitmapUtils.cpp -Registry.cpp -ShellExt.cpp -StringUtils.cpp -SysInfo.cpp -dirstate.cpp -Winstat64.cpp -Dirstatecache.cpp -DirectoryStatus.cpp -Thgstatus.cpp -QueryDirstate.cpp -Generating Code... - link /OUT:THgShell.dll /nologo /INCREMENTAL:NO /MANIFEST shlwapi.lib gdiplus.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /DLL /DEF:ShellExt.def TortoiseUtils.obj Direntry.obj Directory.obj Winstat.obj -ThgDebug.obj InitStatus.obj CShellExtCMenu.obj CShellExtOverlay.obj IconBitmapUtils.obj Registry.obj ShellExt.obj StringUtils.obj SysInfo.obj dirstate.obj -Winstat64.obj Dirstatecache.obj DirectoryStatus.obj Thgstatus.obj QueryDirstate.obj - Creating library THgShell.lib and object THgShell.exp - mt -nologo -manifest THgShell.dll.manifest -outputresource:"THgShell.dll;#2" -''' - -This should produce the file THgShell.dll, which contains the 32 bit variant of the -shell extension. - - -=== Building the 64 bit target === - -Open a command shell and cd into win32/shellext of the TortoiseHg sources. - -Copy/paste the following line (including the double quotes) into that shell - -cmd.exe /E:ON /V:ON /K "C:\Program Files\Microsoft SDKs\Windows\v7.0\Bin\SetEnv.cmd" /xp /x64 /Release - -and execute it (see ReleaseNotes.Htm). - -This should show the following in your shell - -''' -Setting SDK environment relative to C:\Program Files\Microsoft SDKs\Windows\v7.0. -Targeting Windows XP x64 RELEASE -''' - -Then execute - - nmake /f Makefile.nmake clean - -followed by - - nmake /f Makefile.nmake - -Which should go like this: - -''' -$ nmake /f Makefile.nmake clean - -Microsoft (R) Program Maintenance Utility Version 9.00.30729.01 -Copyright (C) Microsoft Corporation. All rights reserved. - - del *.obj *.dll *.exe *.lib *.exp *.manifest - -$ nmake /f Makefile.nmake - -Microsoft (R) Program Maintenance Utility Version 9.00.30729.01 -Copyright (C) Microsoft Corporation. All rights reserved. - - cl /nologo /Ox /W2 /EHsc /MT /DAPPMAIN /DTHG_DEBUG /c TortoiseUtils.cpp Direntry.cpp Directory.cpp Winstat.cpp ThgDebug.cpp InitStatus.cpp CShellExtCMenu.cpp CShellExtOverlay.cpp IconBitmapUtils.cpp Registry.cpp ShellExt.cpp StringUtils.cpp SysInfo.cpp dirstate.cpp Winstat64.cpp Dirstatecache.cpp DirectoryStatus.cpp Thgstatus.cpp QueryDirstate.cpp -TortoiseUtils.cpp -Direntry.cpp -Directory.cpp -Winstat.cpp -ThgDebug.cpp -InitStatus.cpp -CShellExtCMenu.cpp -CShellExtOverlay.cpp -IconBitmapUtils.cpp -Registry.cpp -ShellExt.cpp -StringUtils.cpp -SysInfo.cpp -dirstate.cpp -Winstat64.cpp -Dirstatecache.cpp -DirectoryStatus.cpp -Thgstatus.cpp -QueryDirstate.cpp -Generating Code... - link /OUT:THgShell.dll /nologo /INCREMENTAL:NO /MANIFEST shlwapi.lib gdiplus.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /DLL /DEF:ShellExt.def TortoiseUtils.obj Direntry.obj Directory.obj Winstat.obj -ThgDebug.obj InitStatus.obj CShellExtCMenu.obj CShellExtOverlay.obj IconBitmapUtils.obj Registry.obj ShellExt.obj StringUtils.obj SysInfo.obj dirstate.obj -Winstat64.obj Dirstatecache.obj DirectoryStatus.obj Thgstatus.obj QueryDirstate.obj - Creating library THgShell.lib and object THgShell.exp - mt -nologo -manifest THgShell.dll.manifest -outputresource:"THgShell.dll;#2" -''' - -This should produce the file THgShell.dll, which contains the 64 bit variant of the -shell extension. - - -=== Testing === -To install the new THgShell.dll for testing, rename the THgShellx86.dll in -"C:\Program Files\TortoiseHg" to something else (e.g. THgShell-01.dll), then copy the newly built -THgShell.dll to "C:\Program Files\TortoiseHg\THgShellx86.dll" and restart explorer.exe -(logout/login will do as well). - -For x64 systems, the dll is instead located in -"C:\Program Files\Common Files\TortoiseHg\ThgShellx64.dll". - -See -http://www.addictivetips.com/windows-tips/how-to-restart-explorer-exe-process-properly-in-windows-xp-and-vista/ -for properly restarting explorer (in case you don't want to do a logout/login). -Of course, simply killing explorer.exe with the task manager and restarting it will work too -(you might loose some settings changes you might have done in explorer though). - -The shell extension emits trace output (TDEBUG_TRACE macro calls in the sources). This output -can be captured by using for example the tool **DebugView** from Microsoft sysinternals (see -http://technet.microsoft.com/en-us/sysinternals/bb896647.aspx). - -The debug output must be enabled in the registry. Double click the file -"DebugShellExt.reg" and restart explorer. - -Example output (copied via clipboard): - -{{{ -[3504] [THG] findHgRoot(W:\xxx2\aa): hgroot = 'W:\xxx2' (found repo) -[3504] [THG] Dirstatecache::get: lstat(W:\xxx2\.hg\dirstate) ok -[3504] [THG] DirectoryStatus::read(W:\xxx2): done. 2 entries read -[3504] [THG] HgQueryDirstate: relbase = '' -[3504] [THG] HgQueryDirstate: basedir_status = M -}}} - -Another very helpful tool is sysinternals **Autoruns** -(http://technet.microsoft.com/en-us/sysinternals/bb963902.aspx ). -This can be used to explore the registration of the extension. Use the tab "Explorer" -to see the shell extensions registered. -Recommended setting is "Hide Microsoft Entries" in menu "Options" - - -=== TortoiseOverlays shim === -The TortoiseHg shell extension uses the common TortoiseOverlays package shared with -other Tortoise projects (TortoiseSVN, TortoiseBZR, etc.). - -The sources for the TortoiseOverlays project can be found at -http://tortoisesvn.tigris.org/svn/tortoisesvn/TortoiseOverlays/ -(use user: "guest", no password). - - -=== Issues === -* #324 - Question mark overlays are missing on Windows 7
Change 1 of 1 Show Entire File win32/​shellext/​THgShell.sln Stacked
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
@@ -0,0 +1,26 @@
+ +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "THgShell", "THgShell.vcxproj", "{156F9F3A-B46E-40E9-BA89-3B520DBFE9C6}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {156F9F3A-B46E-40E9-BA89-3B520DBFE9C6}.Debug|Win32.ActiveCfg = Debug|Win32 + {156F9F3A-B46E-40E9-BA89-3B520DBFE9C6}.Debug|Win32.Build.0 = Debug|Win32 + {156F9F3A-B46E-40E9-BA89-3B520DBFE9C6}.Debug|x64.ActiveCfg = Debug|x64 + {156F9F3A-B46E-40E9-BA89-3B520DBFE9C6}.Debug|x64.Build.0 = Debug|x64 + {156F9F3A-B46E-40E9-BA89-3B520DBFE9C6}.Release|Win32.ActiveCfg = Release|Win32 + {156F9F3A-B46E-40E9-BA89-3B520DBFE9C6}.Release|Win32.Build.0 = Release|Win32 + {156F9F3A-B46E-40E9-BA89-3B520DBFE9C6}.Release|x64.ActiveCfg = Release|x64 + {156F9F3A-B46E-40E9-BA89-3B520DBFE9C6}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal
Change 1 of 1 Show Entire File win32/​shellext/​THgShell.vcxproj Stacked
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
 
@@ -0,0 +1,239 @@
+<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug|Win32"> + <Configuration>Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|x64"> + <Configuration>Debug</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{156F9F3A-B46E-40E9-BA89-3B520DBFE9C6}</ProjectGuid> + <Keyword>Win32Proj</Keyword> + <RootNamespace>THgShell</RootNamespace> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <CharacterSet>MultiByte</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <CharacterSet>MultiByte</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <LinkIncremental>true</LinkIncremental> + <CustomBuildBeforeTargets>ClCompile</CustomBuildBeforeTargets> + <TargetName>$(ProjectName)x86</TargetName> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <LinkIncremental>true</LinkIncremental> + <CustomBuildBeforeTargets>ClCompile</CustomBuildBeforeTargets> + <TargetName>$(ProjectName)x64</TargetName> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <LinkIncremental>false</LinkIncremental> + <CustomBuildBeforeTargets>ClCompile</CustomBuildBeforeTargets> + <TargetName>$(ProjectName)x86</TargetName> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <LinkIncremental>false</LinkIncremental> + <CustomBuildBeforeTargets>ClCompile</CustomBuildBeforeTargets> + <TargetName>$(ProjectName)x64</TargetName> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <ClCompile> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <Optimization>Disabled</Optimization> + <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;THGSHELL_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;shlwapi.lib;msi.lib;%(AdditionalDependencies)</AdditionalDependencies> + <ModuleDefinitionFile>ShellExt.def</ModuleDefinitionFile> + </Link> + <CustomBuildStep> + <Command>hg parents --template "#define THG_PARENT_ID {node|short}\n" &gt; parentid.h</Command> + </CustomBuildStep> + <CustomBuildStep> + <Outputs>parentid.h;%(Outputs)</Outputs> + </CustomBuildStep> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <ClCompile> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <Optimization>Disabled</Optimization> + <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;THGSHELL_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;shlwapi.lib;msi.lib;%(AdditionalDependencies)</AdditionalDependencies> + <ModuleDefinitionFile>ShellExt.def</ModuleDefinitionFile> + </Link> + <CustomBuildStep> + <Command>hg parents --template "#define THG_PARENT_ID {node|short}\n" &gt; parentid.h</Command> + </CustomBuildStep> + <CustomBuildStep> + <Outputs>parentid.h;%(Outputs)</Outputs> + </CustomBuildStep> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;THGSHELL_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;shlwapi.lib;msi.lib;%(AdditionalDependencies)</AdditionalDependencies> + <ModuleDefinitionFile>ShellExt.def</ModuleDefinitionFile> + </Link> + <CustomBuildStep> + <Command>hg parents --template "#define THG_PARENT_ID {node|short}\n" &gt; parentid.h</Command> + </CustomBuildStep> + <CustomBuildStep> + <Outputs>parentid.h;%(Outputs)</Outputs> + </CustomBuildStep> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;THGSHELL_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;shlwapi.lib;msi.lib;%(AdditionalDependencies)</AdditionalDependencies> + <ModuleDefinitionFile>ShellExt.def</ModuleDefinitionFile> + </Link> + <CustomBuildStep> + <Command>hg parents --template "#define THG_PARENT_ID {node|short}\n" &gt; parentid.h</Command> + </CustomBuildStep> + <CustomBuildStep> + <Outputs>parentid.h;%(Outputs)</Outputs> + </CustomBuildStep> + </ItemDefinitionGroup> + <ItemGroup> + <ClCompile Include="CShellExtCMenu.cpp" /> + <ClCompile Include="CShellExtDnd.cpp" /> + <ClCompile Include="CShellExtOverlay.cpp" /> + <ClCompile Include="Directory.cpp" /> + <ClCompile Include="DirectoryStatus.cpp" /> + <ClCompile Include="Direntry.cpp" /> + <ClCompile Include="dirstate.cpp" /> + <ClCompile Include="Dirstatecache.cpp" /> + <ClCompile Include="IconBitmapUtils.cpp" /> + <ClCompile Include="InitStatus.cpp" /> + <ClCompile Include="QueryDirstate.cpp" /> + <ClCompile Include="RegistryConfig.cpp" /> + <ClCompile Include="ShellExt.cpp" /> + <ClCompile Include="SimpleUnknown.cpp" /> + <ClCompile Include="StringUtils.cpp" /> + <ClCompile Include="SysInfo.cpp" /> + <ClCompile Include="ThgDebug.cpp" /> + <ClCompile Include="Thgstatus.cpp" /> + <ClCompile Include="ThgVersion.cpp" /> + <ClCompile Include="TortoiseIconBitmap.cpp" /> + <ClCompile Include="TortoiseUtils.cpp" /> + <ClCompile Include="Winstat.cpp" /> + <ClCompile Include="Winstat64.cpp" /> + </ItemGroup> + <ItemGroup> + <ClInclude Include="CShellExtCMenu.h" /> + <ClInclude Include="CShellExtDnd.h" /> + <ClInclude Include="CShellExtOverlay.h" /> + <ClInclude Include="Directory.h" /> + <ClInclude Include="DirectoryStatus.h" /> + <ClInclude Include="Direntry.h" /> + <ClInclude Include="dirstate.h" /> + <ClInclude Include="Dirstatecache.h" /> + <ClInclude Include="IconBitmapUtils.h" /> + <ClInclude Include="InitStatus.h" /> + <ClInclude Include="QueryDirstate.h" /> + <ClInclude Include="RegistryConfig.h" /> + <ClInclude Include="ShellExt.h" /> + <ClInclude Include="SimpleUnknown.h" /> + <ClInclude Include="stdafx.h" /> + <ClInclude Include="StringUtils.h" /> + <ClInclude Include="SysInfo.h" /> + <ClInclude Include="ThgClassFactory.h" /> + <ClInclude Include="ThgCLSIDs.h" /> + <ClInclude Include="ThgDebug.h" /> + <ClInclude Include="Thgstatus.h" /> + <ClInclude Include="ThgVersion.h" /> + <ClInclude Include="TortoiseIconBitmap.h" /> + <ClInclude Include="TortoiseUtils.h" /> + <ClInclude Include="Winstat.h" /> + <ClInclude Include="Winstat64.h" /> + </ItemGroup> + <ItemGroup> + <None Include="ShellExt.def" /> + </ItemGroup> + <ItemGroup> + <ResourceCompile Include="shellext.rc" /> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project> \ No newline at end of file
Change 1 of 1 Show Entire File win32/​shellext/​THgShell.vcxproj.filters Stacked
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
 
@@ -0,0 +1,178 @@
+<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> + <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> + </Filter> + <Filter Include="Header Files"> + <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier> + <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> + </Filter> + <Filter Include="Resource Files"> + <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> + <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions> + </Filter> + </ItemGroup> + <ItemGroup> + <ClCompile Include="CShellExtCMenu.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="CShellExtDnd.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="CShellExtOverlay.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="Directory.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="DirectoryStatus.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="Direntry.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="dirstate.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="Dirstatecache.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="IconBitmapUtils.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="InitStatus.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="QueryDirstate.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="RegistryConfig.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="ShellExt.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="SimpleUnknown.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="StringUtils.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="SysInfo.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="ThgDebug.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="Thgstatus.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="ThgVersion.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="TortoiseIconBitmap.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="TortoiseUtils.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="Winstat.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="Winstat64.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> + <ItemGroup> + <ClInclude Include="CShellExtCMenu.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="CShellExtDnd.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="CShellExtOverlay.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="Directory.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="DirectoryStatus.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="Direntry.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="dirstate.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="Dirstatecache.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="IconBitmapUtils.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="InitStatus.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="QueryDirstate.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="RegistryConfig.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="ShellExt.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="SimpleUnknown.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="stdafx.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="StringUtils.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="SysInfo.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="ThgClassFactory.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="ThgCLSIDs.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="ThgDebug.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="Thgstatus.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="ThgVersion.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="TortoiseIconBitmap.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="TortoiseUtils.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="Winstat.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="Winstat64.h"> + <Filter>Header Files</Filter> + </ClInclude> + </ItemGroup> + <ItemGroup> + <None Include="ShellExt.def"> + <Filter>Source Files</Filter> + </None> + </ItemGroup> + <ItemGroup> + <ResourceCompile Include="shellext.rc"> + <Filter>Resource Files</Filter> + </ResourceCompile> + </ItemGroup> +</Project> \ No newline at end of file
Change 1 of 1 Show Entire File win32/​shellext/​build32.cmd Stacked
 
1
 
 
@@ -1,1 +0,0 @@
-cmd.exe /E:ON /V:ON /K "C:\Program Files\Microsoft SDKs\Windows\v7.0\Bin\SetEnv.cmd" /xp /x86 /Release
Change 1 of 1 Show Entire File win32/​shellext/​build64.cmd Stacked
 
1
 
 
@@ -1,1 +0,0 @@
-cmd.exe /E:ON /V:ON /K "C:\Program Files\Microsoft SDKs\Windows\v7.0\Bin\SetEnv.cmd" /xp /x64 /Release
Change 1 of 1 Show Entire File win32/​shellext/​create-parentid-h.cmd Stacked
 
1
2
 
 
 
@@ -1,2 +0,0 @@
-@echo off -hg parents --template "#define THG_PARENT_ID {node|short}\n" > parentid.h