YSTest  PreAlpha_b500_20140530
The YSLib Test Project
 全部  命名空间 文件 函数 变量 类型定义 枚举 枚举值 友元 宏定义  
platform_ex::COMPtr< _iCOM > 模板类 参考

#include <COM.h>

Public 类型

using InterfaceType = _iCOM
 
using InterfaceType = _iCOM
 

Public 成员函数

 COMPtr () ynothrow
 
 COMPtr (std::nullptr_t) ynothrow
 
template<class _iOther >
 COMPtr (_iOther *ptr) ynothrow
 
template<class _iOther >
 COMPtr (_iOther &intf, ystdex::enable_if_t<!std::is_convertible< _iOther &, COMPtr & >::value, int >=0) ynothrow
 
 COMPtr (const COMPtr &ptr) ynothrow
 
template<class _iOther >
 COMPtr (const COMPtr< _iOther > &ptr, ystdex::enable_if_t< std::is_convertible< _iOther *, _iCOM * >::value, int >=0) ynothrow
 
 COMPtr (COMPtr &&ptr) ynothrow
 
template<class _iOther >
 COMPtr (COMPtr< _iOther > &&ptr, ystdex::enable_if_t< std::is_convertible< _iOther *, _iCOM * >::value, int >=0) ynothrow
 
 ~COMPtr ()
 
COMPtroperator= (std::nullptr_t) ynothrow
 
COMPtroperator= (_iCOM *p) ynothrow
 
COMPtroperator= (const COMPtr &ptr) ynothrow
 
COMPtroperator= (COMPtr &&ptr) ynothrow
 
_iCOM & operator* () const ynothrowv
 
