Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/angle
Path: blob/main_old/util/com_utils.h
1693 views
1
//
2
// Copyright 2014 The ANGLE Project Authors. All rights reserved.
3
// Use of this source code is governed by a BSD-style license that can be
4
// found in the LICENSE file.
5
//
6
7
// com_utils.h: Utility functions for working with COM objects
8
9
#ifndef UTIL_COM_UTILS_H
10
#define UTIL_COM_UTILS_H
11
12
template <typename outType>
13
inline outType *DynamicCastComObject(IUnknown *object)
14
{
15
outType *outObject = nullptr;
16
HRESULT result =
17
object->QueryInterface(__uuidof(outType), reinterpret_cast<void **>(&outObject));
18
if (SUCCEEDED(result))
19
{
20
return outObject;
21
}
22
else
23
{
24
SafeRelease(outObject);
25
return nullptr;
26
}
27
}
28
29
#endif // UTIL_COM_UTILS_H
30
31