Compare commits

..

12 Commits

Author SHA1 Message Date
Alistair Leslie-Hughes
8de9c65504 Release 4.0rc7 2019-01-19 14:17:04 +11:00
Alistair Leslie-Hughes
f04ae5b1da Updated msvcp140-_Equivalent patchset
Thanks Gijs
2019-01-18 13:25:08 +11:00
Alistair Leslie-Hughes
0501c71fce Added msvcp140-_Equivalent patchset 2019-01-18 11:10:08 +11:00
Alistair Leslie-Hughes
690a18a601 Merge pull request #68 from JL2210/use-env-python2
Use /usr/bin/env python2 instead of /usr/bin/python2
2019-01-18 05:36:30 +10:00
James Larrowe
eb09d462e2 Use /usr/bin/env python2 instead of /usr/bin/python2
Signed-off-by: James Larrowe <larrowe.semaj11@gmail.com>
2019-01-16 19:20:30 -05:00
Alistair Leslie-Hughes
3161e5be34 Rebase against 0b3e7115de6749262296518d659247168a202f5f 2019-01-17 10:05:02 +11:00
Alistair Leslie-Hughes
17083b95bb Rebase against a15d4de557ac2ba3b2418cb39fc6080a7523e604 2019-01-16 10:05:38 +11:00
Alistair Leslie-Hughes
50f0724f43 Added vssapi-CreateVssBackupComponents patchset 2019-01-15 10:58:04 +11:00
Alistair Leslie-Hughes
54f9a82de8 Added oleaut32-VarRound patchset 2019-01-15 08:40:24 +11:00
Alistair Leslie-Hughes
fe96596a19 Release v4.0-rc6 2019-01-13 10:46:08 +11:00
Alistair Leslie-Hughes
929bc28ac8 Updated user32-msgbox-Support-WM_COPY-mesg patchset 2019-01-11 09:28:10 +11:00
Alistair Leslie-Hughes
a7ad40c135 Rebase against 807e5fc04af7a7ea563af1e7da6ebe6662536e6b 2019-01-10 11:08:38 +11:00
22 changed files with 928 additions and 54 deletions

View File

@@ -0,0 +1,128 @@
From 9148a362cb4a728762584e1daf47d8c09c24d9ba Mon Sep 17 00:00:00 2001
From: Gijs Vermeulen <gijsvrm@gmail.com>
Date: Mon, 14 Jan 2019 18:07:35 +0100
Subject: [PATCH] msvcp140: Export _Equivalent and port tests.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46465
Signed-off-by: Gijs Vermeulen <gijsvrm@gmail.com>
---
dlls/msvcp140/msvcp140.spec | 2 +-
dlls/msvcp140/tests/msvcp140.c | 69 ++++++++++++++++++++++++++++++++++
2 files changed, 70 insertions(+), 1 deletion(-)
diff --git a/dlls/msvcp140/msvcp140.spec b/dlls/msvcp140/msvcp140.spec
index 245389e61e..6a4eb14c04 100644
--- a/dlls/msvcp140/msvcp140.spec
+++ b/dlls/msvcp140/msvcp140.spec
@@ -3638,7 +3638,7 @@
@ cdecl _Current_set(wstr) tr2_sys__Current_set_wchar
@ extern _Denorm _Denorm
@ cdecl _Dtest(ptr) _Dtest
-@ stub _Equivalent
+@ cdecl _Equivalent(wstr wstr) tr2_sys__Equivalent_wchar
@ cdecl _Exp(ptr double long) _Exp
@ stub _FCosh
@ extern _FDenorm _FDenorm
diff --git a/dlls/msvcp140/tests/msvcp140.c b/dlls/msvcp140/tests/msvcp140.c
index 5705882c88..2ba809dc50 100644
--- a/dlls/msvcp140/tests/msvcp140.c
+++ b/dlls/msvcp140/tests/msvcp140.c
@@ -176,6 +176,7 @@ static void (__cdecl *p__Release_chore)(_Threadpool_chore*);
static void (__cdecl *p_Close_dir)(void*);
static MSVCP_bool (__cdecl *p_Current_get)(WCHAR *);
static MSVCP_bool (__cdecl *p_Current_set)(WCHAR const *);
+static int (__cdecl *p_Equivalent)(WCHAR const*, WCHAR const*);
static ULONGLONG (__cdecl *p_File_size)(WCHAR const *);
static __int64 (__cdecl *p_Last_write_time)(WCHAR const*);
static void (__cdecl *p_Set_last_write_time)(WCHAR const*, __int64);
@@ -267,6 +268,7 @@ static BOOL init(void)
SET(p_Close_dir, "_Close_dir");
SET(p_Current_get, "_Current_get");
SET(p_Current_set, "_Current_set");
+ SET(p_Equivalent, "_Equivalent");
SET(p_File_size, "_File_size");
SET(p_Last_write_time, "_Last_write_time");
SET(p_Set_last_write_time, "_Set_last_write_time");
@@ -1360,6 +1362,72 @@ static void test__Winerror_map(void)
}
}
+static void test_Equivalent(void)
+{
+ int val, i;
+ HANDLE file;
+ WCHAR temp_path[MAX_PATH], current_path[MAX_PATH];
+ static const WCHAR wine_test_dirW[] =
+ {'w','i','n','e','_','t','e','s','t','_','d','i','r',0};
+ static const WCHAR f1W[] =
+ {'w','i','n','e','_','t','e','s','t','_','d','i','r','/','f','1',0};
+ static const WCHAR f1W_backslash[] =
+ {'w','i','n','e','_','t','e','s','t','_','d','i','r','\\','f','1',0};
+ static const WCHAR f1W_subdir[] =
+ {'w','i','n','e','_','t','e','s','t','_','d','i','r','/','.','/','f','1',0};
+ static const WCHAR f1W_long[] =
+ {'w','i','n','e','_','t','e','s','t','_','d','i','r','/','.','.','/','w','i','n','e','_','t','e','s','t','_','d','i','r','/','f','1',0};
+ static const WCHAR f2W[] =
+ {'w','i','n','e','_','t','e','s','t','_','d','i','r','/','f','2',0};
+ static const WCHAR not_existW[] =
+ {'n','o','t','_','e','x','i','s','t','s','_','f','i','l','e',0};
+ static const struct {
+ const WCHAR *path1;
+ const WCHAR *path2;
+ int equivalent;
+ } tests[] = {
+ { NULL, NULL, -1 },
+ { NULL, f1W, 0 },
+ { f1W, NULL, 0 },
+ { f1W, wine_test_dirW, 0 },
+ { wine_test_dirW, f1W, 0 },
+ { wine_test_dirW, wine_test_dirW, -1 },
+ { f1W_subdir, f2W, 0 },
+ { f1W, f1W, 1 },
+ { not_existW, f1W, 0 },
+ { f1W_backslash, f1W_subdir, 1 },
+ { not_existW, not_existW, -1 },
+ { f1W, not_existW, 0 },
+ { f1W_long, f1W, 1 }
+ };
+
+ memset(current_path, 0, MAX_PATH);
+ GetCurrentDirectoryW(MAX_PATH, current_path);
+ memset(temp_path, 0, MAX_PATH);
+ GetTempPathW(MAX_PATH, temp_path);
+ ok(SetCurrentDirectoryW(temp_path), "SetCurrentDirectoryW to temp_path failed\n");
+ CreateDirectoryW(wine_test_dirW, NULL);
+
+ file = CreateFileW(f1W, 0, 0, NULL, CREATE_ALWAYS, 0, NULL);
+ ok(file != INVALID_HANDLE_VALUE, "create file failed: INVALID_HANDLE_VALUE\n");
+ CloseHandle(file);
+ file = CreateFileW(f2W, 0, 0, NULL, CREATE_ALWAYS, 0, NULL);
+ ok(file != INVALID_HANDLE_VALUE, "create file failed: INVALID_HANDLE_VALUE\n");
+ CloseHandle(file);
+
+ for(i=0; i<ARRAY_SIZE(tests); i++) {
+ errno = 0xdeadbeef;
+ val = p_Equivalent(tests[i].path1, tests[i].path2);
+ ok(tests[i].equivalent == val, "_Equivalent(): test %d expect: %d, got %d\n", i+1, tests[i].equivalent, val);
+ ok(errno == 0xdeadbeef, "errno = %d\n", errno);
+ }
+
+ ok(DeleteFileW(f1W), "expect wine_test_dir/f1 to exist\n");
+ ok(DeleteFileW(f2W), "expect wine_test_dir/f2 to exist\n");
+ ok(p_Remove_dir(wine_test_dirW), "expect wine_test_dir to exist\n");
+ ok(SetCurrentDirectoryW(current_path), "SetCurrentDirectoryW failed\n");
+}
+
START_TEST(msvcp140)
{
if(!init()) return;
@@ -1383,5 +1451,6 @@ START_TEST(msvcp140)
test_Last_write_time();
test__Winerror_message();
test__Winerror_map();
+ test_Equivalent();
FreeLibrary(msvcp);
}
--
2.20.1

