user32: Implement CWF_CREATE_ONLY flag for CreateWindowStation.
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
02f0342833
commit
c02407e9a3
|
@ -83,26 +83,26 @@ static HANDLE get_winstations_dir_handle(void)
|
||||||
/***********************************************************************
|
/***********************************************************************
|
||||||
* CreateWindowStationA (USER32.@)
|
* 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 )
|
LPSECURITY_ATTRIBUTES sa )
|
||||||
{
|
{
|
||||||
WCHAR buffer[MAX_PATH];
|
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 ))
|
if (!MultiByteToWideChar( CP_ACP, 0, name, -1, buffer, MAX_PATH ))
|
||||||
{
|
{
|
||||||
SetLastError( ERROR_FILENAME_EXCED_RANGE );
|
SetLastError( ERROR_FILENAME_EXCED_RANGE );
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
return CreateWindowStationW( buffer, reserved, access, sa );
|
return CreateWindowStationW( buffer, flags, access, sa );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/***********************************************************************
|
/***********************************************************************
|
||||||
* CreateWindowStationW (USER32.@)
|
* 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 )
|
LPSECURITY_ATTRIBUTES sa )
|
||||||
{
|
{
|
||||||
HANDLE ret;
|
HANDLE ret;
|
||||||
|
@ -117,7 +117,8 @@ HWINSTA WINAPI CreateWindowStationW( LPCWSTR name, DWORD reserved, ACCESS_MASK a
|
||||||
{
|
{
|
||||||
req->flags = 0;
|
req->flags = 0;
|
||||||
req->access = access;
|
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);
|
((sa && sa->bInheritHandle) ? OBJ_INHERIT : 0);
|
||||||
req->rootdir = wine_server_obj_handle( get_winstations_dir_handle() );
|
req->rootdir = wine_server_obj_handle( get_winstations_dir_handle() );
|
||||||
wine_server_add_data( req, name, len * sizeof(WCHAR) );
|
wine_server_add_data( req, name, len * sizeof(WCHAR) );
|
||||||
|
|
|
@ -101,6 +101,8 @@ typedef void* HPOWERNOTIFY;
|
||||||
#define WSF_VISIBLE 1
|
#define WSF_VISIBLE 1
|
||||||
#define DF_ALLOWOTHERACCOUNTHOOK 1
|
#define DF_ALLOWOTHERACCOUNTHOOK 1
|
||||||
|
|
||||||
|
#define CWF_CREATE_ONLY 0x01
|
||||||
|
|
||||||
typedef struct tagUSEROBJECTFLAGS {
|
typedef struct tagUSEROBJECTFLAGS {
|
||||||
BOOL fInherit;
|
BOOL fInherit;
|
||||||
BOOL fReserved;
|
BOOL fReserved;
|
||||||
|
|
Loading…
Reference in New Issue