Rebase against b1aee9c391a7e3ce4a069993d527dbdc518ef29c.

This commit is contained in:
Zebediah Figura 2018-03-01 16:03:19 -06:00
parent 092274bdf7
commit 745e1c5f96
21 changed files with 38 additions and 1037 deletions

View File

@ -1,4 +1,4 @@
From 83d96cdd81553544c79527c2aed329e96938af64 Mon Sep 17 00:00:00 2001
From bd48f0d6b1476a77520f0bf5f82ac08e9dbf9acd Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Tue, 22 Mar 2016 21:54:01 +0100
Subject: amstream: Avoid implicit cast of interface pointer.
@ -8,10 +8,10 @@ Subject: amstream: Avoid implicit cast of interface pointer.
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/amstream/mediastreamfilter.c b/dlls/amstream/mediastreamfilter.c
index d0c6714..3f0397a 100644
index 5abcb2f..a7ff6e8 100644
--- a/dlls/amstream/mediastreamfilter.c
+++ b/dlls/amstream/mediastreamfilter.c
@@ -70,7 +70,7 @@ typedef struct {
@@ -42,7 +42,7 @@ typedef struct {
static inline IMediaStreamFilterImpl *impl_from_IMediaStreamFilter(IMediaStreamFilter *iface)
{
@ -19,7 +19,7 @@ index d0c6714..3f0397a 100644
+ return CONTAINING_RECORD((IBaseFilter *)iface, IMediaStreamFilterImpl, filter.IBaseFilter_iface);
}
static HRESULT WINAPI BasePinImpl_CheckMediaType(BasePin *This, const AM_MEDIA_TYPE *pmt)
/*** IUnknown methods ***/
--
2.7.1
2.7.4

View File

@ -1 +1 @@
Fixes: Implement advapi32.CreateRestrictedToken
Fixes: [25834] Implement advapi32.CreateRestrictedToken

View File

@ -1,2 +1,2 @@
Fixes: Improve stub for ID3DXEffectImpl_CloneEffect
Fixes: [44635] Improve stub for ID3DXEffectImpl_CloneEffect
Depends: d3dx9_25-ID3DXEffect

View File

@ -1,98 +0,0 @@
From b2a608fbcfe62319959689f4c00479e76f60234e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Tue, 2 May 2017 01:38:43 +0200
Subject: fonts/tahoma.sfd: Add glyphs U+FB01 and U+FB02.
---
fonts/tahoma.sfd | 16 ++++++++++++++++
fonts/tahoma.ttf | Bin 143652 -> 143884 bytes
2 files changed, 16 insertions(+)
diff --git a/fonts/tahoma.sfd b/fonts/tahoma.sfd
index 3d6b44ee13..466f250496 100644
--- a/fonts/tahoma.sfd
+++ b/fonts/tahoma.sfd
@@ -24398,6 +24398,10 @@ BDFChar: 252 8364 7 0 5 0 8
4@"GpJGap_49,?]
BDFChar: 253 8482 11 1 9 5 8
k^ZBX8q9H_
+BDFChar: 266 64257 6 0 5 0 9
+0LS1u6psF26pq"T
+BDFChar: 267 64258 6 0 5 0 9
+1djb(6psF26pq"T
BDFChar: 280 278 7 0 5 0 10
&-2WYJ:RQJJ:ROt
BDFChar: 306 279 6 0 5 0 8
@@ -25127,6 +25131,10 @@ BDFChar: 252 8364 7 0 5 0 8
4@"GpJGap_49,?]
BDFChar: 253 8482 11 1 9 5 8
k^ZBX8q9H_
+BDFChar: 266 64257 7 0 5 0 9
+0LS1u6psF26pq"T
+BDFChar: 267 64258 7 0 5 0 9
+1djb(6psF26pq"T
BDFChar: 280 278 7 1 6 0 11
0JEM)J:RQJJ:N1J
BDFChar: 306 279 7 0 5 0 8
@@ -25856,6 +25864,10 @@ BDFChar: 252 8364 8 0 6 0 10
*$RXur.+]q5U%0J
BDFChar: 253 8482 13 0 11 6 10
q@Fl*,1%O\+qO_S
+BDFChar: 266 64257 8 0 6 0 11
+3'okqnj5Z06:+"*
+BDFChar: 267 64258 8 0 6 0 11
+3^Q/"nj5Z06:+"*
BDFChar: 280 278 8 1 7 0 12
&-2][J:RWLJ:N0#rVuou
BDFChar: 306 279 8 0 6 0 10
@@ -26585,6 +26597,10 @@ BDFChar: 252 8364 9 0 7 0 11
%M9gK5lO%J5TgXK
BDFChar: 253 8482 14 1 12 7 11
q@Fl*,1%O\+qO_S
+BDFChar: 266 64257 9 0 6 0 12
+3'oqsnj5Z06:+"*63$uc
+BDFChar: 267 64258 8 0 6 0 12
+3^Q/"nj5Z06:+"*63$uc
BDFChar: 280 278 9 1 8 0 14
(`38QJ:N0#s+#WMJ:RY"
BDFChar: 306 279 8 0 6 0 11
diff --git a/fonts/tahoma.ttf b/fonts/tahoma.ttf
index 4f68d1edfa825a0b27e0f41932867b768157a7a7..8bee8ad35c8e8b1f71b97c8117e1c57282b233ce 100644
GIT binary patch
delta 1779
zcmd6nO-NKx6vxlG+RQl3G^0+A<3}^2gN~-7_F;n&h2;k^l0pk{HqFqYFvTD@eK3|8
zfk8^pE6gwmDr_;;;sv_si!=~&B?&F0f^bn;gt`#w-1pA-1#QDS-1&2U=e+mMz5n~(
z{ZFQAUrc=-f6}qR7l5rnfZo}f>d?VqTRZ@`-~*_dsI5KP000Q0V(v-31(UxG_Mhl(
zMztBSYQ$wWfZ0&t*jM9ds<CUqZpQ@~sQsf@Y1i_`)p=tg|8@eW)7=&$SWLklVe>cM
ztL`z|wYaLs?ABxT?hINpd{!e^Q-VEau5x%JFs+n1JOIk@JWg)<K)t3ZT?^<=jan>-
z00oBt3_6Z$*lLxyG-nylXxL_xc<1kBY+pn-M%D5~{E-{$13^E4AxMT-q;VL7ae$=f
z@E#^fCtw;rlFq<S_(i&eh*Y0!$IWOV^<gTekp|I;F47QgLl5b3%)<iG^XNxE=^ZS^
zQqsp*hPOyZ#a<Bt+T#up5mD;xjXIPe_84Mx^QIPRL=G#>EV79DhyT>*;eU0y(x^N$
z)Z`i2Aq@k^XZ3J7?ou!33S&~NgSm|~Td!^DWtK{s%j_YuEu>jAY1d#E=g0wVnCU-_
z*>`5?q<K0E+nGtt(OE{ggyE_N!gY$rE1a&=oLYINwzlwXrO_+g-YHJ=62pl$jQqII
zYM)m;MG;B9Su6^b)_mcY{zV?~bsO2g$m_L>i@aMGzgG|V$iJd7=5)%zqc8l_S7r`U
z-ut!`rK3<}$LcvHtxDI++rrG~1%d6%t}v7Kd6_+6w)(b-wsZzi$+dshTo15A=c2tr
zvG~cmbDU@I+Ang<-nCy<Lw@lLaf+-vB3<ho;0k$o<U%*%Th}?Vc3GV-*TrM%Qn7Sx
zk$EO*k-jyTyv&@W1<dM{l7PrQd7V@8#Ab3T;RbzBp@NzG-pa9+rjOZ@MgZh(3w73=
z&rE+jz<%aYB_0q?98kss<k2iwu_xVg>*58~R3<%|S4PW4gHwAqdlTnTemnAL;*EY+
F=3lPT_%r|j
delta 1605
zcmd6n-AmI^7{{OIxVBMSx>;#Cb(^xyx7G@K(TgBUB__Q|i4)SB5^_SA*P~XTBqj9n
z6Y`>$UF^b(%J6rQR}o}XxQhY<AqlS{2s3mPLC^V}XKVQn<TDOm&gVSmcb;>;=WJxr
zn)qxTbq9V954Qqd*bi`h;K-qH(}Qa>Uci+JfQGK-=JqxKKoBA8lU5s=oM%U-;vJ}W
zAT~VLC#JE!K>zg?=L+@Z1+;C`DpoPIVVb5mwDc;LJHj>_B7iRdU{*Mgme_8WxOOp%
zI}DtkFY%uHSv*7-!+J7}-%4XcAm|4$1}1nxnuJ#{1CaL^W+6rT5<bE_=^QM<chVn-
zNcko!ZbBQW3mxbr-GxQCo%Ar4p_{Y|z33yogaM>NO}DWQ>qrwA#4*xmqEUnagt=FD
z7m0o57}W^>v6!8*8gs9-1>i&{6(hsU{cfZ8w|`D|mkCQ=)oJGWq$Mi1^CB|`X(_WC
z+HsF4iOB<&v5}gShu#|mppcaAh+MvNg;@cqOR)$YvJp8;Md(0t7(g}Wo?*V3bO*J7
z;vy2$zIsHtN8TD4yuC=KE(_0pt=D?RQxx4_w1o<BY+ZTNb5qrxDZb~<n*KdKT}j@=
zZZVe!=T;l*n`E|yln=Y_12gHDn_7t4L6sksc`~G7h0Od00ifFsHOx*jlO}o;i$w<*
z<}4P?6ss7(UjD$Fe?9=PoB40%Y7+qU)Ni78RE_ty@Hji!FaKF&SioXjrT%u^R3#=6
zA4(_v+NWv}SXXuqo>v8D>>P})=@00s8u`=`%!^5@)b208V^&1!W43%ZNH49CN9?4<
zYUIi(W-ihYv#ZRul2$THGLv8RGn-|mR?l9LxO`zU)O>&gDqqA~wDBOlw2a^Uvf|?^
Xo%}KEi9gckgUX)KkZ9AELZajkYSh%W
--
2.12.2

