Compare commits

...

18 Commits

Author SHA1 Message Date
Alistair Leslie-Hughes
6cfd7b70ba Release v4.0 2019-01-23 10:25:22 +11:00
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
Alistair Leslie-Hughes
4d4e02e26b Release v4.0-rc5 2019-01-05 18:15:30 +11:00
Alistair Leslie-Hughes
40821d91e2 Rebase against 40c5184a90a6e14f3e49dd60daaba636308b7f83 2019-01-04 10:09:38 +11:00
Alistair Leslie-Hughes
9256515a12 Rebase against dc80a0032927421d61b95659af570c21439e4a76 2019-01-03 09:38:03 +11:00
Alistair Leslie-Hughes
ae1f954ed1 Release 4.0-rc4 2018-12-29 15:45:37 +11:00
Alistair Leslie-Hughes
ccad76f64a Rebase against 2058505cebc7bb069e1e2d0d738353336e943b7b 2018-12-28 19:56:47 +11:00
28 changed files with 946 additions and 167 deletions

View File

@@ -1362,7 +1362,7 @@ index c930248..80f73de 100644
+ object->device = iface;
+ object->refcount = 1;
+
+ ID3D11Device_AddRef(iface);
+ ID3D11Device2_AddRef(iface);
+ wined3d_private_store_init(&object->private_store);
+
+ *context = &object->ID3D11DeviceContext_iface;

View File

