[Mingw-w64-public] [PATCH 2/2] add api-ms-core-registry-* def files

2023-05-30 Thread Steve Lhomme
These are needed to enable the registry API calls available in UWP.
---
 mingw-w64-crt/Makefile.am |  4 ++
 .../api-ms-win-core-registry-l1-1-0.def   | 47 +++
 .../api-ms-win-core-registry-l2-1-0.def   | 37 +++
 mingw-w64-crt/lib-common/mincore.mri  |  3 +-
 mingw-w64-crt/lib-common/windowsapp.mri   |  2 +
 5 files changed, 92 insertions(+), 1 deletion(-)
 create mode 100644 mingw-w64-crt/lib-common/api-ms-win-core-registry-l1-1-0.def
 create mode 100644 mingw-w64-crt/lib-common/api-ms-win-core-registry-l2-1-0.def

diff --git a/mingw-w64-crt/Makefile.am b/mingw-w64-crt/Makefile.am
index a4a1ed922..6087f050e 100644
--- a/mingw-w64-crt/Makefile.am
+++ b/mingw-w64-crt/Makefile.am
@@ -2104,6 +2104,8 @@ endif
%/libapi-ms-win-core-realtime-l1-1-0.a \
%/libapi-ms-win-core-realtime-l1-1-1.a \
%/libapi-ms-win-core-realtime-l1-1-2.a \
+   %/libapi-ms-win-core-registry-l1-1-0.a \
+   %/libapi-ms-win-core-registry-l2-1-0.a \
%/libapi-ms-win-core-rtlsupport-l1-2-0.a \
%/libapi-ms-win-core-string-l1-1-0.a \
%/libapi-ms-win-core-synch-l1-1-0.a \
@@ -2237,6 +2239,8 @@ endif
%/libapi-ms-win-core-profile-l1-1-0.a \
%/libapi-ms-win-core-realtime-l1-1-0.a \
%/libapi-ms-win-core-realtime-l1-1-1.a \
+   %/libapi-ms-win-core-registry-l1-1-0.a \
+   %/libapi-ms-win-core-registry-l2-1-0.a \
%/libapi-ms-win-core-rtlsupport-l1-2-0.a \
%/libapi-ms-win-core-string-l1-1-0.a \
%/libapi-ms-win-core-synch-ansi-l1-1-0.a \
diff --git a/mingw-w64-crt/lib-common/api-ms-win-core-registry-l1-1-0.def 
b/mingw-w64-crt/lib-common/api-ms-win-core-registry-l1-1-0.def
new file mode 100644
index 0..5cb72046b
--- /dev/null
+++ b/mingw-w64-crt/lib-common/api-ms-win-core-registry-l1-1-0.def
@@ -0,0 +1,47 @@
+LIBRARY api-ms-win-core-registry-l1-1-0
+
+EXPORTS
+
+RegCloseKey
+RegCopyTreeW
+RegCreateKeyExA
+RegCreateKeyExW
+RegDeleteKeyExA
+RegDeleteKeyExW
+RegDeleteTreeA
+RegDeleteTreeW
+RegDeleteValueA
+RegDeleteValueW
+RegDisablePredefinedCacheEx
+RegEnumKeyExA
+RegEnumKeyExW
+RegEnumValueA
+RegEnumValueW
+RegFlushKey
+RegGetKeySecurity
+RegGetValueA
+RegGetValueW
+RegLoadAppKeyA
+RegLoadAppKeyW
+RegLoadKeyA
+RegLoadKeyW
+RegLoadMUIStringA
+RegLoadMUIStringW
+RegNotifyChangeKeyValue
+RegOpenCurrentUser
+RegOpenKeyExA
+RegOpenKeyExW
+RegOpenUserClassesRoot
+RegQueryInfoKeyA
+RegQueryInfoKeyW
+RegQueryValueExA
+RegQueryValueExW
+RegRestoreKeyA
+RegRestoreKeyW
+RegSaveKeyExA
+RegSaveKeyExW
+RegSetKeySecurity
+RegSetValueExA
+RegSetValueExW
+RegUnLoadKeyA
+RegUnLoadKeyW
diff --git a/mingw-w64-crt/lib-common/api-ms-win-core-registry-l2-1-0.def 
b/mingw-w64-crt/lib-common/api-ms-win-core-registry-l2-1-0.def
new file mode 100644
index 0..3e05bbf74
--- /dev/null
+++ b/mingw-w64-crt/lib-common/api-ms-win-core-registry-l2-1-0.def
@@ -0,0 +1,37 @@
+LIBRARY api-ms-win-core-registry-l2-1-0
+
+EXPORTS
+
+RegConnectRegistryA
+RegConnectRegistryW
+RegCopyTreeA
+RegCreateKeyA
+RegCreateKeyTransactedA
+RegCreateKeyTransactedW
+RegCreateKeyW
+RegDeleteKeyA
+RegDeleteKeyTransactedA
+RegDeleteKeyTransactedW
+RegDeleteKeyValueA
+RegDeleteKeyValueW
+RegDeleteKeyW
+RegDisablePredefinedCache
+RegEnumKeyA
+RegEnumKeyW
+RegOpenKeyA
+RegOpenKeyTransactedA
+RegOpenKeyTransactedW
+RegOpenKeyW
+RegOverridePredefKey
+RegQueryMultipleValuesA
+RegQueryMultipleValuesW
+RegQueryValueA
+RegQueryValueW
+RegReplaceKeyA
+RegReplaceKeyW
+RegSaveKeyA
+RegSaveKeyW
+RegSetKeyValueA
+RegSetKeyValueW
+RegSetValueA
+RegSetValueW
diff --git a/mingw-w64-crt/lib-common/mincore.mri 
b/mingw-w64-crt/lib-common/mincore.mri
index 7073eeb8d..03f4b4c37 100644
--- a/mingw-w64-crt/lib-common/mincore.mri
+++ b/mingw-w64-crt/lib-common/mincore.mri
@@ -85,7 +85,8 @@ ADDLIB libapi-ms-win-core-psapi-ansi-l1-1-0.a
 ADDLIB libapi-ms-win-core-realtime-l1-1-0.a
 ADDLIB libapi-ms-win-core-realtime-l1-1-1.a
 ADDLIB libapi-ms-win-core-realtime-l1-1-2.a
