Skip to content

Commit 543743b

Browse files
authored
Build for a Windows 8.1 minimum (#186)
1 parent 77b4995 commit 543743b

File tree

8 files changed

+57
-61
lines changed

8 files changed

+57
-61
lines changed

.github/workflows/main.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,12 @@ jobs:
5959
- os: windows-2022
6060
build_type: arm64ec-Release
6161
arch: amd64_arm64
62+
- os: windows-2022
63+
build_type: x64-Debug-Win8
64+
arch: amd64
65+
- os: windows-2022
66+
build_type: x64-Release-Win8
67+
arch: amd64
6268
- os: windows-2022
6369
build_type: x64-Debug-Clang
6470
arch: amd64

CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -284,8 +284,8 @@ if(WIN32)
284284
elseif(${DIRECTX_ARCH} MATCHES "^arm")
285285
set(WINVER 0x0602)
286286
else()
287-
message(STATUS "Building with Windows 7 compatibility")
288-
set(WINVER 0x0601)
287+
message(STATUS "Building with Windows 8.1 compatibility")
288+
set(WINVER 0x0603)
289289
endif()
290290

291291
foreach(t IN LISTS TOOL_EXES ITEMS ${PROJECT_NAME})

CMakePresets.json

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@
118118
},
119119

120120
{
121-
"name": "Win7",
121+
"name": "Win8",
122122
"cacheVariables": {
123123
"BUILD_DX12": false
124124
},
@@ -237,10 +237,10 @@
237237
{ "name": "arm64-Debug-UWP" , "description": "MSVC for ARM64 (Debug) for UWP", "inherits": [ "base", "ARM64", "Debug", "MSVC", "UWP" ] },
238238
{ "name": "arm64-Release-UWP", "description": "MSVC for ARM64 (Release) for UWP", "inherits": [ "base", "ARM64", "Release", "MSVC", "UWP" ] },
239239

240-
{ "name": "x64-Debug-Win7" , "description": "MSVC for x64 (Debug) for Windows 7", "inherits": [ "base", "x64", "Debug", "MSVC", "Win7" ] },
241-
{ "name": "x64-Release-Win7" , "description": "MSVC for x64 (Release) for Windows 7", "inherits": [ "base", "x64", "Release", "MSVC", "Win7" ] },
242-
{ "name": "x86-Debug-Win7" , "description": "MSVC for x86 (Debug) for Windows 7", "inherits": [ "base", "x86", "Debug", "MSVC", "Win7" ] },
243-
{ "name": "x86-Release-Win7" , "description": "MSVC for x86 (Release) for Windows 7", "inherits": [ "base", "x86", "Release", "MSVC", "Win7" ] },
240+
{ "name": "x64-Debug-Win8" , "description": "MSVC for x64 (Debug) for Windows 8.1", "inherits": [ "base", "x64", "Debug", "MSVC", "Win8" ] },
241+
{ "name": "x64-Release-Win8" , "description": "MSVC for x64 (Release) for Windows 8.1", "inherits": [ "base", "x64", "Release", "MSVC", "Win8" ] },
242+
{ "name": "x86-Debug-Win8" , "description": "MSVC for x86 (Debug) for Windows 8.1", "inherits": [ "base", "x86", "Debug", "MSVC", "Win8" ] },
243+
{ "name": "x86-Release-Win8" , "description": "MSVC for x86 (Release) for Windows 8.1", "inherits": [ "base", "x86", "Release", "MSVC", "Win8" ] },
244244

245245
{ "name": "x64-Debug-Scarlett" , "description": "MSVC for x64 (Debug) for Xbox Series X|S", "inherits": [ "base", "x64", "Debug", "MSVC", "Scarlett" ] },
246246
{ "name": "x64-Release-Scarlett" , "description": "MSVC for x64 (Release) for Xbox Series X|S", "inherits": [ "base", "x64", "Release", "MSVC", "Scarlett" ] },
@@ -278,10 +278,10 @@
278278
{ "name": "arm64-Debug-UWP-Clang" , "description": "Clang/LLVM for AArch64 (Debug) for UWP", "inherits": [ "base", "ARM64", "Debug", "Clang", "Clang-AArch64", "UWP" ] },
279279
{ "name": "arm64-Release-UWP-Clang", "description": "Clang/LLVM for AArch64 (Release) for UWP", "inherits": [ "base", "ARM64", "Release", "Clang", "Clang-AArch64", "UWP" ] },
280280

281-
{ "name": "x64-Debug-Win7-Clang" , "description": "Clang/LLVM for x64 (Debug) for Windows 7", "inherits": [ "base", "x64", "Debug", "Clang", "Win7" ] },
282-
{ "name": "x64-Release-Win7-Clang" , "description": "Clang/LLVM for x64 (Release) for Windows 7", "inherits": [ "base", "x64", "Release", "Clang", "Win7" ] },
283-
{ "name": "x86-Debug-Win7-Clang" , "description": "Clang/LLVM for x86 (Debug) for Windows 7", "inherits": [ "base", "x86", "Debug", "Clang", "Clang-X86", "Win7" ] },
284-
{ "name": "x86-Release-Win7-Clang" , "description": "Clang/LLVM for x86 (Release) for Windows 7", "inherits": [ "base", "x86", "Release", "Clang", "Clang-X86", "Win7" ] },
281+
{ "name": "x64-Debug-Win8-Clang" , "description": "Clang/LLVM for x64 (Debug) for Windows 8.1", "inherits": [ "base", "x64", "Debug", "Clang", "Win8" ] },
282+
{ "name": "x64-Release-Win8-Clang" , "description": "Clang/LLVM for x64 (Release) for Windows 8.1", "inherits": [ "base", "x64", "Release", "Clang", "Win8" ] },
283+
{ "name": "x86-Debug-Win8-Clang" , "description": "Clang/LLVM for x86 (Debug) for Windows 8.1", "inherits": [ "base", "x86", "Debug", "Clang", "Clang-X86", "Win8" ] },
284+
{ "name": "x86-Release-Win8-Clang" , "description": "Clang/LLVM for x86 (Release) for Windows 8.1", "inherits": [ "base", "x86", "Release", "Clang", "Clang-X86", "Win8" ] },
285285

286286
{ "name": "x64-Debug-Scarlett-Clang" , "description": "Clang/LLVM for x64 (Debug) for Xbox Series X|S", "inherits": [ "base", "x64", "Debug", "Clang", "Scarlett" ] },
287287
{ "name": "x64-Release-Scarlett-Clang", "description": "Clang/LLVM for x64 (Release) for Xbox Series X|S", "inherits": [ "base", "x64", "Release", "Clang", "Scarlett" ] },

DirectXMesh/DirectXMesh_Desktop_2019.vcxproj

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@
138138
<FloatingPointModel>Fast</FloatingPointModel>
139139
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
140140
<ConformanceMode>true</ConformanceMode>
141-
<PreprocessorDefinitions>WIN32;_DEBUG;DEBUG;PROFILE;_WINDOWS;_LIB;_WIN32_WINNT=0x0601;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
141+
<PreprocessorDefinitions>WIN32;_DEBUG;DEBUG;PROFILE;_WINDOWS;_LIB;_WIN32_WINNT=0x0603;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
142142
<PrecompiledHeader>Use</PrecompiledHeader>
143143
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
144144
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
@@ -163,7 +163,7 @@
163163
<SDLCheck>true</SDLCheck>
164164
<FloatingPointModel>Fast</FloatingPointModel>
165165
<ConformanceMode>true</ConformanceMode>
166-
<PreprocessorDefinitions>WIN32;_DEBUG;DEBUG;PROFILE;_WINDOWS;_LIB;_WIN32_WINNT=0x0601;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
166+
<PreprocessorDefinitions>WIN32;_DEBUG;DEBUG;PROFILE;_WINDOWS;_LIB;_WIN32_WINNT=0x0603;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
167167
<PrecompiledHeader>Use</PrecompiledHeader>
168168
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
169169
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
@@ -188,7 +188,7 @@
188188
<FloatingPointModel>Fast</FloatingPointModel>
189189
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
190190
<ConformanceMode>true</ConformanceMode>
191-
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_LIB;_WIN32_WINNT=0x0601;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
191+
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_LIB;_WIN32_WINNT=0x0603;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
192192
<PrecompiledHeader>Use</PrecompiledHeader>
193193
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
194194
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
@@ -212,7 +212,7 @@
212212
<SDLCheck>true</SDLCheck>
213213
<FloatingPointModel>Fast</FloatingPointModel>
214214
<ConformanceMode>true</ConformanceMode>
215-
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_LIB;_WIN32_WINNT=0x0601;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
215+
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_LIB;_WIN32_WINNT=0x0603;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
216216
<PrecompiledHeader>Use</PrecompiledHeader>
217217
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
218218
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
@@ -238,7 +238,7 @@
238238
<FloatingPointModel>Fast</FloatingPointModel>
239239
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
240240
<ConformanceMode>true</ConformanceMode>
241-
<PreprocessorDefinitions>WIN32;NDEBUG;PROFILE;_WINDOWS;_LIB;_WIN32_WINNT=0x0601;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
241+
<PreprocessorDefinitions>WIN32;NDEBUG;PROFILE;_WINDOWS;_LIB;_WIN32_WINNT=0x0603;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
242242
<PrecompiledHeader>Use</PrecompiledHeader>
243243
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
244244
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
@@ -262,7 +262,7 @@
262262
<SDLCheck>true</SDLCheck>
263263
<FloatingPointModel>Fast</FloatingPointModel>
264264
<ConformanceMode>true</ConformanceMode>
265-
<PreprocessorDefinitions>WIN32;NDEBUG;PROFILE;_WINDOWS;_LIB;_WIN32_WINNT=0x0601;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
265+
<PreprocessorDefinitions>WIN32;NDEBUG;PROFILE;_WINDOWS;_LIB;_WIN32_WINNT=0x0603;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
266266
<PrecompiledHeader>Use</PrecompiledHeader>
267267
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
268268
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>

DirectXMesh/DirectXMesh_Desktop_2022.vcxproj

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@
138138
<FloatingPointModel>Fast</FloatingPointModel>
139139
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
140140
<ConformanceMode>true</ConformanceMode>
141-
<PreprocessorDefinitions>WIN32;_DEBUG;DEBUG;PROFILE;_WINDOWS;_LIB;_WIN32_WINNT=0x0601;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
141+
<PreprocessorDefinitions>WIN32;_DEBUG;DEBUG;PROFILE;_WINDOWS;_LIB;_WIN32_WINNT=0x0603;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
142142
<PrecompiledHeader>Use</PrecompiledHeader>
143143
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
144144
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
@@ -163,7 +163,7 @@
163163
<SDLCheck>true</SDLCheck>
164164
<FloatingPointModel>Fast</FloatingPointModel>
165165
<ConformanceMode>true</ConformanceMode>
166-
<PreprocessorDefinitions>WIN32;_DEBUG;DEBUG;PROFILE;_WINDOWS;_LIB;_WIN32_WINNT=0x0601;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
166+
<PreprocessorDefinitions>WIN32;_DEBUG;DEBUG;PROFILE;_WINDOWS;_LIB;_WIN32_WINNT=0x0603;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
167167
<PrecompiledHeader>Use</PrecompiledHeader>
168168
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
169169
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
@@ -188,7 +188,7 @@
188188
<FloatingPointModel>Fast</FloatingPointModel>
189189
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
190190
<ConformanceMode>true</ConformanceMode>
191-
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_LIB;_WIN32_WINNT=0x0601;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
191+
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_LIB;_WIN32_WINNT=0x0603;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
192192
<PrecompiledHeader>Use</PrecompiledHeader>
193193
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
194194
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
@@ -212,7 +212,7 @@
212212
<SDLCheck>true</SDLCheck>
213213
<FloatingPointModel>Fast</FloatingPointModel>
214214
<ConformanceMode>true</ConformanceMode>
215-
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_LIB;_WIN32_WINNT=0x0601;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
215+
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_LIB;_WIN32_WINNT=0x0603;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
216216
<PrecompiledHeader>Use</PrecompiledHeader>
217217
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
218218
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
@@ -238,7 +238,7 @@
238238
<FloatingPointModel>Fast</FloatingPointModel>
239239
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
240240
<ConformanceMode>true</ConformanceMode>
241-
<PreprocessorDefinitions>WIN32;NDEBUG;PROFILE;_WINDOWS;_LIB;_WIN32_WINNT=0x0601;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
241+
<PreprocessorDefinitions>WIN32;NDEBUG;PROFILE;_WINDOWS;_LIB;_WIN32_WINNT=0x0603;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
242242
<PrecompiledHeader>Use</PrecompiledHeader>
243243
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
244244
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
@@ -262,7 +262,7 @@
262262
<SDLCheck>true</SDLCheck>
263263
<FloatingPointModel>Fast</FloatingPointModel>
264264
<ConformanceMode>true</ConformanceMode>
265-
<PreprocessorDefinitions>WIN32;NDEBUG;PROFILE;_WINDOWS;_LIB;_WIN32_WINNT=0x0601;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
265+
<PreprocessorDefinitions>WIN32;NDEBUG;PROFILE;_WINDOWS;_LIB;_WIN32_WINNT=0x0603;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
266266
<PrecompiledHeader>Use</PrecompiledHeader>
267267
<PrecompiledHeaderFile>DirectXMeshP.h</PrecompiledHeaderFile>
268268
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>

Meshconvert/Mesh.cpp

Lines changed: 16 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1073,13 +1073,10 @@ HRESULT Mesh::ExportToVBO(const wchar_t* szFileName) const noexcept
10731073
}
10741074

