| // |
| // Copyright 2026 The ANGLE Project 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 COMMON_COM_UTILS_H_ |
| #define COMMON_COM_UTILS_H_ |
| |
| #include "common/angleutils.h" |
| #include "common/debug.h" |
| |
| namespace angle |
| { |
| |
| template <typename OutType> |
| ComPtr<OutType> DynamicCastComObject(IUnknown *object) |
| { |
| ASSERT(object != nullptr); |
| |
| ComPtr<OutType> outObject; |
| const HRESULT hr = object->QueryInterface(IID_PPV_ARGS(&outObject)); |
| RELEASE_ASSERT((outObject.Get() != nullptr) == SUCCEEDED(hr)); |
| return outObject; |
| } |
| |
| } // namespace angle |
| |
| #endif // COMMON_COM_UTILS_H_ |