blob: 7428ae2ebb4569289f0126c91f5941c6bc620379 (
plain) (
tree)
|
|
unit uPluginDefs;
{*********************
uPluginDefs
Some Basic Structures and Functions used to communicate with Plugins
Usable as Delphi Plugin SDK
*********************}
interface
type
DWORD = LongWord;
//----------------
// TUS_PluginInfo - Some Infos from Plugin to Core.
// Send when Plugininfo procedure is Called
//----------------
PUS_PluginInfo = ^TUS_PluginInfo;
TUS_PluginInfo = record
cbSize: Integer; //Size of this record (usefull if record will be extended in the future)
Name: PChar; //Name of the Plugin
Version: DWord; //Version of the Plugin
Description: PChar; //Description, what does this Plugin do
Author: PChar; //Author of this Plugin
AuthorEmail: PChar; //Authors Email
Homepage: PChar; //Homepage of Plugin/Author
end;
//----------------
// 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 Notivier gets the Return Value
// Return Value Should not be -1
//----------------
TUS_Hook = Function (wParam, lParam: DWord): integer; stdcall;
TUS_Hook_of_Object = Function (wParam, lParam: DWord): 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, lParam: DWord): integer; stdcall;
TUS_Service_of_Object = Function (wParam, lParam: DWord): 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, lParam: dWord): 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, lParam: dWord): integer; stdcall;
{Function Returns Non Zero if a Service with the given Name Exists,
otherwise 0}
ServiceExists: Function (ServiceName: PChar): Integer; stdcall;
end;
//----------------
// Some Default Constants
//----------------
const
{Returned if Service is not Found from CallService}
SERVICE_NOT_FOUND=$80000000;
implementation
end.
|