某些API调用可以通过多种方式成功或失败。这些API通常会返回有关成功调用和错误(例如CreateMutex)的其他信息。
if ( CreateMutexW( NULL, TRUE, L"Global\\MyNamedMutex" ) == NULL ) {
// 失败:获取更多信息。
DWORD dwError = GetLastError();
} else {
// 成功:确定返回了哪个互斥锁。
if ( GetLastError() == ERROR_ALREADY_EXISTS ) {
// 返回现有的互斥对象。
} else {
// 返回新创建的互斥对象。
}
}