THYManagedModuleController

Overview

The THYManagedModuleController class is used internally to provide support for managed plugins. In the Hydra framework, this class is used internally by the THYManagedModule to load and initialize managed modules.

There is no need to use this class directly, instead, you can use the THYModuleManager to load managed as well as unmanaged modules.

Note: For more information on managed plugin usage in the Hydra framework, please refer to this article.

Location


 

constructor Create (PSafeArray, string, THYClrDomain)  overload

Creates a new instance of the class.

constructor Create(aAssembly: PSafeArray; aSearchPath: string; const aDefaultDomain: THYClrDomain)

Parameters:

  • aAssembly: Assembly
  • aSearchPath: The name of the directory to be appended to the private path.
  • aDefaultDomain: Clr domain

constructor Create (PSafeArray, string, Boolean)  overload

Creates a new instance of the class. Deprecated.

constructor Create(aAssembly: PSafeArray; aSearchPath: string; const InNewAppDomain: Boolean)

Parameters:

  • aAssembly: An array of type byte that is a COFF-based image containing an emitted assembly.
  • aSearchPath: The name of the directory to be appended to the private path.
  • InNewAppDomain: Specifies whether plugin module will be loaded in new AppDomain.

constructor Create (string, string, THYClrDomain)  overload

Creates a new instance of the class.

constructor Create(aFilename: string; aSearchPath: string; const aDefaultDomain: THYClrDomain)

Parameters:

  • aFilename: Path to the plugin module.
  • aSearchPath: The name of the directory to be appended to the private path.
  • aDefaultDomain: Clr domain

constructor Create (string, string, Boolean)  overload

Creates a new instance of the class.

constructor Create(aFilename: string; aSearchPath: string; const InNewAppDomain: Boolean)

Parameters:

  • aFilename: Path to the plugin module.
  • aSearchPath: The name of the directory to be appended to the private path.
  • InNewAppDomain: Specifies whether plugin module will be loaded in new AppDomain.

constructor Create (TComponent)  overload override    (declared in THYSimpleModuleController)

Creates a new instance of the class.

constructor Create(aOwner: TComponent)

Parameters:

  • aOwner:

constructor Create (string, Integer, Integer, string, string)  reintroduce overload virtual    (declared in THYSimpleModuleController)

Creates a new instance of the class.

constructor Create(const aLibraryName: string; aMajorVersion: Integer; aMinorVersion: Integer; const aRequiredPrivilege: string; const aDescription: string)

Parameters:

  • aLibraryName:
  • aMajorVersion:
  • aMinorVersion:
  • aRequiredPrivilege:
  • aDescription:

constructor CreateNew (string, Integer, Integer, string, string, Integer)  reintroduce overload virtual    (declared in THYSimpleModuleController)

Creates a new instance of the class.

constructor CreateNew(const aLibraryName: string; aMajorVersion: Integer; aMinorVersion: Integer; const aRequiredPrivilege: string; const aDescription: string; Dummy: Integer)

Parameters:

  • aLibraryName:
  • aMajorVersion:
  • aMinorVersion:
  • aRequiredPrivilege:
  • aDescription:
  • Dummy:

AppDomain

References to an application domain that is used to load plugins.

property AppDomain: _AppDomain read

Assembly

References to an assembly object.

property Assembly: _Assembly read

ClrAppDomain  protected

References to an application domain that is used to load plugins.

property ClrAppDomain: THYClrAppDomain read

CreateInstance  protected override

Creates a new instance of the plugin with specified name.

function CreateInstance(const aPluginName: WideString): IHYCrossPlatformPlugin

Parameters:

  • aPluginName: Name of the plugin instance.

CrossPlatformHost    (declared in THYSimpleModuleController)

Reference to an instance of a cross platform host.

property CrossPlatformHost: IHYCrossPlatformHost read

Descriptor    (declared in THYVCLModuleController)

Gets refence to the descriptor of the module.

property Descriptor:

Descriptor    (declared in THYSimpleModuleController)

property Descriptor: THYBaseDescriptor read

