/[rdesktop]/sourceforge.net/trunk/seamlessrdp/ServerExe/HookDll/hookdll.c
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /sourceforge.net/trunk/seamlessrdp/ServerExe/HookDll/hookdll.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1158 by ossman_, Fri Mar 17 13:11:20 2006 UTC revision 1160 by ossman_, Fri Mar 17 16:23:08 2006 UTC
# Line 48  int g_instance_count SHARED = 0; Line 48  int g_instance_count SHARED = 0;
48  RECT g_block_move SHARED = { 0, 0, 0, 0 };  RECT g_block_move SHARED = { 0, 0, 0, 0 };
49  HWND g_blocked_zchange[2] SHARED = { NULL, NULL };  HWND g_blocked_zchange[2] SHARED = { NULL, NULL };
50  HWND g_blocked_focus SHARED = NULL;  HWND g_blocked_focus SHARED = NULL;
51    int g_blocked_state SHARED = -1;
52    
53  #pragma data_seg ()  #pragma data_seg ()
54    
# Line 124  wndproc_hook_proc(int code, WPARAM cur_t Line 125  wndproc_hook_proc(int code, WPARAM cur_t
125    
126          switch (msg)          switch (msg)
127          {          {
   
128                  case WM_WINDOWPOSCHANGED:                  case WM_WINDOWPOSCHANGED:
129                          {                          {
130                                  WINDOWPOS *wp = (WINDOWPOS *) lparam;                                  WINDOWPOS *wp = (WINDOWPOS *) lparam;
# Line 284  cbt_hook_proc(int code, WPARAM wparam, L Line 284  cbt_hook_proc(int code, WPARAM wparam, L
284          {          {
285                  case HCBT_MINMAX:                  case HCBT_MINMAX:
286                          {                          {
287                                  int show, state;                                  int show, state, blocked;
288    
289                                    WaitForSingleObject(g_mutex, INFINITE);
290                                    blocked = g_blocked_state;
291                                    ReleaseMutex(g_mutex);
292    
293                                  show = LOWORD(lparam);                                  show = LOWORD(lparam);
294    
# Line 300  cbt_hook_proc(int code, WPARAM wparam, L Line 304  cbt_hook_proc(int code, WPARAM wparam, L
304                                          debug("Unexpected show: %d", show);                                          debug("Unexpected show: %d", show);
305                                          break;                                          break;
306                                  }                                  }
307                                  vchannel_write("STATE,0x%p,0x%x,0x%x", (HWND) wparam, state, 0);  
308                                    if (blocked != state)
309                                            vchannel_write("STATE,0x%p,0x%x,0x%x", (HWND) wparam, state,
310                                                           0);
311    
312                                  break;                                  break;
313                          }                          }
314    
# Line 389  SafeFocus(HWND hwnd) Line 397  SafeFocus(HWND hwnd)
397          ReleaseMutex(g_mutex);          ReleaseMutex(g_mutex);
398  }  }
399    
400    DLL_EXPORT void
401    SafeSetState(HWND hwnd, int state)
402    {
403            WaitForSingleObject(g_mutex, INFINITE);
404            g_blocked_state = state;
405            ReleaseMutex(g_mutex);
406    
407            if (state == 0)
408                    ShowWindow(hwnd, SW_RESTORE);
409            else if (state == 1)
410                    ShowWindow(hwnd, SW_MINIMIZE);
411            else if (state == 2)
412                    ShowWindow(hwnd, SW_MAXIMIZE);
413            else
414                    debug("Invalid state %d sent.", state);
415    
416            WaitForSingleObject(g_mutex, INFINITE);
417            g_blocked_state = -1;
418            ReleaseMutex(g_mutex);
419    }
420    
421  DLL_EXPORT int  DLL_EXPORT int
422  GetInstanceCount()  GetInstanceCount()
423  {  {

Legend:
Removed from v.1158  
changed lines
  Added in v.1160

  ViewVC Help
Powered by ViewVC 1.1.26