Interface Technology Basics: Basic Interfaces
Author: Steinberg

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

- Main Page
- Modules
- Namespaces
- Classes
- Files

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
Classes | Functions
Basic Interfaces

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

## Functions
SMTG_EXPORT_SYMBOL Steinberg::IPluginFactory * | GetPluginFactory ()
| Plug-in entry point.

## Detailed Description

## Function Documentation

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",
"http://www.mywebpage.com",
"mailto:myemail@address.com",
PFactoryInfo::kNoFlags
};
gPluginFactory = new CPluginFactory (factoryInfo);
static PClassInfo componentClass =
{
INLINE_UID (0x00000000, 0x00000000, 0x00000000, 0x00000000), // replace by a valid uid
1,
"Service", // category
"Name"
};
gPluginFactory->registerClass (&componentClass, MyComponentClass::newInstance);
}
else
gPluginFactory->addRef ();
return gPluginFactory;
}

See Also
  loadPlugin

Empty

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