13 #pragma managed( push, off ) 89 else if ( !
Wait( dwTime ) ) {
91 if ( INFINITE == dwTime ) {
124 else if ( 0 == ::ReleaseMutex(
m_hObject ) ) {
154 wchar_t szBuffer[ MAX_PATH ];
155 if (
nullptr != pszObjectName ) {
157 ::wcscpy_s( szBuffer, pszObjectName );
159 pszObjectName = szBuffer;
163 m_hObject = ::CreateMutexW(
nullptr,
false, pszObjectName );
169 else if ( ERROR_ALREADY_EXISTS != ::GetLastError() ) {
189 if (
nullptr == pszObjectName ) {
200 wchar_t szBuffer[ MAX_PATH ];
201 ::wcscpy_s( szBuffer, pszObjectName );
203 pszObjectName = szBuffer;
206 m_hObject = ::OpenMutexW( MUTEX_ALL_ACCESS,
false, pszObjectName );
225 #pragma managed( pop ) virtual void Close() noexcept
クローズ関数
#define NotifyFatalError()
致命的エラー発生通知マクロ
DWORD m_dwLockCount
ロックカウント
virtual bool Unlock() noexcept override
ロック解除関数
virtual bool Wait(DWORD dwTime=INFINITE) noexcept
ウェイト関数
virtual bool Create(wchar_t const *pszObjectName=nullptr) noexcept
作成関数
virtual bool Lock(DWORD dwTime=INFINITE) noexcept override
ロック関数
HANDLE m_hObject
オブジェクトハンドル
virtual bool Release() noexcept override
リリース関数
virtual ~CMutex() noexcept
デストラクタ
virtual void Close() noexcept override
クローズ関数
virtual bool Open(wchar_t const *pszObjectName) noexcept
オープン関数
static wchar_t const *const OBJECT_NAME_EXT
オブジェクト名拡張子