DuplicatePluginDescriptor  protected    (declared in THYSimpleModuleController)

function DuplicatePluginDescriptor(Index: Integer): THYPluginDescriptor

Parameters:

  • Index:

Factories    (declared in THYVCLModuleController)

Returns reference to a factory with given index.

property Factories[Index: Integer]: THYBasePluginFactory read

FactoryCount    (declared in THYVCLModuleController)

Gets number of registered factories.

property FactoryCount: Integer read

FindFactory    (declared in THYVCLModuleController)

Searches for a factory with given name.

function FindFactory(const aPluginName: string): THYBasePluginFactory

Parameters:

  • aPluginName: Name of the factory.

get_Plugin  protected override safecall    (declared in THYVCLModuleController)

Returns the reference to a plugin descriptor with specified index.

function get_Plugin(aIndex: Integer): IHYCrossPlatformPluginDescriptor

Parameters:

  • aIndex:

GetDLLInstance    (declared in THYVCLModuleController)

Gets handle of the module.

function GetDLLInstance: cardinal

GetModuleController  protected safecall    (declared in THYSimpleModuleController)

Returns the interface of the current module controller.

function GetModuleController: IHYCrossPlatformModuleController

GetPluginDescriptor    (declared in THYSimpleModuleController)

Receives reference to a plugin descriptor with specified name.

function GetPluginDescriptor(aPluginName: string): THYPluginDescriptor

Parameters:

  • aPluginName: plugin name.

Host    (declared in THYVCLModuleController)

Gets reference to an instance of the host.

property Host: IHYVCLHost read

IHYCrossPlatformModuleController_GetLargeImages  protected override safecall    (declared in THYVCLModuleController)

Returns the handle of the image list used for large images.

function IHYCrossPlatformModuleController_GetLargeImages: THandle

IHYCrossPlatformModuleController_GetSmallImages  protected override safecall    (declared in THYVCLModuleController)

Returns the handle of the image list used for small images.

function IHYCrossPlatformModuleController_GetSmallImages: THandle

InitializeObject  protected override

procedure InitializeObject

IsDefined

Checks whether specififed type has an attribute.

function IsDefined(InType: _Type; AttributeType: _Type): Boolean

Parameters:

  • InType: Reference to the managed type.
  • AttributeType: Reference to the managed attribute.

IsShutDown

Returns the value that indicates the plugin state.

property IsShutDown: Boolean read

LargeImages    (declared in THYVCLModuleController)

Gets or sets reference to a image list that holds large images.

property LargeImages: TImageList read write

LargeImagesDisabled    (declared in THYVCLModuleController)

Gets or sets reference to a image list that holds large disabled images.

property LargeImagesDisabled: TImageList read write

LargeImagesHot    (declared in THYVCLModuleController)

Gets or sets reference to a image list that holds large hot images.

property LargeImagesHot: TImageList read write

LoadAssemblies

Loads all assemblies that fit the search mask parameter.

procedure LoadAssemblies(const iSearchMask: string)

Parameters:

  • iSearchMask: Search mask.

ManagedModuleController

References to the IHYCrossPlatformModuleController instance.

property ManagedModuleController: IHYCrossPlatformModuleController read

NeedsManagedWrapperAttribute

References to the NeedsManagedWrapperAttribute attribute that indicates whether a wrapper class needs to be created to use this plugin.

property NeedsManagedWrapperAttribute: _Type read

NonVisualPluginAttribute

References to the NonVisualPluginAttribute attribute.

property NonVisualPluginAttribute: _Type read

OnHostParametersChange  protected virtual    (declared in THYVCLModuleController)

Event handler. Reacts on a host parameters changes.

procedure OnHostParametersChange(Sender: TObject)

Parameters:

  • Sender: Sender of the event.

OnSetHost    (declared in THYVCLModuleController)

Fires when reference to a host is changed.

property OnSetHost: THYHostSetEvent read write
delegate: procedure OnSetHost(const Sender: IHYVCLHostAware; const aHost: IHYVCLHost)

OnSetHostParameters    (declared in THYVCLModuleController)

