#pragma once #if defined(WINDOWSPC) || defined(XBOXONE) namespace stingray_plugin_foundation { template class ComPtr { public: explicit ComPtr(T* ptr = 0); ComPtr(const ComPtr& rhs); ~ComPtr(); ComPtr& operator=(const ComPtr& rhs); T& operator*() const; T* operator->() const; T* get() const; T* abandon() const; T** init_ptr(); private: T* _ptr; mutable bool _owned; }; #endif } #include "com_ptr.inl"