blob: dd583351765633f591b28263f71019279aabe379 [file] [edit]
//
// 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_