Interface Technology Basics: Steinberg::U Namespace Reference
Author: Steinberg

Interface Technology Basics VST 3.8 SDK for developing VST plug-in

Loading...
Searching...
No Matches
Classes | Typedefs | Functions
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 TUID & | getTUID ()

## Detailed Description

Shortcut namespace for implementing FUnknown based objects.

## Typedef Documentation

## ◆ Unknown

using Unknown = FUnknownImpl::HideIIDBase

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