Interface Technology Basics  VST 3.7
SDK for developing VST plug-in
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
Steinberg::FUnknownImpl Namespace Reference

Namespaces

namespace  Detail
 

Classes

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
 This class provides a compile-time uid and enables interfaces to specify a UID as a simple typedef. 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  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...
 
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...
 

Typedefs

using Unknown = FUnknown
 Typedef to keep everything in this namespace.
 
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.
 
template<typename D , typename I = Indirectly<>>
using Implements = ImplementsImpl< Detail::QueryInterfaceEnd< Detail::RefCounted >, D, I >
 This typedef provides the interface implementation.
 
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).
 

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.
 
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.
 
template<typename I , typename T >
IPtr< I > cast (const IPtr< T > &u)
 Casts to Unknown* and then to the specified interface.
 

Typedef Documentation

using Unknown = FUnknown

Typedef to keep everything in this namespace.

using Extends = ImplementsImpl<BaseClass, D, I>

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

This typedef provides the interface implementation.

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

Function Documentation

const TUID& Steinberg::FUnknownImpl::getTUID ( )
Returns
the TUID for an interface.
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.
IPtr<I> Steinberg::FUnknownImpl::cast ( ImplementsImpl< S, T, U > *  u)

Casts to Unknown* and then to the specified interface.

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

Casts to Unknown* and then to the specified interface.

Empty

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