Interface Technology Basics  VST 3.6.14
SDK for developing VST Plug-in
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Basic Interfaces


class  FUID
 Handling 16 Byte Globally Unique Identifiers. More...
class  FUnknown
 The basic interface of all interfaces. More...
class  FVariant
 A Value of variable type. More...
class  IBStream
 Base class for streams. More...
class  ISizeableStream
 Stream with a size. More...
class  IPluginBase
 Basic interface to a Plug-in component. More...
struct  PFactoryInfo
 Basic Information about the class factory of the Plug-in. More...
struct  PClassInfo
 Basic Information about a class provided by the Plug-in. More...
class  IPluginFactory
 Class factory that any Plug-in defines for creating class instances. More...
struct  PClassInfo2
 Version 2 of Basic Information about a class provided by the Plug-in. More...
class  IPluginFactory2
 Version 2 of class factory supporting PClassInfo2. More...
class  IPluginFactory3
 Version 3 of class factory supporting PClassInfoW. More...
class  IPtr< T >
 IPtr - Smart pointer template class. More...
class  OPtr< I >
 OPtr - "owning" smart pointer used for newly created FObjects. More...


Steinberg::IPluginFactoryGetPluginFactory ()
 Plug-in entry point. More...

Detailed Description

Function Documentation

Steinberg::IPluginFactory* GetPluginFactory ( )

Plug-in entry point.

Any Plug-in must define and export this function.
A typical implementation of GetPluginFactory looks like this

IPluginFactory* PLUGIN_API GetPluginFactory ()
if (!gPluginFactory)
static PFactoryInfo factoryInfo =
"My Company Name",
gPluginFactory = new CPluginFactory (factoryInfo);
static PClassInfo componentClass =
INLINE_UID (0x00000000, 0x00000000, 0x00000000, 0x00000000), // replace by a valid uid
"Service", // category
gPluginFactory->registerClass (&componentClass, MyComponentClass::newInstance);
gPluginFactory->addRef ();
return gPluginFactory;
See also
How the host will load a Plug-in

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