View File

@@ -0,0 +1 @@
Fixes: [46465] msvcp140: Forward _Equivalent to tr2_sys__Equivalent_wchar

View File

@@ -0,0 +1,65 @@
From e4bd4d8277a24e36bf1e58b99a8b32093eb1e771 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Mon, 14 Jan 2019 15:04:56 +1100
Subject: [PATCH] oleaut32: Support VT_DECIMAL in VarRound
Based of a patch by Carlos Chiriboga Calderon
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=26653
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
---
dlls/oleaut32/tests/vartest.c | 4 ++--
dlls/oleaut32/variant.c | 14 ++++++++++++++
2 files changed, 16 insertions(+), 2 deletions(-)
diff --git a/dlls/oleaut32/tests/vartest.c b/dlls/oleaut32/tests/vartest.c
index c00968e..92e044b 100644
--- a/dlls/oleaut32/tests/vartest.c
+++ b/dlls/oleaut32/tests/vartest.c
@@ -3632,7 +3632,8 @@ static const struct decimal_round_t decimal_round_data[] = {
{{ 2, 0, 0, 0, 199 }, { 2, 0, 0, 0, 199 }, 2},
{{ 2, DECIMAL_NEG, 0, 0, 199 }, { 2, DECIMAL_NEG, 0, 0, 199 }, 2},
{{ 2, DECIMAL_NEG, 0, 0, 55 }, { 2, DECIMAL_NEG, 0, 0, 6 }, 1},
- {{ 2, 0, 0, 0, 55 }, { 2, 0, 0, 0, 6 }, 1}
+ {{ 2, 0, 0, 0, 55 }, { 2, 0, 0, 0, 6 }, 1},
+ {{ 2, 0, 0, 0, 1999 }, { 1, 0, 0, 0, 200 }, 1},
};
static void test_VarRound(void)
@@ -3735,7 +3736,6 @@ static void test_VarRound(void)
S1(U1(*pdec)).Lo32 = ptr->source.Lo32;
VariantInit(&vDst);
hres = pVarRound(&v, ptr->dec, &vDst);
- todo_wine
ok(hres == S_OK, "%d: got 0x%08x\n", i, hres);
if (hres == S_OK)
{
diff --git a/dlls/oleaut32/variant.c b/dlls/oleaut32/variant.c
index 8781f3e..fcbef53 100644
--- a/dlls/oleaut32/variant.c
+++ b/dlls/oleaut32/variant.c
@@ -5134,7 +5134,21 @@ HRESULT WINAPI VarRound(LPVARIANT pVarIn, int deci, LPVARIANT pVarOut)
}
V_VT(pVarOut) = V_VT(pVarIn);
break;
+ case VT_DECIMAL:
+ {
+ double dbl;
+ VarR8FromDec(&V_DECIMAL(pVarIn), &dbl);
+
+ if (dbl>0.0f)
+ dbl = floor(dbl*pow(10,deci)+0.5);
+ else
+ dbl = ceil(dbl*pow(10,deci)-0.5);
+
+ V_VT(pVarOut)=VT_DECIMAL;
+ VarDecFromR8(dbl, &V_DECIMAL(pVarOut));
+ break;
+ }
/* cases we don't know yet */
default:
FIXME("unimplemented part, V_VT(pVarIn) == 0x%X, deci == %d\n",
--
1.9.1

View File

@@ -0,0 +1 @@
Fixes: [26653] oleaut32: Support VT_DECIMAL in VarRound

View File

@@ -52,13 +52,13 @@ usage()
# Get the upstream commit sha
upstream_commit()
{
echo "54e4d51fdbda08333012040c0683394853a097e9"
echo "b353d7c9148414be7c928e3925f4075b1578c0a8"
}
# Show version information
version()
{
echo "Wine Staging 4.0-rc5"
echo "Wine Staging 4.0-rc7"
echo "Copyright (C) 2014-2018 the Wine Staging project authors."
echo "Copyright (C) 2018 Alistair Leslie-Hughes"
echo ""
@@ -181,6 +181,7 @@ patch_enable_all ()
enable_msi_MsiGetDatabaseState="$1"
enable_msi_msi_vcl_get_cost="$1"
enable_msidb_Implementation="$1"
enable_msvcp140__Equivalent="$1"
enable_msvcrt_Math_Precision="$1"
enable_msvfw32_ICGetDisplayFormat="$1"
enable_ntdll_APC_Performance="$1"
@@ -251,6 +252,7 @@ patch_enable_all ()
enable_oleaut32_OLEPictureImpl_SaveAsFile="$1"
enable_oleaut32_OleLoadPicture="$1"
enable_oleaut32_OleLoadPictureFile="$1"
enable_oleaut32_VarRound="$1"
enable_opengl32_wglChoosePixelFormat="$1"
enable_packager_DllMain="$1"
enable_quartz_MediaSeeking_Positions="$1"
@@ -324,6 +326,7 @@ patch_enable_all ()
enable_version_VerFindFileA="$1"
enable_version_VerQueryValue="$1"
enable_virtdisk_OpenVirtualDisk="$1"
enable_vssapi_CreateVssBackupComponents="$1"
enable_widl_SLTG_Typelib_Support="$1"
enable_windowscodecs_32bppPRGBA="$1"
enable_windowscodecs_GIF_Encoder="$1"
@@ -703,6 +706,9 @@ patch_enable ()
msidb-Implementation)
enable_msidb_Implementation="$2"
;;
msvcp140-_Equivalent)
enable_msvcp140__Equivalent="$2"
;;
msvcrt-Math_Precision)
enable_msvcrt_Math_Precision="$2"
;;
@@ -913,6 +919,9 @@ patch_enable ()
oleaut32-OleLoadPictureFile)
enable_oleaut32_OleLoadPictureFile="$2"
;;
oleaut32-VarRound)
enable_oleaut32_VarRound="$2"
;;
opengl32-wglChoosePixelFormat)
enable_opengl32_wglChoosePixelFormat="$2"
;;
@@ -1132,6 +1141,9 @@ patch_enable ()
virtdisk-OpenVirtualDisk)
enable_virtdisk_OpenVirtualDisk="$2"
;;
vssapi-CreateVssBackupComponents)
enable_vssapi_CreateVssBackupComponents="$2"
;;
widl-SLTG_Typelib_Support)
enable_widl_SLTG_Typelib_Support="$2"
;;
@@ -4210,6 +4222,21 @@ if test "$enable_msidb_Implementation" -eq 1; then
) >> "$patchlist"
fi
# Patchset msvcp140-_Equivalent
# |
# | This patchset fixes the following Wine bugs:
# | * [#46465] msvcp140: Forward _Equivalent to tr2_sys__Equivalent_wchar
# |
# | Modified files:
# | * dlls/msvcp140/msvcp140.spec, dlls/msvcp140/tests/msvcp140.c
# |
if test "$enable_msvcp140__Equivalent" -eq 1; then
patch_apply msvcp140-_Equivalent/0001-msvcp140-Export-_Equivalent-and-port-tests.patch
(
printf '%s\n' '+ { "Gijs Vermeulen", "msvcp140: Export _Equivalent and port tests.", 1 },';
) >> "$patchlist"
fi
# Patchset msvcrt-Math_Precision
# |
# | This patchset fixes the following Wine bugs:
@@ -5347,6 +5374,21 @@ if test "$enable_oleaut32_OleLoadPictureFile" -eq 1; then
) >> "$patchlist"
fi
# Patchset oleaut32-VarRound
# |
# | This patchset fixes the following Wine bugs:
# | * [#26653] oleaut32: Support VT_DECIMAL in VarRound
# |
# | Modified files:
# | * dlls/oleaut32/tests/vartest.c, dlls/oleaut32/variant.c
# |
if test "$enable_oleaut32_VarRound" -eq 1; then
patch_apply oleaut32-VarRound/0001-oleaut32-Support-VT_DECIMAL-in-VarRound.patch
(
printf '%s\n' '+ { "Alistair Leslie-Hughes", "oleaut32: Support VT_DECIMAL in VarRound.", 1 },';
) >> "$patchlist"
fi
# Patchset opengl32-wglChoosePixelFormat
# |
# | This patchset fixes the following Wine bugs:
@@ -6573,8 +6615,10 @@ fi
# |
if test "$enable_user32_msgbox_Support_WM_COPY_mesg" -eq 1; then
patch_apply user32-msgbox-Support-WM_COPY-mesg/0001-user32-msgbox-Support-WM_COPY-Message.patch
patch_apply user32-msgbox-Support-WM_COPY-mesg/0002-user32-msgbox-Use-a-windows-hook-to-trap-Ctrl-C.patch
(
printf '%s\n' '+ { "Alistair Leslie-Hughes", "user32/msgbox: Support WM_COPY Message.", 1 },';
printf '%s\n' '+ { "Alistair Leslie-Hughes", "user32/msgbox: Use a windows hook to trap Ctrl+C.", 1 },';
) >> "$patchlist"
fi
@@ -6667,19 +6711,45 @@ if test "$enable_virtdisk_OpenVirtualDisk" -eq 1; then
) >> "$patchlist"
fi
# Patchset vssapi-CreateVssBackupComponents
# |
# | This patchset fixes the following Wine bugs:
# | * [#37639] vssapi: Add ?CreateVssBackupComponents@@YGJPAPAVIVssBackupComponents@ stub
# | * [#46088] vssapi: Add CreateVssBackupComponentsInternal stub
# |
# | Modified files:
# | * dlls/vssapi/main.c, dlls/vssapi/vssapi.spec, include/Makefile.in, include/vsbackup.idl, include/vss.idl,
# | include/vswriter.h, include/vswriter.idl
# |
if test "$enable_vssapi_CreateVssBackupComponents" -eq 1; then
patch_apply vssapi-CreateVssBackupComponents/0001-include-Add-more-VSS_-typedefs.patch
patch_apply vssapi-CreateVssBackupComponents/0002-include-Add-VSS-writer-enum.patch
patch_apply vssapi-CreateVssBackupComponents/0003-include-Convert-header-vswriter-to-an-idl.patch
patch_apply vssapi-CreateVssBackupComponents/0004-include-Add-vsbackup.idl.patch
patch_apply vssapi-CreateVssBackupComponents/0005-vssapi-Add-CreateVssBackupComponentsInternal-stub.patch
patch_apply vssapi-CreateVssBackupComponents/0006-vssapi-Add-CreateVssBackupComponents-YGJPAPAVIVssBac.patch
(
printf '%s\n' '+ { "Alistair Leslie-Hughes", "include: Add more VSS_* typedefs.", 1 },';
printf '%s\n' '+ { "Alistair Leslie-Hughes", "include: Add VSS writer enum.", 1 },';
printf '%s\n' '+ { "Alistair Leslie-Hughes", "include: Convert header vswriter to an idl.", 1 },';
printf '%s\n' '+ { "Alistair Leslie-Hughes", "include: Add vsbackup.idl.", 1 },';
printf '%s\n' '+ { "Alistair Leslie-Hughes", "vssapi: Add CreateVssBackupComponentsInternal stub.", 1 },';
printf '%s\n' '+ { "Alistair Leslie-Hughes", "vssapi: Add ?CreateVssBackupComponents@@YGJPAPAVIVssBackupComponents@@@Z stub.", 1 },';
) >> "$patchlist"
fi
# Patchset windowscodecs-GIF_Encoder
# |
# | Modified files:
# | * dlls/gdiplus/tests/image.c, dlls/windowscodecs/clsfactory.c, dlls/windowscodecs/converter.c,
# | dlls/windowscodecs/gifformat.c, dlls/windowscodecs/info.c, dlls/windowscodecs/regsvr.c,
# | dlls/windowscodecs/tests/converter.c, dlls/windowscodecs/tiffformat.c, dlls/windowscodecs/wincodecs_private.h,
# | dlls/windowscodecs/tests/converter.c, dlls/windowscodecs/wincodecs_private.h,
# | dlls/windowscodecs/windowscodecs_wincodec.idl
# |
if test "$enable_windowscodecs_GIF_Encoder" -eq 1; then
patch_apply windowscodecs-GIF_Encoder/0007-windowscodecs-tests-Add-IWICBitmapEncoderInfo-test.patch
patch_apply windowscodecs-GIF_Encoder/0008-windowscodecs-Add-initial-implementation-of-the-GIF-.patch
patch_apply windowscodecs-GIF_Encoder/0010-windowscodecs-Initialize-empty-property-bag-in-GIF-e.patch
patch_apply windowscodecs-GIF_Encoder/0014-windowscodecs-Fix-the-buffer-size-check-in-the-TIFF-.patch
patch_apply windowscodecs-GIF_Encoder/0015-windowscodecs-Add-support-for-converting-to-8bppInde.patch
patch_apply windowscodecs-GIF_Encoder/0016-windowscodecs-WICConvertBitmapSource-should-ask-IWIC.patch
patch_apply windowscodecs-GIF_Encoder/0020-windowscodecs-Add-registration-of-the-GIF-encoder.patch
@@ -6695,7 +6765,6 @@ if test "$enable_windowscodecs_GIF_Encoder" -eq 1; then
printf '%s\n' '+ { "Alistair Leslie-Hughes", "windowscodecs/tests: Add IWICBitmapEncoderInfo test.", 1 },';
printf '%s\n' '+ { "Dmitry Timoshkov", "windowscodecs: Add initial implementation of the GIF encoder.", 1 },';
printf '%s\n' '+ { "Dmitry Timoshkov", "windowscodecs: Initialize empty property bag in GIF encoder'\''s CreateNewFrame implementation.", 1 },';
printf '%s\n' '+ { "Dmitry Timoshkov", "windowscodecs: Fix the buffer size check in the TIFF decoder'\''s IWICBitmapFrameDecode::CopyPixels implementation.", 1 },';
printf '%s\n' '+ { "Dmitry Timoshkov", "windowscodecs: Add support for converting to 8bppIndexed format to IWICFormatConverter.", 1 },';
printf '%s\n' '+ { "Dmitry Timoshkov", "windowscodecs: WICConvertBitmapSource should ask IWICFormatConverter::Initialize to use an optimized palette.", 1 },';
printf '%s\n' '+ { "Dmitry Timoshkov", "windowscodecs: Add registration of the GIF encoder.", 1 },';

