106 |
else |
else |
107 |
parent = NULL; |
parent = NULL; |
108 |
|
|
109 |
vchannel_write("CREATE,0x%p,0x%p,0x%x", hwnd, parent, 0); |
vchannel_write("CREATE", "0x%p,0x%p,0x%x", hwnd, parent, 0); |
110 |
|
|
111 |
if (!GetWindowRect(hwnd, &rect)) |
if (!GetWindowRect(hwnd, &rect)) |
112 |
{ |
{ |
114 |
return TRUE; |
return TRUE; |
115 |
} |
} |
116 |
|
|
117 |
vchannel_write("POSITION,0x%p,%d,%d,%d,%d,0x%x", |
vchannel_write("POSITION", "0x%p,%d,%d,%d,%d,0x%x", |
118 |
hwnd, |
hwnd, |
119 |
rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top, 0); |
rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top, 0); |
120 |
|
|
121 |
GetWindowTextW(hwnd, title, sizeof(title) / sizeof(*title)); |
GetWindowTextW(hwnd, title, sizeof(title) / sizeof(*title)); |
122 |
|
|
123 |
vchannel_write("TITLE,0x%x,%s,0x%x", hwnd, vchannel_strfilter_unicode(title), 0); |
vchannel_write("TITLE", "0x%x,%s,0x%x", hwnd, vchannel_strfilter_unicode(title), 0); |
124 |
|
|
125 |
if (styles & WS_MAXIMIZE) |
if (styles & WS_MAXIMIZE) |
126 |
state = 2; |
state = 2; |
129 |
else |
else |
130 |
state = 0; |
state = 0; |
131 |
|
|
132 |
vchannel_write("STATE,0x%p,0x%x,0x%x", hwnd, state, 0); |
vchannel_write("STATE", "0x%p,0x%x,0x%x", hwnd, state, 0); |
133 |
|
|
134 |
return TRUE; |
return TRUE; |
135 |
} |
} |
139 |
{ |
{ |
140 |
vchannel_block(); |
vchannel_block(); |
141 |
|
|
142 |
vchannel_write("SYNCBEGIN,0x0"); |
vchannel_write("SYNCBEGIN", "0x0"); |
143 |
|
|
144 |
EnumWindows(enum_cb, 0); |
EnumWindows(enum_cb, 0); |
145 |
|
|
146 |
vchannel_write("SYNCEND,0x0"); |
vchannel_write("SYNCEND", "0x0"); |
147 |
|
|
148 |
vchannel_unblock(); |
vchannel_unblock(); |
149 |
} |
} |
150 |
|
|
151 |
static void |
static void |
152 |
do_state(HWND hwnd, int state) |
do_state(unsigned int serial, HWND hwnd, int state) |
153 |
{ |
{ |
154 |
g_set_state_fn(hwnd, state); |
g_set_state_fn(hwnd, state); |
155 |
} |
} |
156 |
|
|
157 |
static void |
static void |
158 |
do_position(HWND hwnd, int x, int y, int width, int height) |
do_position(unsigned int serial, HWND hwnd, int x, int y, int width, int height) |
159 |
{ |
{ |
160 |
g_move_window_fn(hwnd, x, y, width, height); |
g_move_window_fn(hwnd, x, y, width, height); |
161 |
} |
} |
162 |
|
|
163 |
static void |
static void |
164 |
do_zchange(HWND hwnd, HWND behind) |
do_zchange(unsigned int serial, HWND hwnd, HWND behind) |
165 |
{ |
{ |
166 |
g_zchange_fn(hwnd, behind); |
g_zchange_fn(hwnd, behind); |
167 |
} |
} |
168 |
|
|
169 |
static void |
static void |
170 |
do_focus(HWND hwnd) |
do_focus(unsigned int serial, HWND hwnd) |
171 |
{ |
{ |
172 |
g_focus_fn(hwnd); |
g_focus_fn(hwnd); |
173 |
} |
} |
196 |
if (strcmp(tok1, "SYNC") == 0) |
if (strcmp(tok1, "SYNC") == 0) |
197 |
do_sync(); |
do_sync(); |
198 |
else if (strcmp(tok1, "STATE") == 0) |
else if (strcmp(tok1, "STATE") == 0) |
199 |
do_state((HWND) strtoul(tok2, NULL, 0), strtol(tok3, NULL, 0)); |
do_state(strtoul(tok2, NULL, 0), (HWND) strtoul(tok3, NULL, 0), |
200 |
|
strtol(tok4, NULL, 0)); |
201 |
else if (strcmp(tok1, "POSITION") == 0) |
else if (strcmp(tok1, "POSITION") == 0) |
202 |
do_position((HWND) strtoul(tok2, NULL, 0), strtol(tok3, NULL, 0), |
do_position(strtoul(tok2, NULL, 0), (HWND) strtoul(tok3, NULL, 0), |
203 |
strtol(tok4, NULL, 0), strtol(tok5, NULL, 0), strtol(tok6, NULL, |
strtol(tok4, NULL, 0), strtol(tok5, NULL, 0), strtol(tok6, NULL, |
204 |
0)); |
0), |
205 |
|
strtol(tok7, NULL, 0)); |
206 |
else if (strcmp(tok1, "ZCHANGE") == 0) |
else if (strcmp(tok1, "ZCHANGE") == 0) |
207 |
do_zchange((HWND) strtoul(tok2, NULL, 0), (HWND) strtoul(tok3, NULL, 0)); |
do_zchange(strtoul(tok2, NULL, 0), (HWND) strtoul(tok3, NULL, 0), |
208 |
|
(HWND) strtoul(tok4, NULL, 0)); |
209 |
else if (strcmp(tok1, "FOCUS") == 0) |
else if (strcmp(tok1, "FOCUS") == 0) |
210 |
do_focus((HWND) strtoul(tok2, NULL, 0)); |
do_focus(strtoul(tok2, NULL, 0), (HWND) strtoul(tok3, NULL, 0)); |
211 |
} |
} |
212 |
} |
} |
213 |
|
|
221 |
/* These get reset on each reconnect */ |
/* These get reset on each reconnect */ |
222 |
SystemParametersInfo(SPI_SETDRAGFULLWINDOWS, TRUE, NULL, 0); |
SystemParametersInfo(SPI_SETDRAGFULLWINDOWS, TRUE, NULL, 0); |
223 |
SystemParametersInfo(SPI_SETSCREENSAVEACTIVE, FALSE, NULL, 0); |
SystemParametersInfo(SPI_SETSCREENSAVEACTIVE, FALSE, NULL, 0); |
224 |
vchannel_write("HELLO,0x%08x", 1); |
vchannel_write("HELLO", "0x%08x", 1); |
225 |
} |
} |
226 |
} |
} |
227 |
|
|
316 |
|
|
317 |
vchannel_open(); |
vchannel_open(); |
318 |
|
|
319 |
vchannel_write("HELLO,0x%08x", 0); |
vchannel_write("HELLO", "0x%08x", 0); |
320 |
|
|
321 |
set_hooks_fn(); |
set_hooks_fn(); |
322 |
|
|