Fires when host parameters is set.

property OnSetHostParameters: THYHostParametersChangeEvent read write
delegate: procedure OnSetHostParameters(const aHost: IHYVCLHost; aParameters: TStrings)

PluginAttribute

References to the PluginAttribute attribute.

property PluginAttribute: _Type read

PluginDescriptorCount    (declared in THYVCLModuleController)

Gets number of registered plugin descriptors.

property PluginDescriptorCount: Integer read

PluginDescriptors    (declared in THYVCLModuleController)

The reference to a plugin descriptor with specified index.

property PluginDescriptors[Index: Integer]: THYPluginDescriptor read

RegisterPluginFactory    (declared in THYVCLModuleController)

Register plugin factory inside module controller.

procedure RegisterPluginFactory(const aPluginFactory: THYBasePluginFactory)

Parameters:

  • aPluginFactory: Reference to a plugin factory.

SafeCallException  override    (declared in THYVCLModuleController)

Handles exceptions in methods declared using the safecall calling convention.

function SafeCallException(ExceptObject: TObject; ExceptAddr: Pointer): HResult

Parameters:

  • ExceptObject: Exception object.
  • ExceptAddr: Addres of the exception.

SetHost  protected override

Sets reference to an instance of the host.

procedure SetHost(const Value: IHYVCLHost)

Parameters:

  • Value: Reference to the host instance.

SetHostParameters  protected override

Sets list of a host parameters.

procedure SetHostParameters(Value: TStrings)

Parameters:

  • Value: Reference to a list of parameters.

Shutdown

Unloads the application domain and sets the IsShutDown property to true

procedure Shutdown

SmallImages    (declared in THYVCLModuleController)

Gets or sets reference to a image list that holds small images.

property SmallImages: TImageList read write

SmallImagesDisabled    (declared in THYVCLModuleController)

Gets or sets reference to a image list that holds small disabled images.

property SmallImagesDisabled: TImageList read write

SmallImagesHot    (declared in THYVCLModuleController)

Gets or sets reference to a image list that holds small hot images.

property SmallImagesHot: TImageList read write

VisualPluginAttribute

References to the VisualPluginAttribute attribute.

property VisualPluginAttribute: _Type read

 

AppDomain

References to an application domain that is used to load plugins.

property AppDomain: _AppDomain read

Assembly

References to an assembly object.

property Assembly: _Assembly read

ClrAppDomain  protected

References to an application domain that is used to load plugins.

property ClrAppDomain: THYClrAppDomain read

CrossPlatformHost    (declared in THYSimpleModuleController)

Reference to an instance of a cross platform host.

property CrossPlatformHost: IHYCrossPlatformHost read

Descriptor    (declared in THYVCLModuleController)

Gets refence to the descriptor of the module.

property Descriptor:

Descriptor    (declared in THYSimpleModuleController)

property Descriptor: THYBaseDescriptor read

Factories    (declared in THYVCLModuleController)

Returns reference to a factory with given index.

property Factories[Index: Integer]: THYBasePluginFactory read

FactoryCount    (declared in THYVCLModuleController)

Gets number of registered factories.

property FactoryCount: Integer read

Host    (declared in THYVCLModuleController)

Gets reference to an instance of the host.

property Host: IHYVCLHost read

IsShutDown

Returns the value that indicates the plugin state.

property IsShutDown: Boolean read

LargeImages    (declared in THYVCLModuleController)

Gets or sets reference to a image list that holds large images.

property LargeImages: TImageList read write

LargeImagesDisabled    (declared in THYVCLModuleController)

Gets or sets reference to a image list that holds large disabled images.

property LargeImagesDisabled: TImageList read write

LargeImagesHot    (declared in THYVCLModuleController)

Gets or sets reference to a image list that holds large hot images.

property LargeImagesHot: TImageList read write

ManagedModuleController

References to the IHYCrossPlatformModuleController instance.

property ManagedModuleController: IHYCrossPlatformModuleController read

NeedsManagedWrapperAttribute