-; FIXME libapi-ms-win-core-registry-l1-1-0.a
+ADDLIB libapi-ms-win-core-registry-l1-1-0.a
+ADDLIB libapi-ms-win-core-registry-l2-1-0.a
 ; FIXME libapi-ms-win-core-registry-l1-1-1.a
 ; FIXME libapi-ms-win-core-registry-l1-1-2.a
 ; FIXME libapi-ms-win-core-rtlsupport-l1-1-0.a
diff --git a/mingw-w64-crt/lib-common/windowsapp.mri 
b/mingw-w64-crt/lib-common/windowsapp.mri
index 8e0e3d888..2496280a5 100644
--- a/mingw-w64-crt/lib-common/windowsapp.mri
+++ b/mingw-w64-crt/lib-common/windowsapp.mri
@@ -51,6 +51,8 @@ ADDLIB libapi-ms-win-core-psapi-ansi-l1-1-0.a
 ADDLIB libapi-ms-win-core-profile-l1-1-0.a
 ADDLIB libapi-ms-win-core-realtime-l1-1-0.a
 ADDLIB libapi-ms-win-core-realtime-l1-1-1.a
+ADDLIB libapi-ms-win-core-registry-l1-1-0.a
+ADDLIB libapi-ms-win-core-registry-l2-1-0.a
 ADDLIB libapi-ms-win-core-rtlsupport-l1-2-0.a
 ADDLIB 

[Mingw-w64-public] [PATCH 1/2] headers: enable some Registry API calls in UWP 8.1+ builds

2023-05-30 Thread Steve Lhomme
The documentation doesn't say it's allowed, but the WIndows SDK allow it since 
22000 and
the Windows App Certification as well. It is not restricted to Win11 in both
cases. It's even allowed for 8.1 in api-ms-win-core-registry-l1-1-0.dll.
---
 mingw-w64-headers/include/winreg.h | 92 --
 1 file changed, 49 insertions(+), 43 deletions(-)

