Interface Technology Basics VST 3.7
SDK for developing VST plug-in
Loading...
Searching...
No Matches
Steinberg::U Namespace Reference

Shortcut namespace for implementing FUnknown based objects. More...

Classes

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

Typedefs

using Unknown = FUnknownImpl::HideIIDBase
 
template<typename BaseClass, typename D, typename I = Indirectly<>>
using Extends
 This typedef enables using a custom base class with the interface implementation.
 
template<typename D, typename I = Indirectly<>>
using Implements
 This typedef provides the interface implementation.
 
template<typename D, typename I = Indirectly<>>
using ImplementsNonDestroyable
 This typedef provides the interface implementation for objects which should not be destroyed via FUnknown::release (like singletons).
 

Functions

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

Detailed Description

Shortcut namespace for implementing FUnknown based objects.

Typedef Documentation

◆ Unknown

◆ Extends

template<typename BaseClass, typename D, typename I = Indirectly<>>
using Extends

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

◆ Implements

template<typename D, typename I = Indirectly<>>
using Implements

This typedef provides the interface implementation.

◆ ImplementsNonDestroyable

template<typename D, typename I = Indirectly<>>
using ImplementsNonDestroyable

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

Function Documentation

◆ cast()

template<typename I>
IPtr< I > 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.

◆ getTUID()

template<typename T>
const TUID & getTUID ( )
Returns
the TUID for an interface.
Empty

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