View File

@ -1 +0,0 @@
Fixes: Add glyphs U+FB01 and U+FB02 to Tahoma font

View File

@ -1,35 +1,15 @@
From 800f9e5129a1f5eabe4dbdc971ead453ee93e26e Mon Sep 17 00:00:00 2001
From dae45d1760dbbf114271bec67170e2e721c52904 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Wed, 16 Aug 2017 02:45:23 +0200
Subject: [PATCH] kernelbase: Add semi-stub for PathCchCombineEx.
---
configure.ac | 1 +
.../api-ms-win-core-path-l1-1-0.spec | 2 +-
dlls/kernelbase/Makefile.in | 4 +-
dlls/kernelbase/kernelbase.spec | 2 +-
dlls/kernelbase/main.c | 29 ++++++
dlls/kernelbase/tests/Makefile.in | 5 +
dlls/kernelbase/tests/path.c | 113 +++++++++++++++++++++
include/Makefile.in | 1 +
include/pathcch.h | 26 +++++
9 files changed, 180 insertions(+), 3 deletions(-)
create mode 100644 dlls/kernelbase/tests/Makefile.in
create mode 100644 dlls/kernelbase/tests/path.c
create mode 100644 include/pathcch.h
.../api-ms-win-core-path-l1-1-0.spec | 2 +-
dlls/kernelbase/Makefile.in | 4 ++-
dlls/kernelbase/kernelbase.spec | 2 +-
dlls/kernelbase/main.c | 29 ++++++++++++++++++++++
4 files changed, 34 insertions(+), 3 deletions(-)
diff --git a/configure.ac b/configure.ac
index 7b796ef..f9e5e1d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3308,6 +3308,7 @@ WINE_CONFIG_DLL(kerberos)
WINE_CONFIG_DLL(kernel32)
WINE_CONFIG_TEST(dlls/kernel32/tests)
WINE_CONFIG_DLL(kernelbase)
+WINE_CONFIG_TEST(dlls/kernelbase/tests)
WINE_CONFIG_DLL(keyboard.drv16,enable_win16)
WINE_CONFIG_DLL(krnl386.exe16,enable_win16)
WINE_CONFIG_DLL(ksuser)
diff --git a/dlls/api-ms-win-core-path-l1-1-0/api-ms-win-core-path-l1-1-0.spec b/dlls/api-ms-win-core-path-l1-1-0/api-ms-win-core-path-l1-1-0.spec
index cb10d89..4df147e 100644
--- a/dlls/api-ms-win-core-path-l1-1-0/api-ms-win-core-path-l1-1-0.spec
@ -56,7 +36,7 @@ index 74df98c..247c6bf 100644
C_SRCS = \
main.c
diff --git a/dlls/kernelbase/kernelbase.spec b/dlls/kernelbase/kernelbase.spec
index eb6edbe..065af41 100644
index aa67372..8caa3b5 100644
--- a/dlls/kernelbase/kernelbase.spec
+++ b/dlls/kernelbase/kernelbase.spec
@@ -1037,7 +1037,7 @@
@ -69,10 +49,10 @@ index eb6edbe..065af41 100644
# @ stub PathCchIsRoot
# @ stub PathCchRemoveBackslash
diff --git a/dlls/kernelbase/main.c b/dlls/kernelbase/main.c
index 9c89ff4..7e5ffde 100644
index 6871aca..7716912 100644
--- a/dlls/kernelbase/main.c
+++ b/dlls/kernelbase/main.c
@@ -19,7 +19,11 @@
@@ -20,7 +20,11 @@
#include "windows.h"
#include "appmodel.h"
@ -84,7 +64,7 @@ index 9c89ff4..7e5ffde 100644
WINE_DEFAULT_DEBUG_CHANNEL(kernelbase);
@@ -87,3 +91,28 @@ BOOL WINAPI QuirkIsEnabled3(void *unk1, void *unk2)
@@ -97,3 +101,28 @@ BOOL WINAPI QuirkIsEnabled3(void *unk1, void *unk2)
return FALSE;
}
@ -113,180 +93,6 @@ index 9c89ff4..7e5ffde 100644
+ strcpyW(out, result);
+ return S_OK;
+}
diff --git a/dlls/kernelbase/tests/Makefile.in b/dlls/kernelbase/tests/Makefile.in
new file mode 100644
index 0000000..92f5ca5
--- /dev/null
+++ b/dlls/kernelbase/tests/Makefile.in
@@ -0,0 +1,5 @@
+TESTDLL = kernelbase.dll
+IMPORTS = kernelbase
+
+C_SRCS = \
+ path.c
diff --git a/dlls/kernelbase/tests/path.c b/dlls/kernelbase/tests/path.c
new file mode 100644
index 0000000..c848640
--- /dev/null
+++ b/dlls/kernelbase/tests/path.c
@@ -0,0 +1,113 @@
+/*
+ * Path tests for kernelbase.dll
+ *
+ * Copyright 2017 Michael Müller
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#include <stdarg.h>
+#include <windef.h>
+#include <winbase.h>
+#include <stdlib.h>
+#include <winerror.h>
+#include <winnls.h>
+#include <pathcch.h>
+#include <strsafe.h>
+
+#include "wine/test.h"
+
+static const struct
+{
+ const char *path1;
+ const char *path2;
+ const char *result;
+ BOOL todo;
+}
+combine_test[] =
+{
+ /* nomal paths */
+ {"C:\\", "a", "C:\\a", FALSE},
+ {"C:\\b", "..\\a", "C:\\a", FALSE},
+ {"C:", "a", "C:\\a", FALSE},
+ {"C:\\", ".", "C:\\", TRUE},
+ {"C:\\", "..", "C:\\", FALSE},
+ {"\\a", "b", "\\a\\b", FALSE},
+
+ /* normal UNC paths */
+ {"\\\\192.168.1.1\\test", "a", "\\\\192.168.1.1\\test\\a", FALSE},
+ {"\\\\192.168.1.1\\test", "..", "\\\\192.168.1.1", FALSE},
+
+ /* NT paths */
+ {"\\\\?\\C:\\", "a", "C:\\a", TRUE},
+ {"\\\\?\\C:\\", "..", "C:\\", TRUE},
+
+ /* NT UNC path */
+ {"\\\\?\\UNC\\192.168.1.1\\test", "a", "\\\\192.168.1.1\\test\\a", TRUE},
+ {"\\\\?\\UNC\\192.168.1.1\\test", "..", "\\\\192.168.1.1", TRUE},
+};
+
+static void test_PathCchCombineEx(void)
+{
+ WCHAR expected[MAX_PATH] = {'C',':','\\','a',0};
+ WCHAR p1[MAX_PATH] = {'C',':','\\',0};
+ WCHAR p2[MAX_PATH] = {'a',0};
+ WCHAR output[MAX_PATH];
+ HRESULT hr;
+ int i;
+
+ hr = PathCchCombineEx(NULL, 2, p1, p2, 0);
+ ok(hr == E_INVALIDARG, "Expected E_INVALIDARG, got %08x\n", hr);
+
+ memset(output, 0xff, sizeof(output));
+ hr = PathCchCombineEx(output, 0, p1, p2, 0);
+ ok(hr == E_INVALIDARG, "Expected E_INVALIDARG, got %08x\n", hr);
+ ok(output[0] == 0xffff, "Expected output buffer to be unchanged\n");
+
+ memset(output, 0xff, sizeof(output));
+ hr = PathCchCombineEx(output, 1, p1, p2, 0);
+ ok(hr == STRSAFE_E_INSUFFICIENT_BUFFER, "Expected STRSAFE_E_INSUFFICIENT_BUFFER, got %08x\n", hr);
+ ok(output[0] == 0, "Expected output buffer to contain NULL string\n");
+
+ memset(output, 0xff, sizeof(output));
+ hr = PathCchCombineEx(output, 4, p1, p2, 0);
+ ok(hr == STRSAFE_E_INSUFFICIENT_BUFFER, "Expected STRSAFE_E_INSUFFICIENT_BUFFER, got %08x\n", hr);
+ ok(output[0] == 0x0, "Expected output buffer to contain NULL string\n");
+
+ memset(output, 0xff, sizeof(output));
+ hr = PathCchCombineEx(output, 5, p1, p2, 0);
+ ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(!lstrcmpW(output, expected),
+ "Combination of %s + %s returned %s, expected %s\n",
+ wine_dbgstr_w(p1), wine_dbgstr_w(p2), wine_dbgstr_w(output), wine_dbgstr_w(expected));
+
+ for (i = 0; i < sizeof(combine_test)/sizeof(combine_test[0]); i++)
+ {
+ MultiByteToWideChar(CP_ACP, 0, combine_test[i].path1, -1, p1, MAX_PATH);
+ MultiByteToWideChar(CP_ACP, 0, combine_test[i].path2, -1, p2, MAX_PATH);
+ MultiByteToWideChar(CP_ACP, 0, combine_test[i].result, -1, expected, MAX_PATH);
+
+ hr = PathCchCombineEx(output, MAX_PATH, p1, p2, 0);
+ ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ todo_wine_if(combine_test[i].todo) ok(!lstrcmpW(output, expected),
+ "Combination of %s + %s returned %s, expected %s\n",
+ wine_dbgstr_w(p1), wine_dbgstr_w(p2), wine_dbgstr_w(output), wine_dbgstr_w(expected));
+ }
+}
+
+START_TEST(path)
+{
+ test_PathCchCombineEx();
+}
diff --git a/include/Makefile.in b/include/Makefile.in
index f1bcba3..72304d6 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -494,6 +494,7 @@ SOURCES = \
opnrst.idl \
optary.idl \
patchapi.h \
+ pathcch.h \
pdh.h \
pdhmsg.h \
perflib.h \
diff --git a/include/pathcch.h b/include/pathcch.h
new file mode 100644
index 0000000..8831c52
--- /dev/null
+++ b/include/pathcch.h
@@ -0,0 +1,26 @@
+/*
+ * Copyright 2017 Michael Müller
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#define PATHCCH_NONE 0x00
+#define PATHCCH_ALLOW_LONG_PATHS 0x01
+#define PATHCCH_FORCE_ENABLE_LONG_NAME_PROCESS 0x02
+#define PATHCCH_FORCE_DISABLE_LONG_NAME_PROCESS 0x04
+#define PATHCCH_DO_NOT_NORMALIZE_SEGMENTS 0x08
+#define PATHCCH_ENSURE_IS_EXTENDED_LENGTH_PATH 0x10
+
+HRESULT WINAPI PathCchCombineEx(WCHAR *out, SIZE_T size, const WCHAR *path1, const WCHAR *path2, DWORD flags);
--
2.7.4

View File

@ -1,4 +1,4 @@
From 8cd8b854400ea2eb725de23bbd5b510a278c9635 Mon Sep 17 00:00:00 2001
From 0cd366658b21ef8afbc34daea08cacacf04039d4 Mon Sep 17 00:00:00 2001
From: "Erich E. Hoover" <erich.e.hoover@gmail.com>
Date: Tue, 19 Aug 2014 22:10:49 -0600
Subject: [PATCH 1/8] ntdll: Implement retrieving DOS attributes in
@ -14,18 +14,18 @@ Subject: [PATCH 1/8] ntdll: Implement retrieving DOS attributes in
create mode 100644 libs/port/xattr.c
diff --git a/configure.ac b/configure.ac
index 0fb6863..9b88dfe 100644
index 2e99320..a912870 100644
--- a/configure.ac
+++ b/configure.ac
@@ -81,6 +81,7 @@ AC_ARG_WITH(tiff, AS_HELP_STRING([--without-tiff],[do not use TIFF]))
@@ -82,6 +82,7 @@ AC_ARG_WITH(tiff, AS_HELP_STRING([--without-tiff],[do not use TIFF]))
AC_ARG_WITH(udev, AS_HELP_STRING([--without-udev],[do not use udev (plug and play support)]))
AC_ARG_WITH(sdl, AS_HELP_STRING([--without-sdl],[do not use SDL]))
AC_ARG_WITH(v4l, AS_HELP_STRING([--without-v4l],[do not use v4l1 (v4l support)]))
AC_ARG_WITH(vulkan, AS_HELP_STRING([--without-vulkan],[do not use Vulkan]))
+AC_ARG_WITH(xattr, AS_HELP_STRING([--without-xattr],[do not use xattr (security attributes support)]))
AC_ARG_WITH(xcomposite,AS_HELP_STRING([--without-xcomposite],[do not use the Xcomposite extension]),
[if test "x$withval" = "xno"; then ac_cv_header_X11_extensions_Xcomposite_h=no; fi])
AC_ARG_WITH(xcursor, AS_HELP_STRING([--without-xcursor],[do not use the Xcursor extension]),
@@ -698,6 +699,17 @@ AC_CHECK_HEADERS([libprocstat.h],,,
@@ -700,6 +701,17 @@ AC_CHECK_HEADERS([libprocstat.h],,,
#include <sys/socket.h>
#endif])

View File

@ -1,116 +0,0 @@
From 04a7eb12b90c7361e5c71b7bea7e6ad53442c45d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Thu, 2 Feb 2017 22:05:37 +0100
Subject: ntdll: Implement ProcessPriorityClass in NtQueryInformationProcess.
---
dlls/ntdll/process.c | 29 ++++++++++++++++++++++++++++-
dlls/ntdll/tests/info.c | 38 ++++++++++++++++++++++++++++++++++++++
2 files changed, 66 insertions(+), 1 deletion(-)
diff --git a/dlls/ntdll/process.c b/dlls/ntdll/process.c
index 0cdd1e09b50..a14b6707167 100644
--- a/dlls/ntdll/process.c
+++ b/dlls/ntdll/process.c
@@ -173,7 +173,6 @@ NTSTATUS WINAPI NtQueryInformationProcess(
UNIMPLEMENTED_INFO_CLASS(ProcessWorkingSetWatch);
UNIMPLEMENTED_INFO_CLASS(ProcessUserModeIOPL);
UNIMPLEMENTED_INFO_CLASS(ProcessEnableAlignmentFaultFixup);
- UNIMPLEMENTED_INFO_CLASS(ProcessPriorityClass);
UNIMPLEMENTED_INFO_CLASS(ProcessWx86Information);
UNIMPLEMENTED_INFO_CLASS(ProcessPriorityBoost);
UNIMPLEMENTED_INFO_CLASS(ProcessDeviceMap);
@@ -526,6 +525,34 @@ NTSTATUS WINAPI NtQueryInformationProcess(
else
ret = STATUS_INFO_LENGTH_MISMATCH;
break;
+ case ProcessPriorityClass:
+ len = sizeof(PROCESS_PRIORITY_CLASS);
+ if (ProcessInformationLength == len)
+ {
+ if (!ProcessInformation)
+ ret = STATUS_ACCESS_VIOLATION;
+ else if (!ProcessHandle)
+ ret = STATUS_INVALID_HANDLE;
+ else
+ {
+ PROCESS_PRIORITY_CLASS *priority = ProcessInformation;
+
+ SERVER_START_REQ(get_process_info)
+ {
+ req->handle = wine_server_obj_handle( ProcessHandle );
+ if ((ret = wine_server_call( req )) == STATUS_SUCCESS)
+ {
+ priority->PriorityClass = reply->priority;
+ /* FIXME: Not yet supported by the wineserver */
+ priority->Foreground = FALSE;
+ }
+ }
+ SERVER_END_REQ;
+ }
+ }
+ else
+ ret = STATUS_INFO_LENGTH_MISMATCH;
+ break;
default:
FIXME("(%p,info_class=%d,%p,0x%08x,%p) Unknown information class\n",
ProcessHandle,ProcessInformationClass,
diff --git a/dlls/ntdll/tests/info.c b/dlls/ntdll/tests/info.c
index 448bc64c28a..6652409eaca 100644
--- a/dlls/ntdll/tests/info.c
+++ b/dlls/ntdll/tests/info.c
@@ -1253,6 +1253,40 @@ static void test_query_process_debug_port(int argc, char **argv)
ok(ret, "CloseHandle failed, last error %#x.\n", GetLastError());
}
+static void test_query_process_priority(void)
+{
+ PROCESS_PRIORITY_CLASS priority[2];
+ ULONG ReturnLength;
+ DWORD orig_priority;
+ NTSTATUS status;
+ BOOL ret;
+
+ status = pNtQueryInformationProcess(NULL, ProcessPriorityClass, NULL, sizeof(priority[0]), NULL);
+ ok(status == STATUS_ACCESS_VIOLATION || broken(status == STATUS_INVALID_HANDLE) /* w2k3 */,
+ "Expected STATUS_ACCESS_VIOLATION, got %08x\n", status);
+
+ status = pNtQueryInformationProcess(NULL, ProcessPriorityClass, &priority, sizeof(priority[0]), NULL);
+ ok(status == STATUS_INVALID_HANDLE, "Expected STATUS_INVALID_HANDLE, got %08x\n", status);
+
+ status = pNtQueryInformationProcess(GetCurrentProcess(), ProcessPriorityClass, &priority, 1, &ReturnLength);
+ ok(status == STATUS_INFO_LENGTH_MISMATCH, "Expected STATUS_INFO_LENGTH_MISMATCH, got %08x\n", status);
+
+ status = pNtQueryInformationProcess(GetCurrentProcess(), ProcessPriorityClass, &priority, sizeof(priority), &ReturnLength);
+ ok(status == STATUS_INFO_LENGTH_MISMATCH, "Expected STATUS_INFO_LENGTH_MISMATCH, got %08x\n", status);
+
+ orig_priority = GetPriorityClass(GetCurrentProcess());
+ ret = SetPriorityClass(GetCurrentProcess(), BELOW_NORMAL_PRIORITY_CLASS);
+ ok(ret, "Failed to set priority class: %u\n", GetLastError());
+
+ status = pNtQueryInformationProcess(GetCurrentProcess(), ProcessPriorityClass, &priority, sizeof(priority[0]), &ReturnLength);
+ ok(status == STATUS_SUCCESS, "Expected STATUS_SUCCESS, got %08x\n", status);
+ ok(priority[0].PriorityClass == PROCESS_PRIOCLASS_BELOW_NORMAL,
+ "Expected PROCESS_PRIOCLASS_BELOW_NORMAL, got %u\n", priority[0].PriorityClass);
+
+ ret = SetPriorityClass(GetCurrentProcess(), orig_priority);
+ ok(ret, "Failed to reset priority class: %u\n", GetLastError());
+}
+
static void test_query_process_handlecount(void)
{
NTSTATUS status;
@@ -2107,6 +2141,10 @@ START_TEST(info)
trace("Starting test_process_debug_port()\n");
test_query_process_debug_port(argc, argv);
+ /* 0x12 ProcessPriorityClass */
+ trace("Starting test_query_process_priority()\n");
+ test_query_process_priority();
+
/* 0x14 ProcessHandleCount */
trace("Starting test_query_process_handlecount()\n");
test_query_process_handlecount();
--
2.11.0

View File

@ -1 +0,0 @@
Fixes: Implement ProcessPriorityClass in NtQueryInformationProcess

View File

@ -52,7 +52,7 @@ usage()
# Get the upstream commit sha
upstream_commit()
{
echo "0a72708126f5b8fc06698172d973bb529944c3bf"
echo "b1aee9c391a7e3ce4a069993d527dbdc518ef29c"
}
# Show version information
@ -160,7 +160,6 @@ patch_enable_all ()
enable_dxva2_Video_Decoder="$1"
enable_explorer_Video_Registry_Key="$1"
enable_fonts_Missing_Fonts="$1"
enable_fonts_Tahoma="$1"
enable_fsutil_Stub_Program="$1"
enable_gdi32_GetCharacterPlacement="$1"
enable_gdi32_Lazy_Font_Initialization="$1"
@ -168,7 +167,6 @@ patch_enable_all ()
enable_gdi32_Path_Metafile="$1"
enable_gdi32_Symbol_Truetype_Font="$1"
enable_gdiplus_Performance_Improvements="$1"
enable_hal_KeQueryPerformanceCounter="$1"
enable_hnetcfg_INetFwAuthorizedApplication="$1"
enable_ieframe_IViewObject_Draw="$1"
enable_imagehlp_BindImageEx="$1"
@ -255,7 +253,6 @@ patch_enable_all ()
enable_ntdll_NtSuspendProcess="$1"
enable_ntdll_Pipe_SpecialCharacters="$1"
enable_ntdll_ProcessImageFileNameWin32="$1"
enable_ntdll_ProcessPriorityClass="$1"
enable_ntdll_ProcessQuotaLimits="$1"
enable_ntdll_Purist_Mode="$1"
enable_ntdll_RtlCaptureStackBackTrace="$1"
@ -378,8 +375,6 @@ patch_enable_all ()
enable_user32_Refresh_MDI_Menus="$1"
enable_user32_ScrollWindowEx="$1"
enable_user32_ShowWindow="$1"
enable_user32_Sorted_Listbox="$1"
enable_user32_WM_MEASUREITEM="$1"
enable_user32_WindowDisplayAffinity="$1"
enable_user32_lpCreateParams="$1"
enable_uxtheme_CloseThemeClass="$1"
@ -391,7 +386,6 @@ patch_enable_all ()
enable_wbemdisp_ISWbemSecurity="$1"
enable_wbemprox_Printer="$1"
enable_wbemprox_Win32_OperatingSystem="$1"
enable_wbemprox_Win32_VideoController="$1"
enable_widl_SLTG_Typelib_Support="$1"
enable_windowscodecs_32bppPRGBA="$1"
enable_windowscodecs_GIF_Encoder="$1"
@ -713,9 +707,6 @@ patch_enable ()
fonts-Missing_Fonts)
enable_fonts_Missing_Fonts="$2"
;;
fonts-Tahoma)
enable_fonts_Tahoma="$2"
;;
fsutil-Stub_Program)
enable_fsutil_Stub_Program="$2"
;;
@ -995,9 +986,6 @@ patch_enable ()
ntdll-ProcessImageFileNameWin32)
enable_ntdll_ProcessImageFileNameWin32="$2"
;;
ntdll-ProcessPriorityClass)
enable_ntdll_ProcessPriorityClass="$2"
;;
ntdll-ProcessQuotaLimits)
enable_ntdll_ProcessQuotaLimits="$2"
;;
@ -1364,12 +1352,6 @@ patch_enable ()
user32-ShowWindow)
enable_user32_ShowWindow="$2"
;;
user32-Sorted_Listbox)
enable_user32_Sorted_Listbox="$2"
;;
user32-WM_MEASUREITEM)
enable_user32_WM_MEASUREITEM="$2"
;;
user32-WindowDisplayAffinity)
enable_user32_WindowDisplayAffinity="$2"
;;
@ -1403,9 +1385,6 @@ patch_enable ()
wbemprox-Win32_OperatingSystem)
enable_wbemprox_Win32_OperatingSystem="$2"
;;
wbemprox-Win32_VideoController)
enable_wbemprox_Win32_VideoController="$2"
;;
widl-SLTG_Typelib_Support)
enable_widl_SLTG_Typelib_Support="$2"
;;
@ -2194,13 +2173,6 @@ if test "$enable_uxtheme_GTK_Theming" -eq 1; then
enable_ntdll_DllRedirects=1
fi
if test "$enable_user32_Sorted_Listbox" -eq 1; then
if test "$enable_user32_WM_MEASUREITEM" -gt 1; then
abort "Patchset user32-WM_MEASUREITEM disabled, but user32-Sorted_Listbox depends on that."
fi
enable_user32_WM_MEASUREITEM=1
fi
if test "$enable_user32_MessageBox_WS_EX_TOPMOST" -eq 1; then
if test "$enable_user32_lpCreateParams" -gt 1; then
abort "Patchset user32-lpCreateParams disabled, but user32-MessageBox_WS_EX_TOPMOST depends on that."
@ -2798,6 +2770,9 @@ fi
# Patchset advapi32-CreateRestrictedToken
# |
# | This patchset fixes the following Wine bugs:
# | * [#25834] Implement advapi32.CreateRestrictedToken
# |
# | Modified files:
# | * dlls/advapi32/security.c, dlls/advapi32/tests/security.c, dlls/ntdll/nt.c, dlls/ntdll/ntdll.spec, include/winnt.h,
# | include/winternl.h, server/process.c, server/protocol.def, server/security.h, server/token.c
@ -3712,6 +3687,9 @@ fi
# | This patchset has the following (direct or indirect) dependencies:
# | * d3dx9_25-ID3DXEffect
# |
# | This patchset fixes the following Wine bugs:
# | * [#44635] Improve stub for ID3DXEffectImpl_CloneEffect
# |
# | Modified files:
# | * dlls/d3dx9_36/effect.c
# |
@ -4248,7 +4226,7 @@ fi
if test "$enable_dwmapi_DwmSetIcon" -eq 1; then
patch_apply dwmapi-DwmSetIcon/0001-dwmapi-Add-stubs-for-DwmSetIconicLivePreviewBitmap-a.patch
(
printf '%s\n' '+ { "Michael Müller", "dwmapi: Add stubs for DwmSetIconicLivePreviewBitmap and DwmSetIconicThumbnail.", 1 },';
printf '%s\n' '+ { "Michael Müller", "dwmapi: Add stub for DwmSetIconicLivePreviewBitmap.", 1 },';
) >> "$patchlist"
fi
@ -4402,18 +4380,6 @@ if test "$enable_fonts_Missing_Fonts" -eq 1; then
) >> "$patchlist"
fi
# Patchset fonts-Tahoma
# |
# | Modified files:
# | * fonts/tahoma.sfd, fonts/tahoma.ttf
# |
if test "$enable_fonts_Tahoma" -eq 1; then
patch_apply fonts-Tahoma/0001-fonts-tahoma.sfd-Add-glyphs-U-FB01-and-U-FB02.patch
(
printf '%s\n' '+ { "Michael Müller", "fonts/tahoma.sfd: Add glyphs U+FB01 and U+FB02.", 1 },';
) >> "$patchlist"
fi
# Patchset fsutil-Stub_Program
# |
# | This patchset fixes the following Wine bugs:
@ -5014,9 +4980,8 @@ fi
# | * [#42474] Implement kernelbase.PathCchCombineEx
# |
# | Modified files:
# | * configure.ac, dlls/api-ms-win-core-path-l1-1-0/api-ms-win-core-path-l1-1-0.spec, dlls/kernelbase/Makefile.in,
# | dlls/kernelbase/kernelbase.spec, dlls/kernelbase/main.c, dlls/kernelbase/tests/Makefile.in,
# | dlls/kernelbase/tests/path.c, include/Makefile.in, include/pathcch.h
# | * dlls/api-ms-win-core-path-l1-1-0/api-ms-win-core-path-l1-1-0.spec, dlls/kernelbase/Makefile.in,
# | dlls/kernelbase/kernelbase.spec, dlls/kernelbase/main.c
# |
if test "$enable_kernelbase_PathCchCombineEx" -eq 1; then
patch_apply kernelbase-PathCchCombineEx/0001-kernelbase-Add-semi-stub-for-PathCchCombineEx.patch
@ -6014,18 +5979,6 @@ if test "$enable_ntdll_ProcessImageFileNameWin32" -eq 1; then
) >> "$patchlist"
fi
# Patchset ntdll-ProcessPriorityClass
# |
# | Modified files:
# | * dlls/ntdll/process.c, dlls/ntdll/tests/info.c
# |
if test "$enable_ntdll_ProcessPriorityClass" -eq 1; then
patch_apply ntdll-ProcessPriorityClass/0001-ntdll-Implement-ProcessPriorityClass-in-NtQueryInfor.patch
(
printf '%s\n' '+ { "Michael Müller", "ntdll: Implement ProcessPriorityClass in NtQueryInformationProcess.", 1 },';
) >> "$patchlist"
fi
# Patchset ntdll-ProcessQuotaLimits
# |
# | Modified files:
@ -7057,6 +7010,9 @@ fi
# | * server-Misc_ACL, ntdll-Threading, server-ClipCursor, server-Key_State, server-PeekMessage, server-Signal_Thread, server-
# | Shared_Memory
# |
# | This patchset fixes the following Wine bugs:
# | * [#44629] Process Hacker can't enumerate handles
# |
# | Modified files:
# | * dlls/ntdll/nt.c, dlls/ntdll/om.c, dlls/ntdll/tests/info.c, dlls/ntdll/tests/om.c, include/winternl.h,
# | server/completion.c, server/directory.c, server/event.c, server/file.c, server/handle.c, server/mailslot.c,
@ -8081,49 +8037,6 @@ if test "$enable_user32_ShowWindow" -eq 1; then
) >> "$patchlist"
fi
# Patchset user32-WM_MEASUREITEM
# |
# | This patchset fixes the following Wine bugs:
# | * [#37025] Pass correct itemData to WM_MEASUREITEM when inserting an item to an owner-drawn listbox
# |
# | Modified files:
# | * dlls/user32/listbox.c, dlls/user32/tests/msg.c
# |
if test "$enable_user32_WM_MEASUREITEM" -eq 1; then
patch_apply user32-WM_MEASUREITEM/0001-user32-tests-Add-a-test-for-WM_MEASUREITEM-when-inse.patch
patch_apply user32-WM_MEASUREITEM/0002-user32-Pass-correct-itemData-to-WM_MEASUREITEM-when-.patch
(
printf '%s\n' '+ { "Dmitry Timoshkov", "user32/tests: Add a test for WM_MEASUREITEM when inserting an item to an owner-drawn listbox.", 2 },';
printf '%s\n' '+ { "Dmitry Timoshkov", "user32: Pass correct itemData to WM_MEASUREITEM when inserting an item to an owner-drawn listbox.", 1 },';
) >> "$patchlist"
fi
# Patchset user32-Sorted_Listbox
# |
# | This patchset has the following (direct or indirect) dependencies:
# | * user32-WM_MEASUREITEM
# |
# | This patchset fixes the following Wine bugs:
# | * [#42602] Multiple fixes for owner-drawn and sorted listbox
# |
# | Modified files:
# | * dlls/user32/listbox.c, dlls/user32/tests/msg.c
# |
if test "$enable_user32_Sorted_Listbox" -eq 1; then
patch_apply user32-Sorted_Listbox/0001-user32-tests-Add-a-message-test-for-an-owner-drawn-s.patch
patch_apply user32-Sorted_Listbox/0002-user32-tests-Add-some-message-tests-for-not-an-owner.patch
patch_apply user32-Sorted_Listbox/0003-user32-Fix-order-of-items-passed-in-WM_COMPAREITEM-d.patch
patch_apply user32-Sorted_Listbox/0004-user32-Fix-the-listbox-sorting-algorithm.patch
patch_apply user32-Sorted_Listbox/0005-user32-For-an-owner-drawn-listbox-without-strings-WM.patch
(
printf '%s\n' '+ { "Dmitry Timoshkov", "user32/tests: Add a message test for an owner-drawn sorted listbox.", 1 },';
printf '%s\n' '+ { "Dmitry Timoshkov", "user32/tests: Add some message tests for not an owner-drawn listbox.", 1 },';
printf '%s\n' '+ { "Dmitry Timoshkov", "user32: Fix order of items passed in WM_COMPAREITEM data.", 2 },';
printf '%s\n' '+ { "Dmitry Timoshkov", "user32: Fix the listbox sorting algorithm.", 1 },';
printf '%s\n' '+ { "Dmitry Timoshkov", "user32: For an owner-drawn listbox without strings WM_MEASUREITEM still needs correct itemData.", 1 },';
) >> "$patchlist"
fi
# Patchset user32-WindowDisplayAffinity
# |
# | This patchset fixes the following Wine bugs:
@ -8286,24 +8199,6 @@ if test "$enable_wbemprox_Win32_OperatingSystem" -eq 1; then
) >> "$patchlist"
fi
# Patchset wbemprox-Win32_VideoController
# |
# | Modified files:
# | * dlls/wbemprox/builtin.c
# |
if test "$enable_wbemprox_Win32_VideoController" -eq 1; then
patch_apply wbemprox-Win32_VideoController/0001-wbemprox-Add-ConfigManagerErrorCode-for-Win32_VideoC.patch
patch_apply wbemprox-Win32_VideoController/0002-wbemprox-Add-Status-for-Win32_VideoController.patch
patch_apply wbemprox-Win32_VideoController/0003-wbemprox-Add-InstalledDisplayDrivers-for-Win32_Video.patch
patch_apply wbemprox-Win32_VideoController/0004-wbemprox-Add-DriverDate-for-Win32_VideoController.patch
(
printf '%s\n' '+ { "Michael Müller", "wbemprox: Add ConfigManagerErrorCode for Win32_VideoController.", 1 },';
printf '%s\n' '+ { "Michael Müller", "wbemprox: Add Status for Win32_VideoController.", 1 },';
printf '%s\n' '+ { "Michael Müller", "wbemprox: Add InstalledDisplayDrivers for Win32_VideoController.", 1 },';
printf '%s\n' '+ { "Michael Müller", "wbemprox: Add DriverDate for Win32_VideoController.", 1 },';
) >> "$patchlist"
fi
# Patchset windowscodecs-Palette_Images
# |
# | Modified files:

