wineconsole: Implement GetConsoleWindow.
This commit is contained in:
parent
945f4a7946
commit
f3e13174c7
|
@ -125,8 +125,16 @@ static void char_info_AtoW( CHAR_INFO *buffer, int count )
|
||||||
*/
|
*/
|
||||||
HWND WINAPI GetConsoleWindow(VOID)
|
HWND WINAPI GetConsoleWindow(VOID)
|
||||||
{
|
{
|
||||||
FIXME("stub\n");
|
HWND hWnd = NULL;
|
||||||
return NULL;
|
|
||||||
|
SERVER_START_REQ(get_console_input_info)
|
||||||
|
{
|
||||||
|
req->handle = 0;
|
||||||
|
if (!wine_server_call_err(req)) hWnd = reply->win;
|
||||||
|
}
|
||||||
|
SERVER_END_REQ;
|
||||||
|
|
||||||
|
return hWnd;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1359,14 +1359,15 @@ struct set_console_mode_reply
|
||||||
struct set_console_input_info_request
|
struct set_console_input_info_request
|
||||||
{
|
{
|
||||||
struct request_header __header;
|
struct request_header __header;
|
||||||
obj_handle_t handle;
|
obj_handle_t handle;
|
||||||
int mask;
|
int mask;
|
||||||
obj_handle_t active_sb;
|
obj_handle_t active_sb;
|
||||||
int history_mode;
|
int history_mode;
|
||||||
int history_size;
|
int history_size;
|
||||||
int edition_mode;
|
int edition_mode;
|
||||||
int input_cp;
|
int input_cp;
|
||||||
int output_cp;
|
int output_cp;
|
||||||
|
user_handle_t win;
|
||||||
/* VARARG(title,unicode_str); */
|
/* VARARG(title,unicode_str); */
|
||||||
};
|
};
|
||||||
struct set_console_input_info_reply
|
struct set_console_input_info_reply
|
||||||
|
@ -1380,23 +1381,25 @@ struct set_console_input_info_reply
|
||||||
#define SET_CONSOLE_INPUT_INFO_EDITION_MODE 0x10
|
#define SET_CONSOLE_INPUT_INFO_EDITION_MODE 0x10
|
||||||
#define SET_CONSOLE_INPUT_INFO_INPUT_CODEPAGE 0x20
|
#define SET_CONSOLE_INPUT_INFO_INPUT_CODEPAGE 0x20
|
||||||
#define SET_CONSOLE_INPUT_INFO_OUTPUT_CODEPAGE 0x40
|
#define SET_CONSOLE_INPUT_INFO_OUTPUT_CODEPAGE 0x40
|
||||||
|
#define SET_CONSOLE_INPUT_INFO_WIN 0x80
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
struct get_console_input_info_request
|
struct get_console_input_info_request
|
||||||
{
|
{
|
||||||
struct request_header __header;
|
struct request_header __header;
|
||||||
obj_handle_t handle;
|
obj_handle_t handle;
|
||||||
};
|
};
|
||||||
struct get_console_input_info_reply
|
struct get_console_input_info_reply
|
||||||
{
|
{
|
||||||
struct reply_header __header;
|
struct reply_header __header;
|
||||||
int history_mode;
|
int history_mode;
|
||||||
int history_size;
|
int history_size;
|
||||||
int history_index;
|
int history_index;
|
||||||
int edition_mode;
|
int edition_mode;
|
||||||
int input_cp;
|
int input_cp;
|
||||||
int output_cp;
|
int output_cp;
|
||||||
|
user_handle_t win;
|
||||||
/* VARARG(title,unicode_str); */
|
/* VARARG(title,unicode_str); */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -4727,6 +4730,6 @@ union generic_reply
|
||||||
struct make_process_system_reply make_process_system_reply;
|
struct make_process_system_reply make_process_system_reply;
|
||||||
};
|
};
|
||||||
|
|
||||||
#define SERVER_PROTOCOL_VERSION 307
|
#define SERVER_PROTOCOL_VERSION 309
|
||||||
|
|
||||||
#endif /* __WINE_WINE_SERVER_PROTOCOL_H */
|
#endif /* __WINE_WINE_SERVER_PROTOCOL_H */
|
||||||
|
|
|
@ -642,16 +642,6 @@ static struct inner_data* WINECON_Init(HINSTANCE hInst, DWORD pid, LPCWSTR appna
|
||||||
if (!ret) goto error;
|
if (!ret) goto error;
|
||||||
WINE_TRACE("using hConIn %p, hSynchro event %p\n", data->hConIn, data->hSynchro);
|
WINE_TRACE("using hConIn %p, hSynchro event %p\n", data->hConIn, data->hSynchro);
|
||||||
|
|
||||||
SERVER_START_REQ( set_console_input_info )
|
|
||||||
{
|
|
||||||
req->handle = data->hConIn;
|
|
||||||
req->mask = SET_CONSOLE_INPUT_INFO_TITLE;
|
|
||||||
wine_server_add_data( req, appname, lstrlenW(appname) * sizeof(WCHAR) );
|
|
||||||
ret = !wine_server_call_err( req );
|
|
||||||
}
|
|
||||||
SERVER_END_REQ;
|
|
||||||
if (!ret) goto error;
|
|
||||||
|
|
||||||
SERVER_START_REQ(create_console_output)
|
SERVER_START_REQ(create_console_output)
|
||||||
{
|
{
|
||||||
req->handle_in = data->hConIn;
|
req->handle_in = data->hConIn;
|
||||||
|
@ -679,6 +669,18 @@ static struct inner_data* WINECON_Init(HINSTANCE hInst, DWORD pid, LPCWSTR appna
|
||||||
WINECON_SetConfig(data, &cfg);
|
WINECON_SetConfig(data, &cfg);
|
||||||
data->curcfg.registry = cfg.registry;
|
data->curcfg.registry = cfg.registry;
|
||||||
WINECON_DumpConfig("fint", &data->curcfg);
|
WINECON_DumpConfig("fint", &data->curcfg);
|
||||||
|
SERVER_START_REQ( set_console_input_info )
|
||||||
|
{
|
||||||
|
req->handle = data->hConIn;
|
||||||
|
req->win = data->hWnd;
|
||||||
|
req->mask = SET_CONSOLE_INPUT_INFO_TITLE |
|
||||||
|
SET_CONSOLE_INPUT_INFO_WIN;
|
||||||
|
wine_server_add_data( req, appname, lstrlenW(appname) * sizeof(WCHAR) );
|
||||||
|
ret = !wine_server_call_err( req );
|
||||||
|
}
|
||||||
|
SERVER_END_REQ;
|
||||||
|
if (!ret) goto error;
|
||||||
|
|
||||||
return data;
|
return data;
|
||||||
case init_failed:
|
case init_failed:
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -63,6 +63,7 @@ struct console_input
|
||||||
int edition_mode; /* index to edition mode flavors */
|
int edition_mode; /* index to edition mode flavors */
|
||||||
int input_cp; /* console input codepage */
|
int input_cp; /* console input codepage */
|
||||||
int output_cp; /* console output codepage */
|
int output_cp; /* console output codepage */
|
||||||
|
user_handle_t win; /* window handle if backend supports it */
|
||||||
struct event *event; /* event to wait on for input queue */
|
struct event *event; /* event to wait on for input queue */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -281,6 +282,7 @@ static struct object *create_console_input( struct thread* renderer )
|
||||||
console_input->edition_mode = 0;
|
console_input->edition_mode = 0;
|
||||||
console_input->input_cp = 0;
|
console_input->input_cp = 0;
|
||||||
console_input->output_cp = 0;
|
console_input->output_cp = 0;
|
||||||
|
console_input->win = 0;
|
||||||
console_input->event = create_event( NULL, NULL, 0, 1, 0 );
|
console_input->event = create_event( NULL, NULL, 0, 1, 0 );
|
||||||
|
|
||||||
if (!console_input->history || !console_input->evt)
|
if (!console_input->history || !console_input->evt)
|
||||||
|
@ -719,6 +721,10 @@ static int set_console_input_info( const struct set_console_input_info_request *
|
||||||
{
|
{
|
||||||
console->output_cp = req->output_cp;
|
console->output_cp = req->output_cp;
|
||||||
}
|
}
|
||||||
|
if (req->mask & SET_CONSOLE_INPUT_INFO_WIN)
|
||||||
|
{
|
||||||
|
console->win = req->win;
|
||||||
|
}
|
||||||
release_object( console );
|
release_object( console );
|
||||||
return 1;
|
return 1;
|
||||||
error:
|
error:
|
||||||
|
@ -1413,6 +1419,7 @@ DECL_HANDLER(get_console_input_info)
|
||||||
reply->edition_mode = console->edition_mode;
|
reply->edition_mode = console->edition_mode;
|
||||||
reply->input_cp = console->input_cp;
|
reply->input_cp = console->input_cp;
|
||||||
reply->output_cp = console->output_cp;
|
reply->output_cp = console->output_cp;
|
||||||
|
reply->win = console->win;
|
||||||
|
|
||||||
release_object( console );
|
release_object( console );
|
||||||
}
|
}
|
||||||
|
|
|
@ -1090,15 +1090,16 @@ struct console_renderer_event
|
||||||
|
|
||||||
/* Set info about a console (input only) */
|
/* Set info about a console (input only) */
|
||||||
@REQ(set_console_input_info)
|
@REQ(set_console_input_info)
|
||||||
obj_handle_t handle; /* handle to console input, or 0 for process' console */
|
obj_handle_t handle; /* handle to console input, or 0 for process' console */
|
||||||
int mask; /* setting mask (see below) */
|
int mask; /* setting mask (see below) */
|
||||||
obj_handle_t active_sb; /* active screen buffer */
|
obj_handle_t active_sb; /* active screen buffer */
|
||||||
int history_mode; /* whether we duplicate lines in history */
|
int history_mode; /* whether we duplicate lines in history */
|
||||||
int history_size; /* number of lines in history */
|
int history_size; /* number of lines in history */
|
||||||
int edition_mode; /* index to the edition mode flavors */
|
int edition_mode; /* index to the edition mode flavors */
|
||||||
int input_cp; /* console input codepage */
|
int input_cp; /* console input codepage */
|
||||||
int output_cp; /* console output codepage */
|
int output_cp; /* console output codepage */
|
||||||
VARARG(title,unicode_str); /* console title */
|
user_handle_t win; /* console window if backend supports it */
|
||||||
|
VARARG(title,unicode_str); /* console title */
|
||||||
@END
|
@END
|
||||||
#define SET_CONSOLE_INPUT_INFO_ACTIVE_SB 0x01
|
#define SET_CONSOLE_INPUT_INFO_ACTIVE_SB 0x01
|
||||||
#define SET_CONSOLE_INPUT_INFO_TITLE 0x02
|
#define SET_CONSOLE_INPUT_INFO_TITLE 0x02
|
||||||
|
@ -1107,19 +1108,21 @@ struct console_renderer_event
|
||||||
#define SET_CONSOLE_INPUT_INFO_EDITION_MODE 0x10
|
#define SET_CONSOLE_INPUT_INFO_EDITION_MODE 0x10
|
||||||
#define SET_CONSOLE_INPUT_INFO_INPUT_CODEPAGE 0x20
|
#define SET_CONSOLE_INPUT_INFO_INPUT_CODEPAGE 0x20
|
||||||
#define SET_CONSOLE_INPUT_INFO_OUTPUT_CODEPAGE 0x40
|
#define SET_CONSOLE_INPUT_INFO_OUTPUT_CODEPAGE 0x40
|
||||||
|
#define SET_CONSOLE_INPUT_INFO_WIN 0x80
|
||||||
|
|
||||||
|
|
||||||
/* Get info about a console (input only) */
|
/* Get info about a console (input only) */
|
||||||
@REQ(get_console_input_info)
|
@REQ(get_console_input_info)
|
||||||
obj_handle_t handle; /* handle to console input, or 0 for process' console */
|
obj_handle_t handle; /* handle to console input, or 0 for process' console */
|
||||||
@REPLY
|
@REPLY
|
||||||
int history_mode; /* whether we duplicate lines in history */
|
int history_mode; /* whether we duplicate lines in history */
|
||||||
int history_size; /* number of lines in history */
|
int history_size; /* number of lines in history */
|
||||||
int history_index; /* number of used lines in history */
|
int history_index; /* number of used lines in history */
|
||||||
int edition_mode; /* index to the edition mode flavors */
|
int edition_mode; /* index to the edition mode flavors */
|
||||||
int input_cp; /* console input codepage */
|
int input_cp; /* console input codepage */
|
||||||
int output_cp; /* console output codepage */
|
int output_cp; /* console output codepage */
|
||||||
VARARG(title,unicode_str); /* console title */
|
user_handle_t win; /* console window if backend supports it */
|
||||||
|
VARARG(title,unicode_str); /* console title */
|
||||||
@END
|
@END
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1473,6 +1473,7 @@ static void dump_set_console_input_info_request( const struct set_console_input_
|
||||||
fprintf( stderr, " edition_mode=%d,", req->edition_mode );
|
fprintf( stderr, " edition_mode=%d,", req->edition_mode );
|
||||||
fprintf( stderr, " input_cp=%d,", req->input_cp );
|
fprintf( stderr, " input_cp=%d,", req->input_cp );
|
||||||
fprintf( stderr, " output_cp=%d,", req->output_cp );
|
fprintf( stderr, " output_cp=%d,", req->output_cp );
|
||||||
|
fprintf( stderr, " win=%p,", req->win );
|
||||||
fprintf( stderr, " title=" );
|
fprintf( stderr, " title=" );
|
||||||
dump_varargs_unicode_str( cur_size );
|
dump_varargs_unicode_str( cur_size );
|
||||||
}
|
}
|
||||||
|
@ -1490,6 +1491,7 @@ static void dump_get_console_input_info_reply( const struct get_console_input_in
|
||||||
fprintf( stderr, " edition_mode=%d,", req->edition_mode );
|
fprintf( stderr, " edition_mode=%d,", req->edition_mode );
|
||||||
fprintf( stderr, " input_cp=%d,", req->input_cp );
|
fprintf( stderr, " input_cp=%d,", req->input_cp );
|
||||||
fprintf( stderr, " output_cp=%d,", req->output_cp );
|
fprintf( stderr, " output_cp=%d,", req->output_cp );
|
||||||
|
fprintf( stderr, " win=%p,", req->win );
|
||||||
fprintf( stderr, " title=" );
|
fprintf( stderr, " title=" );
|
||||||
dump_varargs_unicode_str( cur_size );
|
dump_varargs_unicode_str( cur_size );
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue