#pragma once #include "pre.hpp" #include namespace cru::util { template std::shared_ptr CreateComSharedPtr(TInterface* p) { return std::shared_ptr(p, [](TInterface* ptr) { if (ptr != nullptr) ptr->Release(); }); } template void SafeRelease(TInterface*& p) { if (p != nullptr) { p->Release(); p = nullptr; } } } // namespace cru::util