diff --git a/mingw-w64-headers/include/winreg.h 
b/mingw-w64-headers/include/winreg.h
index dab9324e8..6c5743a28 100644
--- a/mingw-w64-headers/include/winreg.h
+++ b/mingw-w64-headers/include/winreg.h
@@ -131,31 +131,20 @@ extern "C" {
 #define RegConnectRegistry __MINGW_NAME_AW(RegConnectRegistry)
 #define RegConnectRegistryEx __MINGW_NAME_AW(RegConnectRegistryEx)
 #define RegCreateKey __MINGW_NAME_AW(RegCreateKey)
-#define RegCreateKeyEx __MINGW_NAME_AW(RegCreateKeyEx)
 #define RegDeleteKey __MINGW_NAME_AW(RegDeleteKey)
-#define RegDeleteKeyEx __MINGW_NAME_AW(RegDeleteKeyEx)
-#define RegDeleteValue __MINGW_NAME_AW(RegDeleteValue)
 #define RegEnumKey __MINGW_NAME_AW(RegEnumKey)
-#define RegEnumKeyEx __MINGW_NAME_AW(RegEnumKeyEx)
-#define RegEnumValue __MINGW_NAME_AW(RegEnumValue)
 #define RegLoadKey __MINGW_NAME_AW(RegLoadKey)
 #define RegOpenKey __MINGW_NAME_AW(RegOpenKey)
-#define RegOpenKeyEx __MINGW_NAME_AW(RegOpenKeyEx)
-#define RegQueryInfoKey __MINGW_NAME_AW(RegQueryInfoKey)
 #define RegQueryValue __MINGW_NAME_AW(RegQueryValue)
 #define RegQueryMultipleValues __MINGW_NAME_AW(RegQueryMultipleValues)
-#define RegQueryValueEx __MINGW_NAME_AW(RegQueryValueEx)
 #define RegReplaceKey __MINGW_NAME_AW(RegReplaceKey)
 #define RegRestoreKey __MINGW_NAME_AW(RegRestoreKey)
 #define RegSaveKey __MINGW_NAME_AW(RegSaveKey)
 #define RegSetValue __MINGW_NAME_AW(RegSetValue)
-#define RegSetValueEx __MINGW_NAME_AW(RegSetValueEx)
 #define RegUnLoadKey __MINGW_NAME_AW(RegUnLoadKey)
-#define RegGetValue __MINGW_NAME_AW(RegGetValue)
 #define InitiateSystemShutdown __MINGW_NAME_AW(InitiateSystemShutdown)
 #define AbortSystemShutdown __MINGW_NAME_AW(AbortSystemShutdown)
 
-  WINADVAPI LONG WINAPI RegCloseKey(HKEY hKey);
   WINADVAPI LONG WINAPI RegOverridePredefKey(HKEY hKey,HKEY hNewHKey);
   WINADVAPI LONG WINAPI RegOpenUserClassesRoot(HANDLE hToken,DWORD 
dwOptions,REGSAM samDesired,PHKEY phkResult);
   WINADVAPI LONG WINAPI RegOpenCurrentUser(REGSAM samDesired,PHKEY phkResult);
@@ -167,40 +156,23 @@ extern "C" {
   WINADVAPI LONG WINAPI RegConnectRegistryExW(LPCWSTR lpMachineName,HKEY 
hKey,ULONG Flags,PHKEY phkResult);
   WINADVAPI LONG WINAPI RegCreateKeyA(HKEY hKey,LPCSTR lpSubKey,PHKEY 
phkResult);
   WINADVAPI LONG WINAPI RegCreateKeyW(HKEY hKey,LPCWSTR lpSubKey,PHKEY 
phkResult);
-  WINADVAPI LONG WINAPI RegCreateKeyExA(HKEY hKey,LPCSTR lpSubKey,DWORD 
Reserved,LPSTR lpClass,DWORD dwOptions,REGSAM samDesired,LPSECURITY_ATTRIBUTES 
lpSecurityAttributes,PHKEY phkResult,LPDWORD lpdwDisposition);
-  WINADVAPI LONG WINAPI RegCreateKeyExW(HKEY hKey,LPCWSTR lpSubKey,DWORD 
Reserved,LPWSTR lpClass,DWORD dwOptions,REGSAM samDesired,LPSECURITY_ATTRIBUTES 
lpSecurityAttributes,PHKEY phkResult,LPDWORD lpdwDisposition);
   WINADVAPI LONG WINAPI RegDeleteKeyA(HKEY hKey,LPCSTR lpSubKey);
   WINADVAPI LONG WINAPI RegDeleteKeyW(HKEY hKey,LPCWSTR lpSubKey);
-  WINADVAPI LONG WINAPI RegDeleteKeyExA(HKEY hKey,LPCSTR lpSubKey,REGSAM 
samDesired,DWORD Reserved);
-  WINADVAPI LONG WINAPI RegDeleteKeyExW(HKEY hKey,LPCWSTR lpSubKey,REGSAM 
samDesired,DWORD Reserved);
   WINADVAPI LONG WINAPI RegDisableReflectionKey(HKEY hBase);
   WINADVAPI LONG WINAPI RegEnableReflectionKey(HKEY hBase);
   WINADVAPI LONG WINAPI RegQueryReflectionKey(HKEY hBase,WINBOOL 
*bIsReflectionDisabled);
-  WINADVAPI LONG WINAPI RegDeleteValueA(HKEY hKey,LPCSTR lpValueName);
-  WINADVAPI LONG WINAPI RegDeleteValueW(HKEY hKey,LPCWSTR lpValueName);
   WINADVAPI LONG WINAPI RegEnumKeyA(HKEY hKey,DWORD dwIndex,LPSTR lpName,DWORD 
cchName);
   WINADVAPI LONG WINAPI RegEnumKeyW(HKEY hKey,DWORD dwIndex,LPWSTR 
lpName,DWORD cchName);
-  WINADVAPI LONG WINAPI RegEnumKeyExA(HKEY hKey,DWORD dwIndex,LPSTR 
lpName,LPDWORD lpcchName,LPDWORD lpReserved,LPSTR lpClass,LPDWORD 
lpcchClass,PFILETIME lpftLastWriteTime);
-  WINADVAPI LONG WINAPI RegEnumKeyExW(HKEY hKey,DWORD dwIndex,LPWSTR 
lpName,LPDWORD lpcchName,LPDWORD lpReserved,LPWSTR lpClass,LPDWORD 
lpcchClass,PFILETIME lpftLastWriteTime);
-  WINADVAPI LONG WINAPI RegEnumValueA(HKEY hKey,DWORD dwIndex,LPSTR 
lpValueName,LPDWORD lpcchValueName,LPDWORD lpReserved,LPDWORD lpType,LPBYTE 
lpData,LPDWORD lpcbData);
-  WINADVAPI LONG WINAPI RegEnumValueW(HKEY hKey,DWORD dwIndex,LPWSTR 
lpValueName,LPDWORD lpcchValueName,LPDWORD lpReserved,LPDWORD lpType,LPBYTE 
lpData,LPDWORD lpcbData);
   WINADVAPI LONG WINAPI RegFlushKey(HKEY hKey);
   WINADVAPI LONG WINAPI RegGetKeySecurity(HKEY hKey,SECURITY_INFORMATION 
SecurityInformation,PSECURITY_DESCRIPTOR pSecurityDescriptor,LPDWORD 
lpcbSecurityDescriptor);
   WINADVAPI LONG WINAPI RegLoadKeyA(HKEY hKey,LPCSTR lpSubKey,LPCSTR 

[Mingw-w64-public] [PATCH 2/3] headers: enable GET_MODULE_HANDLE_EX_xxx defines in UWP builds

2023-05-30 Thread Steve Lhomme
It's available in the Windows 11 SDK for all builds targeting FAMILY_APP and 
more.
---
 mingw-w64-headers/include/libloaderapi.h | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/mingw-w64-headers/include/libloaderapi.h 
b/mingw-w64-headers/include/libloaderapi.h
index 288e78d9f..b74d8775a 100644
--- a/mingw-w64-headers/include/libloaderapi.h
+++ b/mingw-w64-headers/include/libloaderapi.h
@@ -74,11 +74,13 @@ extern "C" {
 #if (NTDDI_VERSION >= NTDDI_WIN10_RS2)
 #define LOAD_LIBRARY_OS_INTEGRITY_CONTINUITY 0x8000
 #endif
+#endif /* WINAPI_PARTITION_DESKTOP */
 
 #define GET_MODULE_HANDLE_EX_FLAG_PIN (0x1)
 #define GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT (0x2)
 #define GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS (0x4)
 
+#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
 #define ENUMRESLANGPROC __MINGW_NAME_AW(ENUMRESLANGPROC)
 #define ENUMRESNAMEPROC __MINGW_NAME_AW(ENUMRESNAMEPROC)
 #define ENUMRESTYPEPROC __MINGW_NAME_AW(ENUMRESTYPEPROC)
-- 
2.39.2



___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


[Mingw-w64-public] [PATCH 3/3] winstorecompat: remove GetModuleHandle() from windowsappcompat

2023-05-30 Thread Steve Lhomme
It's allowed now in Windows 10. Keep it forbidden in
winstorecompat (Win8).
---
 mingw-w64-libraries/winstorecompat/Makefile.am | 1 -
 1 file changed, 1 deletion(-)

diff --git a/mingw-w64-libraries/winstorecompat/Makefile.am 
b/mingw-w64-libraries/winstorecompat/Makefile.am
index a668efb25..c3c4f65ee 100644
--- a/mingw-w64-libraries/winstorecompat/Makefile.am
+++ b/mingw-w64-libraries/winstorecompat/Makefile.am
@@ -50,7 +50,6 @@ libwinstorecompat_a_SOURCES = \
 
 libwindowsappcompat_a_SOURCES = \
   src/beginthread.c \
-  src/GetModuleHandle.c \
   src/LoadLibraryW.c \
   src/CreateFileW.c \
   src/UnhandledExceptionFilter.c \
-- 
2.39.2



___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


[Mingw-w64-public] [PATCH 1/3] headers: enable more module API in Win10 UWP builds

2023-05-30 Thread Steve Lhomme
The documentation doesn't say they're allowed, but the WIndows SDK allow it
since 22000 and the Windows App Certification as well.
It is not restricted to Win11 in both cases but applies when targeting Win10
as well.
---
 mingw-w64-headers/include/libloaderapi.h | 51 ++--
 1 file changed, 29 insertions(+), 22 deletions(-)

diff --git a/mingw-w64-headers/include/libloaderapi.h 
b/mingw-w64-headers/include/libloaderapi.h
index d4c82ef8c..288e78d9f 100644
--- a/mingw-w64-headers/include/libloaderapi.h
+++ b/mingw-w64-headers/include/libloaderapi.h
@@ -37,11 +37,6 @@ extern "C" {
   typedef FARPROC ENUMRESLANGPROCW;
 #endif
 
-#ifndef RC_INVOKED
-  typedef WINBOOL (WINAPI *PGET_MODULE_HANDLE_EXA) (DWORD dwFlags, LPCSTR 
lpModuleName, HMODULE *phModule);
-  typedef WINBOOL (WINAPI *PGET_MODULE_HANDLE_EXW) (DWORD dwFlags, LPCWSTR 
lpModuleName, HMODULE *phModule);
-#endif
-
   typedef PVOID DLL_DIRECTORY_COOKIE, *PDLL_DIRECTORY_COOKIE;
 
 #define FIND_RESOURCE_DIRECTORY_TYPES (0x0100)
@@ -90,32 +85,18 @@ extern "C" {
 
   WINBASEAPI WINBOOL WINAPI EnumResourceNamesW(HMODULE hModule, LPCWSTR 
lpType, ENUMRESNAMEPROCW lpEnumFunc, LONG_PTR lParam);
   WINBASEAPI HRSRC WINAPI FindResourceW(HMODULE hModule, LPCWSTR lpName, 
LPCWSTR lpType);
-  WINBASEAPI HRSRC WINAPI FindResourceExW (HMODULE hModule, LPCWSTR lpType, 
LPCWSTR lpName, WORD wLanguage);
   WINBASEAPI WINBOOL WINAPI FreeResource (HGLOBAL hResData);
-  WINBASEAPI HMODULE WINAPI LoadLibraryExA (LPCSTR lpLibFileName, HANDLE 
hFile, DWORD dwFlags);
-  WINBASEAPI HMODULE WINAPI LoadLibraryExW (LPCWSTR lpLibFileName, HANDLE 
hFile, DWORD dwFlags);
   WINBASEAPI HGLOBAL WINAPI LoadResource (HMODULE hModule, HRSRC hResInfo);
-  WINUSERAPI int WINAPI LoadStringA (HINSTANCE hInstance, UINT uID, LPSTR 
lpBuffer, int cchBufferMax);
-  WINUSERAPI int WINAPI LoadStringW (HINSTANCE hInstance, UINT uID, LPWSTR 
lpBuffer, int cchBufferMax);
   WINBASEAPI LPVOID WINAPI LockResource (HGLOBAL hResData);
-  WINBASEAPI DWORD WINAPI SizeofResource (HMODULE hModule, HRSRC hResInfo);
   WINBASEAPI DLL_DIRECTORY_COOKIE WINAPI AddDllDirectory (PCWSTR NewDirectory);
   WINBASEAPI WINBOOL WINAPI RemoveDllDirectory (DLL_DIRECTORY_COOKIE Cookie);
   WINBASEAPI WINBOOL WINAPI SetDefaultDllDirectories (DWORD DirectoryFlags);
-  WINBASEAPI WINBOOL WINAPI GetModuleHandleExA (DWORD dwFlags, LPCSTR 
lpModuleName, HMODULE *phModule);
-  WINBASEAPI WINBOOL WINAPI GetModuleHandleExW (DWORD dwFlags, LPCWSTR 
lpModuleName, HMODULE *phModule);
 
 #ifdef UNICODE
 #define EnumResourceNames EnumResourceNamesW
 #define FindResource FindResourceW
-#define FindResourceEx FindResourceExW
 #endif
 
-#define PGET_MODULE_HANDLE_EX __MINGW_NAME_AW(PGET_MODULE_HANDLE_EX)
-#define LoadString __MINGW_NAME_AW(LoadString)
-#define GetModuleHandleEx __MINGW_NAME_AW(GetModuleHandleEx)
-#define LoadLibraryEx __MINGW_NAME_AW(LoadLibraryEx)
-
 #define EnumResourceLanguages __MINGW_NAME_AW(EnumResourceLanguages)
   WINBASEAPI WINBOOL WINAPI EnumResourceLanguagesA(HMODULE hModule,LPCSTR 
lpType,LPCSTR lpName,ENUMRESLANGPROCA lpEnumFunc,LONG_PTR lParam);
   WINBASEAPI WINBOOL WINAPI EnumResourceLanguagesW(HMODULE hModule,LPCWSTR 
lpType,LPCWSTR lpName,ENUMRESLANGPROCW lpEnumFunc,LONG_PTR lParam);
@@ -136,11 +117,8 @@ extern "C" {
 #endif
 #endif
 #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) || 
defined(WINSTORECOMPAT)
-WINBASEAPI HMODULE WINAPI GetModuleHandleA (LPCSTR lpModuleName);
-WINBASEAPI HMODULE WINAPI GetModuleHandleW (LPCWSTR lpModuleName);
 WINBASEAPI HMODULE WINAPI LoadLibraryA(LPCSTR lpLibFileName);
 WINBASEAPI HMODULE WINAPI LoadLibraryW(LPCWSTR lpLibFileName);
-#define GetModuleHandle __MINGW_NAME_AW(GetModuleHandle)
 #define LoadLibrary __MINGW_NAME_AW(LoadLibrary)
 #endif
 
@@ -176,6 +154,35 @@ typedef const REDIRECTION_DESCRIPTOR 
*PCREDIRECTION_DESCRIPTOR;
 #endif
 #endif
 
+#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) || _WIN32_WINNT >= 
0x0A00
+  WINBASEAPI HRSRC WINAPI FindResourceExW (HMODULE hModule, LPCWSTR lpType, 
LPCWSTR lpName, WORD wLanguage);
+  WINBASEAPI HMODULE WINAPI GetModuleHandleA (LPCSTR lpModuleName);
+  WINBASEAPI HMODULE WINAPI GetModuleHandleW (LPCWSTR lpModuleName);
+  WINBASEAPI WINBOOL WINAPI GetModuleHandleExA (DWORD dwFlags, LPCSTR 
lpModuleName, HMODULE *phModule);
+  WINBASEAPI WINBOOL WINAPI GetModuleHandleExW (DWORD dwFlags, LPCWSTR 
lpModuleName, HMODULE *phModule);
+  WINBASEAPI HMODULE WINAPI LoadLibraryExA (LPCSTR lpLibFileName, HANDLE 
hFile, DWORD dwFlags);
+  WINBASEAPI HMODULE WINAPI LoadLibraryExW (LPCWSTR lpLibFileName, HANDLE 
hFile, DWORD dwFlags);
+  WINUSERAPI int WINAPI LoadStringA (HINSTANCE hInstance, UINT uID, LPSTR 
lpBuffer, int cchBufferMax);
+  WINUSERAPI int WINAPI LoadStringW (HINSTANCE hInstance, UINT uID, LPWSTR 
lpBuffer, int cchBufferMax);
+  WINBASEAPI DWORD WINAPI SizeofResource (HMODULE hModule, HRSRC hResInfo);
+
+#ifdef UNICODE
+#define FindResourceEx FindResourceExW
+#endif
+
+#define 

[Mingw-w64-public] [PATCH] winstorecompat: remove _beginthread() from windowsappcompat

2023-05-30 Thread Steve Lhomme
It's allowed now in Windows 10. Keep it forbidden in
winstorecompat (Win8) as it's
forbidden there [1].

Win10 UWP builds will use the version in api-ms-win-crt-runtime-l1-1-0.dll
via windowsapp.

[1] 
https://learn.microsoft.com/en-us/cpp/cppcx/crt-functions-not-supported-in-universal-windows-platform-apps?view=msvc-160#windows-8x-store-apps-and-windows-phone-8x-apps
---
 mingw-w64-libraries/winstorecompat/Makefile.am | 1 -
 1 file changed, 1 deletion(-)

diff --git a/mingw-w64-libraries/winstorecompat/Makefile.am 
b/mingw-w64-libraries/winstorecompat/Makefile.am
index c3c4f65ee..99016a051 100644
--- a/mingw-w64-libraries/winstorecompat/Makefile.am
+++ b/mingw-w64-libraries/winstorecompat/Makefile.am
@@ -49,7 +49,6 @@ libwinstorecompat_a_SOURCES = \
   $(NULL)
 
 libwindowsappcompat_a_SOURCES = \
-  src/beginthread.c \
   src/LoadLibraryW.c \
   src/CreateFileW.c \
   src/UnhandledExceptionFilter.c \
-- 
2.39.2



___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] [PATCH] headers: enable GetVolumePathNameW in Win10 UWP builds

2023-05-30 Thread LIU Hao

在 2023/5/30 14:41, Steve Lhomme 写道:
Indeed, here I have it in DESKTOP since 19041. So that's still a Windows 10 SDK (20H1), the latest 
being 19045 [1]. The API is not hidden by a NTDDI_VERSION check, so it should apply to all Windows 
10 versions. And since the Windows App Certification doesn't differentiate between the Windows 10 
versions, I think we can use it in all Windows 10 versions.


The definition is moved into a code block that is inside:

#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) || _WIN32_WINNT >= 
_WIN32_WINNT_WIN10

So I think it's OK like that.


That's reasonable. Thanks for the patch. Pushed now.

--
Best regards,
LIU Hao



OpenPGP_signature
Description: OpenPGP digital signature
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] [PATCH] headers: enable GetVolumePathNameW in Win10 UWP builds

2023-05-30 Thread Steve Lhomme

Hi,

On 2023-05-28 10:51, LIU Hao wrote:

在 2023-05-27 18:05, Steve Lhomme 写道:
The documentation doesn't say it's allowed, but the WIndows SDK allow 
it and

the Windows App Certification as well.

The official page for allowed API's also doesn't say it's allowed [1]
but the DLL that contains it is there.

[1] 
https://learn.microsoft.com/en-us/uwp/win32-and-com/win32-apis#apis-from-api-ms-win-core-file-l2-1-0dll

---
  mingw-w64-headers/include/fileapi.h | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)


Compiling a program that calls it: With Windows 10 SDK 10.0.18362.0 this 
function is not declared for APP (only for DESKTOP), but with 
10.0.22621.0 it is indeed declared. It might have changed inbetween so 
maybe we could have an `_WIN32_WINNT >= _WIN32_WINNT_` there?


Indeed, here I have it in DESKTOP since 19041. So that's still a Windows 
10 SDK (20H1), the latest being 19045 [1]. The API is not hidden by a 
NTDDI_VERSION check, so it should apply to all Windows 10 versions. And 
since the Windows App Certification doesn't differentiate between the 
Windows 10 versions, I think we can use it in all Windows 10 versions.


The definition is moved into a code block that is inside:

#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) || _WIN32_WINNT 
>= _WIN32_WINNT_WIN10


So I think it's OK like that.

[1] https://en.wikipedia.org/wiki/Windows_10_version_history


--
Best regards,
LIU Hao




___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public