View File

@@ -1,4 +1,4 @@
From 1e0e23280f08a6ff0a3bcbf36255c5743f48d1d1 Mon Sep 17 00:00:00 2001
From 48940cf80a165efd218fed37d4d964197cccf36a Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Thu, 7 Apr 2016 16:04:36 +1000
Subject: [PATCH] user32/msgbox: Support WM_COPY Message
@@ -130,7 +130,7 @@ index 457c3ae..8a1b89f 100644
case WM_COMMAND:
switch (LOWORD(wParam))
diff --git a/dlls/user32/tests/dialog.c b/dlls/user32/tests/dialog.c
index 631f3d3..6f10391 100644
index 8c9bd21..139d589 100644
--- a/dlls/user32/tests/dialog.c
+++ b/dlls/user32/tests/dialog.c
@@ -40,6 +40,7 @@
@@ -141,7 +141,7 @@ index 631f3d3..6f10391 100644
#define MAXHWNDS 1024
static HWND hwnd [MAXHWNDS];
@@ -1900,6 +1901,187 @@ static void test_MessageBoxFontTest(void)
@@ -1973,6 +1974,187 @@ static void test_MessageBoxFontTest(void)
DestroyWindow(hDlg);
}
@@ -329,7 +329,7 @@ index 631f3d3..6f10391 100644
static void test_SaveRestoreFocus(void)
{
HWND hDlg;
@@ -2103,4 +2285,5 @@ START_TEST(dialog)
@@ -2176,4 +2358,5 @@ START_TEST(dialog)
test_SaveRestoreFocus();
test_timer_message();
test_MessageBox();

View File

@@ -0,0 +1,65 @@
From 27c59d8785c0c81039c4c307496c1e64d896a333 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Thu, 10 Jan 2019 16:17:33 +1100
Subject: [PATCH] user32/msgbox: Use a windows hook to trap Ctrl+C
---
dlls/user32/msgbox.c | 21 ++++++++++++++++++++-
1 file changed, 20 insertions(+), 1 deletion(-)
diff --git a/dlls/user32/msgbox.c b/dlls/user32/msgbox.c
index 8a1b89f..52b0852 100644
--- a/dlls/user32/msgbox.c
+++ b/dlls/user32/msgbox.c
@@ -388,6 +388,22 @@ static void MSGBOX_CopyToClipbaord( HWND hwnd )
}
}
+HHOOK msghook_handle;
+
+LRESULT CALLBACK msg_hook_proc(int nCode, WPARAM wParam, LPARAM lParam)
+{
+ MSG *msg = (MSG *)lParam;
+ if (nCode == MSGF_DIALOGBOX && msg->message == WM_KEYUP)
+ {
+ if ( (msg->wParam == 'C' || msg->wParam == 'c') && (GetKeyState(VK_CONTROL) & 0x8000))
+ {
+ MSGBOX_CopyToClipbaord(GetParent(msg->hwnd));
+ }
+ }
+
+ return CallNextHookEx(msghook_handle, nCode, wParam, lParam);
+}
+
/**************************************************************************
* MSGBOX_DlgProc
*
@@ -403,6 +419,7 @@ static INT_PTR CALLBACK MSGBOX_DlgProc( HWND hwnd, UINT message,
SetWindowContextHelpId(hwnd, mbp->dwContextHelpId);
MSGBOX_OnInit(hwnd, mbp);
SetPropA(hwnd, "WINE_MSGBOX_HELPCALLBACK", mbp->lpfnMsgBoxCallback);
+ msghook_handle = SetWindowsHookExA(WH_MSGFILTER, msg_hook_proc, GetModuleHandleA(NULL), 0);
break;
}
case WM_COPY:
@@ -410,6 +427,9 @@ static INT_PTR CALLBACK MSGBOX_DlgProc( HWND hwnd, UINT message,
MSGBOX_CopyToClipbaord(hwnd);
break;
}
+ case WM_DESTROY:
+ UnhookWindowsHookEx(msghook_handle);
+ break;
case WM_COMMAND:
switch (LOWORD(wParam))
@@ -454,7 +474,6 @@ static INT_PTR CALLBACK MSGBOX_DlgProc( HWND hwnd, UINT message,
return 0;
}
-
/**************************************************************************
* MessageBoxA (USER32.@)
*/
--
1.9.1