References to the NeedsManagedWrapperAttribute attribute that indicates whether a wrapper class needs to be created to use this plugin.

property NeedsManagedWrapperAttribute: _Type read

NonVisualPluginAttribute

References to the NonVisualPluginAttribute attribute.

property NonVisualPluginAttribute: _Type read

PluginAttribute

References to the PluginAttribute attribute.

property PluginAttribute: _Type read

PluginDescriptorCount    (declared in THYVCLModuleController)

Gets number of registered plugin descriptors.

property PluginDescriptorCount: Integer read

PluginDescriptors    (declared in THYVCLModuleController)

The reference to a plugin descriptor with specified index.

property PluginDescriptors[Index: Integer]: THYPluginDescriptor read

SmallImages    (declared in THYVCLModuleController)

Gets or sets reference to a image list that holds small images.

property SmallImages: TImageList read write

SmallImagesDisabled    (declared in THYVCLModuleController)

Gets or sets reference to a image list that holds small disabled images.

property SmallImagesDisabled: TImageList read write

SmallImagesHot    (declared in THYVCLModuleController)

Gets or sets reference to a image list that holds small hot images.

property SmallImagesHot: TImageList read write

VisualPluginAttribute

References to the VisualPluginAttribute attribute.

property VisualPluginAttribute: _Type read

 

constructor Create (PSafeArray, string, THYClrDomain)  overload

Creates a new instance of the class.

constructor Create(aAssembly: PSafeArray; aSearchPath: string; const aDefaultDomain: THYClrDomain)

Parameters:

  • aAssembly: Assembly
  • aSearchPath: The name of the directory to be appended to the private path.
  • aDefaultDomain: Clr domain

constructor Create (PSafeArray, string, Boolean)  overload

Creates a new instance of the class. Deprecated.

constructor Create(aAssembly: PSafeArray; aSearchPath: string; const InNewAppDomain: Boolean)

Parameters:

  • aAssembly: An array of type byte that is a COFF-based image containing an emitted assembly.
  • aSearchPath: The name of the directory to be appended to the private path.
  • InNewAppDomain: Specifies whether plugin module will be loaded in new AppDomain.

constructor Create (string, string, THYClrDomain)  overload

Creates a new instance of the class.

constructor Create(aFilename: string; aSearchPath: string; const aDefaultDomain: THYClrDomain)

Parameters:

  • aFilename: Path to the plugin module.
  • aSearchPath: The name of the directory to be appended to the private path.
  • aDefaultDomain: Clr domain

constructor Create (string, string, Boolean)  overload

Creates a new instance of the class.

constructor Create(aFilename: string; aSearchPath: string; const InNewAppDomain: Boolean)

Parameters:

  • aFilename: Path to the plugin module.
  • aSearchPath: The name of the directory to be appended to the private path.
  • InNewAppDomain: Specifies whether plugin module will be loaded in new AppDomain.

constructor Create (TComponent)  overload override    (declared in THYSimpleModuleController)

Creates a new instance of the class.

constructor Create(aOwner: TComponent)

Parameters:

  • aOwner:

constructor Create (string, Integer, Integer, string, string)  reintroduce overload virtual    (declared in THYSimpleModuleController)

Creates a new instance of the class.

constructor Create(const aLibraryName: string; aMajorVersion: Integer; aMinorVersion: Integer; const aRequiredPrivilege: string; const aDescription: string)

Parameters:

  • aLibraryName:
  • aMajorVersion:
  • aMinorVersion:
  • aRequiredPrivilege:
  • aDescription:

constructor CreateNew (string, Integer, Integer, string, string, Integer)  reintroduce overload virtual    (declared in THYSimpleModuleController)

Creates a new instance of the class.

constructor CreateNew(const aLibraryName: string; aMajorVersion: Integer; aMinorVersion: Integer; const aRequiredPrivilege: string; const aDescription: string; Dummy: Integer)

Parameters:

  • aLibraryName:
  • aMajorVersion:
  • aMinorVersion:
  • aRequiredPrivilege:
  • aDescription:
  • Dummy:

CreateInstance  protected override

