Sebastian Lackner : user32: Implement CWF_CREATE_ONLY flag for CreateWindowStation.
Alexandre Julliard
julliard at winehq.org
Mon Apr 8 15:12:00 CDT 2019
Module: wine
Branch: master
Commit: c02407e9a3ea57fe51e88f0fc40d9552927fc634
URL: https://source.winehq.org/git/wine.git/?a=commit;h=c02407e9a3ea57fe51e88f0fc40d9552927fc634
Author: Sebastian Lackner <sebastian at fds-team.de>
Date: Mon Apr 8 05:37:30 2019 +0000
user32: Implement CWF_CREATE_ONLY flag for CreateWindowStation.
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/user32/winstation.c | 11 ++++++-----
include/winuser.h | 2 ++
2 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/dlls/user32/winstation.c b/dlls/user32/winstation.c
index 673917c..4f53b43 100644
--- a/dlls/user32/winstation.c
+++ b/dlls/user32/winstation.c
@@ -83,26 +83,26 @@ static HANDLE get_winstations_dir_handle(void)
/***********************************************************************
* CreateWindowStationA (USER32.@)
*/
-HWINSTA WINAPI CreateWindowStationA( LPCSTR name, DWORD reserved, ACCESS_MASK access,
+HWINSTA WINAPI CreateWindowStationA( LPCSTR name, DWORD flags, ACCESS_MASK access,
LPSECURITY_ATTRIBUTES sa )
{
WCHAR buffer[MAX_PATH];
- if (!name) return CreateWindowStationW( NULL, reserved, access, sa );
+ if (!name) return CreateWindowStationW( NULL, flags, access, sa );
if (!MultiByteToWideChar( CP_ACP, 0, name, -1, buffer, MAX_PATH ))
{
SetLastError( ERROR_FILENAME_EXCED_RANGE );
return 0;
}
- return CreateWindowStationW( buffer, reserved, access, sa );
+ return CreateWindowStationW( buffer, flags, access, sa );
}
/***********************************************************************
* CreateWindowStationW (USER32.@)
*/
-HWINSTA WINAPI CreateWindowStationW( LPCWSTR name, DWORD reserved, ACCESS_MASK access,
+HWINSTA WINAPI CreateWindowStationW( LPCWSTR name, DWORD flags, ACCESS_MASK access,
LPSECURITY_ATTRIBUTES sa )
{
HANDLE ret;
@@ -117,7 +117,8 @@ HWINSTA WINAPI CreateWindowStationW( LPCWSTR name, DWORD reserved, ACCESS_MASK a
{
req->flags = 0;
req->access = access;
- req->attributes = OBJ_CASE_INSENSITIVE | OBJ_OPENIF |
+ req->attributes = OBJ_CASE_INSENSITIVE |
+ ((flags & CWF_CREATE_ONLY) ? 0 : OBJ_OPENIF) |
((sa && sa->bInheritHandle) ? OBJ_INHERIT : 0);
req->rootdir = wine_server_obj_handle( get_winstations_dir_handle() );
wine_server_add_data( req, name, len * sizeof(WCHAR) );
diff --git a/include/winuser.h b/include/winuser.h
index 3cffaa1..28b9b1f 100644
--- a/include/winuser.h
+++ b/include/winuser.h
@@ -101,6 +101,8 @@ typedef void* HPOWERNOTIFY;
#define WSF_VISIBLE 1
#define DF_ALLOWOTHERACCOUNTHOOK 1
+#define CWF_CREATE_ONLY 0x01
+
typedef struct tagUSEROBJECTFLAGS {
BOOL fInherit;
BOOL fReserved;
More information about the wine-cvs
mailing list