CMutex::CMutex
更新 : 2007 年 11 月
名前付き、または名前なしの CMutex オブジェクトを構築します。
CMutex(
BOOL bInitiallyOwn = FALSE,
LPCTSTR lpszName = NULL,
LPSECURITY_ATTRIBUTES lpsaAttribute = NULL
);
パラメータ
bInitiallyOwn
CMutex オブジェクトを作成するスレッドが、ミューテックスで制御されるリソースのアクセス権を最初に持つかどうかを指定します。lpszName
CMutex オブジェクトの名前。オブジェクトがプロセス間にまたがって使用されるときに、同じ名前で別のミューテックスが存在する場合、このパラメータを指定します。NULL を指定すると、ミューテックスは名前なしになります。名前が既存のミューテックスと一致すると、コンストラクタはその名前のミューテックスを参照する新しい CMutex オブジェクトを構築します。名前が既存の同期オブジェクトと一致し、それがミューテックスでないと構築は失敗します。lpsaAttribute
ミューテックス オブジェクトのセキュリティ属性。この構造体の詳細については、Windows SDK の「SECURITY_ATTRIBUTES」を参照してください。
解説
CMutex オブジェクトにアクセスするまたはオブジェクトを解放するには、CMultiLock オブジェクトまたは CSingleLock オブジェクトを構築し、そのオブジェクトの Lock および Unlock メンバ関数を呼び出します。CMutex オブジェクトがスタンドアロンで使われているときは、Unlock メンバ関数を呼び出して解放します。
セキュリティに関するメモ : |
---|
CMutex オブジェクトを作成した後で、GetLastError を使用して、ミューテックスが存在しないことを確認してください。予期しないミューテックスが存在する場合は、プロセスに問題が発生したり、ミューテックスが悪用されたりする可能性があります。この場合は、ハンドルを閉じ、オブジェクトの作成時にエラーが発生したときと同様の手順で処理を継続して、セキュリティを強化することをお勧めします。 |
必要条件
ヘッダー : afxmt.h