blob: bbaf1c2731ca98372de8dcbfd12f6d5de294cb13 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
#pragma once
#include "pre.hpp"
#include <memory>
namespace cru::util {
template <typename TInterface>
std::shared_ptr<TInterface> CreateComSharedPtr(TInterface* p) {
return std::shared_ptr<TInterface>(p, [](TInterface* ptr) {
if (ptr != nullptr) ptr->Release();
});
}
template <class TInterface>
void SafeRelease(TInterface*& p) {
if (p != nullptr) {
p->Release();
p = nullptr;
}
}
} // namespace cru::util
|