Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- template<typename Interface>
- class COMPtr {
- private:
- Interface * mInterface;
- public:
- COMPtr() {
- mInterface = nullptr;
- }
- // for Direct3DCreate9
- void Set( Interface * iface ) {
- mInterface = iface;
- }
- ~COMPtr() {
- if( mInterface ) {
- mInterface->Release();
- }
- }
- inline Interface ** operator & () {
- return &mInterface;
- }
- inline Interface * operator -> () {
- return mInterface;
- }
- operator Interface* () {
- return mInterface;
- }
- Interface * operator = ( Interface * iface ) {
- iface->AddRef();
- mInterface = iface;
- return mInterface;
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment