On Wed Oct 23 04:23:48 2024 +0000, Zhiyi Zhang wrote:
> It's not clear to me how to fix this properly. I also wonder why Wine
> doesn't encounter this error.
> It seems that MIDL maps `boolean` to `bool`. Please see
> https://github.com/tpn/winsdk-10/blob/9b69fd26ac0c7d0b83d378dba01080e93349c…
> ```
> struct __declspec(uuid("3c00fd60-2950-5939-a21a-2d12c5a01b8a"))
> IReference<bool> :
> IReference_impl<ABI::Windows::Foundation::Internal::AggregateType<bool,
> boolean>> {
> static const wchar_t* z_get_rc_name_impl() {
> return L"Windows.Foundation.IReference`1<Boolean>"; }
> };
> typedef IReference<bool> __FIReference_1_boolean_t;
> #define ____FIReference_1_boolean_FWD_DEFINED__
> #define __FIReference_1_boolean ABI::Windows::Foundation::__FIReference_1_boolean_t
> ```
> So this might be a bug in WIDL? @jacek @rbernon
It's probably specific to the C++ generated code, which should output `bool` in place of `boolean`.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6594#note_85838
On Sat Oct 12 06:40:19 2024 +0000, Zhiyi Zhang wrote:
> I don't think this is a bug in Wine. Native headers have both
> `Windows.Foundation.IReference<BYTE>` and
> `Windows.Foundation.IReference<boolean>` and no conflicts.
It's not clear to me how to fix this properly. I also wonder why Wine doesn't encounter this error.
It seems that MIDL maps `boolean` to `bool`. Please see https://github.com/tpn/winsdk-10/blob/9b69fd26ac0c7d0b83d378dba01080e93349c…
```
struct __declspec(uuid("3c00fd60-2950-5939-a21a-2d12c5a01b8a"))
IReference<bool> : IReference_impl<ABI::Windows::Foundation::Internal::AggregateType<bool, boolean>> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.IReference`1<Boolean>"; }
};
typedef IReference<bool> __FIReference_1_boolean_t;
#define ____FIReference_1_boolean_FWD_DEFINED__
#define __FIReference_1_boolean ABI::Windows::Foundation::__FIReference_1_boolean_t
```
So this might be a bug in WIDL? @jacek @rbernon
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6594#note_85837
--
v3: ntdll/tests: Add tests for completion port signaling.
kernelbase: Set the proper error code in GetQueuedCompletionStatus{Ex} when the handle is closed.
server: Signal completion port waits on handle close.
ntdll: Handle user APCs explicitly in NtRemoveIoCompletionEx().
https://gitlab.winehq.org/wine/wine/-/merge_requests/6630
--
v2: ntdll/tests: Add tests for completion port signaling.
kernelbase: Set the proper error code in GetQueuedCompletionStatus{Ex} when the handle is closed.
server: Signal completion port waits on handle close.
ntdll: Handle user APCs explicitly in NtRemoveIoCompletionEx().
ntdll: Assign completion to thread when wait for completion is satisfied.
ntdll: Introduce a separate per-thread object for internal completion waits.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6630