server/protocol.def and array types

Hugh McMaster hugh.mcmaster at masterindexing.com
Tue Sep 24 07:08:34 CDT 2013


Any help for this?



--------------------------------------------------------------



I'm testing support for GetConsoleScreenBufferInfoEx.



At the moment, I've extended the screen_buffer struct in server/console.c to look like this:



struct screen_buffer

{

    struct object         obj;           /* object header */

    struct list           entry;         /* entry in list of all screen buffers */

    struct console_input *input;         /* associated console input */

    int                   mode;          /* output mode */

    int                   cursor_size;   /* size of cursor (percentage filled) */

    int                   cursor_visible;/* cursor visibility flag */

    int                   cursor_x;      /* position of cursor */

    int                   cursor_y;      /* position of cursor */

    int                   width;         /* size (w-h) of the screen buffer */

    int                   height;

    int                   max_width;     /* size (w-h) of the window given font size */

    int                   max_height;

    char_info_t          *data;          /* the data for each cell - a width x height matrix */

    unsigned short        attr;          /* default attribute for screen buffer */

    rectangle_t           win;           /* current visible window on the screen buffer *

                                * as seen in wineconsole */

    struct fd            *fd;            /* for bare console, attached output fd */

    unsigned short        popup_attr;    /* the console popup fill attribute */

    BOOL                  fullscreen;    /* indicates whether fullscreen mode is supported */

    COLORREF              colortable[16];/* an array of DWORD values */

};



In server/protocol.def I have:



@REQ(get_console_output_info)

    obj_handle_t handle;        /* handle to the console */

@REPLY

   short int    cursor_size;   /* size of cursor (percentage filled) */

    short int    cursor_visible;/* cursor visibility flag */

    short int    cursor_x;      /* position of cursor (x, y) */

    short int    cursor_y;

    short int    width;         /* width of the screen buffer */

    short int    height;        /* height of the screen buffer */

    short int    attr;          /* default attribute */

    short int    win_left;      /* window actually displayed by renderer */

    short int    win_top;       /* the rect area is expressed within the */

    short int    win_right;     /* boundaries of the screen buffer */

    short int    win_bottom;

    short int    max_width;     /* maximum size (width x height) for the window */

    short int    max_height;

    short int    popup_attr;    /* the console popup fill attribute */

    short int    fullscreen;    /* indicates whether fullscreen mode is supported */

--> type???      colortable;    /* a COLORREF array of DWORD values */

@END



While colortable is a COLORREF array, protocol.def does not allow types such as DWORD, COLORREF, etc.



What type should colortable be given to pass tools/make_requests?

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20130924/8a348c66/attachment.html>


More information about the wine-devel mailing list