You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
951 B
38 lines
951 B
#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
|
|
|