mingw-w64 defines __forceinline (and therefore FORCEINLINE) as
"extern __inline__ __attribute__((__always_inline__,__gnu_inline__)). This means
that COM inline wrappers specify multiple storage classes and hence cannot be
compiled.
Wine defines FORCEINLINE simply as "inline" (and uses "static" everywhere), so
this is a non-issue for Wine. However, since Wine and mingw-w64 share the source
code of widl and of most IDL headers, this patch changes the definition for both
projects.
There's no reason to force inlining here, especially since the wrappers need to
be manually enabled, and we don't need to match PSDK semantics where these
wrappers don't even exist.
In practice, use "__inline__" instead of "inline" for GNU C targets, to preserve
compatibility with C89 in mingw-w64 headers.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/935
WS_EX_APPWINDOW is sort of the opposite to WS_EX_TOOLWINDOW and is supposed to force the window into taskbar. My testing on Windows shows that (WS_EX_TOOLWINDOW | WS_EX_APPWINDOW) windows are visible in both taskbar and task switcher.
Some games use this combination of styles for their windows.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/947
This patch set is based upon [patches from Wine Staging](https://github.com/wine-staging/wine-staging/tree/master/patches/n… by Erich E. Hoover (@ehoover), and implements support for the `SYSTEM`, `HIDDEN` and `READONLY` DOS file attributes. These can implemented in various ways depending upon the capabilities of the operating system and the file system. However, this initial patch-set focusses on just one method: Samba-formatted Extended File Attributes.
Modern filesystems generally support Extended File Attributes - auxiliary blobs of binary data that can be attached to a file. Samba uses the `user.DOSATTRIB` attribute to store DOS attribute information in the form of a hexadecimal value, and this patch-set implements a compatible mechanism.
Support for additional storage methods to increase operating system and filesystem compatibility is planned for later patch submissions.
This effort is part of a larger project I have been working on to get Msys2 and Cygwin working properly on Wine. The absence of DOS fule attribute support prevents one of the modes that Cygwin and Msys2 can use to emulate symbolic links from working correctly, which causes the Cygwin installer to fail: https://bugs.winehq.org/show_bug.cgi?id=9158
--
v5: ntdll: Implement storing DOS attributes in NtCreateFile.
ntdll: Implement retrieving DOS attributes in NtQueryInformationFile
ntdll: Implement storing DOS attributes in NtSetInformationFile.
ntdll: Implement retrieving DOS attributes in [fd_]get_file_info().
https://gitlab.winehq.org/wine/wine/-/merge_requests/946
This patch set is based upon [patches from Wine Staging](https://github.com/wine-staging/wine-staging/tree/master/patches/n… by Erich E. Hoover (@ehoover), and implements support for the `SYSTEM`, `HIDDEN` and `READONLY` DOS file attributes. These can implemented in various ways depending upon the capabilities of the operating system and the file system. However, this initial patch-set focusses on just one method: Samba-formatted Extended File Attributes.
Modern filesystems generally support Extended File Attributes - auxiliary blobs of binary data that can be attached to a file. Samba uses the `user.DOSATTRIB` attribute to store DOS attribute information in the form of a hexadecimal value, and this patch-set implements a compatible mechanism.
Support for additional storage methods to increase operating system and filesystem compatibility is planned for later patch submissions.
This effort is part of a larger project I have been working on to get Msys2 and Cygwin working properly on Wine. The absence of DOS fule attribute support prevents one of the modes that Cygwin and Msys2 can use to emulate symbolic links from working correctly, which causes the Cygwin installer to fail: https://bugs.winehq.org/show_bug.cgi?id=9158
--
v4: ntdll: Implement storing DOS attributes in NtCreateFile.
ntdll: Implement retrieving DOS attributes in NtQueryInformationFile
ntdll: Implement storing DOS attributes in NtSetInformationFile.
ntdll: Implement retrieving DOS attributes in [fd_]get_file_info().
https://gitlab.winehq.org/wine/wine/-/merge_requests/946
This patch set is based upon [patches from Wine Staging](https://github.com/wine-staging/wine-staging/tree/master/patches/n… by Erich E. Hoover (@ehoover), and implements support for the `SYSTEM`, `HIDDEN` and `READONLY` DOS file attributes. These can implemented in various ways depending upon the capabilities of the operating system and the file system. However, this initial patch-set focusses on just one method: Samba-formatted Extended File Attributes.
Modern filesystems generally support Extended File Attributes - auxiliary blobs of binary data that can be attached to a file. Samba uses the `user.DOSATTRIB` attribute to store DOS attribute information in the form of a hexadecimal value, and this patch-set implements a compatible mechanism.
Support for additional storage methods to increase operating system and filesystem compatibility is planned for later patch submissions.
This effort is part of a larger project I have been working on to get Msys2 and Cygwin working properly on Wine. The absence of DOS fule attribute support prevents one of the modes that Cygwin and Msys2 can use to emulate symbolic links from working correctly, which causes the Cygwin installer to fail: https://bugs.winehq.org/show_bug.cgi?id=9158
--
v3: ntdll: Implement storing DOS attributes in NtCreateFile.
https://gitlab.winehq.org/wine/wine/-/merge_requests/946
This patch set is based upon [patches from Wine Staging](https://github.com/wine-staging/wine-staging/tree/master/patches/n… by Erich E. Hoover (@ehoover), and implements support for the `SYSTEM`, `HIDDEN` and `READONLY` DOS file attributes. These can implemented in various ways depending upon the capabilities of the operating system and the file system. However, this initial patch-set focusses on just one method: Samba-formatted Extended File Attributes.
Modern filesystems generally support Extended File Attributes - auxiliary blobs of binary data that can be attached to a file. Samba uses the `user.DOSATTRIB` attribute to store DOS attribute information in the form of a hexadecimal value, and this patch-set implements a compatible mechanism.
Support for additional storage methods to increase operating system and filesystem compatibility is planned for later patch submissions.
This effort is part of a larger project I have been working on to get Msys2 and Cygwin working properly on Wine. The absence of DOS fule attribute support prevents one of the modes that Cygwin and Msys2 can use to emulate symbolic links from working correctly, which causes the Cygwin installer to fail: https://bugs.winehq.org/show_bug.cgi?id=9158
--
v2: ntdll: Implement storing DOS attributes in NtCreateFile.
ntdll: Implement retrieving DOS attributes in NtQueryInformationFile
ntdll: Implement storing DOS attributes in NtSetInformationFile.
https://gitlab.winehq.org/wine/wine/-/merge_requests/946
Ok, then I assume you'll revert it in today's push? We can abandon this MR, since the subject (my change to VariantCopyInd) is disproved anyway. I'll try to salvage the tests and open a separate MR for the discovered leak once I actually have a fix, but I think I'm going to prioritize finishing some other items first.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/897#note_9458
On Tue Sep 27 20:16:37 2022 +0000, Esme Povirk wrote:
> I really don't think this needs to be a pointer. If there's going to be
> at most 1 entry per uia_node, and it doesn't need to outlive the
> uia_node, you can put the entry in there directly.
> You can use list_init() when creating uia_node and list_empty() to check
> if the entry is being used. (Though list_remove will leave the entry in
> an invalid state, and you'll have to init it again if you want that
> check to work afterwards.)
That'd make sense. I guess we could also apply this to `node_map_list_entry`, and rather than have custom list entry structures for each, just use the `struct uia_node` structure to store the information we need instead.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/908#note_9457
Esme Povirk (@madewokherd) commented about dlls/uiautomationcore/uia_private.h:
>
> HWND hwnd;
> BOOL nested_node;
> + struct list *prov_thread_list_entry;
I really don't think this needs to be a pointer. If there's going to be at most 1 entry per uia_node, and it doesn't need to outlive the uia_node, you can put the entry in there directly.
You can use list_init() when creating uia_node and list_empty() to check if the entry is being used. (Though list_remove will leave the entry in an invalid state, and you'll have to init it again if you want that check to work afterwards.)
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/908#note_9455
This patch set is based upon [patches from Wine Staging](https://github.com/wine-staging/wine-staging/tree/master/patches/n… by Erich E. Hoover (@ehoover), and implements support for the `SYSTEM`, `HIDDEN` and `READONLY` DOS file attributes. These can implemented in various ways depending upon the capabilities of the operating system and the file system. However, this initial patch-set focusses on just one method: Samba-formatted Extended File Attributes.
Modern filesystems generally support Extended File Attributes - auxiliary blobs of binary data that can be attached to a file. Samba uses the `user.DOSATTRIB` attribute to store DOS attribute information in the form of a hexadecimal value, and this patch-set implements a compatible mechanism.
Support for additional storage methods to increase operating system and filesystem compatibility is planned for later patch submissions.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/946
`mscomctl.ocx` (part of the VB6 common controls) calls `HeapCreate(0x04000000,1,0)`, that flag is the old and undocumented `HEAP_SHARED`.
`HEAP_CreateSystemHeap()` tries to map memory at `0x80000000`, this fails on Wow64 (and probably should for all 32-bit platforms for non-LAA EXEs).
As a workaround, map the memory anywhere if it fails at `0x80000000`.
I wasn't able to find much documentation about `HEAP_SHARED`, it dates back to Win9x and I guess Wine may have needed it for some native DLLs.
It's not clear whether modern Windows really implements any shared heap functionality any more, every 'shared' heap created returns a different pointer (even in the same process). Maybe Wine should remove the functionality too?
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/920
In the ntdll file handling code, there are currently two duplicated file info setting functions: `get_file_info` and `fd_get_file_info`. One pasted on path strings, and the other based on file descriptors respectively. This patch set simplifies the code by unifying both functions into a single function ~~powered by `fstatat` instead of `lstat` and `fstat`~~.
--
v2: ntdll: Unify get_file_info and fd_get_file_info.
https://gitlab.winehq.org/wine/wine/-/merge_requests/942