@@ -1,4 +1,4 @@
From b8d301b085b39fba7f61409a0ebe17a4ff7b810a Mon Sep 17 00:00:00 2001
From 07c70b0b20919d9908b408322d65c62ad459f09e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Thu, 19 Jan 2017 16:56:56 +0100
Subject: [PATCH] d3d11: Initial implementation for deferred contexts.
@@ -8,7 +8,7 @@ Subject: [PATCH] d3d11: Initial implementation for deferred contexts.
1 file changed, 1040 insertions(+), 31 deletions(-)
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
index 9127d01..94156e4 100644
index ebe8c03..791b959 100644
--- a/dlls/d3d11/device.c
+++ b/dlls/d3d11/device.c
@@ -19,12 +19,181 @@
@@ -725,7 +725,7 @@ index 9127d01..94156e4 100644
static void STDMETHODCALLTYPE d3d_null_wined3d_object_destroyed(void *parent) {}
static const struct wined3d_parent_ops d3d_null_wined3d_parent_ops =
@@ -1217,7 +1908,20 @@ static void STDMETHODCALLTYPE d3d11_immediate_context_ResolveSubresource(ID3D11D
@@ -1221,7 +1912,20 @@ static void STDMETHODCALLTYPE d3d11_immediate_context_ResolveSubresource(ID3D11D
static void STDMETHODCALLTYPE d3d11_immediate_context_ExecuteCommandList(ID3D11DeviceContext1 *iface,
ID3D11CommandList *command_list, BOOL restore_state)
{
@@ -747,7 +747,7 @@ index 9127d01..94156e4 100644
}
static void STDMETHODCALLTYPE d3d11_immediate_context_HSSetShaderResources(ID3D11DeviceContext1 *iface,
@@ -2972,6 +3676,7 @@ static ULONG STDMETHODCALLTYPE d3d11_deferred_context_Release(ID3D11DeviceContex
@@ -2855,6 +3559,7 @@ static ULONG STDMETHODCALLTYPE d3d11_deferred_context_Release(ID3D11DeviceContex
if (!refcount)
{
@@ -755,7 +755,7 @@ index 9127d01..94156e4 100644
wined3d_private_store_cleanup(&context->private_store);
ID3D11Device_Release(context->device);
HeapFree(GetProcessHeap(), 0, context);
@@ -3023,43 +3728,86 @@ static HRESULT STDMETHODCALLTYPE d3d11_deferred_context_SetPrivateDataInterface(
@@ -2906,43 +3611,86 @@ static HRESULT STDMETHODCALLTYPE d3d11_deferred_context_SetPrivateDataInterface(
static void STDMETHODCALLTYPE d3d11_deferred_context_VSSetConstantBuffers(ID3D11DeviceContext *iface,
UINT start_slot, UINT buffer_count, ID3D11Buffer *const *buffers)
{
@@ -848,7 +848,7 @@ index 9127d01..94156e4 100644
}
static void STDMETHODCALLTYPE d3d11_deferred_context_Draw(ID3D11DeviceContext *iface,
@@ -3072,53 +3820,169 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_Draw(ID3D11DeviceContext *i
@@ -2955,53 +3703,169 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_Draw(ID3D11DeviceContext *i
static HRESULT STDMETHODCALLTYPE d3d11_deferred_context_Map(ID3D11DeviceContext *iface, ID3D11Resource *resource,
UINT subresource_idx, D3D11_MAP map_type, UINT map_flags, D3D11_MAPPED_SUBRESOURCE *mapped_subresource)
{
@@ -1027,7 +1027,7 @@ index 9127d01..94156e4 100644
}
static void STDMETHODCALLTYPE d3d11_deferred_context_DrawInstanced(ID3D11DeviceContext *iface,
@@ -3147,7 +4011,16 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_GSSetShader(ID3D11DeviceCon
@@ -3030,7 +3894,16 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_GSSetShader(ID3D11DeviceCon
static void STDMETHODCALLTYPE d3d11_deferred_context_IASetPrimitiveTopology(ID3D11DeviceContext *iface,
D3D11_PRIMITIVE_TOPOLOGY topology)
{
@@ -1045,7 +1045,7 @@ index 9127d01..94156e4 100644
}
static void STDMETHODCALLTYPE d3d11_deferred_context_VSSetShaderResources(ID3D11DeviceContext *iface,
@@ -3207,8 +4080,28 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_OMSetRenderTargets(ID3D11De
@@ -3090,8 +3963,28 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_OMSetRenderTargets(ID3D11De
UINT render_target_view_count, ID3D11RenderTargetView *const *render_target_views,
ID3D11DepthStencilView *depth_stencil_view)
{
@@ -1075,7 +1075,7 @@ index 9127d01..94156e4 100644
}
static void STDMETHODCALLTYPE d3d11_deferred_context_OMSetRenderTargetsAndUnorderedAccessViews(
@@ -3228,15 +4121,44 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_OMSetRenderTargetsAndUnorde
@@ -3111,15 +4004,44 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_OMSetRenderTargetsAndUnorde
static void STDMETHODCALLTYPE d3d11_deferred_context_OMSetBlendState(ID3D11DeviceContext *iface,
ID3D11BlendState *blend_state, const float blend_factor[4], UINT sample_mask)
{
@@ -1122,7 +1122,7 @@ index 9127d01..94156e4 100644
}
static void STDMETHODCALLTYPE d3d11_deferred_context_SOSetTargets(ID3D11DeviceContext *iface, UINT buffer_count,
@@ -3278,13 +4200,34 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_DispatchIndirect(ID3D11Devi
@@ -3161,13 +4083,34 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_DispatchIndirect(ID3D11Devi
static void STDMETHODCALLTYPE d3d11_deferred_context_RSSetState(ID3D11DeviceContext *iface,
ID3D11RasterizerState *rasterizer_state)
{
@@ -1159,7 +1159,7 @@ index 9127d01..94156e4 100644
}
static void STDMETHODCALLTYPE d3d11_deferred_context_RSSetScissorRects(ID3D11DeviceContext *iface,
@@ -3399,8 +4342,18 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_HSSetShaderResources(ID3D11
@@ -3282,8 +4225,18 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_HSSetShaderResources(ID3D11
static void STDMETHODCALLTYPE d3d11_deferred_context_HSSetShader(ID3D11DeviceContext *iface,
ID3D11HullShader *shader, ID3D11ClassInstance *const *class_instances, UINT class_instance_count)
{
@@ -1179,7 +1179,7 @@ index 9127d01..94156e4 100644
}
static void STDMETHODCALLTYPE d3d11_deferred_context_HSSetSamplers(ID3D11DeviceContext *iface,
@@ -3413,36 +4366,62 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_HSSetSamplers(ID3D11DeviceC
@@ -3296,36 +4249,62 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_HSSetSamplers(ID3D11DeviceC
static void STDMETHODCALLTYPE d3d11_deferred_context_HSSetConstantBuffers(ID3D11DeviceContext *iface,
UINT start_slot, UINT buffer_count, ID3D11Buffer *const *buffers)
{
@@ -1247,7 +1247,7 @@ index 9127d01..94156e4 100644
}
static void STDMETHODCALLTYPE d3d11_deferred_context_CSSetShaderResources(ID3D11DeviceContext *iface,
@@ -3743,7 +4722,15 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_CSGetConstantBuffers(ID3D11
@@ -3626,7 +4605,15 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_CSGetConstantBuffers(ID3D11
static void STDMETHODCALLTYPE d3d11_deferred_context_ClearState(ID3D11DeviceContext *iface)
{
@@ -1264,7 +1264,7 @@ index 9127d01..94156e4 100644
}
static void STDMETHODCALLTYPE d3d11_deferred_context_Flush(ID3D11DeviceContext *iface)
@@ -3768,9 +4755,29 @@ static UINT STDMETHODCALLTYPE d3d11_deferred_context_GetContextFlags(ID3D11Devic
@@ -3651,9 +4638,29 @@ static UINT STDMETHODCALLTYPE d3d11_deferred_context_GetContextFlags(ID3D11Devic
static HRESULT STDMETHODCALLTYPE d3d11_deferred_context_FinishCommandList(ID3D11DeviceContext *iface,
BOOL restore, ID3D11CommandList **command_list)
{
@@ -1296,13 +1296,13 @@ index 9127d01..94156e4 100644
}
static const struct ID3D11DeviceContextVtbl d3d11_deferred_context_vtbl =
@@ -4385,6 +5392,8 @@ static HRESULT STDMETHODCALLTYPE d3d11_device_CreateDeferredContext(ID3D11Device
@@ -4268,6 +5275,8 @@ static HRESULT STDMETHODCALLTYPE d3d11_device_CreateDeferredContext(ID3D11Device
object->device = iface;
object->refcount = 1;
+ list_init(&object->commands);
+
ID3D11Device_AddRef(iface);
ID3D11Device2_AddRef(iface);
wined3d_private_store_init(&object->private_store);
--

View File

@@ -198,7 +198,7 @@ index 8190442..c73981b 100644
+ bind_flags, WINED3D_RTYPE_TEXTURE_2D, wined3d_desc.format)))
+ {
+ FIXME("Application wants to create rendering target in system memory, using video memory instead\n");
+ wined3d_desc.usage = wined3d_desc.bind_flags;
+ wined3d_desc.bind_flags = bind_flags;
+ }
+ else
+ wined3d_desc.access = WINED3D_RESOURCE_ACCESS_CPU

View File

@@ -1,48 +0,0 @@
From d246bb6bbadaa959d49a29dc28d1288473ca8375 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Wed, 17 May 2017 11:58:20 +0200
Subject: urlmon/tests: Add test for opening cache file with DELETE access.
---
dlls/urlmon/tests/url.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/dlls/urlmon/tests/url.c b/dlls/urlmon/tests/url.c
index cd1d855032d..70234ff3fd7 100644
--- a/dlls/urlmon/tests/url.c
+++ b/dlls/urlmon/tests/url.c
@@ -182,6 +182,7 @@ static HRESULT abort_hres;
static BOOL have_IHttpNegotiate2, use_bscex, is_async_prot;
static BOOL test_redirect, use_cache_file, callback_read, no_callback, test_abort;
static WCHAR cache_file_name[MAX_PATH];
+static WCHAR http_cache_file[MAX_PATH];
static BOOL only_check_prot_args = FALSE;
static BOOL invalid_cn_accepted = FALSE;
static BOOL abort_start = FALSE;
@@ -1927,6 +1928,14 @@ static HRESULT WINAPI statusclb_OnStopBinding(IBindStatusCallbackEx *iface, HRES
ok( WaitForSingleObject(complete_event2, 90000) == WAIT_OBJECT_0, "wait timed out\n" );
}
+ if(test_protocol == HTTP_TEST && !emulate_protocol && http_cache_file[0]) {
+ HANDLE file = CreateFileW(http_cache_file, DELETE, FILE_SHARE_DELETE, NULL,
+ OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
+ ok(file == INVALID_HANDLE_VALUE, "expected INVALID_HANDLE_VALUE, got %p\n", file);
+ ok(GetLastError() == ERROR_SHARING_VIOLATION, "expected ERROR_SHARING_VIOLATION, got %u\n", GetLastError());
+ http_cache_file[0] = 0;
+ }
+
return S_OK;
}
@@ -2083,6 +2092,8 @@ static HRESULT WINAPI statusclb_OnDataAvailable(IBindStatusCallbackEx *iface, DW
else if(emulate_protocol)
ok(!lstrcmpW(pstgmed->u.lpszFileName, cache_fileW),
"unexpected file name %s\n", wine_dbgstr_w(pstgmed->u.lpszFileName));
+ else if(test_protocol == HTTP_TEST)
+ lstrcpyW(http_cache_file, pstgmed->u.lpszFileName);
else
ok(pstgmed->u.lpszFileName != NULL, "lpszFileName == NULL\n");
}
--
2.12.2

View File

@@ -1,25 +0,0 @@
From fcb6d21ede52ef770a04c59ea6bd5b9483c31f32 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Wed, 17 May 2017 12:03:15 +0200
Subject: appwiz.cpl: Copy addons to cache instead of moving.
---
dlls/appwiz.cpl/addons.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/appwiz.cpl/addons.c b/dlls/appwiz.cpl/addons.c
index c3847b54948..91cd485b026 100644
--- a/dlls/appwiz.cpl/addons.c
+++ b/dlls/appwiz.cpl/addons.c
@@ -510,7 +510,7 @@ static HRESULT WINAPI InstallCallback_OnStopBinding(IBindStatusCallback *iface,
cache_file_name = get_cache_file_name(TRUE);
if(cache_file_name) {
- MoveFileW(msi_file, cache_file_name);
+ CopyFileW(msi_file, cache_file_name, FALSE);
heap_free(cache_file_name);
}
}else {
--
2.12.2

View File

@@ -1 +0,0 @@
Fixes: [14901] MoveFile with source == dest should succeed.

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 "2d16e6e59c910ba0a5e7c1c104b290731a8f1ffa"
echo "6b42eae19f3bd9a4f4412fcb21c2f46a4c95bbfd"
}
# Show version information
version()
{
echo "Wine Staging 4.0-rc3"
echo "Wine Staging 4.0"
echo "Copyright (C) 2014-2018 the Wine Staging project authors."
echo "Copyright (C) 2018 Alistair Leslie-Hughes"
echo ""
@@ -162,7 +162,6 @@ patch_enable_all ()
enable_kernel32_FindFirstFile="$1"
enable_kernel32_Job_Tests="$1"
enable_kernel32_K32GetPerformanceInfo="$1"
enable_kernel32_MoveFile="$1"
enable_kernel32_NeedCurrentDirectoryForExePath="$1"
enable_kernel32_NormalizeString="$1"
enable_kernel32_PE_Loader_Fixes="$1"
@@ -182,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"
@@ -252,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"
@@ -325,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"
@@ -647,9 +649,6 @@ patch_enable ()
kernel32-K32GetPerformanceInfo)
enable_kernel32_K32GetPerformanceInfo="$2"
;;
kernel32-MoveFile)
enable_kernel32_MoveFile="$2"
;;
kernel32-NeedCurrentDirectoryForExePath)
enable_kernel32_NeedCurrentDirectoryForExePath="$2"
;;
@@ -707,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"
;;
@@ -917,6 +919,9 @@ patch_enable ()
oleaut32-OleLoadPictureFile)
enable_oleaut32_OleLoadPictureFile="$2"
;;
oleaut32-VarRound)
enable_oleaut32_VarRound="$2"
;;
opengl32-wglChoosePixelFormat)
enable_opengl32_wglChoosePixelFormat="$2"
;;
@@ -1136,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"
;;
@@ -3888,23 +3896,6 @@ if test "$enable_kernel32_K32GetPerformanceInfo" -eq 1; then
) >> "$patchlist"
fi
# Patchset kernel32-MoveFile
# |
# | This patchset fixes the following Wine bugs:
# | * [#14901] MoveFile with source == dest should succeed.
# |
# | Modified files:
# | * dlls/appwiz.cpl/addons.c, dlls/urlmon/tests/url.c
# |
if test "$enable_kernel32_MoveFile" -eq 1; then
patch_apply kernel32-MoveFile/0006-urlmon-tests-Add-test-for-opening-cache-file-with-DE.patch
patch_apply kernel32-MoveFile/0007-appwiz.cpl-Copy-addons-to-cache-instead-of-moving.patch
(
printf '%s\n' '+ { "Sebastian Lackner", "urlmon/tests: Add test for opening cache file with DELETE access.", 1 },';
printf '%s\n' '+ { "Sebastian Lackner", "appwiz.cpl: Copy addons to cache instead of moving.", 1 },';
) >> "$patchlist"
fi
# Patchset kernel32-NeedCurrentDirectoryForExePath
# |
# | This patchset fixes the following Wine bugs:
@@ -4231,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:
@@ -5368,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:
@@ -6594,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
@@ -6688,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
@@ -6716,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

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