InDesign SDK  20.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
InterfaceFactory Class Reference

#include <InterfaceFactory.h>

Public Member Functions

param faceID The ID of the
implementation param faceFact
The factory function for
constructing the
implementation param
faceDestroy The function for
destructing the implementation
param faceSizeOf The function
for getting the sizeof the
implementation param
faceReadWrite The ReadWrite
function for the 
implementation (optional)@param faceSnapshotReadWrite The Snapshot function for the implementation(optional)@param faceRestVIewFun The ResetView function for the implementation(optional)*/InterfaceFactory(ImplementationID faceID
 

Public Attributes

param faceID The ID of the
implementation param faceFact
The factory function for
constructing the
implementation param
faceDestroy The function for
destructing the implementation
param faceSizeOf The function
for getting the sizeof the
implementation param
faceReadWrite The ReadWrite
function for the
InterfaceConstructor 
faceFact
 
param faceID The ID of the
implementation param faceFact
The factory function for
constructing the
implementation param
faceDestroy The function for
destructing the implementation
param faceSizeOf The function
for getting the sizeof the
implementation param
faceReadWrite The ReadWrite
function for the
InterfaceConstructor
InterfaceDestructor 
faceDestroy
 
param faceID The ID of the
implementation param faceFact
The factory function for
constructing the
implementation param
faceDestroy The function for
destructing the implementation
param faceSizeOf The function
for getting the sizeof the
implementation param
faceReadWrite The ReadWrite
function for the
InterfaceConstructor
InterfaceDestructor
InterfaceSizeOf 
faceSizeOf
 
param faceID The ID of the
implementation param faceFact
The factory function for
constructing the
implementation param
faceDestroy The function for
destructing the implementation
param faceSizeOf The function
for getting the sizeof the
implementation param
faceReadWrite The ReadWrite
function for the
InterfaceConstructor
InterfaceDestructor
InterfaceSizeOf
InterfaceReadWrite 
faceReadWrite = nil
 
param faceID The ID of the
implementation param faceFact
The factory function for
constructing the
implementation param
faceDestroy The function for
destructing the implementation
param faceSizeOf The function
for getting the sizeof the
implementation param
faceReadWrite The ReadWrite
function for the
InterfaceConstructor
InterfaceDestructor
InterfaceSizeOf
InterfaceReadWrite
InterfaceReadWrite 
faceSnapshotReadWrite = nil
 
param faceID The ID of the
implementation param faceFact
The factory function for
constructing the
implementation param
faceDestroy The function for
destructing the implementation
param faceSizeOf The function
for getting the sizeof the
implementation param
faceReadWrite The ReadWrite
function for the
InterfaceConstructor
InterfaceDestructor
InterfaceSizeOf
InterfaceReadWrite
InterfaceReadWrite
InterfaceResetViewFun 
resetViewFun = nil)
 

For Internal Use Only

const ImplementationID GetID ()
 
const InterfaceConstructor GetFactory ()
 
const InterfaceDestructor GetDestructor ()
 
const InterfaceSizeOf GetSizeOf ()
 
const InterfaceReadWrite GetReadWrite ()
 
const InterfaceReadWrite GetSnapshotReadWrite ()
 
const InterfaceResetViewFun GetInterfaceResetViewFun ()
 
static void InstallInterfaces (PluginID ownerComponent)
 

Detailed Description

This class handles the virtual construction of interface implementations. Every implementation has a factory function for construction, a deletion function for destruction, and a sizeof function to return the allocation size of the implementation (for new). In addition, persistent implementations have a ReadWrite function. A few implementations require a snapshot function for handling automatic state restoration after Undo or Redo (most implementation handle this with ReadWrite). These functions associates an ImplementationID with set of functions for that implementation.

At plug-in load time, a set of static InterfaceFactory objects are generated, which contain the implementations that are linked into the plug-in. This is used by the Object Model to construct implementations, etc.

You should not ever need to handle an InterfaceFactory directly in your plug-in; this is something the object model manages for you.