/[rdesktop]/sourceforge.net/trunk/seamlessrdp/ServerExe/HookDll/hook.cpp
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/hook.cpp

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

revision 932 by astrand, Thu Jun 30 14:14:56 2005 UTC revision 933 by astrand, Thu Jun 30 14:46:14 2005 UTC
# Line 10  Line 10 
10    
11  #include "hook.h"  #include "hook.h"
12    
13  HINSTANCE                       WTSWinClipper::mCbtDllHinst                       = 0;  HINSTANCE WTSWinClipper::mCbtDllHinst = 0;
14  SETHOOKS                        WTSWinClipper::mSetCbtHook                    = 0;  SETHOOKS WTSWinClipper::mSetCbtHook = 0;
15  REMOVEHOOKS             WTSWinClipper::mRemoveCbtHook             = 0;  REMOVEHOOKS WTSWinClipper::mRemoveCbtHook = 0;
16  GETINSTANCECOUNT        WTSWinClipper::mGetInstanceCount          = 0;  GETINSTANCECOUNT WTSWinClipper::mGetInstanceCount = 0;
17    
18  bool WTSWinClipper::Init()  bool WTSWinClipper::Init()
19  {  {
20          if (mCbtDllHinst) return true;      if (mCbtDllHinst)
21            return true;
22    
23          while (true)      while (true) {
24          {          // try to load hookdll.dll
25                  // try to load hookdll.dll          if (!(mCbtDllHinst = LoadLibrary("hookdll.dll")))
26                  if (! (mCbtDllHinst = LoadLibrary("hookdll.dll")))              break;
27                          break;  
28            // check number of instances
29                  // check number of instances          if (!
30                  if (! (mGetInstanceCount = (GETINSTANCECOUNT)GetProcAddress(mCbtDllHinst, "GetInstanceCount")))              (mGetInstanceCount =
31                          break;               (GETINSTANCECOUNT) GetProcAddress(mCbtDllHinst,
32                                                   "GetInstanceCount")))
33                break;
34                  // get our hook function  
35                  if (! (mSetCbtHook = (SETHOOKS)GetProcAddress(mCbtDllHinst, "SetCbtHook")))  
36                          break;          // get our hook function
37            if (!
38                  // get our unkook function              (mSetCbtHook =
39                  if (! (mRemoveCbtHook = (REMOVEHOOKS)GetProcAddress(mCbtDllHinst, "RemoveCbtHook")))               (SETHOOKS) GetProcAddress(mCbtDllHinst, "SetCbtHook")))
40                          break;              break;
41    
42                  // report success          // get our unkook function
43                  return true;          if (!
44          }              (mRemoveCbtHook =
45                 (REMOVEHOOKS) GetProcAddress(mCbtDllHinst, "RemoveCbtHook")))
46          // if we got here something went wrong              break;
47          if (mCbtDllHinst)  
48          {          // report success
49                  FreeLibrary(mCbtDllHinst);          return true;
50                  mCbtDllHinst = 0;      }
51          }  
52        // if we got here something went wrong
53        if (mCbtDllHinst) {
54            FreeLibrary(mCbtDllHinst);
55            mCbtDllHinst = 0;
56        }
57    
58          return false;      return false;
59  }  }

Legend:
Removed from v.932  
changed lines
  Added in v.933

  ViewVC Help
Powered by ViewVC 1.1.26