aboutsummaryrefslogtreecommitdiffstats
path: root/Modis/SDK/UPluginDefs.pas
diff options
context:
space:
mode:
Diffstat (limited to 'Modis/SDK/UPluginDefs.pas')
-rw-r--r--Modis/SDK/UPluginDefs.pas390
1 files changed, 195 insertions, 195 deletions
diff --git a/Modis/SDK/UPluginDefs.pas b/Modis/SDK/UPluginDefs.pas
index 1075015a..4cd094f7 100644
--- a/Modis/SDK/UPluginDefs.pas
+++ b/Modis/SDK/UPluginDefs.pas
@@ -1,195 +1,195 @@
-unit uPluginDefs;
-{*********************
- uPluginDefs
- Some Basic Structures and Functions used to communicate with Plugins
- Usable as Delphi Plugin SDK
-*********************}
-
-interface
-
-{$IFDEF FPC}
- {$MODE Delphi}
-{$ENDIF}
-
-{$I switches.inc}
-
-type
- DWORD = LongWord;
-
- //Compatibility with 64 Bit Systems
- {$IFDEF CPU32}
- TwParam = Integer;
- TlParam = Pointer; //lParam is Used for 32 Bit addresses DWord is large enough
- {$ELSE}
- TwParam = Int64;
- TlParam = Pointer; //lParam used for 64Bit addresses in 64 Bit Systems(FreePascal)
- {$ENDIF}
- //wParam is mainly used for Ordninals
- //lParam is mainly used for Pointers
-
- //----------------
- // TUS_PluginInfo - Some Infos from Plugin to Core.
- // Send when Plugininfo procedure is Called
- // ---
- // Version Structure:
- // First Byte: Head Revison
- // Second Byte: Sub Revison
- // Third Byte: Sub Revision 2
- // Fourth Byte: Letter (For Bug Fix releases. 0 or 'a' .. 'z')
- //----------------
- PUS_PluginInfo = ^TUS_PluginInfo;
- TUS_PluginInfo = record
- cbSize: Integer; //Size of this record (usefull if record will be extended in the future)
-
- Name: Array [0..31] of Char; //Name of the Plugin
- Version: DWord; //Version of the Plugin
- Description: Array [0..127] of Char; //Description, what does this Plugin do
- Author: Array [0..31] of Char; //Author of this Plugin
- AuthorEmail: Array [0..63] of Char; //Authors Email
- Homepage: Array [0..63] of Char; //Homepage of Plugin/Author
- end;
- AUS_PluginInfo = Array of TUS_PluginInfo;
- PAUS_PluginInfo = ^AUS_PluginInfo;
-
- //----------------
- // TUS_Hook - Structure of the Hook Function
- // Return 0 if the Hook should be continue,
- // or a non zero Value, if the Hook should be Interuped
- // In this Case the Caller of the Notifier gets the Return Value
- // Return Value Should not be -1
- //----------------
- TUS_Hook = Function (wParam: TwParam; lParam: TlParam): integer; stdcall;
- TUS_Hook_of_Object = Function (wParam: TwParam; lParam: TlParam): integer of Object;
-
- //----------------
- // TUS_Service - Structure of the Service Function
- // This Function is called if the Registered Service is Called
- // Return Value Should not be SERVICE_NOT_FOUND
- //----------------
- TUS_Service = Function (wParam: TwParam; lParam: TlParam): integer; stdcall;
- TUS_Service_of_Object = Function (wParam: TwParam; lParam: TlParam): integer of Object;
-
- //----------------
- // TUS_PluginInterface - Structure that Includes all Methods callable
- // from the Plugins
- //----------------
- PUS_PluginInterface = ^TUS_PluginInterface;
- TUS_PluginInterface = record
- {******** Hook specific Methods ********}
- {Function Creates a new Hookable Event and Returns the Handle
- or 0 on Failure. (Name already exists)}
- CreateHookableEvent: Function (EventName: PChar): THandle; stdcall;
-
- {Function Destroys an Event and Unhooks all Hooks to this Event.
- 0 on success, not 0 on Failure}
- DestroyHookableEvent: Function (hEvent: THandle): integer; stdcall;
-
- {Function start calling the Hook Chain
- 0 if Chain is called until the End, -1 if Event Handle is not valid
- otherwise Return Value of the Hook that breaks the Chain}
- NotivyEventHooks: Function (hEvent: THandle; wParam: TwParam; lParam: TlParam): integer; stdcall;
-
- {Function Hooks an Event by Name.
- Returns Hook Handle on Success, otherwise 0}
- HookEvent: Function (EventName: PChar; HookProc: TUS_Hook): THandle; stdcall;
-
- {Function Removes the Hook from the Chain
- Returns 0 on Success}
- UnHookEvent: Function (hHook: THandle): Integer; stdcall;
-
- {Function Returns Non Zero if a Event with the given Name Exists,
- otherwise 0}
- EventExists: Function (EventName: PChar): Integer; stdcall;
-
- {******** Service specific Methods ********}
- {Function Creates a new Service and Returns the Services Handle
- or 0 on Failure. (Name already exists)}
- CreateService: Function (ServiceName: PChar; ServiceProc: TUS_Service): THandle; stdcall;
-
- {Function Destroys a Service.
- 0 on success, not 0 on Failure}
- DestroyService: Function (hService: THandle): integer; stdcall;
-
- {Function Calls a Services Proc
- Returns Services Return Value or SERVICE_NOT_FOUND on Failure}
- CallService: Function (ServiceName: PChar; wParam: TwParam; lParam: TlParam): integer; stdcall;
-
- {Function Returns Non Zero if a Service with the given Name Exists,
- otherwise 0}
- ServiceExists: Function (ServiceName: PChar): Integer; stdcall;
- end;
-
- //----------------
- //TModuleInfo: Info about Modules. Result of Core/GetModuleInfo
- //----------------
- PModuleInfo = ^TModuleInfo;
- TModuleInfo = record
- Name: String;
- Version: LongWord;
- Description: String;
- end;
- AModuleInfo = array of TModuleInfo;
-
- //----------------
- // Procs that should be exported by Plugin Dlls
- //----------------
- //Procedure is called to check if this is USDx Plugin
- //Info is Pointer to this Plugins Info. Size is already set. Don't write over this limit
- Proc_PluginInfo = procedure (Info: PUS_PluginInfo); stdcall;
-
- //Called on Plugins Load. If Non Zero is Returned => abort Loading
- //PInterface is Pointer to PluginInterface
- Func_Load = function (const PInterface: PUS_PluginInterface): Integer; stdcall;
-
- //Called on Plugins Init. If Non Zero is Returned => abort Loading
- //PInterface is Pointer to PluginInterface
- Func_Init = function (const PInterface: PUS_PluginInterface): Integer; stdcall;
-
- //Called on Plugins Deinit.
- //PInterface is Pointer to PluginInterface
- Proc_DeInit = procedure (const PInterface: PUS_PluginInterface); stdcall;
-
-//----------------
-// Some Default Constants
-//----------------
-const
- {Returned if Service is not found from CallService}
- SERVICE_NOT_FOUND = LongInt($80000000);
-
- //for use in Service 'Core/ShowMessage' lParam(Symbol)
- CORE_SM_NOSYMBOL= 0;
- CORE_SM_ERROR = 1;
- CORE_SM_WARNING = 2;
- CORE_SM_INFO = 3;
-
-
-//----------------
-// Some Functions to Handle Version DWords
-//----------------
-Function MakeVersion(const HeadRevision, SubVersion, SubVersion2: Byte; Letter: Char): DWord;
-Function VersiontoSting(const Version: DWord): String;
-
-
-implementation
-
-//--------------
-// MakeVersion - Converts 4 Values to a valid Version DWord
-//--------------
-Function MakeVersion(const HeadRevision, SubVersion, SubVersion2: Byte; Letter: Char): DWord;
-begin
- If (letter < 'a') or (Letter > 'z') then
- letter := chr(0);
-
- Result := (HeadRevision shl 24) or (SubVersion shl 16) or (SubVersion2 shl 8) or Ord(Letter);
-end;
-
-//--------------
-// VersiontoString - Returns some beauty '1.0.2a' like String
-//--------------
-Function VersiontoSting(const Version: DWord): String;
-begin // to-do : Write VersiontoString without SysUtils depencies
- //Result := InttoStr((ver and $FF000000) shr 24);
- Result := '1.0.1'
-end;
-
-end.
+unit uPluginDefs;
+{*********************
+ uPluginDefs
+ Some Basic Structures and Functions used to communicate with Plugins
+ Usable as Delphi Plugin SDK
+*********************}
+
+interface
+
+{$IFDEF FPC}
+ {$MODE Delphi}
+{$ENDIF}
+
+{$I switches.inc}
+
+type
+ DWORD = LongWord;
+
+ //Compatibility with 64 Bit Systems
+ {$IFDEF CPU32}
+ TwParam = Integer;
+ TlParam = Pointer; //lParam is Used for 32 Bit addresses DWord is large enough
+ {$ELSE}
+ TwParam = Int64;
+ TlParam = Pointer; //lParam used for 64Bit addresses in 64 Bit Systems(FreePascal)
+ {$ENDIF}
+ //wParam is mainly used for Ordninals
+ //lParam is mainly used for Pointers
+
+ //----------------
+ // TUS_PluginInfo - Some Infos from Plugin to Core.
+ // Send when Plugininfo procedure is Called
+ // ---
+ // Version Structure:
+ // First Byte: Head Revison
+ // Second Byte: Sub Revison
+ // Third Byte: Sub Revision 2
+ // Fourth Byte: Letter (For Bug Fix releases. 0 or 'a' .. 'z')
+ //----------------
+ PUS_PluginInfo = ^TUS_PluginInfo;
+ TUS_PluginInfo = record
+ cbSize: Integer; //Size of this record (usefull if record will be extended in the future)
+
+ Name: Array [0..31] of Char; //Name of the Plugin
+ Version: DWord; //Version of the Plugin
+ Description: Array [0..127] of Char; //Description, what does this Plugin do
+ Author: Array [0..31] of Char; //Author of this Plugin
+ AuthorEmail: Array [0..63] of Char; //Authors Email
+ Homepage: Array [0..63] of Char; //Homepage of Plugin/Author
+ end;
+ AUS_PluginInfo = Array of TUS_PluginInfo;
+ PAUS_PluginInfo = ^AUS_PluginInfo;
+
+ //----------------
+ // TUS_Hook - Structure of the Hook Function
+ // Return 0 if the Hook should be continue,
+ // or a non zero Value, if the Hook should be Interuped
+ // In this Case the Caller of the Notifier gets the Return Value
+ // Return Value Should not be -1
+ //----------------
+ TUS_Hook = Function (wParam: TwParam; lParam: TlParam): integer; stdcall;
+ TUS_Hook_of_Object = Function (wParam: TwParam; lParam: TlParam): integer of Object;
+
+ //----------------
+ // TUS_Service - Structure of the Service Function
+ // This Function is called if the Registered Service is Called
+ // Return Value Should not be SERVICE_NOT_FOUND
+ //----------------
+ TUS_Service = Function (wParam: TwParam; lParam: TlParam): integer; stdcall;
+ TUS_Service_of_Object = Function (wParam: TwParam; lParam: TlParam): integer of Object;
+
+ //----------------
+ // TUS_PluginInterface - Structure that Includes all Methods callable
+ // from the Plugins
+ //----------------
+ PUS_PluginInterface = ^TUS_PluginInterface;
+ TUS_PluginInterface = record
+ {******** Hook specific Methods ********}
+ {Function Creates a new Hookable Event and Returns the Handle
+ or 0 on Failure. (Name already exists)}
+ CreateHookableEvent: Function (EventName: PChar): THandle; stdcall;
+
+ {Function Destroys an Event and Unhooks all Hooks to this Event.
+ 0 on success, not 0 on Failure}
+ DestroyHookableEvent: Function (hEvent: THandle): integer; stdcall;
+
+ {Function start calling the Hook Chain
+ 0 if Chain is called until the End, -1 if Event Handle is not valid
+ otherwise Return Value of the Hook that breaks the Chain}
+ NotivyEventHooks: Function (hEvent: THandle; wParam: TwParam; lParam: TlParam): integer; stdcall;
+
+ {Function Hooks an Event by Name.
+ Returns Hook Handle on Success, otherwise 0}
+ HookEvent: Function (EventName: PChar; HookProc: TUS_Hook): THandle; stdcall;
+
+ {Function Removes the Hook from the Chain
+ Returns 0 on Success}
+ UnHookEvent: Function (hHook: THandle): Integer; stdcall;
+
+ {Function Returns Non Zero if a Event with the given Name Exists,
+ otherwise 0}
+ EventExists: Function (EventName: PChar): Integer; stdcall;
+
+ {******** Service specific Methods ********}
+ {Function Creates a new Service and Returns the Services Handle
+ or 0 on Failure. (Name already exists)}
+ CreateService: Function (ServiceName: PChar; ServiceProc: TUS_Service): THandle; stdcall;
+
+ {Function Destroys a Service.
+ 0 on success, not 0 on Failure}
+ DestroyService: Function (hService: THandle): integer; stdcall;
+
+ {Function Calls a Services Proc
+ Returns Services Return Value or SERVICE_NOT_FOUND on Failure}
+ CallService: Function (ServiceName: PChar; wParam: TwParam; lParam: TlParam): integer; stdcall;
+
+ {Function Returns Non Zero if a Service with the given Name Exists,
+ otherwise 0}
+ ServiceExists: Function (ServiceName: PChar): Integer; stdcall;
+ end;
+
+ //----------------
+ //TModuleInfo: Info about Modules. Result of Core/GetModuleInfo
+ //----------------
+ PModuleInfo = ^TModuleInfo;
+ TModuleInfo = record
+ Name: String;
+ Version: LongWord;
+ Description: String;
+ end;
+ AModuleInfo = array of TModuleInfo;
+
+ //----------------
+ // Procs that should be exported by Plugin Dlls
+ //----------------
+ //Procedure is called to check if this is USDx Plugin
+ //Info is Pointer to this Plugins Info. Size is already set. Don't write over this limit
+ Proc_PluginInfo = procedure (Info: PUS_PluginInfo); stdcall;
+
+ //Called on Plugins Load. If Non Zero is Returned => abort Loading
+ //PInterface is Pointer to PluginInterface
+ Func_Load = function (const PInterface: PUS_PluginInterface): Integer; stdcall;
+
+ //Called on Plugins Init. If Non Zero is Returned => abort Loading
+ //PInterface is Pointer to PluginInterface
+ Func_Init = function (const PInterface: PUS_PluginInterface): Integer; stdcall;
+
+ //Called on Plugins Deinit.
+ //PInterface is Pointer to PluginInterface
+ Proc_DeInit = procedure (const PInterface: PUS_PluginInterface); stdcall;
+
+//----------------
+// Some Default Constants
+//----------------
+const
+ {Returned if Service is not found from CallService}
+ SERVICE_NOT_FOUND = LongInt($80000000);
+
+ //for use in Service 'Core/ShowMessage' lParam(Symbol)
+ CORE_SM_NOSYMBOL= 0;
+ CORE_SM_ERROR = 1;
+ CORE_SM_WARNING = 2;
+ CORE_SM_INFO = 3;
+
+
+//----------------
+// Some Functions to Handle Version DWords
+//----------------
+Function MakeVersion(const HeadRevision, SubVersion, SubVersion2: Byte; Letter: Char): DWord;
+Function VersiontoSting(const Version: DWord): String;
+
+
+implementation
+
+//--------------
+// MakeVersion - Converts 4 Values to a valid Version DWord
+//--------------
+Function MakeVersion(const HeadRevision, SubVersion, SubVersion2: Byte; Letter: Char): DWord;
+begin
+ If (letter < 'a') or (Letter > 'z') then
+ letter := chr(0);
+
+ Result := (HeadRevision shl 24) or (SubVersion shl 16) or (SubVersion2 shl 8) or Ord(Letter);
+end;
+
+//--------------
+// VersiontoString - Returns some beauty '1.0.2a' like String
+//--------------
+Function VersiontoSting(const Version: DWord): String;
+begin // to-do : Write VersiontoString without SysUtils depencies
+ //Result := InttoStr((ver and $FF000000) shr 24);
+ Result := '1.0.1'
+end;
+
+end.