View File

@@ -0,0 +1,118 @@
From b07afce983260fac437bf17d16c61200a1dc8bd3 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Mon, 14 Jan 2019 11:02:10 +1100
Subject: [PATCH 1/6] include: Add more VSS_* typedefs
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
---
include/vss.idl | 90 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 90 insertions(+)
diff --git a/include/vss.idl b/include/vss.idl
index 62335ea..a190e66 100644
--- a/include/vss.idl
+++ b/include/vss.idl
@@ -19,6 +19,8 @@
import "oaidl.idl";
typedef GUID VSS_ID;
+typedef [unique, string] WCHAR *VSS_PWSZ;
+typedef LONGLONG VSS_TIMESTAMP;
typedef enum _VSS_APPLICATION_LEVEL
{
@@ -29,3 +31,91 @@ typedef enum _VSS_APPLICATION_LEVEL
VSS_APP_FRONT_END = 3,
VSS_APP_SYSTEM_RM = 4
} VSS_APPLICATION_LEVEL;
+
+typedef enum _VSS_BACKUP_TYPE
+{
+ VSS_BT_UNDEFINED,
+ VSS_BT_FULL,
+ VSS_BT_INCREMENTAL,
+ VSS_BT_DIFFERENTIAL,
+ VSS_BT_LOG,
+ VSS_BT_COPY,
+ VSS_BT_OTHER
+} VSS_BACKUP_TYPE, *PVSS_BACKUP_TYPE;
+
+typedef enum _VSS_RESTORE_TYPE
+{
+ VSS_RTYPE_UNDEFINED,
+ VSS_RTYPE_BY_COPY,
+ VSS_RTYPE_IMPORT,
+ VSS_RTYPE_OTHER
+} VSS_RESTORE_TYPE, *PVSS_RESTORE_TYPE;
+
+typedef enum _VSS_WRITER_STATE
+{
+ VSS_WS_UNKNOWN = 0,
+ VSS_WS_STABLE,
+ VSS_WS_WAITING_FOR_FREEZE,
+ VSS_WS_WAITING_FOR_THAW,
+ VSS_WS_WAITING_FOR_POST_SNAPSHOT,
+ VSS_WS_WAITING_FOR_BACKUP_COMPLETE,
+ VSS_WS_FAILED_AT_IDENTIFY,
+ VSS_WS_FAILED_AT_PREPARE_BACKUP,
+ VSS_WS_FAILED_AT_PREPARE_SNAPSHOT,
+ VSS_WS_FAILED_AT_FREEZE,
+ VSS_WS_FAILED_AT_THAW,
+ VSS_WS_FAILED_AT_POST_SNAPSHOT,
+ VSS_WS_FAILED_AT_BACKUP_COMPLETE,
+ VSS_WS_FAILED_AT_PRE_RESTORE,
+ VSS_WS_FAILED_AT_POST_RESTORE,
+ VSS_WS_FAILED_AT_BACKUPSHUTDOWN,
+ VSS_WS_COUNT
+} VSS_WRITER_STATE, *PVSS_WRITER_STATE;
+
+typedef enum _VSS_OBJECT_TYPE
+{
+ VSS_OBJECT_UNKNOWN = 0,
+ VSS_OBJECT_NONE,
+ VSS_OBJECT_SNAPSHOT_SET,
+ VSS_OBJECT_SNAPSHOT,
+ VSS_OBJECT_PROVIDER,
+ VSS_OBJECT_TYPE_COUNT
+} VSS_OBJECT_TYPE, *PVSS_OBJECT_TYPE;
+
+typedef enum _VSS_SNAPSHOT_STATE
+{
+ VSS_SS_UNKNOWN = 0,
+ VSS_SS_PREPARING,
+ VSS_SS_PROCESSING_PREPARE,
+ VSS_SS_PREPARED,
+ VSS_SS_PROCESSING_PRECOMMIT,
+ VSS_SS_PRECOMMITTED,
+ VSS_SS_PROCESSING_COMMIT,
+ VSS_SS_COMMITTED,
+ VSS_SS_PROCESSING_POSTCOMMIT,
+ VSS_SS_PROCESSING_PREFINALCOMMIT,
+ VSS_SS_PREFINALCOMMITTED,
+ VSS_SS_PROCESSING_POSTFINALCOMMIT,
+ VSS_SS_CREATED,
+ VSS_SS_ABORTED,
+ VSS_SS_DELETED,
+ VSS_SS_POSTCOMMITTED,
+ VSS_SS_COUNT
+} VSS_SNAPSHOT_STATE, *PVSS_SNAPSHOT_STATE;
+
+typedef struct _VSS_SNAPSHOT_PROP
+{
+ VSS_ID m_SnapshotId;
+ VSS_ID m_SnapshotSetId;
+ LONG m_lSnapshotsCount;
+ VSS_PWSZ m_pwszSnapshotDeviceObject;
+ VSS_PWSZ m_pwszOriginalVolumeName;
+ VSS_PWSZ m_pwszOriginatingMachine;
+ VSS_PWSZ m_pwszServiceMachine;
+ VSS_PWSZ m_pwszExposedName;
+ VSS_PWSZ m_pwszExposedPath;
+ VSS_ID m_ProviderId;
+ LONG m_lSnapshotAttributes;
+ VSS_TIMESTAMP m_tsCreationTimestamp;
+ VSS_SNAPSHOT_STATE m_eStatus;
+} VSS_SNAPSHOT_PROP, *PVSS_SNAPSHOT_PROP;
--
1.9.1

