Interface Technology Basics: IPersistent Class Reference
Author: Steinberg

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

- Main Page
- Modules
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
Public Member Functions | Static Public Attributes | List of all members
IPersistent Class Referenceabstract

Persistent Object Interface. More...

`#include <ipersistent.h>`

Inheritance diagram for IPersistent:

## Public Member Functions
virtual tresult | getClassID (char8 *uid)=0
| The class ID must be a 16 bytes unique id that is used to create the object.
virtual tresult | saveAttributes (IAttributes *)=0
| Store all members/data in the passed IAttributes.
virtual tresult | loadAttributes (IAttributes *)=0
| Restore all members/data from the passed IAttributes.
Public Member Functions inherited from FUnknown
virtual tresult | queryInterface (const TUID _iid, void **obj)=0
| Query for a pointer to the specified interface.
virtual uint32 | addRef ()=0
| Adds a reference and returns the new reference count.
virtual uint32 | release ()=0
| Releases a reference and returns the new reference count.

## Static Public Attributes
static const FUID | iid
Static Public Attributes inherited from FUnknown
static const FUID | iid

## Detailed Description

Persistent Object Interface.

[plug imp]
This interface is used to store/restore attributes of an object. An IPlugController can implement this interface to handle presets. The gui-xml for a preset control looks like this:

....
<view name="PresetView" data="Preset"/>
....
<template name="PresetView">
<view name="preset control" size="0, 0, 100, 20"/>
<switch name="store preset" size="125,0,80,20" style="push|immediate" title="Store" />
<switch name="remove preset" size="220,0,80,20" style="push|immediate" title="Delete" />
</template>

The tag data="Preset" tells the host to create a preset controller that handles the 3 values named "preset control", "store preset", and "remove preset".

## Member Function Documentation

virtual tresult getClassID | ( | char8 * | uid | ) |
| pure virtual

The class ID must be a 16 bytes unique id that is used to create the object.

This ID is also used to identify the preset list when used with presets.

virtual tresult saveAttributes | ( | IAttributes * |  | ) |
| pure virtual

Store all members/data in the passed IAttributes.

virtual tresult loadAttributes | ( | IAttributes * |  | ) |
| pure virtual

Restore all members/data from the passed IAttributes.

## Member Data Documentation

const FUID iid
| static

Empty

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