You've already forked wine-staging
mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-09-12 18:50:20 -07:00
Rebase against 1316520a8029c0a99b358d1cd754294634d1855a.
[ntoskrnl-METHOD_OUT_DIRECT] Removed patch to implement support for METHOD_OUT_DIRECT ioctls (accepted upstream). [wined3d-CSMT_Main] Temporarily disable patchset.
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
From d23845620d8b2a4d9b4a8683d764b03ee2683068 Mon Sep 17 00:00:00 2001
|
||||
From b91e77db01f842164dd0ec593ad6bf433ad46c5e Mon Sep 17 00:00:00 2001
|
||||
From: Dmitry Timoshkov <dmitry@baikal.ru>
|
||||
Date: Mon, 17 Feb 2014 11:52:46 +0900
|
||||
Subject: shell32: Implement SHCreateSessionKey.
|
||||
@@ -6,32 +6,18 @@ Subject: shell32: Implement SHCreateSessionKey.
|
||||
This implementation is based on the Geoff Chappell description,
|
||||
and it seems to be enough for the application I have here.
|
||||
---
|
||||
dlls/shell32/shell32.spec | 1 +
|
||||
dlls/shell32/shellreg.c | 41 +++++++++++++++++++++++++++++++++++++++++
|
||||
dlls/shell32/tests/shellole.c | 4 ++--
|
||||
3 files changed, 44 insertions(+), 2 deletions(-)
|
||||
dlls/shell32/shellreg.c | 36 +++++++++++++++++++++++++++++++++---
|
||||
dlls/shell32/tests/shellole.c | 8 ++++----
|
||||
2 files changed, 37 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/dlls/shell32/shell32.spec b/dlls/shell32/shell32.spec
|
||||
index 93fd449..abbe6d2 100644
|
||||
--- a/dlls/shell32/shell32.spec
|
||||
+++ b/dlls/shell32/shell32.spec
|
||||
@@ -261,6 +261,7 @@
|
||||
704 stdcall -noname GUIDFromStringW(wstr ptr)
|
||||
709 stdcall SHGetSetFolderCustomSettings(ptr str long)
|
||||
714 stdcall @(ptr) SHELL32_714 # PathIsTemporaryW
|
||||
+ 723 stdcall SHCreateSessionKey(long ptr)
|
||||
727 stdcall SHGetImageList(long ptr ptr)
|
||||
730 stdcall -noname RestartDialogEx(long wstr long long)
|
||||
743 stdcall SHCreateFileExtractIconW(wstr long ptr ptr)
|
||||
diff --git a/dlls/shell32/shellreg.c b/dlls/shell32/shellreg.c
|
||||
index 37f3d9e..96a450e 100644
|
||||
index 356ec4e..fff1b91 100644
|
||||
--- a/dlls/shell32/shellreg.c
|
||||
+++ b/dlls/shell32/shellreg.c
|
||||
@@ -147,3 +147,44 @@ HRESULT WINAPI SHRegCloseKey (HKEY hkey)
|
||||
TRACE("%p\n",hkey);
|
||||
@@ -148,13 +148,43 @@ HRESULT WINAPI SHRegCloseKey (HKEY hkey)
|
||||
return RegCloseKey( hkey );
|
||||
}
|
||||
+
|
||||
|
||||
+static const char session_reg_key[] = "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\SessionInfo\\";
|
||||
+
|
||||
+static BOOL WINAPI create_session_key(INIT_ONCE *once, void *param, void **context)
|
||||
@@ -58,12 +44,15 @@ index 37f3d9e..96a450e 100644
|
||||
+ return TRUE;
|
||||
+}
|
||||
+
|
||||
+/*************************************************************************
|
||||
+ * SHCreateSessionKey [SHELL32.723]
|
||||
+ *
|
||||
+ */
|
||||
+HRESULT WINAPI SHCreateSessionKey(REGSAM access, HKEY *hkey)
|
||||
+{
|
||||
/*************************************************************************
|
||||
* SHCreateSessionKey [SHELL32.723]
|
||||
*
|
||||
*/
|
||||
HRESULT WINAPI SHCreateSessionKey(REGSAM access, HKEY *hkey)
|
||||
{
|
||||
- FIXME("stub: %d %p\n", access, hkey);
|
||||
- *hkey = NULL;
|
||||
- return E_NOTIMPL;
|
||||
+ static INIT_ONCE init_once = INIT_ONCE_STATIC_INIT;
|
||||
+ static WCHAR session_reg_str[sizeof(session_reg_key) + 39];
|
||||
+
|
||||
@@ -71,22 +60,30 @@ index 37f3d9e..96a450e 100644
|
||||
+
|
||||
+ TRACE("using session key %s\n", debugstr_w(session_reg_str));
|
||||
+ return RegOpenKeyExW(HKEY_CURRENT_USER, session_reg_str, 0, access, hkey);
|
||||
+}
|
||||
}
|
||||
diff --git a/dlls/shell32/tests/shellole.c b/dlls/shell32/tests/shellole.c
|
||||
index e8cf744..91125c0 100644
|
||||
index be10733..72e0f31 100644
|
||||
--- a/dlls/shell32/tests/shellole.c
|
||||
+++ b/dlls/shell32/tests/shellole.c
|
||||
@@ -876,8 +876,8 @@ if (0) /* crashes on native */
|
||||
|
||||
@@ -877,14 +877,14 @@ static void test_SHCreateSessionKey(void)
|
||||
hkey = (HKEY)0xdeadbeef;
|
||||
hr = pSHCreateSessionKey(0, &hkey);
|
||||
- ok(hr == E_ACCESSDENIED, "got 0x%08x\n", hr);
|
||||
todo_wine ok(hr == E_ACCESSDENIED, "got 0x%08x\n", hr);
|
||||
- ok(hkey == NULL, "got %p\n", hkey);
|
||||
+ todo_wine ok(hr == E_ACCESSDENIED, "got 0x%08x\n", hr);
|
||||
+ todo_wine ok(hkey == NULL, "got %p\n", hkey);
|
||||
|
||||
hr = pSHCreateSessionKey(KEY_READ, &hkey);
|
||||
ok(hr == S_OK, "got 0x%08x\n", hr);
|
||||
- todo_wine ok(hr == S_OK, "got 0x%08x\n", hr);
|
||||
+ ok(hr == S_OK, "got 0x%08x\n", hr);
|
||||
|
||||
hr = pSHCreateSessionKey(KEY_READ, &hkey2);
|
||||
- todo_wine ok(hr == S_OK, "got 0x%08x\n", hr);
|
||||
- todo_wine ok(hkey != hkey2, "got %p, %p\n", hkey, hkey2);
|
||||
+ ok(hr == S_OK, "got 0x%08x\n", hr);
|
||||
+ ok(hkey != hkey2, "got %p, %p\n", hkey, hkey2);
|
||||
|
||||
RegCloseKey(hkey);
|
||||
RegCloseKey(hkey2);
|
||||
--
|
||||
2.6.4
|
||||
2.9.0
|
||||
|
||||
|
Reference in New Issue
Block a user