Interface Technology Basics VST 3.7
SDK for developing VST plug-in
Steinberg::FUnknownImpl Namespace Reference

Namespaces

namespace  Detail
 

Classes

struct  Destroyer
 Common destroyer policy for ski object instances. More...
 
struct  Directly
 This struct is used to group a list of interfaces from which should be inherited and which should be available via the queryInterface method. More...
 
struct  HideIIDBase
 A base class which hides the FUnknown::iid static var. More...
 
class  ImplementsImpl
 
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...
 
struct  Indirectly
 This struct is used to group a list of interfaces from which should not be inherited but which should be available via the queryInterface method. More...
 
struct  UID
 This class provides a compile-time uid and enables interfaces to specify a UID as a simple typedef. More...
 

Typedefs

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...
 

Functions

template<typename T >
const TUIDgetTUID ()
 
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...
 

Typedef Documentation

◆ Unknown

using Unknown = FUnknown

Typedef to keep everything in this namespace.

◆ Extends

using Extends = ImplementsImpl<BaseClass, D, I>

This typedef enables using a custom base class with the interface implementation.

◆ Implements

This typedef provides the interface implementation.

◆ ImplementsNonDestroyable

This typedef provides the interface implementation for objects which should not be destroyed via FUnknown::release (like singletons).

Function Documentation

◆ getTUID()

const TUID & Steinberg::FUnknownImpl::getTUID ( )
Returns
the TUID for an interface.

◆ cast() [1/3]

IPtr< I > Steinberg::FUnknownImpl::cast ( Unknown u)

Checks if the given Unknown can provide the specified interface and returns it in an IPtr.

Returns
an IPtr pointing to an instance of the requested interface or nullptr in case the object does not provide the interface.

◆ cast() [2/3]

IPtr< I > Steinberg::FUnknownImpl::cast ( ImplementsImpl< S, T, U > *  u)

Casts to Unknown* and then to the specified interface.

◆ cast() [3/3]

IPtr< I > Steinberg::FUnknownImpl::cast ( const IPtr< T > &  u)

Casts to Unknown* and then to the specified interface.

Empty

Copyright © Steinberg Media Technologies GmbH. All Rights Reserved. This documentation is under this license.