Creates a new instance of the plugin with specified name.

function CreateInstance(const aPluginName: WideString): IHYCrossPlatformPlugin

Parameters:

  • aPluginName: Name of the plugin instance.

DuplicatePluginDescriptor  protected    (declared in THYSimpleModuleController)

function DuplicatePluginDescriptor(Index: Integer): THYPluginDescriptor

Parameters:

  • Index:

FindFactory    (declared in THYVCLModuleController)

Searches for a factory with given name.

function FindFactory(const aPluginName: string): THYBasePluginFactory

Parameters:

  • aPluginName: Name of the factory.

get_Plugin  protected override safecall    (declared in THYVCLModuleController)

Returns the reference to a plugin descriptor with specified index.

function get_Plugin(aIndex: Integer): IHYCrossPlatformPluginDescriptor

Parameters:

  • aIndex:

GetDLLInstance    (declared in THYVCLModuleController)

Gets handle of the module.

function GetDLLInstance: cardinal

GetModuleController  protected safecall    (declared in THYSimpleModuleController)

Returns the interface of the current module controller.

function GetModuleController: IHYCrossPlatformModuleController

GetPluginDescriptor    (declared in THYSimpleModuleController)

Receives reference to a plugin descriptor with specified name.

function GetPluginDescriptor(aPluginName: string): THYPluginDescriptor

Parameters:

  • aPluginName: plugin name.

IHYCrossPlatformModuleController_GetLargeImages  protected override safecall    (declared in THYVCLModuleController)

Returns the handle of the image list used for large images.

function IHYCrossPlatformModuleController_GetLargeImages: THandle

IHYCrossPlatformModuleController_GetSmallImages  protected override safecall    (declared in THYVCLModuleController)

Returns the handle of the image list used for small images.

function IHYCrossPlatformModuleController_GetSmallImages: THandle

InitializeObject  protected override

procedure InitializeObject

IsDefined

Checks whether specififed type has an attribute.

function IsDefined(InType: _Type; AttributeType: _Type): Boolean

Parameters:

  • InType: Reference to the managed type.
  • AttributeType: Reference to the managed attribute.

LoadAssemblies

Loads all assemblies that fit the search mask parameter.

procedure LoadAssemblies(const iSearchMask: string)

Parameters:

  • iSearchMask: Search mask.

OnHostParametersChange  protected virtual    (declared in THYVCLModuleController)

Event handler. Reacts on a host parameters changes.

procedure OnHostParametersChange(Sender: TObject)

Parameters:

  • Sender: Sender of the event.

RegisterPluginFactory    (declared in THYVCLModuleController)

Register plugin factory inside module controller.

procedure RegisterPluginFactory(const aPluginFactory: THYBasePluginFactory)

Parameters:

  • aPluginFactory: Reference to a plugin factory.

SafeCallException  override    (declared in THYVCLModuleController)

Handles exceptions in methods declared using the safecall calling convention.

function SafeCallException(ExceptObject: TObject; ExceptAddr: Pointer): HResult

Parameters:

  • ExceptObject: Exception object.
  • ExceptAddr: Addres of the exception.

SetHost  protected override

Sets reference to an instance of the host.

procedure SetHost(const Value: IHYVCLHost)

Parameters:

  • Value: Reference to the host instance.

SetHostParameters  protected override

Sets list of a host parameters.

procedure SetHostParameters(Value: TStrings)

Parameters:

  • Value: Reference to a list of parameters.

Shutdown

Unloads the application domain and sets the IsShutDown property to true

procedure Shutdown

 

OnSetHost    (declared in THYVCLModuleController)

Fires when reference to a host is changed.

property OnSetHost: THYHostSetEvent read write
delegate: procedure OnSetHost(const Sender: IHYVCLHostAware; const aHost: IHYVCLHost)

OnSetHostParameters    (declared in THYVCLModuleController)

Fires when host parameters is set.

property OnSetHostParameters: THYHostParametersChangeEvent read write
delegate: procedure OnSetHostParameters(const aHost: IHYVCLHost; aParameters: TStrings)