|  | 
| struct | HideIIDBase | 
|  | A base class which hides the FUnknown::iid static var.  More... 
 | 
|  | 
| struct | Destroyer | 
|  | Common destroyer policy for ski object instances.  More... 
 | 
|  | 
| struct | UID< t1, t2, t3, t4 > | 
|  | This class provides a compile-time uid and enables interfaces to specify a UID as a simple typedef.  More... 
 | 
|  | 
| struct | RefCounted | 
|  | This struct implements reference counting for the U::Implementstemplate.  More...
 | 
|  | 
| struct | NonDestroyable | 
|  | 
| struct | QueryInterfaceEnd< T > | 
|  | 
| struct | Directly< T > | 
|  | This struct is used to group a list of interfaces from which should be inherited and which should be available via the queryInterfacemethod.  More...
 | 
|  | 
| struct | Indirectly< T > | 
|  | This struct is used to group a list of interfaces from which should not be inherited but which should be available via the queryInterfacemethod.  More...
 | 
|  | 
| class | ImplementsImpl< Base, D, I > | 
|  | 
| class | ImplementsImpl< Base, Indirectly< IndirectInterfaces... >, Directly< DirectInterfaces... > > | 
|  | 
| class | ImplementsImpl< BaseClass, Directly< I, DirectIFs... >, Indirectly< IndirectIFs... > > | 
|  | This class implements the required virtual methods for the U::Unknown class.  More... 
 | 
|  | 
|  | 
| using | Unknown = FUnknown | 
|  | Typedef to keep everything in this namespace.  More... 
 | 
|  | 
| template<typename BaseClass , typename D , typename I  = Indirectly<>> | 
| using | Extends = ImplementsImpl< BaseClass, D, I > | 
|  | This typedef enables using a custom base class with the interface implementation.  More... 
 | 
|  | 
| template<typename D , typename I  = Indirectly<>> | 
| using | Implements = ImplementsImpl< Detail::QueryInterfaceEnd< Detail::RefCounted >, D, I > | 
|  | This typedef provides the interface implementation.  More... 
 | 
|  | 
| template<typename D , typename I  = Indirectly<>> | 
| using | ImplementsNonDestroyable = ImplementsImpl< Detail::QueryInterfaceEnd< Detail::NonDestroyable >, D, I > | 
|  | This typedef provides the interface implementation for objects which should not be destroyed via FUnknown::release (like singletons).  More... 
 | 
|  | 
| using | Unknown = FUnknownImpl::HideIIDBase | 
|  | 
|  | 
| template<typename T > | 
| const TUID & | getTUID () | 
|  | 
| template<typename I > | 
| IPtr< I > | cast (Unknown *u) | 
|  | Checks if the given Unknown can provide the specified interface and returns it in an IPtr.  More... 
 | 
|  | 
| template<typename I , typename S , typename T , typename U > | 
| IPtr< I > | cast (ImplementsImpl< S, T, U > *u) | 
|  | Casts to Unknown* and then to the specified interface.  More... 
 | 
|  | 
| template<typename I , typename T > | 
| IPtr< I > | cast (const IPtr< T > &u) | 
|  | Casts to Unknown* and then to the specified interface.  More... 
 | 
|  |