You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

30 lines
695 B

//
// Copyright 2014 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.
//
// com_utils.h: Utility functions for working with COM objects
#ifndef UTIL_COM_UTILS_H
#define UTIL_COM_UTILS_H
template <typename outType>
inline outType *DynamicCastComObject(IUnknown *object)
{
outType *outObject = nullptr;
HRESULT result =
object->QueryInterface(__uuidof(outType), reinterpret_cast<void **>(&outObject));
if (SUCCEEDED(result))
{
return outObject;
}
else
{
SafeRelease(outObject);
return nullptr;
}
}
#endif // UTIL_COM_UTILS_H