View File

@@ -0,0 +1,37 @@
From caa20a89174dcf17cd2bd561f20841d4cfb0b7bb Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Mon, 14 Jan 2019 11:07:43 +1100
Subject: [PATCH 2/6] include: Add VSS writer enum
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
---
include/vswriter.h | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/include/vswriter.h b/include/vswriter.h
index 043b871..ac23861 100644
--- a/include/vswriter.h
+++ b/include/vswriter.h
@@ -44,4 +44,19 @@ typedef enum
VSS_AWS_THIS_IS_ALTERNATE_WRITER
} VSS_ALTERNATE_WRITER_STATE;
+typedef enum VSS_COMPONENT_TYPE
+{
+ VSS_CT_UNDEFINED = 0,
+ VSS_CT_DATABASE,
+ VSS_CT_FILEGROUP
+} VSS_COMPONENT_TYPE;
+
+typedef enum VSS_FILE_RESTORE_STATUS
+{
+ VSS_RS_UNDEFINED = 0,
+ VSS_RS_NONE,
+ VSS_RS_ALL,
+ VSS_RS_FAILED
+} VSS_FILE_RESTORE_STATUS;
+
#endif /* ___WINE_VSWRITER_H */
--
1.9.1

View File

@@ -0,0 +1,162 @@
From 409e9bf5055717c010e0f45cd085dbb78f1f4c35 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Mon, 14 Jan 2019 12:08:52 +1100
Subject: [PATCH 3/6] include: Convert header vswriter to an idl.
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
---
include/Makefile.in | 2 +-
include/vswriter.h | 62 ----------------------------------------------------
include/vswriter.idl | 58 ++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 59 insertions(+), 63 deletions(-)
delete mode 100644 include/vswriter.h
create mode 100644 include/vswriter.idl
diff --git a/include/Makefile.in b/include/Makefile.in
index fd47078..a4642ce 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -649,7 +649,7 @@ SOURCES = \
vss.idl \
vsstyle.h \
vssym32.h \
- vswriter.h \
+ vswriter.idl \
wbemcli.idl \
wbemdisp.idl \
wbemprov.idl \
diff --git a/include/vswriter.h b/include/vswriter.h
deleted file mode 100644
index ac23861..0000000
--- a/include/vswriter.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright 2014 Hans Leidekker for CodeWeavers
- *
- * 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
- */
-
-#ifndef __WINE_VSWRITER_H
-#define __WINE_VSWRITER_H
-
-typedef enum
-{
- VSS_UT_UNDEFINED,
- VSS_UT_BOOTABLESYSTEMSTATE,
- VSS_UT_SYSTEMSERVICE,
- VSS_UT_USERDATA,
- VSS_UT_OTHER
-} VSS_USAGE_TYPE;
-
-typedef enum
-{
- VSS_ST_UNDEFINED,
- VSS_ST_TRANSACTEDDB,
- VSS_ST_NONTRANSACTEDDB,
- VSS_ST_OTHER
-} VSS_SOURCE_TYPE;
-
-typedef enum
-{
- VSS_AWS_UNDEFINED,
- VSS_AWS_NO_ALTERNATE_WRITER,
- VSS_AWS_ALTERNATE_WRITER_EXISTS,
- VSS_AWS_THIS_IS_ALTERNATE_WRITER
-} VSS_ALTERNATE_WRITER_STATE;
-
-typedef enum VSS_COMPONENT_TYPE
-{
- VSS_CT_UNDEFINED = 0,
- VSS_CT_DATABASE,
- VSS_CT_FILEGROUP
-} VSS_COMPONENT_TYPE;
-
-typedef enum VSS_FILE_RESTORE_STATUS
-{
- VSS_RS_UNDEFINED = 0,
- VSS_RS_NONE,
- VSS_RS_ALL,
- VSS_RS_FAILED
-} VSS_FILE_RESTORE_STATUS;
-
-#endif /* ___WINE_VSWRITER_H */
diff --git a/include/vswriter.idl b/include/vswriter.idl
new file mode 100644
index 0000000..6bc6890
--- /dev/null
+++ b/include/vswriter.idl
@@ -0,0 +1,58 @@
+/*
+ * Copyright 2014 Hans Leidekker for CodeWeavers
+ *
+ * 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
+ */
+import "oaidl.idl";
+
+typedef enum
+{
+ VSS_UT_UNDEFINED,
+ VSS_UT_BOOTABLESYSTEMSTATE,
+ VSS_UT_SYSTEMSERVICE,
+ VSS_UT_USERDATA,
+ VSS_UT_OTHER
+} VSS_USAGE_TYPE;
+
+typedef enum
+{
+ VSS_ST_UNDEFINED,
+ VSS_ST_TRANSACTEDDB,
+ VSS_ST_NONTRANSACTEDDB,
+ VSS_ST_OTHER
+} VSS_SOURCE_TYPE;
+
+typedef enum
+{
+ VSS_AWS_UNDEFINED,
+ VSS_AWS_NO_ALTERNATE_WRITER,
+ VSS_AWS_ALTERNATE_WRITER_EXISTS,
+ VSS_AWS_THIS_IS_ALTERNATE_WRITER
+} VSS_ALTERNATE_WRITER_STATE;
+
+typedef enum VSS_COMPONENT_TYPE
+{
+ VSS_CT_UNDEFINED = 0,
+ VSS_CT_DATABASE,
+ VSS_CT_FILEGROUP
+} VSS_COMPONENT_TYPE;
+
+typedef enum VSS_FILE_RESTORE_STATUS
+{
+ VSS_RS_UNDEFINED = 0,
+ VSS_RS_NONE,
+ VSS_RS_ALL,
+ VSS_RS_FAILED
+} VSS_FILE_RESTORE_STATUS;
--
1.9.1