_iCOM * operator-> () const ynothrow
 
 operator bool () const ynothrow
 
 DefGetter (const ynothrow, _iCOM *,, pInterface) DefGetter(const
 
_iCOM EnsureNonNull (pInterface)
 
_iCOM *pInterface DefGetter (ynothrow, _iCOM *&, Ref, pInterface) COMPtr< IUnknown > As(REFIID riid) const ythrow(COMException)
 
template<class _iOther >
COMPtr< _iOther > As () const ythrow(COMException)
 
::HRESULT Cast (REFIID riid, COMPtr< IUnknown > &ptr) const ynothrow
 
template<class _iOther >
::HRESULT Cast (COMPtr< _iOther > &ptr) const ynothrow
 
InterfaceTypeCopy () const ynothrow
 
void * Copy (REFIID riid) const ythrow(COMException)
 
::HRESULT CopyTo (REFIID riid, void **ptr) const ynothrow
 
template<typename _type >
::HRESULT CopyTo (_type *&p) const ynothrow
 
_iCOM *& ReleaseAndGetRef () ynothrow
 
void swap (COMPtr &ptr) ynothrow
 
 COMPtr () ynothrow
 
 COMPtr (std::nullptr_t) ynothrow
 
template<class _iOther >
 COMPtr (_iOther *ptr) ynothrow
 
template<class _iOther >
 COMPtr (_iOther &intf, ystdex::enable_if_t<!std::is_convertible< _iOther &, COMPtr & >::value, int >=0) ynothrow
 
 COMPtr (const COMPtr &ptr) ynothrow
 
template<class _iOther >
 COMPtr (const COMPtr< _iOther > &ptr, ystdex::enable_if_t< std::is_convertible< _iOther *, _iCOM * >::value, int >=0) ynothrow
 
 COMPtr (COMPtr &&ptr) ynothrow
 
template<class _iOther >
 COMPtr (COMPtr< _iOther > &&ptr, ystdex::enable_if_t< std::is_convertible< _iOther *, _iCOM * >::value, int >=0) ynothrow
 
 ~COMPtr () ynothrow
 
COMPtroperator= (std::nullptr_t) ynothrow
 
COMPtroperator= (_iCOM *p) ynothrow
 
COMPtroperator= (const COMPtr &ptr) ynothrow
 
COMPtroperator= (COMPtr &&ptr) ynothrow
 
_iCOM & operator* () const ynothrow
 
_iCOM * operator-> () const ynothrow
 
 operator bool () const ynothrow
 
 DefGetter (const ynothrow, _iCOM *,, pInterface) DefGetter(const
 
_iCOM EnsureNonNull (pInterface)
 
_iCOM *pInterface DefGetter (ynothrow, _iCOM *&, Ref, pInterface) COMPtr< IUnknown > As(REFIID riid) const ythrow(COMException)
 
template<class _iOther >
COMPtr< _iOther > As () const ythrow(COMException)
 
::HRESULT Cast (REFIID riid, COMPtr< IUnknown > &ptr) const ynothrow
 
template<class _iOther >
::HRESULT Cast (COMPtr< _iOther > &ptr) const ynothrow
 
InterfaceTypeCopy () const ynothrow
 
void * Copy (REFIID riid) const ythrow(COMException)
 
::HRESULT CopyTo (REFIID riid, void **ptr) const ynothrow
 
template<typename _type >
::HRESULT CopyTo (_type *&p) const ynothrow
 
_iCOM *& ReleaseAndGetRef () ynothrow
 
void swap (COMPtr &ptr) ynothrow
 

Public 属性

_iCOM Object
 

Protected 成员函数

void InternalAddRef () const ynothrow
 
void InternalRelease () ynothrow
 
void InternalAddRef () const ynothrow
 
void InternalRelease () ynothrow
 

Protected 属性

InterfaceTypepInterface
 

友元

template<class _iOther >
class COMPtr
 

详细描述

template<class _iCOM>
class platform_ex::COMPtr< _iCOM >

在文件 include/YCLib/COM.h108 行定义.

成员类型定义说明

template<class _iCOM>
using platform_ex::COMPtr< _iCOM >::InterfaceType = _iCOM

在文件 E/include/YCLib/COM.h113 行定义.

template<class _iCOM>
using platform_ex::COMPtr< _iCOM >::InterfaceType = _iCOM

在文件 include/YCLib/COM.h114 行定义.

构造及析构函数说明

template<class _iOther >
COMPtr ( )
inline

在文件 include/YCLib/COM.h120 行定义.

参考自 platform_ex::COMPtr< _iCOM >::operator=().

这是这个函数的调用关系图:

template<class _iCOM>
platform_ex::COMPtr< _iCOM >::COMPtr ( std::nullptr_t  )
inline

在文件 include/YCLib/COM.h123 行定义.

template<class _iCOM>
template<class _iOther >
platform_ex::COMPtr< _iCOM >::COMPtr ( _iOther *  ptr)
inline

在文件 include/YCLib/COM.h127 行定义.

template<class _iCOM>
template<class _iOther >
platform_ex::COMPtr< _iCOM >::COMPtr ( _iOther &  intf,
ystdex::enable_if_t<!std::is_convertible< _iOther &, COMPtr< _iCOM > & >::value, int >  = 0 
)
inline
自从
build 439

在文件 include/YCLib/COM.h132 行定义.

参考 platform_ex::COMPtr< _iCOM >::pInterface.

template<class _iCOM>
platform_ex::COMPtr< _iCOM >::COMPtr ( const COMPtr< _iCOM > &  ptr)
inline

在文件 include/YCLib/COM.h138 行定义.

参考 platform_ex::COMPtr< _iCOM >::InternalAddRef().

函数调用图:

template<class _iCOM>
template<class _iOther >
platform_ex::COMPtr< _iCOM >::COMPtr ( const COMPtr< _iOther > &  ptr,
ystdex::enable_if_t< std::is_convertible< _iOther *, _iCOM * >::value, int >  = 0 
)
inline
自从
build 439

在文件 include/YCLib/COM.h145 行定义.

参考 platform_ex::COMPtr< _iCOM >::InternalAddRef().

函数调用图:

template<class _iCOM>
platform_ex::COMPtr< _iCOM >::COMPtr ( COMPtr< _iCOM > &&  ptr)
inline

在文件 include/YCLib/COM.h151 行定义.

template<class _iCOM>
template<class _iOther >
platform_ex::COMPtr< _iCOM >::COMPtr ( COMPtr< _iOther > &&  ptr,
ystdex::enable_if_t< std::is_convertible< _iOther *, _iCOM * >::value, int >  = 0 
)
inline
自从
build 439

在文件 include/YCLib/COM.h158 行定义.

template<class _iCOM>
platform_ex::COMPtr< _iCOM >::~COMPtr ( )
inline
自从
build 461

在文件 include/YCLib/COM.h165 行定义.

参考 platform_ex::COMPtr< _iCOM >::InternalRelease().

函数调用图:

template<class _iCOM>
platform_ex::COMPtr< _iCOM >::COMPtr ( )
inline

在文件 E/include/YCLib/COM.h119 行定义.

template<class _iCOM>
platform_ex::COMPtr< _iCOM >::COMPtr ( std::nullptr_t  )
inline

在文件 E/include/YCLib/COM.h122 行定义.

template<class _iCOM>
template<class _iOther >
platform_ex::COMPtr< _iCOM >::COMPtr ( _iOther *  ptr)
inline

在文件 E/include/YCLib/COM.h126 行定义.

template<class _iCOM>
template<class _iOther >
platform_ex::COMPtr< _iCOM >::COMPtr ( _iOther &  intf,
ystdex::enable_if_t<!std::is_convertible< _iOther &, COMPtr< _iCOM > & >::value, int >  = 0 
)
inline
自从
build 439

在文件 E/include/YCLib/COM.h131 行定义.

参考 platform_ex::COMPtr< _iCOM >::pInterface.

template<class _iCOM>
platform_ex::COMPtr< _iCOM >::COMPtr ( const COMPtr< _iCOM > &  ptr)
inline

在文件 E/include/YCLib/COM.h137 行定义.

参考 platform_ex::COMPtr< _iCOM >::InternalAddRef().

函数调用图:

template<class _iCOM>
template<class _iOther >
platform_ex::COMPtr< _iCOM >::COMPtr ( const COMPtr< _iOther > &  ptr,
ystdex::enable_if_t< std::is_convertible< _iOther *, _iCOM * >::value, int >  = 0 
)
inline
自从
build 439

在文件 E/include/YCLib/COM.h144 行定义.

参考 platform_ex::COMPtr< _iCOM >::InternalAddRef().

函数调用图:

template<class _iCOM>
platform_ex::COMPtr< _iCOM >::COMPtr ( COMPtr< _iCOM > &&  ptr)
inline

在文件 E/include/YCLib/COM.h150 行定义.

template<class _iCOM>
template<class _iOther >
platform_ex::COMPtr< _iCOM >::COMPtr ( COMPtr< _iOther > &&  ptr,
ystdex::enable_if_t< std::is_convertible< _iOther *, _iCOM * >::value, int >  = 0 
)
inline
自从
build 439

在文件 E/include/YCLib/COM.h157 行定义.

template<class _iCOM>
platform_ex::COMPtr< _iCOM >::~COMPtr ( )
inline

在文件 E/include/YCLib/COM.h163 行定义.

参考 platform_ex::COMPtr< _iCOM >::InternalRelease().

函数调用图:

成员函数说明

template<class _iCOM>
template<class _iOther >
COMPtr<_iOther> platform_ex::COMPtr< _iCOM >::As ( ) const
inline
template<class _iCOM>
template<class _iOther >
COMPtr<_iOther> platform_ex::COMPtr< _iCOM >::As ( ) const
inline
template<class _iCOM>
::HRESULT platform_ex::COMPtr< _iCOM >::Cast ( REFIID  riid,
COMPtr< IUnknown > &  ptr 
) const
inline
template<class _iCOM>
::HRESULT platform_ex::COMPtr< _iCOM >::Cast ( REFIID  riid,
COMPtr< IUnknown > &  ptr 
) const
inline
template<class _iCOM>
template<class _iOther >
::HRESULT platform_ex::COMPtr< _iCOM >::Cast ( COMPtr< _iOther > &  ptr) const
inline
template<class _iCOM>
template<class _iOther >
::HRESULT platform_ex::COMPtr< _iCOM >::Cast ( COMPtr< _iOther > &  ptr) const
inline
template<class _iCOM>
InterfaceType* platform_ex::COMPtr< _iCOM >::Copy ( ) const
inline
template<class _iCOM>
InterfaceType* platform_ex::COMPtr< _iCOM >::Copy ( ) const
inline
template<class _iCOM>
void* platform_ex::COMPtr< _iCOM >::Copy ( REFIID  riid) const
inline
template<class _iCOM>
void* platform_ex::COMPtr< _iCOM >::Copy ( REFIID  riid) const
inline
template<class _iCOM>
::HRESULT platform_ex::COMPtr< _iCOM >::CopyTo ( REFIID  riid,
void **  ptr 
) const
inline
template<class _iCOM>
::HRESULT platform_ex::COMPtr< _iCOM >::CopyTo ( REFIID  riid,
void **  ptr 
) const
inline
template<class _iCOM>
template<typename _type >
::HRESULT platform_ex::COMPtr< _iCOM >::CopyTo ( _type *&  p) const
inline
template<class _iCOM>
template<typename _type >
::HRESULT platform_ex::COMPtr< _iCOM >::CopyTo ( _type *&  p) const
inline
template<class _iCOM>
platform_ex::COMPtr< _iCOM >::DefGetter ( const ynothrow  ,
_iCOM *  ,
pInterface   
) const
template<class _iCOM>
platform_ex::COMPtr< _iCOM >::DefGetter ( const ynothrow  ,
_iCOM *  ,
pInterface   
) const
template<class _iCOM>
_iCOM * pInterface platform_ex::COMPtr< _iCOM >::DefGetter ( ynothrow  ,
_iCOM *&  ,
Ref  ,
pInterface   
) const
inline

在文件 E/include/YCLib/COM.h216 行定义.

参考 platform_ex::CheckHResult() , 以及 yconstraint.

函数调用图:

template<class _iCOM>
_iCOM * pInterface platform_ex::COMPtr< _iCOM >::DefGetter ( ynothrow  ,
_iCOM *&  ,
Ref  ,
pInterface   
) const
inline
template<class _iCOM>
_iCOM platform_ex::COMPtr< _iCOM >::EnsureNonNull ( pInterface  )
template<class _iCOM>
_iCOM platform_ex::COMPtr< _iCOM >::EnsureNonNull ( pInterface  )
template<class _iCOM>
void platform_ex::COMPtr< _iCOM >::InternalAddRef ( ) const
inlineprotected

在文件 include/YCLib/COM.h293 行定义.

参考 platform_ex::COMPtr< _iCOM >::pInterface.

参考自 platform_ex::COMPtr< _iCOM >::COMPtr() , 以及 platform_ex::COMPtr< _iCOM >::Copy().

这是这个函数的调用关系图:

template<class _iCOM>
void platform_ex::COMPtr< _iCOM >::InternalAddRef ( ) const
inlineprotected
template<class _iCOM>
void platform_ex::COMPtr< _iCOM >::InternalRelease ( )
inlineprotected
template<class _iCOM>
void platform_ex::COMPtr< _iCOM >::InternalRelease ( )
inlineprotected
template<class _iCOM>
platform_ex::COMPtr< _iCOM >::operator bool ( ) const
inlineexplicit

在文件 E/include/YCLib/COM.h209 行定义.

template<class _iCOM>
platform_ex::COMPtr< _iCOM >::operator bool ( ) const
inlineexplicit

在文件 include/YCLib/COM.h211 行定义.

template<class _iCOM>
_iCOM& platform_ex::COMPtr< _iCOM >::operator* ( ) const
inline
template<class _iCOM>
_iCOM& platform_ex::COMPtr< _iCOM >::operator* ( ) const
inline
自从
build 461

在文件 include/YCLib/COM.h198 行定义.

参考 platform_ex::COMPtr< _iCOM >::pInterface , 以及 yconstraint.

template<class _iCOM>
_iCOM* platform_ex::COMPtr< _iCOM >::operator-> ( ) const
inline
template<class _iCOM>
_iCOM* platform_ex::COMPtr< _iCOM >::operator-> ( ) const
inline
template<class _iCOM>
COMPtr& platform_ex::COMPtr< _iCOM >::operator= ( std::nullptr_t  )
inline

在文件 E/include/YCLib/COM.h169 行定义.

参考 platform_ex::COMPtr< _iCOM >::InternalRelease().

函数调用图:

template<class _iCOM>
COMPtr& platform_ex::COMPtr< _iCOM >::operator= ( std::nullptr_t  )
inline

在文件 include/YCLib/COM.h171 行定义.

参考 platform_ex::COMPtr< _iCOM >::InternalRelease().

函数调用图:

template<class _iCOM>
COMPtr& platform_ex::COMPtr< _iCOM >::operator= ( _iCOM *  p)
inline
template<class _iCOM>
COMPtr& platform_ex::COMPtr< _iCOM >::operator= ( _iCOM *  p)
inline
template<class _iCOM>
COMPtr& platform_ex::COMPtr< _iCOM >::operator= ( const COMPtr< _iCOM > &  ptr)
inline

在文件 E/include/YCLib/COM.h182 行定义.

参考 platform_ex::COMPtr< _iCOM >::COMPtr().

函数调用图:

template<class _iCOM>
COMPtr& platform_ex::COMPtr< _iCOM >::operator= ( const COMPtr< _iCOM > &  ptr)
inline

在文件 include/YCLib/COM.h184 行定义.

参考 platform_ex::COMPtr< _iCOM >::COMPtr().

函数调用图:

template<class _iCOM>
COMPtr& platform_ex::COMPtr< _iCOM >::operator= ( COMPtr< _iCOM > &&  ptr)
inline

在文件 E/include/YCLib/COM.h188 行定义.

template<class _iCOM>
COMPtr& platform_ex::COMPtr< _iCOM >::operator= ( COMPtr< _iCOM > &&  ptr)
inline

在文件 include/YCLib/COM.h190 行定义.

template<class _iCOM>
_iCOM*& platform_ex::COMPtr< _iCOM >::ReleaseAndGetRef ( )
inline

在文件 include/YCLib/COM.h311 行定义.

参考 platform_ex::COMPtr< _iCOM >::InternalRelease() , 以及 platform_ex::COMPtr< _iCOM >::pInterface.

参考自 platform_ex::COMPtr< _iCOM >::As() , 以及 platform_ex::COMPtr< _iCOM >::DefGetter().

函数调用图:

这是这个函数的调用关系图:

template<class _iCOM>
_iCOM*& platform_ex::COMPtr< _iCOM >::ReleaseAndGetRef ( )
inline
template<class _iCOM>
void platform_ex::COMPtr< _iCOM >::swap ( COMPtr< _iCOM > &  ptr)
inline

在文件 include/YCLib/COM.h318 行定义.

参考 platform_ex::COMPtr< _iCOM >::pInterface , 以及 ystdex::swap().

函数调用图:

template<class _iCOM>
void platform_ex::COMPtr< _iCOM >::swap ( COMPtr< _iCOM > &  ptr)
inline

在文件 E/include/YCLib/COM.h319 行定义.

参考 platform_ex::COMPtr< _iCOM >::pInterface , 以及 ystdex::swap().

函数调用图:

友元及相关函数文档

template<class _iCOM>
template<class _iOther >
friend class COMPtr
friend

在文件 include/YCLib/COM.h111 行定义.

类成员变量说明

template<class _iCOM>
_iCOM platform_ex::COMPtr< _iCOM >::Object

在文件 include/YCLib/COM.h217 行定义.


该类的文档由以下文件生成: