1234567891011121314151617181920212223242526272829303132333435363738394041 |
- // Copyright 2017 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- #ifndef BASE_WIN_COM_INIT_UTIL_H_
- #define BASE_WIN_COM_INIT_UTIL_H_
- #include "base/base_export.h"
- #include "base/check_op.h"
- namespace base {
- namespace win {
- enum class ComApartmentType {
- // Uninitialized or has an unrecognized apartment type.
- NONE,
- // Single-threaded Apartment.
- STA,
- // Multi-threaded Apartment.
- MTA,
- };
- #if DCHECK_IS_ON()
- // DCHECKs if COM is not initialized on this thread as an STA or MTA.
- // |message| is optional and is used for the DCHECK if specified.
- BASE_EXPORT void AssertComInitialized(const char* message = nullptr);
- // DCHECKs if |apartment_type| is not the same as the current thread's apartment
- // type.
- BASE_EXPORT void AssertComApartmentType(ComApartmentType apartment_type);
- #else // DCHECK_IS_ON()
- inline void AssertComInitialized() {}
- inline void AssertComApartmentType(ComApartmentType apartment_type) {}
- #endif // DCHECK_IS_ON()
- } // namespace win
- } // namespace base
- #endif // BASE_WIN_COM_INIT_UTIL_H_
|