mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2024-11-21 16:46:54 -08:00
Rebase against bfb845f9fccb2ff5bff0b0ba3238fec7f9f7b710.
This commit is contained in:
parent
4205b76407
commit
9afe850d99
@ -121,7 +121,7 @@ for more details.*
|
||||
* Do not wait for hook thread startup in IDirectInput8::Initialize ([Wine Bug #21403](https://bugs.winehq.org/show_bug.cgi?id=21403))
|
||||
* Enforce that surfaces are flushed after ReleaseDC ([Wine Bug #39465](https://bugs.winehq.org/show_bug.cgi?id=39465))
|
||||
* Ensure NtProtectVirtualMemory and NtCreateSection are on separate pages ([Wine Bug #33162](https://bugs.winehq.org/show_bug.cgi?id=33162))
|
||||
* Ensure X11 input events are handled even without explicit message loop ([Wine Bug #8854](https://bugs.winehq.org/show_bug.cgi?id=8854))
|
||||
* ~~Ensure X11 input events are handled even without explicit message loop~~ ([Wine Bug #8854](https://bugs.winehq.org/show_bug.cgi?id=8854))
|
||||
* Exception during start of fr-043 caused by missing DXTn support ([Wine Bug #37391](https://bugs.winehq.org/show_bug.cgi?id=37391))
|
||||
* Export additional OpenAL32 functions ([Wine Bug #38972](https://bugs.winehq.org/show_bug.cgi?id=38972))
|
||||
* Expose PKEY_AudioEndpoint_PhysicalSpeakers device property in PulseAudio driver
|
||||
@ -155,7 +155,7 @@ for more details.*
|
||||
* Fix implementation of msvcrt.close when stdout == stderr
|
||||
* Fix issues with dragging layers between images in Adobe Photoshop 7.0 ([Wine Bug #12007](https://bugs.winehq.org/show_bug.cgi?id=12007))
|
||||
* Fix missing video introduced by pixelformat changes. ([Wine Bug #36900](https://bugs.winehq.org/show_bug.cgi?id=36900))
|
||||
* Fix multiple issues in widl typelib generation
|
||||
* ~~Fix multiple issues in widl typelib generation~~
|
||||
* Fix multithreading issues with fullscreen clipping ([Wine Bug #38087](https://bugs.winehq.org/show_bug.cgi?id=38087))
|
||||
* Fix possible segfault in pulse_rd_loop of PulseAudio backend
|
||||
* Fix race-condition when threads are killed during shutdown
|
||||
@ -253,7 +253,7 @@ for more details.*
|
||||
* Return proper status codes when NtReadFile/NtWriteFile is called on closed (but not disconnected) pipe
|
||||
* SHFileOperation with FO_MOVE should create new directory on Vista+ ([Wine Bug #25207](https://bugs.winehq.org/show_bug.cgi?id=25207))
|
||||
* SO_CONNECT_TIME returns the appropriate time
|
||||
* Scrolling causes mouse and screen to lock in Call to Power II ([Wine Bug #34559](https://bugs.winehq.org/show_bug.cgi?id=34559))
|
||||
* ~~Scrolling causes mouse and screen to lock in Call to Power II~~ ([Wine Bug #34559](https://bugs.winehq.org/show_bug.cgi?id=34559))
|
||||
* Send WM_PAINT event during dialog creation ([Wine Bug #35652](https://bugs.winehq.org/show_bug.cgi?id=35652))
|
||||
* Set EOF on file which has a memory mapping should fail
|
||||
* Set NamedPipeState to FILE_PIPE_CLOSING_STATE on broken pipe in NtQueryInformationFile
|
||||
|
4
debian/changelog
vendored
4
debian/changelog
vendored
@ -13,6 +13,10 @@ wine-staging (1.7.55) UNRELEASED; urgency=low
|
||||
* Removed various PulseAudio driver patches (accepted upstream).
|
||||
* Removed patch to protect TVM_GETITEM from invalid item pointers (accepted
|
||||
upstream).
|
||||
* Removed patch to ensure that X11 input events handled even without explicit
|
||||
message loop (accepted upstream).
|
||||
* Removed patches to fix multiple issues in widl typelib generator (accepted
|
||||
upstream).
|
||||
-- Sebastian Lackner <sebastian@fds-team.de> Sun, 01 Nov 2015 01:06:20 +0100
|
||||
|
||||
wine-staging (1.7.54) unstable; urgency=low
|
||||
|
@ -1,103 +0,0 @@
|
||||
From 278d2cd8f466e786bed9fa4a621d627c20c83b8d Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Thu, 18 Dec 2014 01:04:34 +0100
|
||||
Subject: dinput: Ensure X11 input events are handled even without explicit
|
||||
message loop. (v4)
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
This commit basically reverts b22ff8018aca7c365e505f1db7732f7050ae259b.
|
||||
|
||||
Michael Müller did a full analysis of this problem, which reveals that the issue
|
||||
is caused by the way user32 and winex11 works. Wine establishes separate X server
|
||||
connections for each thread, so each thread needs to call
|
||||
USER_Driver->pMsgWaitForMultipleObjectsEx from time to time to ensure that events
|
||||
are properly forwarded to the wineserver. On Windows all this isn't necessary
|
||||
because the kernel itself is responsible for generating window events, and there
|
||||
is no need to pass them from the application to the kernel.
|
||||
|
||||
A proper fix would mean to rewrite winex11 to always handle X11 events
|
||||
asynchronously, and without explicit need for a message loop. Since such a rewrite
|
||||
is rather unlikely and will not happen during the near future, adding a workaround
|
||||
till a better solution is found. This workaround will have no disadvantage, except
|
||||
that this isn't a complete fix. Please note that not only hooks are affected by
|
||||
this issue, also *RawInput* functions show the same issue - which is the reason why
|
||||
native dinput will still not work (already tested).
|
||||
|
||||
Since games use very different code in order to query for input events, we have to
|
||||
call __wine_check_for_events from multiple locations in the code. See:
|
||||
* https://bugs.wine-staging.com/show_bug.cgi?id=42
|
||||
* https://bugs.wine-staging.com/show_bug.cgi?id=149
|
||||
---
|
||||
dlls/dinput/device.c | 5 +++--
|
||||
dlls/dinput/keyboard.c | 2 ++
|
||||
dlls/dinput/mouse.c | 2 ++
|
||||
dlls/dinput/tests/mouse.c | 2 ++
|
||||
4 files changed, 9 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/dinput/device.c b/dlls/dinput/device.c
|
||||
index ab43029..501eae8 100644
|
||||
--- a/dlls/dinput/device.c
|
||||
+++ b/dlls/dinput/device.c
|
||||
@@ -1631,8 +1631,9 @@ HRESULT WINAPI IDirectInputDevice2WImpl_Poll(LPDIRECTINPUTDEVICE8W iface)
|
||||
IDirectInputDeviceImpl *This = impl_from_IDirectInputDevice8W(iface);
|
||||
|
||||
if (!This->acquired) return DIERR_NOTACQUIRED;
|
||||
- /* Because wine devices do not need to be polled, just return DI_NOEFFECT */
|
||||
- return DI_NOEFFECT;
|
||||
+
|
||||
+ MsgWaitForMultipleObjectsEx(0, NULL, 0, QS_ALLINPUT, 0);
|
||||
+ return DI_OK;
|
||||
}
|
||||
|
||||
HRESULT WINAPI IDirectInputDevice2AImpl_Poll(LPDIRECTINPUTDEVICE8A iface)
|
||||
diff --git a/dlls/dinput/keyboard.c b/dlls/dinput/keyboard.c
|
||||
index f3ac30e..1e273f6 100644
|
||||
--- a/dlls/dinput/keyboard.c
|
||||
+++ b/dlls/dinput/keyboard.c
|
||||
@@ -335,6 +335,8 @@ static HRESULT WINAPI SysKeyboardWImpl_GetDeviceState(LPDIRECTINPUTDEVICE8W ifac
|
||||
if (len != This->base.data_format.user_df->dwDataSize )
|
||||
return DIERR_INVALIDPARAM;
|
||||
|
||||
+ MsgWaitForMultipleObjectsEx(0, NULL, 0, QS_ALLINPUT, 0);
|
||||
+
|
||||
EnterCriticalSection(&This->base.crit);
|
||||
|
||||
if (TRACE_ON(dinput)) {
|
||||
diff --git a/dlls/dinput/mouse.c b/dlls/dinput/mouse.c
|
||||
index 132efce..8126c1e 100644
|
||||
--- a/dlls/dinput/mouse.c
|
||||
+++ b/dlls/dinput/mouse.c
|
||||
@@ -552,6 +552,8 @@ static HRESULT WINAPI SysMouseWImpl_GetDeviceState(LPDIRECTINPUTDEVICE8W iface,
|
||||
|
||||
if(This->base.acquired == 0) return DIERR_NOTACQUIRED;
|
||||
|
||||
+ MsgWaitForMultipleObjectsEx(0, NULL, 0, QS_ALLINPUT, 0);
|
||||
+
|
||||
TRACE("(this=%p,0x%08x,%p):\n", This, len, ptr);
|
||||
_dump_mouse_state(&This->m_state);
|
||||
|
||||
diff --git a/dlls/dinput/tests/mouse.c b/dlls/dinput/tests/mouse.c
|
||||
index 1a5f4bc..711abcf 100644
|
||||
--- a/dlls/dinput/tests/mouse.c
|
||||
+++ b/dlls/dinput/tests/mouse.c
|
||||
@@ -160,6 +160,7 @@ static void test_acquire(IDirectInputA *pDI, HWND hwnd)
|
||||
IDirectInputDevice_Acquire(pMouse);
|
||||
cnt = 1;
|
||||
hr = IDirectInputDevice_GetDeviceData(pMouse, sizeof(mouse_state), &mouse_state, &cnt, 0);
|
||||
+ todo_wine
|
||||
ok(hr == S_OK && cnt > 0, "GetDeviceData() failed: %08x cnt:%d\n", hr, cnt);
|
||||
|
||||
/* Check for buffer owerflow */
|
||||
@@ -171,6 +172,7 @@ static void test_acquire(IDirectInputA *pDI, HWND hwnd)
|
||||
ok(hr == DI_OK, "GetDeviceData() failed: %08x cnt:%d\n", hr, cnt);
|
||||
cnt = 1;
|
||||
hr = IDirectInputDevice_GetDeviceData(pMouse, sizeof(mouse_state), &mouse_state, &cnt, 0);
|
||||
+ todo_wine
|
||||
ok(hr == DI_OK && cnt == 1, "GetDeviceData() failed: %08x cnt:%d\n", hr, cnt);
|
||||
|
||||
if (pMouse) IUnknown_Release(pMouse);
|
||||
--
|
||||
2.6.1
|
||||
|
@ -1,3 +0,0 @@
|
||||
Fixes: [8854] Ensure X11 input events are handled even without explicit message loop
|
||||
Fixes: [34559] Scrolling causes mouse and screen to lock in Call to Power II
|
||||
Category: stable
|
@ -1,4 +1,4 @@
|
||||
From 446c222f1cda30dd0cc4c36a2feb4256537dec7d Mon Sep 17 00:00:00 2001
|
||||
From 1b7d74bd0325ceb988838324875369cdea6b26d9 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Fri, 16 Oct 2015 02:32:58 +0200
|
||||
Subject: ntdll: Use wrapper functions for syscalls.
|
||||
@ -14,7 +14,7 @@ Subject: ntdll: Use wrapper functions for syscalls.
|
||||
dlls/ntdll/ntdll_misc.h | 17 ++++++
|
||||
dlls/ntdll/om.c | 39 +++++++++-----
|
||||
dlls/ntdll/process.c | 15 ++++--
|
||||
dlls/ntdll/reg.c | 57 +++++++++++++-------
|
||||
dlls/ntdll/reg.c | 60 ++++++++++++++-------
|
||||
dlls/ntdll/resource.c | 16 ++++--
|
||||
dlls/ntdll/sec.c | 9 ++--
|
||||
dlls/ntdll/signal_arm.c | 3 +-
|
||||
@ -26,7 +26,7 @@ Subject: ntdll: Use wrapper functions for syscalls.
|
||||
dlls/ntdll/thread.c | 36 ++++++++-----
|
||||
dlls/ntdll/time.c | 12 +++--
|
||||
dlls/ntdll/virtual.c | 48 +++++++++++------
|
||||
22 files changed, 410 insertions(+), 191 deletions(-)
|
||||
22 files changed, 412 insertions(+), 192 deletions(-)
|
||||
|
||||
diff --git a/dlls/ntdll/atom.c b/dlls/ntdll/atom.c
|
||||
index 304b7f6..222fde9 100644
|
||||
@ -950,7 +950,7 @@ index ca9462a..37c08f1 100644
|
||||
{
|
||||
NTSTATUS status;
|
||||
diff --git a/dlls/ntdll/reg.c b/dlls/ntdll/reg.c
|
||||
index a104c2e..c8d8704 100644
|
||||
index c0fc641..6df88c3 100644
|
||||
--- a/dlls/ntdll/reg.c
|
||||
+++ b/dlls/ntdll/reg.c
|
||||
@@ -51,7 +51,8 @@ WINE_DEFAULT_DEBUG_CHANNEL(reg);
|
||||
@ -963,7 +963,17 @@ index a104c2e..c8d8704 100644
|
||||
ULONG TitleIndex, const UNICODE_STRING *class, ULONG options,
|
||||
PULONG dispos )
|
||||
{
|
||||
@@ -113,7 +114,8 @@ NTSTATUS WINAPI RtlpNtCreateKey( PHANDLE retkey, ACCESS_MASK access, const OBJEC
|
||||
@@ -109,7 +110,8 @@ NTSTATUS WINAPI RtlpNtCreateKey( PHANDLE retkey, ACCESS_MASK access, const OBJEC
|
||||
* NtOpenKeyEx [NTDLL.@]
|
||||
* ZwOpenKeyEx [NTDLL.@]
|
||||
*/
|
||||
-NTSTATUS WINAPI NtOpenKeyEx( PHANDLE retkey, ACCESS_MASK access, const OBJECT_ATTRIBUTES *attr, ULONG options )
|
||||
+DEFINE_SYSCALL_ENTRYPOINT( NtOpenKeyEx, 4 );
|
||||
+NTSTATUS WINAPI SYSCALL(NtOpenKeyEx)( PHANDLE retkey, ACCESS_MASK access, const OBJECT_ATTRIBUTES *attr, ULONG options )
|
||||
{
|
||||
NTSTATUS ret;
|
||||
DWORD len;
|
||||
@@ -146,7 +148,8 @@ NTSTATUS WINAPI NtOpenKeyEx( PHANDLE retkey, ACCESS_MASK access, const OBJECT_AT
|
||||
* IN ACCESS_MASK access
|
||||
* IN POBJECT_ATTRIBUTES attr
|
||||
*/
|
||||
@ -971,9 +981,9 @@ index a104c2e..c8d8704 100644
|
||||
+DEFINE_SYSCALL_ENTRYPOINT( NtOpenKey, 3 );
|
||||
+NTSTATUS WINAPI SYSCALL(NtOpenKey)( PHANDLE retkey, ACCESS_MASK access, const OBJECT_ATTRIBUTES *attr )
|
||||
{
|
||||
NTSTATUS ret;
|
||||
DWORD len;
|
||||
@@ -156,7 +158,8 @@ NTSTATUS WINAPI RtlpNtOpenKey( PHANDLE retkey, ACCESS_MASK access, OBJECT_ATTRIB
|
||||
return NtOpenKeyEx( retkey, access, attr, 0 );
|
||||
}
|
||||
@@ -167,7 +170,8 @@ NTSTATUS WINAPI RtlpNtOpenKey( PHANDLE retkey, ACCESS_MASK access, OBJECT_ATTRIB
|
||||
* NtDeleteKey [NTDLL.@]
|
||||
* ZwDeleteKey [NTDLL.@]
|
||||
*/
|
||||
@ -983,7 +993,7 @@ index a104c2e..c8d8704 100644
|
||||
{
|
||||
NTSTATUS ret;
|
||||
|
||||
@@ -185,7 +188,8 @@ NTSTATUS WINAPI RtlpNtMakeTemporaryKey( HANDLE hkey )
|
||||
@@ -196,7 +200,8 @@ NTSTATUS WINAPI RtlpNtMakeTemporaryKey( HANDLE hkey )
|
||||
* NtDeleteValueKey [NTDLL.@]
|
||||
* ZwDeleteValueKey [NTDLL.@]
|
||||
*/
|
||||
@ -993,7 +1003,7 @@ index a104c2e..c8d8704 100644
|
||||
{
|
||||
NTSTATUS ret;
|
||||
|
||||
@@ -311,7 +315,8 @@ static NTSTATUS enumerate_key( HANDLE handle, int index, KEY_INFORMATION_CLASS i
|
||||
@@ -322,7 +327,8 @@ static NTSTATUS enumerate_key( HANDLE handle, int index, KEY_INFORMATION_CLASS i
|
||||
* NOTES
|
||||
* the name copied into the buffer is NOT 0-terminated
|
||||
*/
|
||||
@ -1003,7 +1013,7 @@ index a104c2e..c8d8704 100644
|
||||
void *info, DWORD length, DWORD *result_len )
|
||||
{
|
||||
/* -1 means query key, so avoid it here */
|
||||
@@ -370,7 +375,8 @@ NTSTATUS WINAPI RtlpNtEnumerateSubKey( HANDLE handle, UNICODE_STRING *out, ULONG
|
||||
@@ -381,7 +387,8 @@ NTSTATUS WINAPI RtlpNtEnumerateSubKey( HANDLE handle, UNICODE_STRING *out, ULONG
|
||||
* NtQueryKey [NTDLL.@]
|
||||
* ZwQueryKey [NTDLL.@]
|
||||
*/
|
||||
@ -1013,7 +1023,7 @@ index a104c2e..c8d8704 100644
|
||||
void *info, DWORD length, DWORD *result_len )
|
||||
{
|
||||
return enumerate_key( handle, -1, info_class, info, length, result_len );
|
||||
@@ -425,7 +431,8 @@ static void copy_key_value_info( KEY_VALUE_INFORMATION_CLASS info_class, void *i
|
||||
@@ -436,7 +443,8 @@ static void copy_key_value_info( KEY_VALUE_INFORMATION_CLASS info_class, void *i
|
||||
* NtEnumerateValueKey [NTDLL.@]
|
||||
* ZwEnumerateValueKey [NTDLL.@]
|
||||
*/
|
||||
@ -1023,7 +1033,7 @@ index a104c2e..c8d8704 100644
|
||||
KEY_VALUE_INFORMATION_CLASS info_class,
|
||||
void *info, DWORD length, DWORD *result_len )
|
||||
{
|
||||
@@ -473,7 +480,8 @@ NTSTATUS WINAPI NtEnumerateValueKey( HANDLE handle, ULONG index,
|
||||
@@ -484,7 +492,8 @@ NTSTATUS WINAPI NtEnumerateValueKey( HANDLE handle, ULONG index,
|
||||
* NOTES
|
||||
* the name in the KeyValueInformation is never set
|
||||
*/
|
||||
@ -1033,7 +1043,7 @@ index a104c2e..c8d8704 100644
|
||||
KEY_VALUE_INFORMATION_CLASS info_class,
|
||||
void *info, DWORD length, DWORD *result_len )
|
||||
{
|
||||
@@ -575,7 +583,8 @@ NTSTATUS WINAPI RtlpNtQueryValueKey( HANDLE handle, ULONG *result_type, PBYTE de
|
||||
@@ -586,7 +595,8 @@ NTSTATUS WINAPI RtlpNtQueryValueKey( HANDLE handle, ULONG *result_type, PBYTE de
|
||||
* NtFlushKey [NTDLL.@]
|
||||
* ZwFlushKey [NTDLL.@]
|
||||
*/
|
||||
@ -1043,7 +1053,7 @@ index a104c2e..c8d8704 100644
|
||||
{
|
||||
NTSTATUS ret;
|
||||
|
||||
@@ -595,7 +604,8 @@ NTSTATUS WINAPI NtFlushKey(HANDLE key)
|
||||
@@ -606,7 +616,8 @@ NTSTATUS WINAPI NtFlushKey(HANDLE key)
|
||||
* NtLoadKey [NTDLL.@]
|
||||
* ZwLoadKey [NTDLL.@]
|
||||
*/
|
||||
@ -1053,7 +1063,7 @@ index a104c2e..c8d8704 100644
|
||||
{
|
||||
NTSTATUS ret;
|
||||
HANDLE hive;
|
||||
@@ -625,7 +635,8 @@ NTSTATUS WINAPI NtLoadKey( const OBJECT_ATTRIBUTES *attr, OBJECT_ATTRIBUTES *fil
|
||||
@@ -636,7 +647,8 @@ NTSTATUS WINAPI NtLoadKey( const OBJECT_ATTRIBUTES *attr, OBJECT_ATTRIBUTES *fil
|
||||
* NtNotifyChangeKey [NTDLL.@]
|
||||
* ZwNotifyChangeKey [NTDLL.@]
|
||||
*/
|
||||
@ -1063,7 +1073,7 @@ index a104c2e..c8d8704 100644
|
||||
IN HANDLE KeyHandle,
|
||||
IN HANDLE Event,
|
||||
IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
|
||||
@@ -680,7 +691,8 @@ NTSTATUS WINAPI NtNotifyChangeKey(
|
||||
@@ -691,7 +703,8 @@ NTSTATUS WINAPI NtNotifyChangeKey(
|
||||
* ZwQueryMultipleValueKey
|
||||
*/
|
||||
|
||||
@ -1073,7 +1083,7 @@ index a104c2e..c8d8704 100644
|
||||
HANDLE KeyHandle,
|
||||
PKEY_MULTIPLE_VALUE_INFORMATION ListOfValuesToQuery,
|
||||
ULONG NumberOfItems,
|
||||
@@ -698,7 +710,8 @@ NTSTATUS WINAPI NtQueryMultipleValueKey(
|
||||
@@ -709,7 +722,8 @@ NTSTATUS WINAPI NtQueryMultipleValueKey(
|
||||
* NtReplaceKey [NTDLL.@]
|
||||
* ZwReplaceKey [NTDLL.@]
|
||||
*/
|
||||
@ -1083,7 +1093,7 @@ index a104c2e..c8d8704 100644
|
||||
IN POBJECT_ATTRIBUTES ObjectAttributes,
|
||||
IN HANDLE Key,
|
||||
IN POBJECT_ATTRIBUTES ReplacedObjectAttributes)
|
||||
@@ -711,7 +724,8 @@ NTSTATUS WINAPI NtReplaceKey(
|
||||
@@ -722,7 +736,8 @@ NTSTATUS WINAPI NtReplaceKey(
|
||||
* NtRestoreKey [NTDLL.@]
|
||||
* ZwRestoreKey [NTDLL.@]
|
||||
*/
|
||||
@ -1093,7 +1103,7 @@ index a104c2e..c8d8704 100644
|
||||
HANDLE KeyHandle,
|
||||
HANDLE FileHandle,
|
||||
ULONG RestoreFlags)
|
||||
@@ -724,7 +738,8 @@ NTSTATUS WINAPI NtRestoreKey(
|
||||
@@ -735,7 +750,8 @@ NTSTATUS WINAPI NtRestoreKey(
|
||||
* NtSaveKey [NTDLL.@]
|
||||
* ZwSaveKey [NTDLL.@]
|
||||
*/
|
||||
@ -1103,7 +1113,7 @@ index a104c2e..c8d8704 100644
|
||||
{
|
||||
NTSTATUS ret;
|
||||
|
||||
@@ -744,7 +759,8 @@ NTSTATUS WINAPI NtSaveKey(IN HANDLE KeyHandle, IN HANDLE FileHandle)
|
||||
@@ -755,7 +771,8 @@ NTSTATUS WINAPI NtSaveKey(IN HANDLE KeyHandle, IN HANDLE FileHandle)
|
||||
* NtSetInformationKey [NTDLL.@]
|
||||
* ZwSetInformationKey [NTDLL.@]
|
||||
*/
|
||||
@ -1113,7 +1123,7 @@ index a104c2e..c8d8704 100644
|
||||
IN HANDLE KeyHandle,
|
||||
IN const int KeyInformationClass,
|
||||
IN PVOID KeyInformation,
|
||||
@@ -764,7 +780,8 @@ NTSTATUS WINAPI NtSetInformationKey(
|
||||
@@ -775,7 +792,8 @@ NTSTATUS WINAPI NtSetInformationKey(
|
||||
* win95 does not care about count for REG_SZ and finds out the len by itself (js)
|
||||
* NT does definitely care (aj)
|
||||
*/
|
||||
@ -1123,7 +1133,7 @@ index a104c2e..c8d8704 100644
|
||||
ULONG type, const void *data, ULONG count )
|
||||
{
|
||||
NTSTATUS ret;
|
||||
@@ -803,7 +820,8 @@ NTSTATUS WINAPI RtlpNtSetValueKey( HANDLE hkey, ULONG type, const void *data,
|
||||
@@ -814,7 +832,8 @@ NTSTATUS WINAPI RtlpNtSetValueKey( HANDLE hkey, ULONG type, const void *data,
|
||||
* NtUnloadKey [NTDLL.@]
|
||||
* ZwUnloadKey [NTDLL.@]
|
||||
*/
|
||||
@ -1133,7 +1143,7 @@ index a104c2e..c8d8704 100644
|
||||
{
|
||||
NTSTATUS ret;
|
||||
|
||||
@@ -1410,7 +1428,8 @@ NTSTATUS WINAPI RtlWriteRegistryValue( ULONG RelativeTo, PCWSTR path, PCWSTR nam
|
||||
@@ -1421,7 +1440,8 @@ NTSTATUS WINAPI RtlWriteRegistryValue( ULONG RelativeTo, PCWSTR path, PCWSTR nam
|
||||
* unless there is some app which explicitly depends on that, there is
|
||||
* no good reason to reproduce that.
|
||||
*/
|
||||
@ -2091,5 +2101,5 @@ index 4d4bc3b..f30d94a 100644
|
||||
struct file_view *view1, *view2;
|
||||
struct stat st1, st2;
|
||||
--
|
||||
2.6.1
|
||||
2.6.2
|
||||
|
||||
|
@ -52,7 +52,7 @@ usage()
|
||||
# Get the upstream commit sha
|
||||
upstream_commit()
|
||||
{
|
||||
echo "60fedd23f95c66f4dce06c5c447de9ec99ebefa5"
|
||||
echo "bfb845f9fccb2ff5bff0b0ba3238fec7f9f7b710"
|
||||
}
|
||||
|
||||
# Show version information
|
||||
@ -125,7 +125,6 @@ patch_enable_all ()
|
||||
enable_ddraw_Write_Vtable="$1"
|
||||
enable_ddraw_ZBufferBitDepths="$1"
|
||||
enable_ddraw_d3d_execute_buffer="$1"
|
||||
enable_dinput_Events="$1"
|
||||
enable_dinput_Initialize="$1"
|
||||
enable_dsound_EAX="$1"
|
||||
enable_dsound_Fast_Mixer="$1"
|
||||
@ -284,7 +283,6 @@ patch_enable_all ()
|
||||
enable_uxtheme_GTK_Theming="$1"
|
||||
enable_version_VerQueryValue="$1"
|
||||
enable_wbemdisp_ISWbemSecurity="$1"
|
||||
enable_widl_Typelib_Generator="$1"
|
||||
enable_wine_inf_Performance="$1"
|
||||
enable_wine_inf_ProfileList_UserSID="$1"
|
||||
enable_wineboot_DriveSerial="$1"
|
||||
@ -474,9 +472,6 @@ patch_enable ()
|
||||
ddraw-d3d_execute_buffer)
|
||||
enable_ddraw_d3d_execute_buffer="$2"
|
||||
;;
|
||||
dinput-Events)
|
||||
enable_dinput_Events="$2"
|
||||
;;
|
||||
dinput-Initialize)
|
||||
enable_dinput_Initialize="$2"
|
||||
;;
|
||||
@ -951,9 +946,6 @@ patch_enable ()
|
||||
wbemdisp-ISWbemSecurity)
|
||||
enable_wbemdisp_ISWbemSecurity="$2"
|
||||
;;
|
||||
widl-Typelib_Generator)
|
||||
enable_widl_Typelib_Generator="$2"
|
||||
;;
|
||||
wine.inf-Performance)
|
||||
enable_wine_inf_Performance="$2"
|
||||
;;
|
||||
@ -1493,9 +1485,6 @@ if test "$enable_category_stable" -eq 1; then
|
||||
if test "$enable_ddraw_EnumSurfaces" -gt 1; then
|
||||
abort "Patchset ddraw-EnumSurfaces disabled, but category-stable depends on that."
|
||||
fi
|
||||
if test "$enable_dinput_Events" -gt 1; then
|
||||
abort "Patchset dinput-Events disabled, but category-stable depends on that."
|
||||
fi
|
||||
if test "$enable_dxgi_GetDesc" -gt 1; then
|
||||
abort "Patchset dxgi-GetDesc disabled, but category-stable depends on that."
|
||||
fi
|
||||
@ -1674,7 +1663,6 @@ if test "$enable_category_stable" -eq 1; then
|
||||
enable_d3dx9_36_UpdateSkinnedMesh=1
|
||||
enable_dbghelp_Debug_Symbols=1
|
||||
enable_ddraw_EnumSurfaces=1
|
||||
enable_dinput_Events=1
|
||||
enable_dxgi_GetDesc=1
|
||||
enable_fonts_Missing_Fonts=1
|
||||
enable_gdi32_MaxPixelFormats=1
|
||||
@ -2823,22 +2811,6 @@ if test "$enable_ddraw_d3d_execute_buffer" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset dinput-Events
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#8854] Ensure X11 input events are handled even without explicit message loop
|
||||
# | * [#34559] Scrolling causes mouse and screen to lock in Call to Power II
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/dinput/device.c, dlls/dinput/keyboard.c, dlls/dinput/mouse.c, dlls/dinput/tests/mouse.c
|
||||
# |
|
||||
if test "$enable_dinput_Events" -eq 1; then
|
||||
patch_apply dinput-Events/0001-dinput-Ensure-X11-input-events-are-handled-even-with.patch
|
||||
(
|
||||
echo '+ { "Sebastian Lackner", "dinput: Ensure X11 input events are handled even without explicit message loop.", 4 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset dinput-Initialize
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
@ -5512,27 +5484,6 @@ if test "$enable_wbemdisp_ISWbemSecurity" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset widl-Typelib_Generator
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/oleaut32/tests/test_tlb.idl, dlls/oleaut32/tests/typelib.c, tools/widl/parser.y, tools/widl/typetree.c,
|
||||
# | tools/widl/write_msft.c
|
||||
# |
|
||||
if test "$enable_widl_Typelib_Generator" -eq 1; then
|
||||
patch_apply widl-Typelib_Generator/0001-widl-Ignore-assignment-of-a-duplicate-uuid.-Resend.patch
|
||||
patch_apply widl-Typelib_Generator/0002-widl-Attribute-uuid-takes-precedence-over-hidden-.-R.patch
|
||||
patch_apply widl-Typelib_Generator/0003-widl-Attributes-of-the-alias-are-supposed-to-replace.patch
|
||||
patch_apply widl-Typelib_Generator/0004-widl-Avoid-generating-duplicate-typelib-entries-for-.patch
|
||||
patch_apply widl-Typelib_Generator/0005-oleaut32-tests-Add-a-bunch-of-new-tests-for-typelib-.patch
|
||||
(
|
||||
echo '+ { "Dmitry Timoshkov", "widl: Ignore assignment of a duplicate uuid. Resend.", 1 },';
|
||||
echo '+ { "Dmitry Timoshkov", "widl: Attribute uuid() takes precedence over '\''hidden'\''. Resend.", 1 },';
|
||||
echo '+ { "Dmitry Timoshkov", "widl: Attributes of the alias are supposed to replace attributes of a tag in the typelib. Resend.", 1 },';
|
||||
echo '+ { "Dmitry Timoshkov", "widl: Avoid generating duplicate typelib entries for structure tag names. Resend.", 1 },';
|
||||
echo '+ { "Dmitry Timoshkov", "oleaut32/tests: Add a bunch of new tests for typelib generation.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset wine.inf-Performance
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
@ -5650,7 +5601,8 @@ fi
|
||||
# | * makedep-PARENTSPEC, ntdll-DllOverrides_WOW64, ntdll-Loader_Machine_Type, ntdll-DllRedirects, wined3d-DXTn
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * configure.ac, dlls/d3d11/device.c, dlls/wined3d-csmt/Makefile.in, dlls/wined3d-csmt/version.rc, dlls/wined3d/resource.c,
|
||||
# | * configure.ac, dlls/d3d11/device.c, dlls/d3d11/texture.c, dlls/d3d8/surface.c, dlls/d3d8/volume.c, dlls/d3d9/surface.c,
|
||||
# | dlls/d3d9/volume.c, dlls/wined3d-csmt/Makefile.in, dlls/wined3d-csmt/version.rc, dlls/wined3d/resource.c,
|
||||
# | dlls/wined3d/wined3d.spec, include/wine/wined3d.h
|
||||
# |
|
||||
if test "$enable_wined3d_CSMT_Helper" -eq 1; then
|
||||
@ -6503,11 +6455,11 @@ fi
|
||||
# | * dlls/ws2_32/socket.c, dlls/ws2_32/tests/sock.c, dlls/ws2_32/ws2_32.spec, include/winsock2.h
|
||||
# |
|
||||
if test "$enable_ws2_32_WSAPoll" -eq 1; then
|
||||
patch_apply ws2_32-WSAPoll/0001-include-Add-stuff-related-to-WSAPoll-try-2.patch
|
||||
patch_apply ws2_32-WSAPoll/0001-include-Remove-check-for-__WINE_WNE_PORT_H-in-winsoc.patch
|
||||
patch_apply ws2_32-WSAPoll/0002-ws2_32-tests-Add-WSAPoll-tests.patch
|
||||
patch_apply ws2_32-WSAPoll/0003-ws2_32-Add-WSAPoll-implementation.patch
|
||||
(
|
||||
echo '+ { "Bruno Jesus", "include: Add stuff related to WSAPoll().", 2 },';
|
||||
echo '+ { "Sebastian Lackner", "include: Remove check for __WINE_WNE_PORT_H in winsock2.h.", 1 },';
|
||||
echo '+ { "Bruno Jesus", "ws2_32/tests: Add WSAPoll() tests.", 1 },';
|
||||
echo '+ { "Bruno Jesus", "ws2_32: Add WSAPoll() implementation.", 1 },';
|
||||
) >> "$patchlist"
|
||||
|
@ -1,58 +0,0 @@
|
||||
From d2819273e30e3f5c89cd2f704ddb4593e3cbb540 Mon Sep 17 00:00:00 2001
|
||||
From: Dmitry Timoshkov <dmitry@baikal.ru>
|
||||
Date: Sat, 31 Oct 2015 14:31:38 +0800
|
||||
Subject: widl: Ignore assignment of a duplicate uuid. Resend.
|
||||
|
||||
MSDN KB285146 article describes this behaviour, and the tests in the last
|
||||
patch confirm that.
|
||||
|
||||
Technically this means that in the construct like
|
||||
|
||||
typedef [uuid(016fe2ec-b2c8-45f8-b23b-39e53a75396d)]
|
||||
enum _d { d1, d2 } d;
|
||||
|
||||
only 'd' gets assigned the specified uuid, '_d' will get uuid offset set
|
||||
to -1 (undefined) which leads to '_d' having NULL_GUID. This matches widl
|
||||
behaviour, in this case widl emits a warning (mentioned in the KB article).
|
||||
|
||||
I decided to leave emitting a warning about a duplicate uuid for enums same
|
||||
way as for structures and unions, this may help recognizing real bugs instead
|
||||
of hiding them (although apparently midl doesn't generate a warning for enums
|
||||
while still ignoring the uuid assignment).
|
||||
|
||||
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
|
||||
---
|
||||
tools/widl/write_msft.c | 14 +++++++++++++-
|
||||
1 file changed, 13 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/tools/widl/write_msft.c b/tools/widl/write_msft.c
|
||||
index 98081f2..0992cf3 100644
|
||||
--- a/tools/widl/write_msft.c
|
||||
+++ b/tools/widl/write_msft.c
|
||||
@@ -494,10 +494,22 @@ static int ctl2_alloc_guid(
|
||||
MSFT_GuidEntry *guid_space;
|
||||
int hash_key;
|
||||
|
||||
+ chat("adding uuid {%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x}\n",
|
||||
+ guid->guid.Data1, guid->guid.Data2, guid->guid.Data3,
|
||||
+ guid->guid.Data4[0], guid->guid.Data4[1], guid->guid.Data4[2], guid->guid.Data4[3],
|
||||
+ guid->guid.Data4[4], guid->guid.Data4[5], guid->guid.Data4[6], guid->guid.Data4[7]);
|
||||
+
|
||||
hash_key = ctl2_hash_guid(&guid->guid);
|
||||
|
||||
offset = ctl2_find_guid(typelib, hash_key, &guid->guid);
|
||||
- if (offset != -1) return offset;
|
||||
+ if (offset != -1)
|
||||
+ {
|
||||
+ warning("duplicate uuid {%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x}\n",
|
||||
+ guid->guid.Data1, guid->guid.Data2, guid->guid.Data3,
|
||||
+ guid->guid.Data4[0], guid->guid.Data4[1], guid->guid.Data4[2], guid->guid.Data4[3],
|
||||
+ guid->guid.Data4[4], guid->guid.Data4[5], guid->guid.Data4[6], guid->guid.Data4[7]);
|
||||
+ return -1;
|
||||
+ }
|
||||
|
||||
offset = ctl2_alloc_segment(typelib, MSFT_SEG_GUID, sizeof(MSFT_GuidEntry), 0);
|
||||
|
||||
--
|
||||
2.6.1
|
||||
|
@ -1,61 +0,0 @@
|
||||
From a9e4b8375ccef3198df93f9021a7262bb5578033 Mon Sep 17 00:00:00 2001
|
||||
From: Dmitry Timoshkov <dmitry@baikal.ru>
|
||||
Date: Sat, 31 Oct 2015 14:31:42 +0800
|
||||
Subject: widl: Attribute uuid() takes precedence over 'hidden'. Resend.
|
||||
|
||||
This means that definition like
|
||||
|
||||
[uuid(016fe2ec-b2c8-45f8-b23b-39e53a753900),hidden]
|
||||
typedef struct _m { int m1; } m;
|
||||
|
||||
makes both '_m' and 'm' appear in the typelib, and the tests confirm that.
|
||||
|
||||
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
|
||||
---
|
||||
tools/widl/parser.y | 15 ++++++---------
|
||||
1 file changed, 6 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/tools/widl/parser.y b/tools/widl/parser.y
|
||||
index b42b4a2..db5897e 100644
|
||||
--- a/tools/widl/parser.y
|
||||
+++ b/tools/widl/parser.y
|
||||
@@ -123,7 +123,6 @@ static statement_t *make_statement_importlib(const char *str);
|
||||
static statement_t *make_statement_module(type_t *type);
|
||||
static statement_t *make_statement_typedef(var_list_t *names);
|
||||
static statement_t *make_statement_import(const char *str);
|
||||
-static statement_t *make_statement_typedef(var_list_t *names);
|
||||
static statement_list_t *append_statement(statement_list_t *list, statement_t *stmt);
|
||||
static statement_list_t *append_statements(statement_list_t *, statement_list_t *);
|
||||
static attr_list_t *append_attribs(attr_list_t *, attr_list_t *);
|
||||
@@ -1881,22 +1880,20 @@ static type_t *reg_typedefs(decl_spec_t *decl_spec, declarator_list_t *decls, at
|
||||
const declarator_t *decl;
|
||||
type_t *type = decl_spec->type;
|
||||
|
||||
+ if (is_attr(attrs, ATTR_UUID) && !is_attr(attrs, ATTR_PUBLIC))
|
||||
+ attrs = append_attr( attrs, make_attr(ATTR_PUBLIC) );
|
||||
+
|
||||
/* We must generate names for tagless enum, struct or union.
|
||||
Typedef-ing a tagless enum, struct or union means we want the typedef
|
||||
to be included in a library hence the public attribute. */
|
||||
if ((type_get_type_detect_alias(type) == TYPE_ENUM ||
|
||||
type_get_type_detect_alias(type) == TYPE_STRUCT ||
|
||||
type_get_type_detect_alias(type) == TYPE_UNION ||
|
||||
- type_get_type_detect_alias(type) == TYPE_ENCAPSULATED_UNION) &&
|
||||
- !type->name)
|
||||
+ type_get_type_detect_alias(type) == TYPE_ENCAPSULATED_UNION))
|
||||
{
|
||||
- if (! is_attr(attrs, ATTR_PUBLIC) && ! is_attr (attrs, ATTR_HIDDEN))
|
||||
- attrs = append_attr( attrs, make_attr(ATTR_PUBLIC) );
|
||||
- type->name = gen_name();
|
||||
+ if (!type->name)
|
||||
+ type->name = gen_name();
|
||||
}
|
||||
- else if (is_attr(attrs, ATTR_UUID) && !is_attr(attrs, ATTR_PUBLIC)
|
||||
- && !is_attr(attrs, ATTR_HIDDEN))
|
||||
- attrs = append_attr( attrs, make_attr(ATTR_PUBLIC) );
|
||||
|
||||
LIST_FOR_EACH_ENTRY( decl, decls, const declarator_t, entry )
|
||||
{
|
||||
--
|
||||
2.6.1
|
||||
|
@ -1,68 +0,0 @@
|
||||
From 6efefd95152a5dd8f05c95558c783e42562d4bf1 Mon Sep 17 00:00:00 2001
|
||||
From: Dmitry Timoshkov <dmitry@baikal.ru>
|
||||
Date: Sat, 31 Oct 2015 14:31:47 +0800
|
||||
Subject: widl: Attributes of the alias are supposed to replace attributes of a
|
||||
tag in the typelib. Resend.
|
||||
|
||||
I have limited this functionality only to typedefs for structures, unions
|
||||
and enums since I have the tests only for this types.
|
||||
|
||||
I've added the tests for version() and helpcontext() attributes suggested
|
||||
by Huw to the last patch with tests to make this change more convincing.
|
||||
|
||||
In practice this means that the difinitions in an .idl like
|
||||
|
||||
[uuid(016fe2ec-b2c8-45f8-b23b-39e53a753901),restricted]
|
||||
struct _n { int n1; };
|
||||
[uuid(016fe2ec-b2c8-45f8-b23b-39e53a753902),hidden]
|
||||
typedef struct _n n;
|
||||
[uuid(016fe2ec-b2c8-45f8-b23b-39e53a753903)]
|
||||
typedef struct _n nn;
|
||||
|
||||
lead to the following typelib records:
|
||||
|
||||
{
|
||||
"_n",
|
||||
"{016fe2ec-b2c8-45f8-b23b-39e53a753903}",
|
||||
/*kind*/ TKIND_RECORD, /*flags*/ 0, /*align*/ 4, /*size*/ sizeof(struct _n),
|
||||
/*#vtbl*/ 0, /*#func*/ 0
|
||||
},
|
||||
{
|
||||
"n",
|
||||
"{016fe2ec-b2c8-45f8-b23b-39e53a753902}",
|
||||
/*kind*/ TKIND_ALIAS, /*flags*/ TYPEFLAG_FHIDDEN, /*align*/ 4, /*size*/ 4,
|
||||
/*#vtbl*/ 0, /*#func*/ 0
|
||||
},
|
||||
{
|
||||
"nn",
|
||||
"{00000000-0000-0000-0000-000000000000}",
|
||||
/*kind*/ TKIND_ALIAS, /*flags*/ 0, /*align*/ 4, /*size*/ 4,
|
||||
/*#vtbl*/ 0, /*#func*/ 0
|
||||
}
|
||||
|
||||
and the tests confirm that. But this change is very specific to typelibs
|
||||
and breaks header generation, thus it's limited only to the typelib mode.
|
||||
|
||||
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
|
||||
---
|
||||
tools/widl/parser.y | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/tools/widl/parser.y b/tools/widl/parser.y
|
||||
index db5897e..4309833 100644
|
||||
--- a/tools/widl/parser.y
|
||||
+++ b/tools/widl/parser.y
|
||||
@@ -1893,6 +1893,10 @@ static type_t *reg_typedefs(decl_spec_t *decl_spec, declarator_list_t *decls, at
|
||||
{
|
||||
if (!type->name)
|
||||
type->name = gen_name();
|
||||
+
|
||||
+ /* replace existing attributes when generating a typelib */
|
||||
+ if (do_typelib)
|
||||
+ type->attrs = attrs;
|
||||
}
|
||||
|
||||
LIST_FOR_EACH_ENTRY( decl, decls, const declarator_t, entry )
|
||||
--
|
||||
2.6.1
|
||||
|
@ -1,38 +0,0 @@
|
||||
From a0a2310c05b8205b67a9e4aeaa6bb98d68746b52 Mon Sep 17 00:00:00 2001
|
||||
From: Dmitry Timoshkov <dmitry@baikal.ru>
|
||||
Date: Sat, 31 Oct 2015 14:31:51 +0800
|
||||
Subject: widl: Avoid generating duplicate typelib entries for structure tag
|
||||
names. Resend.
|
||||
|
||||
I've added the tests to show how it's supposed to behave. Without this
|
||||
patch a generated typelib has numerous duplicate '_n' entries.
|
||||
|
||||
This is merely an optimization for the typelib generator, but this change
|
||||
breaks header generation, thus it's limited only to the typelib mode.
|
||||
|
||||
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
|
||||
---
|
||||
tools/widl/typetree.c | 7 ++++++-
|
||||
1 file changed, 6 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/tools/widl/typetree.c b/tools/widl/typetree.c
|
||||
index 5925d40..e316614 100644
|
||||
--- a/tools/widl/typetree.c
|
||||
+++ b/tools/widl/typetree.c
|
||||
@@ -300,7 +300,12 @@ type_t *type_new_enum(const char *name, struct namespace *namespace, int defined
|
||||
type_t *type_new_struct(char *name, struct namespace *namespace, int defined, var_list_t *fields)
|
||||
{
|
||||
type_t *tag_type = name ? find_type(name, namespace, tsSTRUCT) : NULL;
|
||||
- type_t *t = make_type(TYPE_STRUCT);
|
||||
+ type_t *t;
|
||||
+
|
||||
+ /* avoid creating duplicate typelib type entries */
|
||||
+ if (tag_type && do_typelib) return tag_type;
|
||||
+
|
||||
+ t = make_type(TYPE_STRUCT);
|
||||
t->name = name;
|
||||
t->namespace = namespace;
|
||||
|
||||
--
|
||||
2.6.1
|
||||
|
@ -1,491 +0,0 @@
|
||||
From e8c77ae1630f628cf2d43049399ca99b24514548 Mon Sep 17 00:00:00 2001
|
||||
From: Dmitry Timoshkov <dmitry@baikal.ru>
|
||||
Date: Sat, 31 Oct 2015 14:31:55 +0800
|
||||
Subject: oleaut32/tests: Add a bunch of new tests for typelib generation.
|
||||
|
||||
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
|
||||
---
|
||||
dlls/oleaut32/tests/test_tlb.idl | 50 +++++++++
|
||||
dlls/oleaut32/tests/typelib.c | 237 +++++++++++++++++++++++++++++++++++----
|
||||
2 files changed, 265 insertions(+), 22 deletions(-)
|
||||
|
||||
diff --git a/dlls/oleaut32/tests/test_tlb.idl b/dlls/oleaut32/tests/test_tlb.idl
|
||||
index 8275c37..7ae5565 100644
|
||||
--- a/dlls/oleaut32/tests/test_tlb.idl
|
||||
+++ b/dlls/oleaut32/tests/test_tlb.idl
|
||||
@@ -2,6 +2,7 @@
|
||||
* ITypeLib test IDL - we dump it and compare results in typelib.c
|
||||
*
|
||||
* Copyright 2007 Google (Mikolaj Zalewski)
|
||||
+ * Copyright 2015 Dmitry Timoshkov
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
@@ -28,6 +29,34 @@ library Test
|
||||
{
|
||||
importlib("stdole2.tlb");
|
||||
|
||||
+ interface child_iface;
|
||||
+ interface parent_iface;
|
||||
+
|
||||
+ [uuid(b14b6bb5-904e-4ff9-b247-bd361f7aa001)]
|
||||
+ interface parent_iface : IUnknown
|
||||
+ {
|
||||
+ HRESULT test1([out,retval] child_iface **);
|
||||
+ }
|
||||
+ [uuid(b14b6bb5-904e-4ff9-b247-bd361f7aa002)]
|
||||
+ interface child_iface: parent_iface
|
||||
+ {
|
||||
+ HRESULT test2(void);
|
||||
+ }
|
||||
+
|
||||
+ [uuid(016fe2ec-b2c8-45f8-b23b-39e53a753901),restricted]
|
||||
+ struct _n { int n1; };
|
||||
+ [uuid(016fe2ec-b2c8-45f8-b23b-39e53a753902),hidden]
|
||||
+ typedef struct _n n;
|
||||
+ [uuid(016fe2ec-b2c8-45f8-b23b-39e53a753903),version(1.2),helpcontext(3)]
|
||||
+ typedef struct _n nn;
|
||||
+
|
||||
+ [uuid(016fe2ec-b2c8-45f8-b23b-39e53a753904),restricted]
|
||||
+ struct _m { int m1; };
|
||||
+ [uuid(016fe2ec-b2c8-45f8-b23b-39e53a753905),hidden,version(1.2)]
|
||||
+ typedef struct _m m;
|
||||
+ [uuid(016fe2ec-b2c8-45f8-b23b-39e53a753906),helpcontext(3)]
|
||||
+ typedef struct _m mm;
|
||||
+
|
||||
[dual,uuid(b14b6bb5-904e-4ff9-b247-bd361f7aaedd)]
|
||||
interface IDualIface : IDispatch
|
||||
{
|
||||
@@ -59,6 +88,9 @@ library Test
|
||||
BSTR bstr;
|
||||
};
|
||||
|
||||
+ typedef [uuid(016fe2ec-b2c8-45f8-b23b-39e53a75396a),restricted]
|
||||
+ int t_INT;
|
||||
+
|
||||
typedef [public] enum _a { a1, a2 } a;
|
||||
typedef [public] enum aa { aa1, aa2 } aa;
|
||||
typedef enum _b { b1, b2 } b;
|
||||
@@ -66,11 +98,29 @@ library Test
|
||||
typedef [uuid(016fe2ec-b2c8-45f8-b23b-39e53a75396b)] enum _c { c1, c2 } c;
|
||||
typedef [uuid(016fe2ec-b2c8-45f8-b23b-39e53a75396c)] enum cc { cc1, cc2 } cc;
|
||||
|
||||
+ typedef [uuid(016fe2ec-b2c8-45f8-b23b-39e53a75396d),restricted,hidden]
|
||||
+ enum _d { d1, d2 } d;
|
||||
+ typedef [uuid(016fe2ec-b2c8-45f8-b23b-39e53a75396e),restricted,hidden]
|
||||
+ enum dd { dd1, dd2 } dd;
|
||||
+
|
||||
+ typedef [uuid(016fe2ec-b2c8-45f8-b23b-39e53a753970),restricted,hidden]
|
||||
+ struct _e { int e1; } e;
|
||||
+ typedef [uuid(016fe2ec-b2c8-45f8-b23b-39e53a753971),restricted,hidden]
|
||||
+ struct ee { int ee1; } ee;
|
||||
+
|
||||
+ typedef [uuid(016fe2ec-b2c8-45f8-b23b-39e53a753972),restricted,hidden]
|
||||
+ union _f { int f1; BSTR *f2; } f;
|
||||
+ typedef [uuid(016fe2ec-b2c8-45f8-b23b-39e53a753973),restricted,hidden]
|
||||
+ union ff { int ff1; BSTR *ff2; } ff;
|
||||
+
|
||||
[uuid(ec5dfcd6-eeb0-4cd6-b51e-8030e1dac00a)]
|
||||
interface ITestIface : IDispatch
|
||||
{
|
||||
HRESULT test1(a value);
|
||||
HRESULT test2(b value);
|
||||
HRESULT test3(c value);
|
||||
+ HRESULT test4(d value);
|
||||
+ HRESULT test5(e value);
|
||||
+ HRESULT test6(f value);
|
||||
}
|
||||
}
|
||||
diff --git a/dlls/oleaut32/tests/typelib.c b/dlls/oleaut32/tests/typelib.c
|
||||
index 1d13b89..977d7a8 100644
|
||||
--- a/dlls/oleaut32/tests/typelib.c
|
||||
+++ b/dlls/oleaut32/tests/typelib.c
|
||||
@@ -2,7 +2,7 @@
|
||||
* ITypeLib and ITypeInfo test
|
||||
*
|
||||
* Copyright 2004 Jacek Caban
|
||||
- * Copyright 2006 Dmitry Timoshkov
|
||||
+ * Copyright 2006,2015 Dmitry Timoshkov
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
@@ -3862,6 +3862,10 @@ static char *print_size(BSTR name, TYPEATTR *attr)
|
||||
sprintf(buf, "sizeof(struct %s)", dump_string(name));
|
||||
break;
|
||||
|
||||
+ case TKIND_UNION:
|
||||
+ sprintf(buf, "sizeof(union %s)", dump_string(name));
|
||||
+ break;
|
||||
+
|
||||
case TKIND_ENUM:
|
||||
case TKIND_ALIAS:
|
||||
sprintf(buf, "4");
|
||||
@@ -3971,9 +3975,10 @@ static void test_dump_typelib(const char *name)
|
||||
{
|
||||
TYPEATTR *attr;
|
||||
BSTR name;
|
||||
+ DWORD help_ctx;
|
||||
int f = 0;
|
||||
|
||||
- OLE_CHECK(ITypeLib_GetDocumentation(lib, i, &name, NULL, NULL, NULL));
|
||||
+ OLE_CHECK(ITypeLib_GetDocumentation(lib, i, &name, NULL, &help_ctx, NULL));
|
||||
printf("{\n"
|
||||
" \"%s\",\n", dump_string(name));
|
||||
|
||||
@@ -3983,10 +3988,11 @@ static void test_dump_typelib(const char *name)
|
||||
printf(" \"%s\",\n", wine_dbgstr_guid(&attr->guid));
|
||||
|
||||
printf(" /*kind*/ %s, /*flags*/ %s, /*align*/ %d, /*size*/ %s,\n"
|
||||
- " /*#vtbl*/ %d, /*#func*/ %d",
|
||||
+ " /*helpctx*/ 0x%04x, /*version*/ 0x%08x, /*#vtbl*/ %d, /*#func*/ %d",
|
||||
map_value(attr->typekind, tkind_map), dump_type_flags(attr->wTypeFlags),
|
||||
- attr->cbAlignment, print_size(name, attr), attr->cbSizeVft/sizeof(void*),
|
||||
- attr->cFuncs);
|
||||
+ attr->cbAlignment, print_size(name, attr),
|
||||
+ help_ctx, MAKELONG(attr->wMinorVerNum, attr->wMajorVerNum),
|
||||
+ attr->cbSizeVft/sizeof(void*), attr->cFuncs);
|
||||
|
||||
if (attr->cFuncs) printf(",\n {\n");
|
||||
else printf("\n");
|
||||
@@ -4072,6 +4078,8 @@ typedef struct _type_info
|
||||
WORD wTypeFlags;
|
||||
USHORT cbAlignment;
|
||||
USHORT cbSizeInstance;
|
||||
+ USHORT help_ctx;
|
||||
+ DWORD version;
|
||||
USHORT cbSizeVft;
|
||||
USHORT cFuncs;
|
||||
function_info funcs[20];
|
||||
@@ -4080,10 +4088,88 @@ typedef struct _type_info
|
||||
static const type_info info[] = {
|
||||
/*** Autogenerated data. Do not edit, change the generator above instead. ***/
|
||||
{
|
||||
+ "parent_iface",
|
||||
+ "{b14b6bb5-904e-4ff9-b247-bd361f7aa001}",
|
||||
+ /*kind*/ TKIND_INTERFACE, /*flags*/ 0, /*align*/ 4, /*size*/ sizeof(parent_iface*),
|
||||
+ /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 4, /*#func*/ 1,
|
||||
+ {
|
||||
+ {
|
||||
+ /*id*/ 0x60010000, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
|
||||
+ /*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 3, /*#scodes*/ 0, /*flags*/ 0,
|
||||
+ {VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */
|
||||
+ { /* params */
|
||||
+ {VT_PTR, -1, PARAMFLAG_FOUT|PARAMFLAG_FRETVAL},
|
||||
+ {-1, 0, 0}
|
||||
+ },
|
||||
+ { /* names */
|
||||
+ "test1",
|
||||
+ "__MIDL__parent_iface0000",
|
||||
+ NULL,
|
||||
+ },
|
||||
+ },
|
||||
+ }
|
||||
+},
|
||||
+{
|
||||
+ "child_iface",
|
||||
+ "{b14b6bb5-904e-4ff9-b247-bd361f7aa002}",
|
||||
+ /*kind*/ TKIND_INTERFACE, /*flags*/ 0, /*align*/ 4, /*size*/ sizeof(child_iface*),
|
||||
+ /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 5, /*#func*/ 1,
|
||||
+ {
|
||||
+ {
|
||||
+ /*id*/ 0x60020000, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
|
||||
+ /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 4, /*#scodes*/ 0, /*flags*/ 0,
|
||||
+ {VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */
|
||||
+ { /* params */
|
||||
+ {-1, 0, 0}
|
||||
+ },
|
||||
+ { /* names */
|
||||
+ "test2",
|
||||
+ NULL,
|
||||
+ },
|
||||
+ },
|
||||
+ }
|
||||
+},
|
||||
+{
|
||||
+ "_n",
|
||||
+ "{016fe2ec-b2c8-45f8-b23b-39e53a753903}",
|
||||
+ /*kind*/ TKIND_RECORD, /*flags*/ 0, /*align*/ 4, /*size*/ sizeof(struct _n),
|
||||
+ /*helpctx*/ 0x0003, /*version*/ 0x00010002, /*#vtbl*/ 0, /*#func*/ 0
|
||||
+},
|
||||
+{
|
||||
+ "n",
|
||||
+ "{016fe2ec-b2c8-45f8-b23b-39e53a753902}",
|
||||
+ /*kind*/ TKIND_ALIAS, /*flags*/ TYPEFLAG_FHIDDEN, /*align*/ 4, /*size*/ 4,
|
||||
+ /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0
|
||||
+},
|
||||
+{
|
||||
+ "nn",
|
||||
+ "{00000000-0000-0000-0000-000000000000}",
|
||||
+ /*kind*/ TKIND_ALIAS, /*flags*/ 0, /*align*/ 4, /*size*/ 4,
|
||||
+ /*helpctx*/ 0x0003, /*version*/ 0x00010002, /*#vtbl*/ 0, /*#func*/ 0
|
||||
+},
|
||||
+{
|
||||
+ "_m",
|
||||
+ "{016fe2ec-b2c8-45f8-b23b-39e53a753906}",
|
||||
+ /*kind*/ TKIND_RECORD, /*flags*/ 0, /*align*/ 4, /*size*/ sizeof(struct _m),
|
||||
+ /*helpctx*/ 0x0003, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0
|
||||
+},
|
||||
+{
|
||||
+ "m",
|
||||
+ "{016fe2ec-b2c8-45f8-b23b-39e53a753905}",
|
||||
+ /*kind*/ TKIND_ALIAS, /*flags*/ TYPEFLAG_FHIDDEN, /*align*/ 4, /*size*/ 4,
|
||||
+ /*helpctx*/ 0x0000, /*version*/ 0x00010002, /*#vtbl*/ 0, /*#func*/ 0
|
||||
+},
|
||||
+{
|
||||
+ "mm",
|
||||
+ "{00000000-0000-0000-0000-000000000000}",
|
||||
+ /*kind*/ TKIND_ALIAS, /*flags*/ 0, /*align*/ 4, /*size*/ 4,
|
||||
+ /*helpctx*/ 0x0003, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0
|
||||
+},
|
||||
+{
|
||||
"IDualIface",
|
||||
"{b14b6bb5-904e-4ff9-b247-bd361f7aaedd}",
|
||||
/*kind*/ TKIND_DISPATCH, /*flags*/ TYPEFLAG_FDISPATCHABLE|TYPEFLAG_FDUAL, /*align*/ 4, /*size*/ sizeof(IDualIface*),
|
||||
- /*#vtbl*/ 7, /*#func*/ 8,
|
||||
+ /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 7, /*#func*/ 8,
|
||||
{
|
||||
{
|
||||
/*id*/ 0x60000000, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
|
||||
@@ -4225,7 +4311,7 @@ static const type_info info[] = {
|
||||
"ISimpleIface",
|
||||
"{ec5dfcd6-eeb0-4cd6-b51e-8030e1dac009}",
|
||||
/*kind*/ TKIND_INTERFACE, /*flags*/ TYPEFLAG_FDISPATCHABLE, /*align*/ 4, /*size*/ sizeof(ISimpleIface*),
|
||||
- /*#vtbl*/ 8, /*#func*/ 1,
|
||||
+ /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 8, /*#func*/ 1,
|
||||
{
|
||||
{
|
||||
/*id*/ 0x60020000, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
|
||||
@@ -4245,67 +4331,127 @@ static const type_info info[] = {
|
||||
"test_struct",
|
||||
"{4029f190-ca4a-4611-aeb9-673983cb96dd}",
|
||||
/*kind*/ TKIND_RECORD, /*flags*/ 0, /*align*/ 4, /*size*/ sizeof(struct test_struct),
|
||||
- /*#vtbl*/ 0, /*#func*/ 0
|
||||
+ /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0
|
||||
},
|
||||
{
|
||||
"test_struct2",
|
||||
"{4029f190-ca4a-4611-aeb9-673983cb96de}",
|
||||
/*kind*/ TKIND_RECORD, /*flags*/ 0, /*align*/ 4, /*size*/ sizeof(struct test_struct2),
|
||||
- /*#vtbl*/ 0, /*#func*/ 0
|
||||
+ /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0
|
||||
+},
|
||||
+{
|
||||
+ "t_INT",
|
||||
+ "{016fe2ec-b2c8-45f8-b23b-39e53a75396a}",
|
||||
+ /*kind*/ TKIND_ALIAS, /*flags*/ TYPEFLAG_FRESTRICTED, /*align*/ 4, /*size*/ 4,
|
||||
+ /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0
|
||||
},
|
||||
{
|
||||
"a",
|
||||
"{00000000-0000-0000-0000-000000000000}",
|
||||
/*kind*/ TKIND_ALIAS, /*flags*/ 0, /*align*/ 4, /*size*/ 4,
|
||||
- /*#vtbl*/ 0, /*#func*/ 0
|
||||
+ /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0
|
||||
},
|
||||
{
|
||||
"_a",
|
||||
"{00000000-0000-0000-0000-000000000000}",
|
||||
/*kind*/ TKIND_ENUM, /*flags*/ 0, /*align*/ 4, /*size*/ 4,
|
||||
- /*#vtbl*/ 0, /*#func*/ 0
|
||||
+ /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0
|
||||
},
|
||||
{
|
||||
"aa",
|
||||
"{00000000-0000-0000-0000-000000000000}",
|
||||
/*kind*/ TKIND_ENUM, /*flags*/ 0, /*align*/ 4, /*size*/ 4,
|
||||
- /*#vtbl*/ 0, /*#func*/ 0
|
||||
+ /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0
|
||||
},
|
||||
{
|
||||
"_b",
|
||||
"{00000000-0000-0000-0000-000000000000}",
|
||||
/*kind*/ TKIND_ENUM, /*flags*/ 0, /*align*/ 4, /*size*/ 4,
|
||||
- /*#vtbl*/ 0, /*#func*/ 0
|
||||
+ /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0
|
||||
},
|
||||
{
|
||||
"bb",
|
||||
"{00000000-0000-0000-0000-000000000000}",
|
||||
/*kind*/ TKIND_ENUM, /*flags*/ 0, /*align*/ 4, /*size*/ 4,
|
||||
- /*#vtbl*/ 0, /*#func*/ 0
|
||||
+ /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0
|
||||
},
|
||||
{
|
||||
"c",
|
||||
"{016fe2ec-b2c8-45f8-b23b-39e53a75396b}",
|
||||
/*kind*/ TKIND_ALIAS, /*flags*/ 0, /*align*/ 4, /*size*/ 4,
|
||||
- /*#vtbl*/ 0, /*#func*/ 0
|
||||
+ /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0
|
||||
},
|
||||
{
|
||||
"_c",
|
||||
"{00000000-0000-0000-0000-000000000000}",
|
||||
/*kind*/ TKIND_ENUM, /*flags*/ 0, /*align*/ 4, /*size*/ 4,
|
||||
- /*#vtbl*/ 0, /*#func*/ 0
|
||||
+ /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0
|
||||
},
|
||||
{
|
||||
"cc",
|
||||
- "{00000000-0000-0000-0000-000000000000}",
|
||||
+ "{016fe2ec-b2c8-45f8-b23b-39e53a75396c}",
|
||||
/*kind*/ TKIND_ENUM, /*flags*/ 0, /*align*/ 4, /*size*/ 4,
|
||||
- /*#vtbl*/ 0, /*#func*/ 0
|
||||
+ /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0
|
||||
+},
|
||||
+{
|
||||
+ "d",
|
||||
+ "{016fe2ec-b2c8-45f8-b23b-39e53a75396d}",
|
||||
+ /*kind*/ TKIND_ALIAS, /*flags*/ TYPEFLAG_FRESTRICTED|TYPEFLAG_FHIDDEN, /*align*/ 4, /*size*/ 4,
|
||||
+ /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0
|
||||
+},
|
||||
+{
|
||||
+ "_d",
|
||||
+ "{00000000-0000-0000-0000-000000000000}",
|
||||
+ /*kind*/ TKIND_ENUM, /*flags*/ TYPEFLAG_FRESTRICTED|TYPEFLAG_FHIDDEN, /*align*/ 4, /*size*/ 4,
|
||||
+ /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0
|
||||
+},
|
||||
+{
|
||||
+ "dd",
|
||||
+ "{016fe2ec-b2c8-45f8-b23b-39e53a75396e}",
|
||||
+ /*kind*/ TKIND_ENUM, /*flags*/ TYPEFLAG_FRESTRICTED|TYPEFLAG_FHIDDEN, /*align*/ 4, /*size*/ 4,
|
||||
+ /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0
|
||||
+},
|
||||
+{
|
||||
+ "e",
|
||||
+ "{016fe2ec-b2c8-45f8-b23b-39e53a753970}",
|
||||
+ /*kind*/ TKIND_ALIAS, /*flags*/ TYPEFLAG_FRESTRICTED|TYPEFLAG_FHIDDEN, /*align*/ 4, /*size*/ 4,
|
||||
+ /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0
|
||||
+},
|
||||
+{
|
||||
+ "_e",
|
||||
+ "{00000000-0000-0000-0000-000000000000}",
|
||||
+ /*kind*/ TKIND_RECORD, /*flags*/ TYPEFLAG_FRESTRICTED|TYPEFLAG_FHIDDEN, /*align*/ 4, /*size*/ sizeof(struct _e),
|
||||
+ /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0
|
||||
+},
|
||||
+{
|
||||
+ "ee",
|
||||
+ "{016fe2ec-b2c8-45f8-b23b-39e53a753971}",
|
||||
+ /*kind*/ TKIND_RECORD, /*flags*/ TYPEFLAG_FRESTRICTED|TYPEFLAG_FHIDDEN, /*align*/ 4, /*size*/ sizeof(struct ee),
|
||||
+ /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0
|
||||
+},
|
||||
+{
|
||||
+ "f",
|
||||
+ "{016fe2ec-b2c8-45f8-b23b-39e53a753972}",
|
||||
+ /*kind*/ TKIND_ALIAS, /*flags*/ TYPEFLAG_FRESTRICTED|TYPEFLAG_FHIDDEN, /*align*/ 4, /*size*/ 4,
|
||||
+ /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0
|
||||
+},
|
||||
+{
|
||||
+ "_f",
|
||||
+ "{00000000-0000-0000-0000-000000000000}",
|
||||
+ /*kind*/ TKIND_UNION, /*flags*/ TYPEFLAG_FRESTRICTED|TYPEFLAG_FHIDDEN, /*align*/ 4, /*size*/ sizeof(union _f),
|
||||
+ /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0
|
||||
+},
|
||||
+{
|
||||
+ "ff",
|
||||
+ "{016fe2ec-b2c8-45f8-b23b-39e53a753973}",
|
||||
+ /*kind*/ TKIND_UNION, /*flags*/ TYPEFLAG_FRESTRICTED|TYPEFLAG_FHIDDEN, /*align*/ 4, /*size*/ sizeof(union ff),
|
||||
+ /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0
|
||||
},
|
||||
{
|
||||
"ITestIface",
|
||||
"{ec5dfcd6-eeb0-4cd6-b51e-8030e1dac00a}",
|
||||
/*kind*/ TKIND_INTERFACE, /*flags*/ TYPEFLAG_FDISPATCHABLE, /*align*/ 4, /*size*/ sizeof(ITestIface*),
|
||||
- /*#vtbl*/ 10, /*#func*/ 3,
|
||||
+ /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 13, /*#func*/ 6,
|
||||
{
|
||||
{
|
||||
/*id*/ 0x60020000, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
|
||||
@@ -4349,6 +4495,48 @@ static const type_info info[] = {
|
||||
NULL,
|
||||
},
|
||||
},
|
||||
+ {
|
||||
+ /*id*/ 0x60020003, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
|
||||
+ /*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 10, /*#scodes*/ 0, /*flags*/ 0,
|
||||
+ {VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */
|
||||
+ { /* params */
|
||||
+ {VT_USERDEFINED, TKIND_ALIAS, PARAMFLAG_NONE},
|
||||
+ {-1, 0, 0}
|
||||
+ },
|
||||
+ { /* names */
|
||||
+ "test4",
|
||||
+ "value",
|
||||
+ NULL,
|
||||
+ },
|
||||
+ },
|
||||
+ {
|
||||
+ /*id*/ 0x60020004, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
|
||||
+ /*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 11, /*#scodes*/ 0, /*flags*/ 0,
|
||||
+ {VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */
|
||||
+ { /* params */
|
||||
+ {VT_USERDEFINED, TKIND_ALIAS, PARAMFLAG_NONE},
|
||||
+ {-1, 0, 0}
|
||||
+ },
|
||||
+ { /* names */
|
||||
+ "test5",
|
||||
+ "value",
|
||||
+ NULL,
|
||||
+ },
|
||||
+ },
|
||||
+ {
|
||||
+ /*id*/ 0x60020005, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
|
||||
+ /*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 12, /*#scodes*/ 0, /*flags*/ 0,
|
||||
+ {VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */
|
||||
+ { /* params */
|
||||
+ {VT_USERDEFINED, TKIND_ALIAS, PARAMFLAG_NONE},
|
||||
+ {-1, 0, 0}
|
||||
+ },
|
||||
+ { /* names */
|
||||
+ "test6",
|
||||
+ "value",
|
||||
+ NULL,
|
||||
+ },
|
||||
+ },
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -4374,10 +4562,11 @@ static void test_dump_typelib(const char *name)
|
||||
ITypeInfo *typeinfo;
|
||||
TYPEATTR *typeattr;
|
||||
BSTR bstrIfName;
|
||||
+ DWORD help_ctx;
|
||||
|
||||
trace("Interface %s\n", ti->name);
|
||||
ole_check(ITypeLib_GetTypeInfo(typelib, iface, &typeinfo));
|
||||
- ole_check(ITypeLib_GetDocumentation(typelib, iface, &bstrIfName, NULL, NULL, NULL));
|
||||
+ ole_check(ITypeLib_GetDocumentation(typelib, iface, &bstrIfName, NULL, &help_ctx, NULL));
|
||||
expect_wstr_acpval(bstrIfName, ti->name);
|
||||
SysFreeString(bstrIfName);
|
||||
|
||||
@@ -4385,7 +4574,7 @@ static void test_dump_typelib(const char *name)
|
||||
expect_int(typeattr->typekind, ti->type);
|
||||
expect_hex(typeattr->wTypeFlags, ti->wTypeFlags);
|
||||
/* FIXME: remove once widl is fixed */
|
||||
- if (typeattr->typekind == TKIND_ALIAS)
|
||||
+ if (typeattr->typekind == TKIND_ALIAS && typeattr->cbAlignment != ti->cbAlignment)
|
||||
{
|
||||
todo_wine /* widl generates broken typelib and typeattr just reflects that */
|
||||
ok(typeattr->cbAlignment == ti->cbAlignment || broken(typeattr->cbAlignment == 1),
|
||||
@@ -4399,6 +4588,8 @@ todo_wine /* widl generates broken typelib and typeattr just reflects that */
|
||||
expect_int(typeattr->cbAlignment, ti->cbAlignment);
|
||||
expect_int(typeattr->cbSizeInstance, ti->cbSizeInstance);
|
||||
}
|
||||
+ expect_int(help_ctx, ti->help_ctx);
|
||||
+ expect_int(MAKELONG(typeattr->wMinorVerNum, typeattr->wMajorVerNum), ti->version);
|
||||
expect_int(typeattr->cbSizeVft, ti->cbSizeVft * sizeof(void*));
|
||||
expect_int(typeattr->cFuncs, ti->cFuncs);
|
||||
|
||||
@@ -4445,7 +4636,9 @@ todo_wine /* widl generates broken typelib and typeattr just reflects that */
|
||||
ole_check(ITypeInfo_GetNames(typeinfo, desc->memid, namesTab, 256, &cNames));
|
||||
for (i = 0; i < cNames; i++)
|
||||
{
|
||||
- expect_wstr_acpval(namesTab[i], fn_info->names[i]);
|
||||
+ /* automatically generated names differ between midl and widl */
|
||||
+ if (strncmp(fn_info->names[i], "__MIDL__", 8) != 0)
|
||||
+ expect_wstr_acpval(namesTab[i], fn_info->names[i]);
|
||||
SysFreeString(namesTab[i]);
|
||||
}
|
||||
expect_null(fn_info->names[cNames]);
|
||||
--
|
||||
2.6.1
|
||||
|
@ -1 +0,0 @@
|
||||
Fixes: Fix multiple issues in widl typelib generation
|
@ -1,4 +1,4 @@
|
||||
From d28eecc1251b483848ae2bf539ca5398c8575946 Mon Sep 17 00:00:00 2001
|
||||
From 8eaad5ab61fe01c56e9d2622b11fd9f1e058273e Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Wed, 4 Nov 2015 19:31:30 +0100
|
||||
Subject: wined3d: Rename wined3d_resource_(un)map to
|
||||
@ -7,13 +7,18 @@ Subject: wined3d: Rename wined3d_resource_(un)map to
|
||||
To avoid name conflicts in the CSMT patchset.
|
||||
---
|
||||
dlls/d3d11/device.c | 4 ++--
|
||||
dlls/d3d11/texture.c | 8 ++++----
|
||||
dlls/d3d8/surface.c | 4 ++--
|
||||
dlls/d3d8/volume.c | 4 ++--
|
||||
dlls/d3d9/surface.c | 4 ++--
|
||||
dlls/d3d9/volume.c | 4 ++--
|
||||
dlls/wined3d/resource.c | 4 ++--
|
||||
dlls/wined3d/wined3d.spec | 4 ++--
|
||||
include/wine/wined3d.h | 6 +++---
|
||||
4 files changed, 9 insertions(+), 9 deletions(-)
|
||||
9 files changed, 21 insertions(+), 21 deletions(-)
|
||||
|
||||
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
|
||||
index ca8b0ef..f5acbff 100644
|
||||
index 4560f52..b5cb5ed 100644
|
||||
--- a/dlls/d3d11/device.c
|
||||
+++ b/dlls/d3d11/device.c
|
||||
@@ -215,7 +215,7 @@ static HRESULT STDMETHODCALLTYPE d3d11_immediate_context_Map(ID3D11DeviceContext
|
||||
@ -34,6 +39,134 @@ index ca8b0ef..f5acbff 100644
|
||||
wined3d_mutex_unlock();
|
||||
}
|
||||
|
||||
diff --git a/dlls/d3d11/texture.c b/dlls/d3d11/texture.c
|
||||
index 011a5f7..99e531a 100644
|
||||
--- a/dlls/d3d11/texture.c
|
||||
+++ b/dlls/d3d11/texture.c
|
||||
@@ -366,7 +366,7 @@ static HRESULT STDMETHODCALLTYPE d3d10_texture2d_Map(ID3D10Texture2D *iface, UIN
|
||||
FIXME("Ignoring map_flags %#x.\n", map_flags);
|
||||
|
||||
wined3d_mutex_lock();
|
||||
- if (SUCCEEDED(hr = wined3d_resource_map(wined3d_texture_get_resource(texture->wined3d_texture), sub_resource_idx,
|
||||
+ if (SUCCEEDED(hr = wined3d_resource_sub_resource_map(wined3d_texture_get_resource(texture->wined3d_texture), sub_resource_idx,
|
||||
&wined3d_map_desc, NULL, wined3d_map_flags_from_d3d11_map_type(map_type))))
|
||||
{
|
||||
mapped_texture->pData = wined3d_map_desc.data;
|
||||
@@ -384,7 +384,7 @@ static void STDMETHODCALLTYPE d3d10_texture2d_Unmap(ID3D10Texture2D *iface, UINT
|
||||
TRACE("iface %p, sub_resource_idx %u.\n", iface, sub_resource_idx);
|
||||
|
||||
wined3d_mutex_lock();
|
||||
- wined3d_resource_unmap(wined3d_texture_get_resource(texture->wined3d_texture), sub_resource_idx);
|
||||
+ wined3d_resource_sub_resource_unmap(wined3d_texture_get_resource(texture->wined3d_texture), sub_resource_idx);
|
||||
wined3d_mutex_unlock();
|
||||
}
|
||||
|
||||
@@ -823,7 +823,7 @@ static HRESULT STDMETHODCALLTYPE d3d10_texture3d_Map(ID3D10Texture3D *iface, UIN
|
||||
FIXME("Ignoring map_flags %#x.\n", map_flags);
|
||||
|
||||
wined3d_mutex_lock();
|
||||
- if (SUCCEEDED(hr = wined3d_resource_map(wined3d_texture_get_resource(texture->wined3d_texture), sub_resource_idx,
|
||||
+ if (SUCCEEDED(hr = wined3d_resource_sub_resource_map(wined3d_texture_get_resource(texture->wined3d_texture), sub_resource_idx,
|
||||
&wined3d_map_desc, NULL, wined3d_map_flags_from_d3d11_map_type(map_type))))
|
||||
{
|
||||
mapped_texture->pData = wined3d_map_desc.data;
|
||||
@@ -842,7 +842,7 @@ static void STDMETHODCALLTYPE d3d10_texture3d_Unmap(ID3D10Texture3D *iface, UINT
|
||||
TRACE("iface %p, sub_resource_idx %u.\n", iface, sub_resource_idx);
|
||||
|
||||
wined3d_mutex_lock();
|
||||
- wined3d_resource_unmap(wined3d_texture_get_resource(texture->wined3d_texture), sub_resource_idx);
|
||||
+ wined3d_resource_sub_resource_unmap(wined3d_texture_get_resource(texture->wined3d_texture), sub_resource_idx);
|
||||
wined3d_mutex_unlock();
|
||||
}
|
||||
|
||||
diff --git a/dlls/d3d8/surface.c b/dlls/d3d8/surface.c
|
||||
index 679f094..21f1438 100644
|
||||
--- a/dlls/d3d8/surface.c
|
||||
+++ b/dlls/d3d8/surface.c
|
||||
@@ -234,7 +234,7 @@ static HRESULT WINAPI d3d8_surface_LockRect(IDirect3DSurface8 *iface,
|
||||
box.back = 1;
|
||||
}
|
||||
|
||||
- hr = wined3d_resource_map(wined3d_texture_get_resource(surface->wined3d_texture), surface->sub_resource_idx,
|
||||
+ hr = wined3d_resource_sub_resource_map(wined3d_texture_get_resource(surface->wined3d_texture), surface->sub_resource_idx,
|
||||
&map_desc, rect ? &box : NULL, flags);
|
||||
wined3d_mutex_unlock();
|
||||
|
||||
@@ -260,7 +260,7 @@ static HRESULT WINAPI d3d8_surface_UnlockRect(IDirect3DSurface8 *iface)
|
||||
TRACE("iface %p.\n", iface);
|
||||
|
||||
wined3d_mutex_lock();
|
||||
- hr = wined3d_resource_unmap(wined3d_texture_get_resource(surface->wined3d_texture), surface->sub_resource_idx);
|
||||
+ hr = wined3d_resource_sub_resource_unmap(wined3d_texture_get_resource(surface->wined3d_texture), surface->sub_resource_idx);
|
||||
wined3d_mutex_unlock();
|
||||
|
||||
switch(hr)
|
||||
diff --git a/dlls/d3d8/volume.c b/dlls/d3d8/volume.c
|
||||
index f26e424..d1ee0b5 100644
|
||||
--- a/dlls/d3d8/volume.c
|
||||
+++ b/dlls/d3d8/volume.c
|
||||
@@ -148,7 +148,7 @@ static HRESULT WINAPI d3d8_volume_LockBox(IDirect3DVolume8 *iface,
|
||||
iface, locked_box, box, flags);
|
||||
|
||||
wined3d_mutex_lock();
|
||||
- hr = wined3d_resource_map(wined3d_texture_get_resource(volume->wined3d_texture), volume->sub_resource_idx,
|
||||
+ hr = wined3d_resource_sub_resource_map(wined3d_texture_get_resource(volume->wined3d_texture), volume->sub_resource_idx,
|
||||
&map_desc, (const struct wined3d_box *)box, flags);
|
||||
wined3d_mutex_unlock();
|
||||
|
||||
@@ -167,7 +167,7 @@ static HRESULT WINAPI d3d8_volume_UnlockBox(IDirect3DVolume8 *iface)
|
||||
TRACE("iface %p.\n", iface);
|
||||
|
||||
wined3d_mutex_lock();
|
||||
- hr = wined3d_resource_unmap(wined3d_texture_get_resource(volume->wined3d_texture), volume->sub_resource_idx);
|
||||
+ hr = wined3d_resource_sub_resource_unmap(wined3d_texture_get_resource(volume->wined3d_texture), volume->sub_resource_idx);
|
||||
wined3d_mutex_unlock();
|
||||
|
||||
return hr;
|
||||
diff --git a/dlls/d3d9/surface.c b/dlls/d3d9/surface.c
|
||||
index 833c1f4..54baf83 100644
|
||||
--- a/dlls/d3d9/surface.c
|
||||
+++ b/dlls/d3d9/surface.c
|
||||
@@ -251,7 +251,7 @@ static HRESULT WINAPI d3d9_surface_LockRect(IDirect3DSurface9 *iface,
|
||||
}
|
||||
|
||||
wined3d_mutex_lock();
|
||||
- hr = wined3d_resource_map(wined3d_texture_get_resource(surface->wined3d_texture), surface->sub_resource_idx,
|
||||
+ hr = wined3d_resource_sub_resource_map(wined3d_texture_get_resource(surface->wined3d_texture), surface->sub_resource_idx,
|
||||
&map_desc, rect ? &box : NULL, flags);
|
||||
wined3d_mutex_unlock();
|
||||
|
||||
@@ -272,7 +272,7 @@ static HRESULT WINAPI d3d9_surface_UnlockRect(IDirect3DSurface9 *iface)
|
||||
TRACE("iface %p.\n", iface);
|
||||
|
||||
wined3d_mutex_lock();
|
||||
- hr = wined3d_resource_unmap(wined3d_texture_get_resource(surface->wined3d_texture), surface->sub_resource_idx);
|
||||
+ hr = wined3d_resource_sub_resource_unmap(wined3d_texture_get_resource(surface->wined3d_texture), surface->sub_resource_idx);
|
||||
wined3d_mutex_unlock();
|
||||
|
||||
switch(hr)
|
||||
diff --git a/dlls/d3d9/volume.c b/dlls/d3d9/volume.c
|
||||
index 52502bf..a81b6c7 100644
|
||||
--- a/dlls/d3d9/volume.c
|
||||
+++ b/dlls/d3d9/volume.c
|
||||
@@ -148,7 +148,7 @@ static HRESULT WINAPI d3d9_volume_LockBox(IDirect3DVolume9 *iface,
|
||||
iface, locked_box, box, flags);
|
||||
|
||||
wined3d_mutex_lock();
|
||||
- hr = wined3d_resource_map(wined3d_texture_get_resource(volume->wined3d_texture), volume->sub_resource_idx,
|
||||
+ hr = wined3d_resource_sub_resource_map(wined3d_texture_get_resource(volume->wined3d_texture), volume->sub_resource_idx,
|
||||
&map_desc, (const struct wined3d_box *)box, flags);
|
||||
wined3d_mutex_unlock();
|
||||
|
||||
@@ -167,7 +167,7 @@ static HRESULT WINAPI d3d9_volume_UnlockBox(IDirect3DVolume9 *iface)
|
||||
TRACE("iface %p.\n", iface);
|
||||
|
||||
wined3d_mutex_lock();
|
||||
- hr = wined3d_resource_unmap(wined3d_texture_get_resource(volume->wined3d_texture), volume->sub_resource_idx);
|
||||
+ hr = wined3d_resource_sub_resource_unmap(wined3d_texture_get_resource(volume->wined3d_texture), volume->sub_resource_idx);
|
||||
wined3d_mutex_unlock();
|
||||
|
||||
return hr;
|
||||
diff --git a/dlls/wined3d/resource.c b/dlls/wined3d/resource.c
|
||||
index d466764..74be48d 100644
|
||||
--- a/dlls/wined3d/resource.c
|
||||
@ -57,7 +190,7 @@ index d466764..74be48d 100644
|
||||
TRACE("resource %p, sub_resource_idx %u.\n", resource, sub_resource_idx);
|
||||
|
||||
diff --git a/dlls/wined3d/wined3d.spec b/dlls/wined3d/wined3d.spec
|
||||
index 7067e08..7c4ea7c 100644
|
||||
index a7e625d..b6be230 100644
|
||||
--- a/dlls/wined3d/wined3d.spec
|
||||
+++ b/dlls/wined3d/wined3d.spec
|
||||
@@ -182,10 +182,10 @@
|
||||
@ -74,7 +207,7 @@ index 7067e08..7c4ea7c 100644
|
||||
@ cdecl wined3d_rendertarget_view_create(ptr ptr ptr ptr ptr)
|
||||
@ cdecl wined3d_rendertarget_view_create_from_surface(ptr ptr ptr ptr)
|
||||
diff --git a/include/wine/wined3d.h b/include/wine/wined3d.h
|
||||
index 9c9258a..d859b6f 100644
|
||||
index 2deb450..e25aa69 100644
|
||||
--- a/include/wine/wined3d.h
|
||||
+++ b/include/wine/wined3d.h
|
||||
@@ -2422,11 +2422,11 @@ void __cdecl wined3d_resource_get_desc(const struct wined3d_resource *resource,
|
||||
|
@ -2358,7 +2358,7 @@ diff --git a/dlls/wined3d/vertexdeclaration.c b/dlls/wined3d/vertexdeclaration.c
|
||||
diff --git a/dlls/winex11.drv/opengl.c b/dlls/winex11.drv/opengl.c
|
||||
--- a/dlls/winex11.drv/opengl.c
|
||||
+++ b/dlls/winex11.drv/opengl.c
|
||||
@@ -2001,7 +2001,9 @@
|
||||
@@ -2002,7 +2002,9 @@
|
||||
escape.code = X11DRV_FLUSH_GL_DRAWABLE;
|
||||
escape.gl_drawable = 0;
|
||||
|
||||
@ -2368,7 +2368,7 @@ diff --git a/dlls/winex11.drv/opengl.c b/dlls/winex11.drv/opengl.c
|
||||
if ((gl = get_gl_drawable( WindowFromDC( ctx->hdc ), 0 )))
|
||||
{
|
||||
switch (gl->type)
|
||||
@@ -2027,7 +2029,9 @@
|
||||
@@ -2028,7 +2030,9 @@
|
||||
escape.code = X11DRV_FLUSH_GL_DRAWABLE;
|
||||
escape.gl_drawable = 0;
|
||||
|
||||
|
@ -1,81 +0,0 @@
|
||||
From bf1a093e98df52aa4576c93f3e0e165fdf73e1e4 Mon Sep 17 00:00:00 2001
|
||||
From: Bruno Jesus <00cpxxx@gmail.com>
|
||||
Date: Fri, 22 May 2015 22:42:53 -0300
|
||||
Subject: include: Add stuff related to WSAPoll() (try 2)
|
||||
|
||||
try 2:
|
||||
I found the solution to typedef the struct pollfd just like it's done
|
||||
with fd_set.
|
||||
---
|
||||
include/winsock2.h | 34 ++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 34 insertions(+)
|
||||
|
||||
diff --git a/include/winsock2.h b/include/winsock2.h
|
||||
index fa3d26b..c90d0f6 100644
|
||||
--- a/include/winsock2.h
|
||||
+++ b/include/winsock2.h
|
||||
@@ -112,6 +112,31 @@ extern "C" {
|
||||
#define SD_SEND 0x01
|
||||
#define SD_BOTH 0x02
|
||||
|
||||
+/* Constants for WSAPoll() */
|
||||
+#ifndef USE_WS_PREFIX
|
||||
+#define POLLERR 0x0001
|
||||
+#define POLLHUP 0x0002
|
||||
+#define POLLNVAL 0x0004
|
||||
+#define POLLWRNORM 0x0010
|
||||
+#define POLLWRBAND 0x0020
|
||||
+#define POLLRDNORM 0x0100
|
||||
+#define POLLRDBAND 0x0200
|
||||
+#define POLLPRI 0x0400
|
||||
+#define POLLIN (POLLRDNORM|POLLRDBAND)
|
||||
+#define POLLOUT (POLLWRNORM)
|
||||
+#else
|
||||
+#define WS_POLLERR 0x0001
|
||||
+#define WS_POLLHUP 0x0002
|
||||
+#define WS_POLLNVAL 0x0004
|
||||
+#define WS_POLLWRNORM 0x0010
|
||||
+#define WS_POLLWRBAND 0x0020
|
||||
+#define WS_POLLRDNORM 0x0100
|
||||
+#define WS_POLLRDBAND 0x0200
|
||||
+#define WS_POLLPRI 0x0400
|
||||
+#define WS_POLLIN (WS_POLLRDNORM|WS_POLLRDBAND)
|
||||
+#define WS_POLLOUT (WS_POLLWRNORM)
|
||||
+#endif
|
||||
+
|
||||
/* Constants for WSAIoctl() */
|
||||
#ifdef USE_WS_PREFIX
|
||||
#define WS_IOC_UNIX 0x00000000
|
||||
@@ -259,6 +284,13 @@ typedef struct _WSAPROTOCOLCHAIN
|
||||
|
||||
#define SECURITY_PROTOCOL_NONE 0x0000
|
||||
|
||||
+typedef struct /*WS(pollfd)*/
|
||||
+{
|
||||
+ SOCKET fd;
|
||||
+ SHORT events;
|
||||
+ SHORT revents;
|
||||
+} WSAPOLLFD;
|
||||
+
|
||||
#define WSAPROTOCOL_LEN 255
|
||||
typedef struct _WSAPROTOCOL_INFOA
|
||||
{
|
||||
@@ -662,6 +694,7 @@ INT WINAPI WSALookupServiceNextW(HANDLE,DWORD,LPDWORD,LPWSAQUERYSETW);
|
||||
int WINAPI WSANSPIoctl(HANDLE,DWORD,LPVOID,DWORD,LPVOID,DWORD,LPDWORD,LPWSACOMPLETION);
|
||||
int WINAPI WSANtohl(SOCKET,ULONG,ULONG*);
|
||||
int WINAPI WSANtohs(SOCKET,WS(u_short),WS(u_short)*);
|
||||
+int WINAPI WSAPoll(WSAPOLLFD*,ULONG,int);
|
||||
INT WINAPI WSAProviderConfigChange(LPHANDLE,LPWSAOVERLAPPED,LPWSAOVERLAPPED_COMPLETION_ROUTINE);
|
||||
int WINAPI WSARecv(SOCKET,LPWSABUF,DWORD,LPDWORD,LPDWORD,LPWSAOVERLAPPED,LPWSAOVERLAPPED_COMPLETION_ROUTINE);
|
||||
int WINAPI WSARecvDisconnect(SOCKET,LPWSABUF);
|
||||
@@ -736,6 +769,7 @@ typedef int (WINAPI *LPFN_WSANSPIOCTL)(HANDLE,DWORD,LPVOID,DWORD,LPVOID,DWORD,LP
|
||||
typedef int (WINAPI *LPFN_WSANTOHL)(SOCKET,ULONG,ULONG*);
|
||||
typedef int (WINAPI *LPFN_WSANTOHS)(SOCKET,WS(u_short),WS(u_short)*);
|
||||
typedef INT (WINAPI *LPFN_WSAPROVIDERCONFIGCHANGE)(LPHANDLE,LPWSAOVERLAPPED,LPWSAOVERLAPPED_COMPLETION_ROUTINE);
|
||||
+typedef int (WINAPI *LPFN_WSAPOLL)(WSAPOLLFD*,ULONG,int);
|
||||
typedef int (WINAPI *LPFN_WSARECV)(SOCKET,LPWSABUF,DWORD,LPDWORD,LPDWORD,LPWSAOVERLAPPED,LPWSAOVERLAPPED_COMPLETION_ROUTINE);
|
||||
typedef int (WINAPI *LPFN_WSARECVDISCONNECT)(SOCKET,LPWSABUF);
|
||||
typedef int (WINAPI *LPFN_WSARECVFROM)(SOCKET,LPWSABUF,DWORD,LPDWORD,LPDWORD,struct WS(sockaddr)*,LPINT,LPWSAOVERLAPPED,LPWSAOVERLAPPED_COMPLETION_ROUTINE);
|
||||
--
|
||||
2.4.1
|
||||
|
@ -0,0 +1,32 @@
|
||||
From 168d4c1da4c5b7ce71eb2d07bb3369f2c0ad5df7 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Thu, 5 Nov 2015 17:56:24 +0100
|
||||
Subject: include: Remove check for __WINE_WNE_PORT_H in winsock2.h.
|
||||
|
||||
---
|
||||
include/winsock2.h | 2 --
|
||||
1 file changed, 2 deletions(-)
|
||||
|
||||
diff --git a/include/winsock2.h b/include/winsock2.h
|
||||
index 461b90c..212352c 100644
|
||||
--- a/include/winsock2.h
|
||||
+++ b/include/winsock2.h
|
||||
@@ -113,7 +113,6 @@ extern "C" {
|
||||
#define SD_BOTH 0x02
|
||||
|
||||
/* Constants for WSAPoll() */
|
||||
-#ifndef __WINE_WINE_PORT_H
|
||||
#ifndef USE_WS_PREFIX
|
||||
#define POLLERR 0x0001
|
||||
#define POLLHUP 0x0002
|
||||
@@ -137,7 +136,6 @@ extern "C" {
|
||||
#define WS_POLLIN (WS_POLLRDNORM|WS_POLLRDBAND)
|
||||
#define WS_POLLOUT (WS_POLLWRNORM)
|
||||
#endif
|
||||
-#endif
|
||||
|
||||
/* Constants for WSAIoctl() */
|
||||
#ifdef USE_WS_PREFIX
|
||||
--
|
||||
2.6.2
|
||||
|
Loading…
Reference in New Issue
Block a user