View File

@ -1,3 +1,3 @@
Fixes: Implement querying for object types and their indices
Fixes: [44629] Process Hacker can't enumerate handles
Depends: server-Shared_Memory
Depends: server-Misc_ACL

View File

@ -1,2 +1,2 @@
Fixes: [42602] Multiple fixes for owner-drawn and sorted listbox
Depends: user32-WM_MEASUREITEM
Disabled: true

View File

@ -1,159 +0,0 @@
From aaee88ae49b34874f485590818efba7eadd7edb4 Mon Sep 17 00:00:00 2001
From: Dmitry Timoshkov <dmitry@baikal.ru>
Date: Sun, 12 Jun 2016 16:16:48 +0800
Subject: user32/tests: Add a test for WM_MEASUREITEM when inserting an item to
an owner-drawn listbox (v2).
---
dlls/user32/tests/msg.c | 79 ++++++++++++++++++++++++++++++++++++++++++++++---
1 file changed, 75 insertions(+), 4 deletions(-)
diff --git a/dlls/user32/tests/msg.c b/dlls/user32/tests/msg.c
index 5ab639b..6580721 100644
--- a/dlls/user32/tests/msg.c
+++ b/dlls/user32/tests/msg.c
@@ -3,7 +3,7 @@
*
* Copyright 1999 Ove Kaaven
* Copyright 2003 Dimitrie O. Paun
- * Copyright 2004, 2005 Dmitry Timoshkov
+ * Copyright 2004,2005,2016 Dmitry Timoshkov
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -98,6 +98,22 @@ typedef struct
} u;
} DRAW_ITEM_STRUCT;
+/* encoded MEASUREITEMSTRUCT into a WPARAM */
+typedef struct
+{
+ union
+ {
+ struct
+ {
+ UINT CtlType : 4;
+ UINT CtlID : 4;
+ UINT itemID : 4;
+ UINT wParam : 20;
+ } item;
+ WPARAM wp;
+ } u;
+} MEASURE_ITEM_STRUCT;
+
static BOOL test_DestroyWindow_flag;
static HWINEVENTHOOK hEvent_hook;
static HHOOK hKBD_hook;
@@ -1815,6 +1831,25 @@ static BOOL ignore_message( UINT message )
message == WM_DWMNCRENDERINGCHANGED);
}
+static unsigned hash_Ly_W(const WCHAR *str)
+{
+ unsigned hash = 0;
+
+ for (; *str; str++)
+ hash = hash * 1664525u + (unsigned char)(*str) + 1013904223u;
+
+ return hash;
+}
+
+static unsigned hash_Ly(const char *str)
+{
+ unsigned hash = 0;
+
+ for (; *str; str++)
+ hash = hash * 1664525u + (unsigned char)(*str) + 1013904223u;
+
+ return hash;
+}
#define add_message(msg) add_message_(__LINE__,msg);
static void add_message_(int line, const struct recvd_message *msg)
@@ -1919,6 +1954,26 @@ static void add_message_(int line, const struct recvd_message *msg)
seq->lParam = di.u.lp;
break;
}
+
+ case WM_MEASUREITEM:
+ {
+ MEASURE_ITEM_STRUCT mi;
+ MEASUREITEMSTRUCT *mis = (MEASUREITEMSTRUCT *)msg->lParam;
+
+ sprintf( seq->output, "%s: %p WM_MEASUREITEM: CtlType %#x, CtlID %#x, itemID %#x, itemData %#lx",
+ msg->descr, msg->hwnd, mis->CtlType, mis->CtlID,
+ mis->itemID, mis->itemData);
+
+ mi.u.wp = 0;
+ mi.u.item.CtlType = mis->CtlType;
+ mi.u.item.CtlID = mis->CtlID;
+ mi.u.item.itemID = mis->itemID;
+ mi.u.item.wParam = msg->wParam;
+ seq->wParam = mi.u.wp;
+ seq->lParam = mis->itemData ? hash_Ly_W((const WCHAR *)mis->itemData) : 0;
+ break;
+ }
+
default:
if (msg->message >= 0xc000) return; /* ignore registered messages */
sprintf( seq->output, "%s: %p %04x wp %08lx lp %08lx",
@@ -8270,8 +8325,8 @@ static LRESULT WINAPI ParentMsgCheckProcA(HWND hwnd, UINT message, WPARAM wParam
message == WM_PARENTNOTIFY || message == WM_CANCELMODE ||
message == WM_SETFOCUS || message == WM_KILLFOCUS ||
message == WM_ENABLE || message == WM_ENTERIDLE ||
- message == WM_DRAWITEM || message == WM_COMMAND ||
- message == WM_IME_SETCONTEXT)
+ message == WM_DRAWITEM || message == WM_MEASUREITEM ||
+ message == WM_COMMAND || message == WM_IME_SETCONTEXT)
{
switch (message)
{
@@ -13387,6 +13442,16 @@ static const struct message wm_lb_deletestring_reset[] =
{ WM_DRAWITEM, sent|wparam|parent|optional, ID_LISTBOX },
{ 0 }
};
+static const struct message wm_lb_addstring[] =
+{
+ { LB_ADDSTRING, sent|wparam|lparam, 0, 0xf30604ed },
+ { WM_MEASUREITEM, sent|wparam|lparam|parent, 0xf0f2, 0xf30604ed },
+ { LB_ADDSTRING, sent|wparam|lparam, 0, 0xf30604ee },
+ { WM_MEASUREITEM, sent|wparam|lparam|parent, 0xf1f2, 0xf30604ee },
+ { LB_ADDSTRING, sent|wparam|lparam, 0, 0xf30604ef },
+ { WM_MEASUREITEM, sent|wparam|lparam|parent, 0xf2f2, 0xf30604ef },
+ { 0 }
+};
#define check_lb_state(a1, a2, a3, a4, a5) check_lb_state_dbg(a1, a2, a3, a4, a5, __LINE__)
@@ -13412,7 +13477,10 @@ static LRESULT WINAPI listbox_hook_proc(HWND hwnd, UINT message, WPARAM wp, LPAR
msg.flags = sent|wparam|lparam;
if (defwndproc_counter) msg.flags |= defwinproc;
msg.wParam = wp;
- msg.lParam = lp;
+ if (message == LB_ADDSTRING)
+ msg.lParam = lp ? hash_Ly((const char *)lp) : 0;
+ else
+ msg.lParam = lp;
msg.descr = "listbox";
add_message(&msg);
}
@@ -13456,6 +13524,8 @@ static void test_listbox_messages(void)
check_lb_state(listbox, 0, LB_ERR, 0, 0);
+ flush_sequence();
+
ret = SendMessageA(listbox, LB_ADDSTRING, 0, (LPARAM)"item 0");
ok(ret == 0, "expected 0, got %ld\n", ret);
ret = SendMessageA(listbox, LB_ADDSTRING, 0, (LPARAM)"item 1");
@@ -13463,6 +13533,7 @@ static void test_listbox_messages(void)
ret = SendMessageA(listbox, LB_ADDSTRING, 0, (LPARAM)"item 2");
ok(ret == 2, "expected 2, got %ld\n", ret);
+ ok_sequence(wm_lb_addstring, "LB_ADDSTRING", TRUE);
check_lb_state(listbox, 3, LB_ERR, 0, 0);
flush_sequence();
--
2.8.0

View File

@ -1,43 +0,0 @@
From ed64f216fbfa33dcabf5e33b207d856491a0d360 Mon Sep 17 00:00:00 2001
From: Dmitry Timoshkov <dmitry@baikal.ru>
Date: Thu, 9 Jun 2016 17:43:19 +0800
Subject: user32: Pass correct itemData to WM_MEASUREITEM when inserting an
item to an owner-drawn listbox.
---
dlls/user32/listbox.c | 4 +++-
dlls/user32/tests/msg.c | 2 +-
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/dlls/user32/listbox.c b/dlls/user32/listbox.c
index b73aa79..1776624 100644
--- a/dlls/user32/listbox.c
+++ b/dlls/user32/listbox.c
@@ -1566,8 +1566,10 @@ static LRESULT LISTBOX_InsertItem( LB_DESCR *descr, INT index,
mis.CtlType = ODT_LISTBOX;
mis.CtlID = id;
mis.itemID = index;
- mis.itemData = descr->items[index].data;
+ mis.itemData = (ULONG_PTR)str;
mis.itemHeight = descr->item_height;
+ TRACE("owner=%p CtlID=%08x, itemID=%08x, itemData=%08lx\n",
+ descr->owner, mis.CtlID, mis.itemID, mis.itemData);
SendMessageW( descr->owner, WM_MEASUREITEM, id, (LPARAM)&mis );
item->height = mis.itemHeight ? mis.itemHeight : 1;
TRACE("[%p]: measure item %d (%s) = %d\n",
diff --git a/dlls/user32/tests/msg.c b/dlls/user32/tests/msg.c
index 6580721..9b853a4 100644
--- a/dlls/user32/tests/msg.c
+++ b/dlls/user32/tests/msg.c
@@ -13533,7 +13533,7 @@ static void test_listbox_messages(void)
ret = SendMessageA(listbox, LB_ADDSTRING, 0, (LPARAM)"item 2");
ok(ret == 2, "expected 2, got %ld\n", ret);
- ok_sequence(wm_lb_addstring, "LB_ADDSTRING", TRUE);
+ ok_sequence(wm_lb_addstring, "LB_ADDSTRING", FALSE);
check_lb_state(listbox, 3, LB_ERR, 0, 0);
flush_sequence();
--
2.8.0

View File

@ -1 +0,0 @@
Fixes: [37025] Pass correct itemData to WM_MEASUREITEM when inserting an item to an owner-drawn listbox

View File

@ -1,85 +0,0 @@
From 8941fc985e103893adbec29ad592f9f8b9dbae44 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Wed, 15 Feb 2017 05:41:23 +0100
Subject: wbemprox: Add ConfigManagerErrorCode for Win32_VideoController.
---
dlls/wbemprox/builtin.c | 41 +++++++++++++++++++++++------------------
1 file changed, 23 insertions(+), 18 deletions(-)
diff --git a/dlls/wbemprox/builtin.c b/dlls/wbemprox/builtin.c
index 4dd7dcd5598..a8f8851086a 100644
--- a/dlls/wbemprox/builtin.c
+++ b/dlls/wbemprox/builtin.c
@@ -163,6 +163,8 @@ static const WCHAR prop_codesetW[] =
{'C','o','d','e','S','e','t',0};
static const WCHAR prop_commandlineW[] =
{'C','o','m','m','a','n','d','L','i','n','e',0};
+static const WCHAR prop_configmanagererrorcodeW[] =
+ {'C','o','n','f','i','g','M','a','n','a','g','e','r','E','r','r','o','r','C','o','d','e',0};
static const WCHAR prop_countrycodeW[] =
{'C','o','u','n','t','r','y','C','o','d','e',0};
static const WCHAR prop_cpustatusW[] =
@@ -684,24 +686,25 @@ static const struct column col_systemsecurity[] =
};
static const struct column col_videocontroller[] =
{
- { prop_adapterdactypeW, CIM_STRING },
- { prop_adapterramW, CIM_UINT32, VT_I4 },
- { prop_availabilityW, CIM_UINT16 },
- { prop_captionW, CIM_STRING|COL_FLAG_DYNAMIC },
- { prop_currentbitsperpixelW, CIM_UINT32, VT_I4 },
- { prop_currenthorizontalresW, CIM_UINT32, VT_I4 },
- { prop_currentrefreshrateW, CIM_UINT32, VT_I4 },
- { prop_currentscanmodeW, CIM_UINT16, VT_I4 },
- { prop_currentverticalresW, CIM_UINT32, VT_I4 },
- { prop_descriptionW, CIM_STRING|COL_FLAG_DYNAMIC },
- { prop_deviceidW, CIM_STRING|COL_FLAG_KEY },
- { prop_driverversionW, CIM_STRING },
- { prop_nameW, CIM_STRING|COL_FLAG_DYNAMIC },
- { prop_pnpdeviceidW, CIM_STRING|COL_FLAG_DYNAMIC },
- { prop_videoarchitectureW, CIM_UINT16, VT_I4 },
- { prop_videomemorytypeW, CIM_UINT16, VT_I4 },
- { prop_videomodedescriptionW, CIM_STRING|COL_FLAG_DYNAMIC },
- { prop_videoprocessorW, CIM_STRING|COL_FLAG_DYNAMIC }
+ { prop_adapterdactypeW, CIM_STRING },
+ { prop_adapterramW, CIM_UINT32, VT_I4 },
+ { prop_availabilityW, CIM_UINT16 },
+ { prop_captionW, CIM_STRING|COL_FLAG_DYNAMIC },
+ { prop_configmanagererrorcodeW, CIM_UINT32, VT_I4 },
+ { prop_currentbitsperpixelW, CIM_UINT32, VT_I4 },
+ { prop_currenthorizontalresW, CIM_UINT32, VT_I4 },
+ { prop_currentrefreshrateW, CIM_UINT32, VT_I4 },
+ { prop_currentscanmodeW, CIM_UINT16, VT_I4 },
+ { prop_currentverticalresW, CIM_UINT32, VT_I4 },
+ { prop_descriptionW, CIM_STRING|COL_FLAG_DYNAMIC },
+ { prop_deviceidW, CIM_STRING|COL_FLAG_KEY },
+ { prop_driverversionW, CIM_STRING },
+ { prop_nameW, CIM_STRING|COL_FLAG_DYNAMIC },
+ { prop_pnpdeviceidW, CIM_STRING|COL_FLAG_DYNAMIC },
+ { prop_videoarchitectureW, CIM_UINT16, VT_I4 },
+ { prop_videomemorytypeW, CIM_UINT16, VT_I4 },
+ { prop_videomodedescriptionW, CIM_STRING|COL_FLAG_DYNAMIC },
+ { prop_videoprocessorW, CIM_STRING|COL_FLAG_DYNAMIC },
};
static const WCHAR baseboard_manufacturerW[] =
@@ -1081,6 +1084,7 @@ struct record_videocontroller
UINT32 adapter_ram;
UINT16 availability;
const WCHAR *caption;
+ UINT32 config_errorcode;
UINT32 current_bitsperpixel;
UINT32 current_horizontalres;
UINT32 current_refreshrate;
@@ -3222,6 +3226,7 @@ done:
rec->adapter_dactype = videocontroller_dactypeW;
rec->adapter_ram = vidmem;
rec->availability = 3; /* Running or Full Power */
+ rec->config_errorcode = 0; /* no error */
rec->caption = heap_strdupW( name );
rec->current_bitsperpixel = get_bits_per_pixel( &hres, &vres );
rec->current_horizontalres = hres;
--
2.11.0

View File

@ -1,58 +0,0 @@
From de0496c36ab695d0900b2056b7d6896d0ab73060 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Wed, 15 Feb 2017 05:47:40 +0100
Subject: wbemprox: Add Status for Win32_VideoController.
---
dlls/wbemprox/builtin.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/dlls/wbemprox/builtin.c b/dlls/wbemprox/builtin.c
index a8f8851086a..eb0c1495c79 100644
--- a/dlls/wbemprox/builtin.c
+++ b/dlls/wbemprox/builtin.c
@@ -353,6 +353,8 @@ static const WCHAR prop_startingoffsetW[] =
{'S','t','a','r','t','i','n','g','O','f','f','s','e','t',0};
static const WCHAR prop_stateW[] =
{'S','t','a','t','e',0};
+static const WCHAR prop_statusW[] =
+ {'S','t','a','t','u','s',0};
static const WCHAR prop_statusinfoW[] =
{'S','t','a','t','u','s','I','n','f','o',0};
static const WCHAR prop_strvalueW[] =
@@ -701,6 +703,7 @@ static const struct column col_videocontroller[] =
{ prop_driverversionW, CIM_STRING },
{ prop_nameW, CIM_STRING|COL_FLAG_DYNAMIC },
{ prop_pnpdeviceidW, CIM_STRING|COL_FLAG_DYNAMIC },
+ { prop_statusW, CIM_STRING },
{ prop_videoarchitectureW, CIM_UINT16, VT_I4 },
{ prop_videomemorytypeW, CIM_UINT16, VT_I4 },
{ prop_videomodedescriptionW, CIM_STRING|COL_FLAG_DYNAMIC },
@@ -793,6 +796,8 @@ static const WCHAR videocontroller_deviceidW[] =
{'V','i','d','e','o','C','o','n','t','r','o','l','l','e','r','1',0};
static const WCHAR videocontroller_driverversionW[] =
{'1','.','0',0};
+static const WCHAR videocontroller_statusW[] =
+ {'O','K',0};
#include "pshpack1.h"
struct record_baseboard
@@ -1095,6 +1100,7 @@ struct record_videocontroller
const WCHAR *driverversion;
const WCHAR *name;
const WCHAR *pnpdevice_id;
+ const WCHAR *status;
UINT16 videoarchitecture;
UINT16 videomemorytype;
const WCHAR *videomodedescription;
@@ -3238,6 +3244,7 @@ done:
rec->driverversion = videocontroller_driverversionW;
rec->name = heap_strdupW( name );
rec->pnpdevice_id = get_pnpdeviceid( &desc );
+ rec->status = videocontroller_statusW;
rec->videoarchitecture = 2; /* Unknown */
rec->videomemorytype = 2; /* Unknown */
wsprintfW( mode, fmtW, hres, vres, (UINT64)1 << rec->current_bitsperpixel );
--
2.11.0

View File

@ -1,79 +0,0 @@
From 649bd4d7d1d114846041edfa13941864a6c2b02c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Wed, 15 Feb 2017 06:17:57 +0100
Subject: wbemprox: Add InstalledDisplayDrivers for Win32_VideoController.
---
dlls/wbemprox/builtin.c | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)
diff --git a/dlls/wbemprox/builtin.c b/dlls/wbemprox/builtin.c
index eb0c1495c79..4da7613f24b 100644
--- a/dlls/wbemprox/builtin.c
+++ b/dlls/wbemprox/builtin.c
@@ -241,6 +241,8 @@ static const WCHAR prop_indexW[] =
{'I','n','d','e','x',0};
static const WCHAR prop_installdateW[] =
{'I','n','s','t','a','l','l','D','a','t','e',0};
+static const WCHAR prop_installeddisplaydriversW[]=
+ {'I','n','s','t','a','l','l','e','d','D','i','s','p','l','a','y','D','r','i','v','e','r','s',0};
static const WCHAR prop_interfaceindexW[] =
{'I','n','t','e','r','f','a','c','e','I','n','d','e','x',0};
static const WCHAR prop_interfacetypeW[] =
@@ -701,6 +703,7 @@ static const struct column col_videocontroller[] =
{ prop_descriptionW, CIM_STRING|COL_FLAG_DYNAMIC },
{ prop_deviceidW, CIM_STRING|COL_FLAG_KEY },
{ prop_driverversionW, CIM_STRING },
+ { prop_installeddisplaydriversW,CIM_STRING },
{ prop_nameW, CIM_STRING|COL_FLAG_DYNAMIC },
{ prop_pnpdeviceidW, CIM_STRING|COL_FLAG_DYNAMIC },
{ prop_statusW, CIM_STRING },
@@ -1098,6 +1101,7 @@ struct record_videocontroller
const WCHAR *description;
const WCHAR *device_id;
const WCHAR *driverversion;
+ const WCHAR *installeddriver;
const WCHAR *name;
const WCHAR *pnpdevice_id;
const WCHAR *status;
@@ -3198,6 +3202,29 @@ static WCHAR *get_pnpdeviceid( DXGI_ADAPTER_DESC *desc )
return ret;
}
+#define HW_VENDOR_AMD 0x1002
+#define HW_VENDOR_NVIDIA 0x10de
+#define HW_VENDOR_VMWARE 0x15ad
+#define HW_VENDOR_INTEL 0x8086
+
+static const WCHAR* get_video_driver(UINT vendorid)
+{
+ static const WCHAR driver_amdW[] = {'a','t','i','c','f','x','3','2','.','d','l','l',0};
+ static const WCHAR driver_intelW[] = {'i','g','d','u','m','d','i','m','3','2','.','d','l','l',0};
+ static const WCHAR driver_nvidiaW[] = {'n','v','d','3','d','u','m','.','d','l','l',0};
+ static const WCHAR driver_wineW[] = {'w','i','n','e','.','d','l','l',0};
+
+ /* FIXME: wined3d has a better table, but we can not access this information through dxgi */
+
+ if (vendorid == HW_VENDOR_AMD)
+ return driver_amdW;
+ else if (vendorid == HW_VENDOR_NVIDIA)
+ return driver_nvidiaW;
+ else if (vendorid == HW_VENDOR_INTEL)
+ return driver_intelW;
+ return driver_wineW;
+}
+
static enum fill_status fill_videocontroller( struct table *table, const struct expr *cond )
{
static const WCHAR fmtW[] = {'%','u',' ','x',' ','%','u',' ','x',' ','%','I','6','4','u',' ','c','o','l','o','r','s',0};
@@ -3242,6 +3269,7 @@ done:
rec->description = heap_strdupW( name );
rec->device_id = videocontroller_deviceidW;
rec->driverversion = videocontroller_driverversionW;
+ rec->installeddriver = get_video_driver( desc.VendorId );
rec->name = heap_strdupW( name );
rec->pnpdevice_id = get_pnpdeviceid( &desc );
rec->status = videocontroller_statusW;
--
2.11.0

View File

@ -1,58 +0,0 @@
From b7325b56bd63c485c58678378b549f856329bb09 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Wed, 15 Feb 2017 06:49:40 +0100
Subject: wbemprox: Add DriverDate for Win32_VideoController.
---
dlls/wbemprox/builtin.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/dlls/wbemprox/builtin.c b/dlls/wbemprox/builtin.c
index 4da7613f24b..ffcffaa621c 100644
--- a/dlls/wbemprox/builtin.c
+++ b/dlls/wbemprox/builtin.c
@@ -213,6 +213,8 @@ static const WCHAR prop_domainroleW[] =
{'D','o','m','a','i','n','R','o','l','e',0};
static const WCHAR prop_driveW[] =
{'D','r','i','v','e',0};
+static const WCHAR prop_driverdateW[] =
+ {'D','r','i','v','e','r','D','a','t','e',0};
static const WCHAR prop_drivernameW[] =
{'D','r','i','v','e','r','N','a','m','e',0};
static const WCHAR prop_driverversionW[] =
@@ -702,6 +704,7 @@ static const struct column col_videocontroller[] =
{ prop_currentverticalresW, CIM_UINT32, VT_I4 },
{ prop_descriptionW, CIM_STRING|COL_FLAG_DYNAMIC },
{ prop_deviceidW, CIM_STRING|COL_FLAG_KEY },
+ { prop_driverdateW, CIM_DATETIME },
{ prop_driverversionW, CIM_STRING },
{ prop_installeddisplaydriversW,CIM_STRING },
{ prop_nameW, CIM_STRING|COL_FLAG_DYNAMIC },
@@ -797,6 +800,8 @@ static const WCHAR videocontroller_dactypeW[] =
{'I','n','t','e','g','r','a','t','e','d',' ','R','A','M','D','A','C',0};
static const WCHAR videocontroller_deviceidW[] =
{'V','i','d','e','o','C','o','n','t','r','o','l','l','e','r','1',0};
+static const WCHAR videocontroller_driverDateW[] =
+ {'2','0','1','7','0','1','0','1','0','0','0','0','0','0','.','0','0','0','0','0','0','+','0','0','0',0};
static const WCHAR videocontroller_driverversionW[] =
{'1','.','0',0};
static const WCHAR videocontroller_statusW[] =
@@ -1100,6 +1105,7 @@ struct record_videocontroller
UINT32 current_verticalres;
const WCHAR *description;
const WCHAR *device_id;
+ const WCHAR *driverdate;
const WCHAR *driverversion;
const WCHAR *installeddriver;
const WCHAR *name;
@@ -3268,6 +3274,7 @@ done:
rec->current_verticalres = vres;
rec->description = heap_strdupW( name );
rec->device_id = videocontroller_deviceidW;
+ rec->driverdate = videocontroller_driverDateW;
rec->driverversion = videocontroller_driverversionW;
rec->installeddriver = get_video_driver( desc.VendorId );
rec->name = heap_strdupW( name );
--
2.11.0

View File

@ -1 +0,0 @@
Fixes: Implement various missing columns in Win32_VideoController wbemprox class

View File

@ -271,7 +271,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
--- a/dlls/wined3d/surface.c
+++ b/dlls/wined3d/surface.c
@@ -2505,7 +2505,11 @@ static BOOL surface_load_texture(struct wined3d_surface *surface,
@@ -2522,7 +2522,11 @@ static BOOL surface_load_texture(struct wined3d_surface *surface,
/* Don't use PBOs for converted surfaces. During PBO conversion we look at
* WINED3D_TEXTURE_CONVERTED but it isn't set (yet) in all cases it is
* getting called. */