diff options
Diffstat (limited to 'Modis/SDK/UPluginDefs.pas')
-rw-r--r-- | Modis/SDK/UPluginDefs.pas | 195 |
1 files changed, 0 insertions, 195 deletions
diff --git a/Modis/SDK/UPluginDefs.pas b/Modis/SDK/UPluginDefs.pas deleted file mode 100644 index 68b35446..00000000 --- a/Modis/SDK/UPluginDefs.pas +++ /dev/null @@ -1,195 +0,0 @@ -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=$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.
|