Hendrik Langer
6 years ago
3 changed files with 50 additions and 0 deletions
Binary file not shown.
@ -0,0 +1,38 @@ |
|||
#ifndef LimitSingleInstance_H |
|||
#define LimitSingleInstance_H |
|||
|
|||
#include <windows.h> |
|||
|
|||
//This code is from Q243953 in case you lose the article and wonder
|
|||
//where this code came from.
|
|||
class CLimitSingleInstance |
|||
{ |
|||
protected: |
|||
DWORD m_dwLastError; |
|||
HANDLE m_hMutex; |
|||
|
|||
public: |
|||
CLimitSingleInstance(TCHAR *strMutexName) |
|||
{ |
|||
//Make sure that you use a name that is unique for this application otherwise
|
|||
//two apps may think they are the same if they are using same name for
|
|||
//3rd parm to CreateMutex
|
|||
m_hMutex = CreateMutex(NULL, FALSE, strMutexName); //do early
|
|||
m_dwLastError = GetLastError(); //save for use later...
|
|||
} |
|||
|
|||
~CLimitSingleInstance() |
|||
{ |
|||
if (m_hMutex) //Do not forget to close handles.
|
|||
{ |
|||
CloseHandle(m_hMutex); //Do as late as possible.
|
|||
m_hMutex = NULL; //Good habit to be in.
|
|||
} |
|||
} |
|||
|
|||
BOOL IsAnotherInstanceRunning() |
|||
{ |
|||
return (ERROR_ALREADY_EXISTS == m_dwLastError); |
|||
} |
|||
}; |
|||
#endif |
Loading…
Reference in new issue