View File

@@ -0,0 +1,130 @@
From 8f4976596db8e71f79e592ad092eceba6191ce06 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Mon, 14 Jan 2019 12:13:04 +1100
Subject: [PATCH 4/6] include: Add vsbackup.idl
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
---
include/Makefile.in | 1 +
include/vsbackup.idl | 97 ++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 98 insertions(+)
create mode 100644 include/vsbackup.idl
diff --git a/include/Makefile.in b/include/Makefile.in
index a4642ce..eaf3114 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -646,6 +646,7 @@ SOURCES = \
virtdisk.h \
vmr9.idl \
vmrender.idl \
+ vsbackup.idl \
vss.idl \
vsstyle.h \
vssym32.h \
diff --git a/include/vsbackup.idl b/include/vsbackup.idl
new file mode 100644
index 0000000..0b5a2d3
--- /dev/null
+++ b/include/vsbackup.idl
@@ -0,0 +1,97 @@
+/*
+ * Copyright 2019 Alistair Leslie-Hughes
+ *
+ * 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
+ */
+
+import "oaidl.idl";
+import "vswriter.idl";
+import "vss.idl";
+
+interface IVssAsync;
+interface IVssEnumObject;
+interface IVssExamineWriterMetadata;
+interface IVssWriterComponentsExt;
+
+[
+ uuid("665c1d5f-c218-414d-a05d-7fef5f9d5c86"),
+ local
+]
+interface IVssBackupComponents : IUnknown
+{
+ HRESULT GetWriterComponentsCount([out] UINT *components);
+ HRESULT GetWriterComponents([in] UINT index, [out] IVssWriterComponentsExt **writer);
+ HRESULT InitializeForBackup( [in, optional, defaultvalue(NULL)] BSTR bstrXML);
+ HRESULT SetBackupState([in] BOOL select_components, [in] BOOL state,
+ [in] VSS_BACKUP_TYPE type, [in, defaultvalue(FALSE)] BOOL partial_support);
+ HRESULT InitializeForRestore([in] BSTR xml);
+ HRESULT SetRestoreState([in] VSS_RESTORE_TYPE restore);
+ HRESULT GatherWriterMetadata([out] IVssAsync **async);
+ HRESULT GetWriterMetadataCount([out] UINT *count);
+ HRESULT GetWriterMetadata([in] UINT index, [out] VSS_ID *instance, [out] IVssExamineWriterMetadata **metadata);
+ HRESULT FreeWriterMetadata();
+ HRESULT AddComponent([in] VSS_ID instance, [in] VSS_ID id, [in] VSS_COMPONENT_TYPE ct, [in] LPCWSTR wszLogicalPath,
+ [in] LPCWSTR name);
+ HRESULT PrepareForBackup([out] IVssAsync **async);
+ HRESULT AbortBackup();
+ HRESULT GatherWriterStatus([out] IVssAsync **async);
+ HRESULT GetWriterStatusCount([out] UINT *count);
+ HRESULT FreeWriterStatus();
+ HRESULT GetWriterStatus([in] UINT index, [out] VSS_ID *instance, [out] VSS_ID *id, [out] BSTR *writer,
+ [out] VSS_WRITER_STATE *status, [out] HRESULT *failure);
+ HRESULT SetBackupSucceeded([in] VSS_ID instance, [in] VSS_ID id, [in] VSS_COMPONENT_TYPE ct,
+ [in] LPCWSTR path, [in] LPCWSTR name, [in] BOOL succeded);
+ HRESULT SetBackupOptions([in] VSS_ID id, [in] VSS_COMPONENT_TYPE ct, [in] LPCWSTR path,
+ [in] LPCWSTR name, [in] LPCWSTR options);
+ HRESULT SetSelectedForRestore([in] VSS_ID id, [in] VSS_COMPONENT_TYPE ct, [in] LPCWSTR path,
+ [in] LPCWSTR name, [in] BOOL selected_restore);
+ HRESULT SetRestoreOptions([in] VSS_ID id, [in] VSS_COMPONENT_TYPE ct, [in] LPCWSTR path, [in] LPCWSTR name,
+ [in] LPCWSTR options);
+ HRESULT SetAdditionalRestores([in] VSS_ID id, [in] VSS_COMPONENT_TYPE ct, [in] LPCWSTR path, [in] LPCWSTR name,
+ [in] BOOL additional);
+ HRESULT SetPreviousBackupStamp([in] VSS_ID id, [in] VSS_COMPONENT_TYPE ct, [in] LPCWSTR path, [in] LPCWSTR name,
+ [in] LPCWSTR stamp);
+ HRESULT SaveAsXML([in] BSTR *xml);
+ HRESULT BackupComplete([out] IVssAsync **async);
+ HRESULT AddAlternativeLocationMapping([in] VSS_ID id, [in] VSS_COMPONENT_TYPE type, [in] LPCWSTR logical,
+ [in] LPCWSTR name, [in] LPCWSTR path, [in] LPCWSTR filespec, [in] BOOL recursive, [in] LPCWSTR destination);
+ HRESULT AddRestoreSubcomponent([in] VSS_ID id, [in] VSS_COMPONENT_TYPE type, [in] LPCWSTR logical, [in] LPCWSTR name,
+ [in] LPCWSTR path, [in] LPCWSTR sub_name, [in] BOOL repair);
+ HRESULT SetFileRestoreStatus([in] VSS_ID id, [in] VSS_COMPONENT_TYPE ct, [in] LPCWSTR path, [in] LPCWSTR name,
+ [in] VSS_FILE_RESTORE_STATUS status);
+ HRESULT AddNewTarget([in] VSS_ID id, [in] VSS_COMPONENT_TYPE ct, [in] LPCWSTR logical, [in] LPCWSTR component,
+ [in] LPCWSTR path, [in] LPCWSTR filename, [in] BOOL recursive, [in] LPCWSTR alternate);
+ HRESULT SetRangesFilePath([in] VSS_ID id, [in] VSS_COMPONENT_TYPE ct, [in] LPCWSTR logical, [in] LPCWSTR component,
+ [in] UINT partial, [in] LPCWSTR ranges);
+ HRESULT PreRestore([out] IVssAsync **async);
+ HRESULT PostRestore([out] IVssAsync **async);
+ HRESULT SetContext([in] LONG context);
+ HRESULT StartSnapshotSet([out] VSS_ID *id);
+ HRESULT AddToSnapshotSet([in] VSS_PWSZ volume,[in] VSS_ID id,[out] VSS_ID *snapshot);
+ HRESULT DoSnapshotSet([out] IVssAsync ** async);
+ HRESULT DeleteSnapshots([in] VSS_ID object, [in] VSS_OBJECT_TYPE type, [in] BOOL force, [in] LONG *snapshots, [in] VSS_ID *id);
+ HRESULT ImportSnapshots([out] IVssAsync **async);
+ HRESULT BreakSnapshotSet([in] VSS_ID snapshot);
+ HRESULT GetSnapshotProperties([in] VSS_ID snapshot, [out] VSS_SNAPSHOT_PROP *prop);
+ HRESULT Query([in] VSS_ID queried, [in] VSS_OBJECT_TYPE queried_type, [in] VSS_OBJECT_TYPE returned_type, [in] IVssEnumObject **enums);
+ HRESULT IsVolumeSupported([in] VSS_ID provider, [in] VSS_PWSZ volume,[in] BOOL *supported);
+ HRESULT DisableWriterClasses([in] const VSS_ID *writer_id, [in] UINT class_id);
+ HRESULT EnableWriterClasses([in] const VSS_ID *classid, [in] UINT id);
+ HRESULT DisableWriterInstances([in] const VSS_ID *instance, [in] UINT id);
+ HRESULT ExposeSnapshot([in] VSS_ID snapshot, [in] VSS_PWSZ path, [in] LONG attributes,
+ [in] VSS_PWSZ expose, [out] VSS_PWSZ *exposed);
+ HRESULT RevertToSnapshot([in] VSS_ID snapshot, [in] BOOL force);
+ HRESULT QueryRevertStatus([in] VSS_PWSZ volume, [out] IVssAsync **async);
+};
--
1.9.1

