Interface Technology Basics  VST 3.7
SDK for developing VST plug-in
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: IPluginBase. 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: IPluginFactory. 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: IPluginFactory2. More...
class  IPluginFactory3
 Version 3 of class factory supporting PClassInfoW: IPluginFactory3. More...
class  IPtr< I >
 IPtr - Smart pointer template class. More...
class  OPtr< I >
 OPtr - "owning" smart pointer used for newly created FObjects. More...


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

Detailed Description

Function Documentation

◆ GetPluginFactory()

SMTG_EXPORT_SYMBOL Steinberg::IPluginFactory* GetPluginFactory ( )

Plug-in entry point.

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

SMTG_EXPORT_SYMBOL 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

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