| Interface Technology Basics VST 3.7
    SDK for developing VST plug-in | 
#include "pluginterfaces/base/fplatform.h"#include "pluginterfaces/base/ftypes.h"#include "pluginterfaces/base/smartpointer.h"#include <cstring>| Classes | |
| class | FUID | 
| Handling 16 Byte Globally Unique Identifiers.  More... | |
| class | FUnknown | 
| The basic interface of all interfaces.  More... | |
| class | FUnknownPtr< I > | 
| FUnknownPtr - automatic interface conversion and smart pointer in one.  More... | |
| struct | FReleaser | 
| Release an interface using automatic object (obsolete).  More... | |
| Namespaces | |
| namespace | Steinberg | 
| This header provides classes for working with FUnknown. | |
| namespace | Steinberg::FUnknownPrivate | 
| Macros | |
| #define | INLINE_UID(l1, l2, l3, l4) | 
| #define | DECLARE_UID(name, l1, l2, l3, l4) SMTG_CONSTEXPR14 ::Steinberg::TUID name = INLINE_UID (l1, l2, l3, l4); | 
| #define | EXTERN_UID(name) extern const ::Steinberg::TUID name; | 
| #define | DECLARE_CLASS_IID(ClassName, l1, l2, l3, l4) static SMTG_CONSTEXPR14 const ::Steinberg::TUID ClassName##_iid = INLINE_UID (l1, l2, l3, l4); | 
| #define | DEF_CLASS_IID(ClassName) const ::Steinberg::FUID ClassName::iid (ClassName##_iid); | 
| #define | INLINE_UID_OF(ClassName) ClassName##_iid | 
| #define | INLINE_UID_FROM_FUID(x) INLINE_UID (x.getLong1 (), x.getLong2 (), x.getLong3 (), x.getLong4 ()) | 
| #define | DECLARE_FUNKNOWN_METHODS | 
| #define | DELEGATE_REFCOUNT(ClassName) | 
| #define | IMPLEMENT_REFCOUNT(ClassName) | 
| #define | FUNKNOWN_CTOR { __funknownRefCount = 1; } | 
| #define | FUNKNOWN_DTOR | 
| #define | QUERY_INTERFACE(iid, obj, InterfaceIID, InterfaceName) | 
| #define | IMPLEMENT_QUERYINTERFACE(ClassName, InterfaceName, ClassIID) | 
| #define | IMPLEMENT_FUNKNOWN_METHODS(ClassName, InterfaceName, ClassIID) | 
| Typedefs | |
| typedef int64 | LARGE_INT | 
| typedef char | TUID[16] | 
| plain UID type  More... | |
| Enumerations | |
| enum | { kNoInterface = -1 , kResultOk , kResultTrue = kResultOk , kResultFalse , kInvalidArgument , kNotImplemented , kInternalError , kNotInitialized , kOutOfMemory } | 
| Functions | |
| SMTG_ALWAYS_INLINE bool | iidEqual (const void *iid1, const void *iid2) | 
| int32 | atomicAdd (int32 &var, int32 d) | 
| template<typename T > | |
| const TUID & | getTUID () | 
| #define INLINE_UID | ( | l1, | |
| l2, | |||
| l3, | |||
| l4 | |||
| ) | 
| #define DECLARE_UID | ( | name, | |
| l1, | |||
| l2, | |||
| l3, | |||
| l4 | |||
| ) | SMTG_CONSTEXPR14 ::Steinberg::TUID name = INLINE_UID (l1, l2, l3, l4); | 
| #define EXTERN_UID | ( | name | ) | extern const ::Steinberg::TUID name; | 
| #define DECLARE_CLASS_IID | ( | ClassName, | |
| l1, | |||
| l2, | |||
| l3, | |||
| l4 | |||
| ) | static SMTG_CONSTEXPR14 const ::Steinberg::TUID ClassName##_iid = INLINE_UID (l1, l2, l3, l4); | 
| #define DEF_CLASS_IID | ( | ClassName | ) | const ::Steinberg::FUID ClassName::iid (ClassName##_iid); | 
| #define INLINE_UID_OF | ( | ClassName | ) | ClassName##_iid | 
| #define INLINE_UID_FROM_FUID | ( | x | ) | INLINE_UID (x.getLong1 (), x.getLong2 (), x.getLong3 (), x.getLong4 ()) | 
| #define DECLARE_FUNKNOWN_METHODS | 
| #define DELEGATE_REFCOUNT | ( | ClassName | ) | 
| #define IMPLEMENT_REFCOUNT | ( | ClassName | ) | 
| #define FUNKNOWN_CTOR { __funknownRefCount = 1; } | 
| #define FUNKNOWN_DTOR | 
| #define QUERY_INTERFACE | ( | iid, | |
| obj, | |||
| InterfaceIID, | |||
| InterfaceName | |||
| ) | 
| #define IMPLEMENT_QUERYINTERFACE | ( | ClassName, | |
| InterfaceName, | |||
| ClassIID | |||
| ) | 
| #define IMPLEMENT_FUNKNOWN_METHODS | ( | ClassName, | |
| InterfaceName, | |||
| ClassIID | |||
| ) |