On Apr 13, 2013, Charles Davis wrote: > STOP! You should modify server/protocol.def instead. The file you changed is > automatically generated from protocol.def, along with a bunch of other files > needed to make the server interface magic work.
>> On Apr 13, 2013, at 7:39 AM, Hugh McMaster wrote: >> The interesting thing about server/request.h is that the handler >> declarations appear in the area of the file commented as automatically >> generated. >Of course they do. The Perl script tools/make_requests is responsible for >generating those declarations from server/protocol.def. It is also >responsible for generating include/wine/server_protocol.h, and pieces of >server/trace.c. You should not have to manually change any of them (other >than protocol.def, of course). You might, however, have to run make_requests >manually, though (the makefiles, for some reason, won't invoke it for >you). This was the key piece of information I needed. I never knew I had to run tools/make_requests, so I was making all of the changes to the various server files manually. After running tools/make_requests, Wine compiled perfectly. I am having a bit of trouble with the server though. In server/window.c, I've got the following code for testing purposes. /* retrieve the desktop workarea */ DECL_HANDLER(get_desktop_workarea) { int screen_h = req->spi_workarea.bottom; reply->screen_x = 1680; reply->screen_y = screen_h; } I'm also using the following server request in programs/wineconsole.c (again, for testing): typedef struct { int left; int top; int right; int bottom; } rectangle_t; rectangle_t workarea; SystemParametersInfoA(SPI_GETWORKAREA, 0, &workarea, 0); SERVER_START_REQ( get_desktop_workarea ) { if(!wine_server_call_err( req )) { req->spi_workarea.bottom = workarea.bottom; printf("wineconsole.c: width: %d, height: %d\n", reply->screen_x, reply->screen_y); } } SERVER_END_REQ; The terminal output is unexpected. screen_width is 1680, as you would expect from a hard-coded constant. screen_height is 0, though. It should be 1025. Is there something special/different that needs to be done for the server to accept input? Once again, thank you for your help.