mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-01-28 22:04:43 -08:00
Rebase against b1aee9c391a7e3ce4a069993d527dbdc518ef29c.
This commit is contained in:
parent
092274bdf7
commit
745e1c5f96
@ -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
|
||||
|
||||
|
@ -1 +1 @@
|
||||
Fixes: Implement advapi32.CreateRestrictedToken
|
||||
Fixes: [25834] Implement advapi32.CreateRestrictedToken
|
||||
|
@ -1,2 +1,2 @@
|
||||
Fixes: Improve stub for ID3DXEffectImpl_CloneEffect
|
||||
Fixes: [44635] Improve stub for ID3DXEffectImpl_CloneEffect
|
||||
Depends: d3dx9_25-ID3DXEffect
|
||||
|
@ -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
|
||||
|
@ -1 +0,0 @@
|
||||
Fixes: Add glyphs U+FB01 and U+FB02 to Tahoma font
|
@ -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
|
||||
|
||||
|
@ -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])
|
||||
|
||||
|
@ -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
|
||||
|
@ -1 +0,0 @@
|
||||
Fixes: Implement ProcessPriorityClass in NtQueryInformationProcess
|
@ -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:
|
||||
|
@ -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
|
||||
|
@ -1,2 +1,2 @@
|
||||
Fixes: [42602] Multiple fixes for owner-drawn and sorted listbox
|
||||
Depends: user32-WM_MEASUREITEM
|
||||
Disabled: true
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -1 +0,0 @@
|
||||
Fixes: [37025] Pass correct itemData to WM_MEASUREITEM when inserting an item to an owner-drawn listbox
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -1 +0,0 @@
|
||||
Fixes: Implement various missing columns in Win32_VideoController wbemprox class
|
@ -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. */
|
||||
|
Loading…
x
Reference in New Issue
Block a user