Interface Technology Basics VST 3.7
SDK for developing VST plug-in
|
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 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... | |
using Extends = ImplementsImpl<BaseClass, D, I> |
This typedef enables using a custom base class with the interface implementation.
using Implements = ImplementsImpl<Detail::QueryInterfaceEnd<Detail::RefCounted>, D, I> |
This typedef provides the interface implementation.
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).
const TUID & Steinberg::FUnknownImpl::getTUID | ( | ) |
IPtr< I > Steinberg::FUnknownImpl::cast | ( | ImplementsImpl< S, T, U > * | u | ) |
Casts to Unknown* and then to the specified interface.