View File

@@ -0,0 +1,71 @@
From 3d0f1e5a448ac667c3d9f3bd9ca09e467fa53871 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Mon, 14 Jan 2019 12:18:26 +1100
Subject: [PATCH 5/6] vssapi: Add CreateVssBackupComponentsInternal stub
---
dlls/vssapi/main.c | 7 +++++++
dlls/vssapi/vssapi.spec | 2 +-
include/vsbackup.idl | 11 +++++++++++
3 files changed, 19 insertions(+), 1 deletion(-)
diff --git a/dlls/vssapi/main.c b/dlls/vssapi/main.c
index 9234544..a24b320 100644
--- a/dlls/vssapi/main.c
+++ b/dlls/vssapi/main.c
@@ -22,6 +22,7 @@
#include "winbase.h"
#include "vss.h"
#include "vswriter.h"
+#include "vsbackup.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL( vssapi );
@@ -107,3 +108,9 @@ HRESULT __thiscall VSSAPI_CVssWriter_Unsubscribe( struct CVssWriter *writer )
FIXME( "%p\n", writer );
return S_OK;
}
+
+HRESULT WINAPI CreateVssBackupComponentsInternal(IVssBackupComponents **backup)
+{
+ FIXME("%p\n", backup);
+ return E_NOTIMPL;
+}
diff --git a/dlls/vssapi/vssapi.spec b/dlls/vssapi/vssapi.spec
index 146feb4..7bd47e8 100644
--- a/dlls/vssapi/vssapi.spec
+++ b/dlls/vssapi/vssapi.spec
@@ -75,7 +75,7 @@
@ stub ?Uninitialize@CVssJetWriter@@QAGXXZ
@ thiscall -arch=i386 ?Unsubscribe@CVssWriter@@QAGJXZ(ptr) VSSAPI_CVssWriter_Unsubscribe
@ cdecl -arch=win64 ?Unsubscribe@CVssWriter@@QEAAJXZ(ptr) VSSAPI_CVssWriter_Unsubscribe
-@ stub CreateVssBackupComponentsInternal
+@ stdcall CreateVssBackupComponentsInternal(ptr)
@ stub CreateVssExamineWriterMetadataInternal
@ stub CreateVssExpressWriterInternal
@ stub CreateWriter
diff --git a/include/vsbackup.idl b/include/vsbackup.idl
index 0b5a2d3..e2f5a54 100644
--- a/include/vsbackup.idl
+++ b/include/vsbackup.idl
@@ -25,6 +25,17 @@ interface IVssEnumObject;
interface IVssExamineWriterMetadata;
interface IVssWriterComponentsExt;
+cpp_quote("#ifdef _cplusplus")
+cpp_quote("extern \"C\" {")
+cpp_quote("#endif")
+cpp_quote("HRESULT WINAPI CreateVssBackupComponentsInternal(IVssBackupComponents **backup);")
+cpp_quote("#ifdef _cplusplus")
+cpp_quote("}")
+cpp_quote("#endif")
+
+cpp_quote("static inline HRESULT CreateVssBackupComponents(IVssBackupComponents **backup)")
+cpp_quote(" { return CreateVssBackupComponentsInternal(backup); }")
+
[
uuid("665c1d5f-c218-414d-a05d-7fef5f9d5c86"),
local
--
1.9.1

View File

@@ -0,0 +1,45 @@
From 2672c7b782026df87cd3007c8006811f021d4545 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Tue, 15 Jan 2019 10:38:28 +1100
Subject: [PATCH 6/6] vssapi: Add
?CreateVssBackupComponents@@YGJPAPAVIVssBackupComponents@@@Z stub
---
dlls/vssapi/main.c | 10 ++++++++++
dlls/vssapi/vssapi.spec | 2 +-
2 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/dlls/vssapi/main.c b/dlls/vssapi/main.c
index a24b320..7617c0d 100644
--- a/dlls/vssapi/main.c
+++ b/dlls/vssapi/main.c
@@ -114,3 +114,13 @@ HRESULT WINAPI CreateVssBackupComponentsInternal(IVssBackupComponents **backup)
FIXME("%p\n", backup);
return E_NOTIMPL;
}
+
+/******************************************************************
+ * ?CreateVssBackupComponents@@YGJPAPAVIVssBackupComponents@@@Z
+ */
+HRESULT VSSAPI_CreateVssBackupComponents( IVssBackupComponents **backup )
+{
+ FIXME( "%p\n", backup );
+
+ return CreateVssBackupComponentsInternal(backup);
+}
diff --git a/dlls/vssapi/vssapi.spec b/dlls/vssapi/vssapi.spec
index 7bd47e8..c759c11 100644
--- a/dlls/vssapi/vssapi.spec
+++ b/dlls/vssapi/vssapi.spec
@@ -9,7 +9,7 @@
@ cdecl -arch=win64 ??1CVssWriter@@UEAA@XZ(ptr) VSSAPI_CVssWriter_dtor
@ stub ?AreComponentsSelected@CVssJetWriter@@IBG_NXZ
@ stub ?AreComponentsSelected@CVssWriter@@IBG_NXZ
-@ stub ?CreateVssBackupComponents@@YGJPAPAVIVssBackupComponents@@@Z
+@ stdcall ?CreateVssBackupComponents@@YGJPAPAVIVssBackupComponents@@@Z(ptr) VSSAPI_CreateVssBackupComponents
@ stub ?CreateVssExamineWriterMetadata@@YGJPAGPAPAVIVssExamineWriterMetadata@@@Z
@ stub ?CreateVssSnapshotSetDescription@@YGJU_GUID@@JPAPAVIVssSnapshotSetDescription@@@Z
@ stub ?GetBackupType@CVssJetWriter@@IBG?AW4_VSS_BACKUP_TYPE@@XZ
--
1.9.1

