THYManagedModule
Overview
The THYManagedModule class is a class that represents a managed plugin module loaded by the Hydra. This class is used internally by the Hydra framework to load and initialize .NET plugins.
Note: There is no need to use this class to load plugin module, instead, you need to use the LoadModule
or one of the Load*
methods of the THYModuleManager.
Use Case
You won't usualy use this class directly, instead you can use THYModule to gain access to information on a loaded module. For example:
procedure TMainForm.ListLoadedPlugins;
var
I: Integer;
begin
PluginListBox.Items.BeginUpdate;
try
PluginListBox.Clear;
for I := 0 to HYModuleManager1.ModuleCount - 1 do
PluginListBox.Items.Add(HYModuleManager1.Modules[i].FileName);
finally
PluginListBox.Items.EndUpdate;
end;
end;
Location
- Unit: Hydra.VCL.ManagedModule.pas
- Ancestry: THYBaseModule | THYCrossPlatformModule | THYModule | THYManagedModule
constructor Create (THYBaseModuleManager, string) override (declared in THYCrossPlatformModule)
Creates a new instance of the class.
constructor Create(aModuleManager: THYBaseModuleManager; aFileName: string)
Parameters:
- aModuleManager: Owner
- aFileName: Path to the plugin module file.
constructor Create (THYBaseModuleManager, string, THYClrDomain) reintroduce overload
Creates a new instance of the class.
constructor Create(aModuleManager: THYBaseModuleManager; aFileName: string; const aDefaultDomain: THYClrDomain)
Parameters:
- aModuleManager: Owner
- aFileName: Path to the plugin module file.
- aDefaultDomain: Defines default domain. Affects only managed plugin modules.
constructor Create (THYBaseModuleManager, string, Boolean) reintroduce overload
Creates a new instance of the class.
constructor Create(aModuleManager: THYBaseModuleManager; aFileName: string; const InNewAppDomain: Boolean)
Parameters:
- aModuleManager: Owner
- aFileName: Path to the plugin module file.
- InNewAppDomain: Defines whether plugin module will be loaded in a separate AppDomain. Affects only managed plugin modules.
Assembly
Gets reference to the assembly that stores this plugin.
property Assembly: _Assembly read
CreateInstance virtual (declared in THYCrossPlatformModule)
Creates a new instance of the plugin from Descriptor
parameter
function CreateInstance(Descriptor: THYCrossPlatformPluginDescriptor): IInterface
Parameters:
- Descriptor: Reference to a plugin descriptor.
CreateWrapper protected (declared in THYBaseModule)
Calls correspondent method in associated ModuleManager
function CreateWrapper(aPlugin: IDispatch; aDescriptor: THYPluginDescriptor): IInterface
Parameters:
- aPlugin: Cross-platform plugin instance
- aDescriptor: Plugin descriptor
CrossPlatformModuleController (declared in THYCrossPlatformModule)
Returns the interface of the current module controller.
property CrossPlatformModuleController: IHYCrossPlatformModuleController read
ErrorNotHydraModule protected (declared in THYCrossPlatformModule)
procedure ErrorNotHydraModule
FileName (declared in THYBaseModule)
Returns the file name of a loaded plugin module.
property FileName: string read
Handle (declared in THYBaseModule)
Gets the handle of the loaded plugin. Can be unavailable for some plugins.
property Handle: THandle read
LoadAsUnmanagedModule protected (declared in THYCrossPlatformModule)
Allows to load specified function
procedure LoadAsUnmanagedModule(ExportFunctionName: string)
Parameters:
- ExportFunctionName: Export function name
ManagedController
Returns the current module controller.
property ManagedController: THYManagedModuleController read
ModuleController (declared in THYCrossPlatformModule)
Gets reference to the plugin module controller.
property ModuleController: THYSimpleModuleController read
ModuleController (declared in THYModule)
Gets reference to the THYModuleController that is used to manage this plugin.
property ModuleController: THYVCLModuleController read
Plugins (declared in THYCrossPlatformModule)
Gets a reference to a plugin descriptor with specified index.
property Plugins[Index: Integer]: THYCrossPlatformPluginDescriptor read
PluginsCount (declared in THYCrossPlatformModule)
Gets the number of plugins inside module.
property PluginsCount: Integer read
RegisterPlugin protected virtual (declared in THYCrossPlatformModule)
Registers a plugin descriptor in the module.
procedure RegisterPlugin(Plugin: THYCrossPlatformPluginDescriptor)
Parameters:
- Plugin: Reference to the plugin descriptor.
ReleaseModule protected virtual (declared in THYCrossPlatformModule)
Releases resources of the loaded module.
procedure ReleaseModule
Assembly
Gets reference to the assembly that stores this plugin.
property Assembly: _Assembly read
CrossPlatformModuleController (declared in THYCrossPlatformModule)
Returns the interface of the current module controller.
property CrossPlatformModuleController: IHYCrossPlatformModuleController read
FileName (declared in THYBaseModule)
Returns the file name of a loaded plugin module.
property FileName: string read
Handle (declared in THYBaseModule)
Gets the handle of the loaded plugin. Can be unavailable for some plugins.
property Handle: THandle read
ManagedController
Returns the current module controller.
property ManagedController: THYManagedModuleController read
ModuleController (declared in THYCrossPlatformModule)
Gets reference to the plugin module controller.
property ModuleController: THYSimpleModuleController read
ModuleController (declared in THYModule)
Gets reference to the THYModuleController that is used to manage this plugin.
property ModuleController: THYVCLModuleController read
Plugins (declared in THYCrossPlatformModule)
Gets a reference to a plugin descriptor with specified index.
property Plugins[Index: Integer]: THYCrossPlatformPluginDescriptor read
PluginsCount (declared in THYCrossPlatformModule)
Gets the number of plugins inside module.
property PluginsCount: Integer read
constructor Create (THYBaseModuleManager, string) override (declared in THYCrossPlatformModule)
Creates a new instance of the class.
constructor Create(aModuleManager: THYBaseModuleManager; aFileName: string)
Parameters:
- aModuleManager: Owner
- aFileName: Path to the plugin module file.
constructor Create (THYBaseModuleManager, string, THYClrDomain) reintroduce overload
Creates a new instance of the class.
constructor Create(aModuleManager: THYBaseModuleManager; aFileName: string; const aDefaultDomain: THYClrDomain)
Parameters:
- aModuleManager: Owner
- aFileName: Path to the plugin module file.
- aDefaultDomain: Defines default domain. Affects only managed plugin modules.
constructor Create (THYBaseModuleManager, string, Boolean) reintroduce overload
Creates a new instance of the class.
constructor Create(aModuleManager: THYBaseModuleManager; aFileName: string; const InNewAppDomain: Boolean)
Parameters:
- aModuleManager: Owner
- aFileName: Path to the plugin module file.
- InNewAppDomain: Defines whether plugin module will be loaded in a separate AppDomain. Affects only managed plugin modules.
CreateInstance virtual (declared in THYCrossPlatformModule)
Creates a new instance of the plugin from Descriptor
parameter
function CreateInstance(Descriptor: THYCrossPlatformPluginDescriptor): IInterface
Parameters:
- Descriptor: Reference to a plugin descriptor.
CreateWrapper protected (declared in THYBaseModule)
Calls correspondent method in associated ModuleManager
function CreateWrapper(aPlugin: IDispatch; aDescriptor: THYPluginDescriptor): IInterface
Parameters:
- aPlugin: Cross-platform plugin instance
- aDescriptor: Plugin descriptor
ErrorNotHydraModule protected (declared in THYCrossPlatformModule)
procedure ErrorNotHydraModule
LoadAsUnmanagedModule protected (declared in THYCrossPlatformModule)
Allows to load specified function
procedure LoadAsUnmanagedModule(ExportFunctionName: string)
Parameters:
- ExportFunctionName: Export function name
RegisterPlugin protected virtual (declared in THYCrossPlatformModule)
Registers a plugin descriptor in the module.
procedure RegisterPlugin(Plugin: THYCrossPlatformPluginDescriptor)
Parameters:
- Plugin: Reference to the plugin descriptor.
ReleaseModule protected virtual (declared in THYCrossPlatformModule)
Releases resources of the loaded module.
procedure ReleaseModule