LimitSingleInstance.cpp
上传用户:jstlsd
上传日期:2007-01-13
资源大小:186k
文件大小:2k
源码类别:

钩子与API截获

开发平台:

Visual C++

  1. //---------------------------------------------------------------------------
  2. //
  3. // LimitSingleInstance.cpp
  4. //
  5. // SUBSYSTEM:   Hook system
  6. //
  7. // MODULE:      Hook server
  8. //
  9. // DESCRIPTION: Controls number of the process instances
  10. //              This code is from Q243953 in case you lose the article 
  11. //              and wonder where this code came from...
  12. //             
  13. //
  14. // AUTHOR: Ivo Ivanov (ivopi@hotmail.com)
  15. // DATE: 2001 December v1.00
  16. //
  17. //---------------------------------------------------------------------------
  18. #include "stdafx.h"
  19. #include "HookSrv.h"
  20. #include "LimitSingleInstance.h"
  21. //---------------------------------------------------------------------------
  22. //
  23. // class CLimitSingleInstance
  24. //
  25. //---------------------------------------------------------------------------
  26. CLimitSingleInstance::CLimitSingleInstance(char* pszMutexName)
  27. {
  28. // be sure to use a name that is unique for this application otherwise
  29. // two apps may think they are the same if they are using same name for
  30. // 3rd parm to CreateMutex
  31. m_hMutex = ::CreateMutex(NULL, FALSE, pszMutexName); //do early
  32. m_dwLastError = ::GetLastError(); //save for use later...
  33. }
  34.   
  35. CLimitSingleInstance::~CLimitSingleInstance() 
  36. {
  37. if (m_hMutex)  //don't forget to close handles...
  38. {
  39. ::CloseHandle(m_hMutex); //do as late as possible
  40. m_hMutex = NULL;       //good habit to be in
  41. }
  42. }
  43. BOOL CLimitSingleInstance::IsAnotherInstanceRunning() 
  44. {
  45. return (ERROR_ALREADY_EXISTS == m_dwLastError);
  46. }
  47. //----------------------------End of the file -------------------------------