10751075
// Write header and data
1076-
#if (_WIN32_WINNT >= _WIN32_WINNT_WIN8)
1077-
ScopedHandle hFile(safe_handle(CreateFile2(szFileName,
1078-
GENERIC_WRITE, 0, CREATE_ALWAYS, nullptr)));
1079-
#else
1080-
ScopedHandle hFile(safe_handle(CreateFileW(szFileName,
1081-
GENERIC_WRITE, 0, nullptr, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, nullptr)));
1082-
#endif
1076+
ScopedHandle hFile(safe_handle(CreateFile2(
1077+
szFileName,
1078+
GENERIC_WRITE, 0, CREATE_ALWAYS,
1079+
nullptr)));
10831080
if (!hFile)
10841081
return HRESULT_FROM_WIN32(GetLastError());
10851082

@@ -1119,11 +1116,10 @@ HRESULT Mesh::CreateFromVBO(const wchar_t* szFileName, std::unique_ptr<Mesh>& re
11191116

11201117
result.reset();
11211118

1122-
#if (_WIN32_WINNT >= _WIN32_WINNT_WIN8)
1123-
ScopedHandle hFile(safe_handle(CreateFile2(szFileName, GENERIC_READ, FILE_SHARE_READ, OPEN_EXISTING, nullptr)));
1124-
#else
1125-
ScopedHandle hFile(safe_handle(CreateFileW(szFileName, GENERIC_READ, FILE_SHARE_READ, nullptr, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, nullptr)));
1126-
#endif
1119+
ScopedHandle hFile(safe_handle(CreateFile2(
1120+
szFileName,
1121+
GENERIC_READ, FILE_SHARE_READ, OPEN_EXISTING,
1122+
nullptr)));
11271123
if (!hFile)
11281124
{
11291125
return HRESULT_FROM_WIN32(GetLastError());
@@ -1480,13 +1476,10 @@ HRESULT Mesh::ExportToCMO(const wchar_t* szFileName, size_t nMaterials, const Ma
14801476
}
14811477

14821478
// Create CMO file
1483-
#if (_WIN32_WINNT >= _WIN32_WINNT_WIN8)
1484-
ScopedHandle hFile(safe_handle(CreateFile2(szFileName,
1485-
GENERIC_WRITE, 0, CREATE_ALWAYS, nullptr)));
1486-
#else
1487-
ScopedHandle hFile(safe_handle(CreateFileW(szFileName,
1488-
GENERIC_WRITE, 0, nullptr, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, nullptr)));
1489-
#endif
1479+
ScopedHandle hFile(safe_handle(CreateFile2(
1480+
szFileName,
1481+
GENERIC_WRITE, 0, CREATE_ALWAYS,
1482+
nullptr)));
14901483
if (!hFile)
14911484
return HRESULT_FROM_WIN32(GetLastError());
14921485

@@ -2264,13 +2257,10 @@ HRESULT Mesh::ExportToSDKMESH(const wchar_t* szFileName,
22642257
}
22652258

22662259
// Create file
2267-
#if (_WIN32_WINNT >= _WIN32_WINNT_WIN8)
2268-
ScopedHandle hFile(safe_handle(CreateFile2(szFileName,
2269-
GENERIC_WRITE, 0, CREATE_ALWAYS, nullptr)));
2270-
#else
2271-
ScopedHandle hFile(safe_handle(CreateFileW(szFileName,
2272-
GENERIC_WRITE, 0, nullptr, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, nullptr)));
2273-
#endif
2260+
ScopedHandle hFile(safe_handle(CreateFile2(
2261+
szFileName,
2262+
GENERIC_WRITE, 0, CREATE_ALWAYS,
2263+
nullptr)));
22742264
if (!hFile)
22752265
return HRESULT_FROM_WIN32(GetLastError());
22762266

0 commit comments

Comments
 (0)