View File

@@ -0,0 +1,2 @@
Fixes: [37639] vssapi: Add ?CreateVssBackupComponents@@YGJPAPAVIVssBackupComponents@ stub
Fixes: [46088] vssapi: Add CreateVssBackupComponentsInternal stub

View File

@@ -1,30 +0,0 @@
From d34044e4deedfccf2bb0d7756fbddfd3197116fd Mon Sep 17 00:00:00 2001
From: Dmitry Timoshkov <dmitry@baikal.ru>
Date: Thu, 20 Oct 2016 19:05:02 +0800
Subject: windowscodecs: Fix the buffer size check in the TIFF decoder's
IWICBitmapFrameDecode::CopyPixels implementation.
Otherwise IWICBitmapSource::CopyPixels() after IWICImagingFactory::CreateBitmapFromSource()
fails for an 24bpp RGB/BGR source.
The check is copied from BMP decoder implementation.
---
dlls/windowscodecs/tiffformat.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/windowscodecs/tiffformat.c b/dlls/windowscodecs/tiffformat.c
index 19aa5d5..f4f4a49 100644
--- a/dlls/windowscodecs/tiffformat.c
+++ b/dlls/windowscodecs/tiffformat.c
@@ -1106,7 +1106,7 @@ static HRESULT WINAPI TiffFrameDecode_CopyPixels(IWICBitmapFrameDecode *iface,
if (cbStride < bytesperrow)
return E_INVALIDARG;
- if ((cbStride * prc->Height) > cbBufferSize)
+ if ((cbStride * (prc->Height-1)) + ((prc->Width * This->decode_info.bpp) + 7)/8 > cbBufferSize)
return E_INVALIDARG;
min_tile_x = prc->X / This->decode_info.tile_width;
--
2.9.0

View File

@@ -1,17 +1,17 @@
From 05d258140cf227a2e51530afc11f8decf0bf156e Mon Sep 17 00:00:00 2001
From 8baa01305598f32635ea565768e42fd2a362a912 Mon Sep 17 00:00:00 2001
From: Dmitry Timoshkov <dmitry@baikal.ru>
Date: Fri, 9 Dec 2016 13:02:07 +0800
Subject: [PATCH] windowscodecs: Add some tests for various TIFF color formats.
---
dlls/windowscodecs/tests/tiffformat.c | 436 ++++++++++++++++++++++++++++++++++
1 file changed, 436 insertions(+)
dlls/windowscodecs/tests/tiffformat.c | 439 +++++++++++++++++++++++++++++++++-
1 file changed, 438 insertions(+), 1 deletion(-)
diff --git a/dlls/windowscodecs/tests/tiffformat.c b/dlls/windowscodecs/tests/tiffformat.c
index 0f40295b9c..5671dfbfbc 100644
index cfb16be..ac6a471 100644
--- a/dlls/windowscodecs/tests/tiffformat.c
+++ b/dlls/windowscodecs/tests/tiffformat.c
@@ -312,6 +312,61 @@ static HRESULT create_decoder(const void *image_data, UINT image_size, IWICBitma
@@ -361,6 +361,61 @@ static HRESULT create_decoder(const void *image_data, UINT image_size, IWICBitma
return hr;
}
@@ -73,8 +73,18 @@ index 0f40295b9c..5671dfbfbc 100644
static void test_tiff_1bpp_palette(void)
{
HRESULT hr;
@@ -631,6 +686,386 @@ static void test_tiff_resolution(void)
}
@@ -694,7 +749,8 @@ static void test_tiff_24bpp(void)
BYTE data[3];
static const BYTE expected_data[] = { 0x33,0x22,0x11 };
- decoder = create_decoder(&tiff_24bpp_data, sizeof(tiff_24bpp_data));
+ hr = create_decoder(&tiff_24bpp_data, sizeof(tiff_24bpp_data), &decoder);
+ ok(hr == S_OK, "got %#x\n", hr);
ok(decoder != NULL, "Failed to load TIFF image data\n");
hr = IWICBitmapDecoder_GetFrameCount(decoder, &count);
@@ -744,6 +800,386 @@ todo_wine_if(stride > 3)
IWICBitmapDecoder_Release(decoder);
}
+#include "pshpack2.h"
@@ -460,7 +470,7 @@ index 0f40295b9c..5671dfbfbc 100644
START_TEST(tiffformat)
{
HRESULT hr;
@@ -642,6 +1077,7 @@ START_TEST(tiffformat)
@@ -755,6 +1191,7 @@ START_TEST(tiffformat)
ok(hr == S_OK, "CoCreateInstance error %#x\n", hr);
if (FAILED(hr)) return;
@@ -469,5 +479,5 @@ index 0f40295b9c..5671dfbfbc 100644
test_tiff_8bpp_palette();
test_QueryCapability();
--
2.16.1
1.9.1

View File

@@ -1 +1 @@
Wine Staging 4.0-rc5
Wine Staging 4.0-rc7

View File

@@ -1,4 +1,4 @@
#!/usr/bin/python2
#!/usr/bin/env python2
import getopt, os, subprocess, sys

View File

@@ -1,4 +1,4 @@
#!/usr/bin/python2
#!/usr/bin/env python2
# -*- coding: utf-8 -*-
#
# Plot dependency graph for Staging patches.

View File

@@ -1,4 +1,4 @@
#!/usr/bin/python2
#!/usr/bin/env python2
# -*- coding: utf-8 -*-
#
# Automatic patch dependency checker and apply script generator.

Some files were not shown because too many files have changed in this diff Show More