OpenMutex ミューテックスオブジェクトのオープン

Cの宣言:

BOOL ReleaseMutex(HANDLE hMutex);

VBの宣言:

Declare Function ReleaseMutex Lib "kernel32" (ByVal hMutex As Long) As Long

説明:

ミューテックスオブジェクトの所有権を放棄する。hMutexが示すミューテックスオブジェクトの所有権を呼び出し元スレッドが持っていない場合、関数の実行は失敗する。

引数の意味は、以下の通り。
hMutex 所有権の放棄を行うミューテックスオブジェクトのハンドル。

戻り値は、関数の実行に成功したか否かを表す真偽値である。

Cのサンプル:

/* システム中で同時に2つ以上の処理を行ってはいけない処理を行う関数
 * ただし、MUTEX_NAMEで定義された名前を持つミューテックスオブジェクトが
 * 既に作成されているものとする
 */
void CriticalFunc()
{
	HANDLE hMutex;
	
	/* ミューテックスのオープン */
	hMutex = OpenMutex(MUTEX_ALL_ACCESS, FALSE, MUTEX_NAME);

	/* 所有権獲得まで待機 */
	WaitForSingleObject(hMutex, INFINITE);
	
	/* 処理 */
	printf("処理開始\n");
	Sleep(3000);
	printf("処理終了\n");
	
	/* 後処理 */
	ReleaseMutex(hMutex);
	CloseHandle(hMutex);
}
(original text:1998/12/25 更新)

本ドキュメントの内容は保証しません。本ドキュメントによって生じた結果について、一切の責任を負いません。