123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
- unit Extension;
- interface
- const
- // dialog messages
- DM_FIRST = 0;
- DM_CLOSE = DM_FIRST+1; // A signal that the dialog is about to close
- DM_ENABLE = DM_FIRST+2;
- DM_GETDLGDATA = DM_FIRST+3;
- DM_GETDLGBOUNDS = DM_FIRST+4;
- DM_GETITEMBOUNDS = DM_FIRST+5;
- DM_GETTEXT = DM_FIRST+6; // Retrieve the text of an edit string or the caption of an item
- DM_KEYDOWN = DM_FIRST+7;
- DM_KEYUP = DM_FIRST+8;
- DM_SETDLGDATA = DM_FIRST+9;
- DM_SETFOCUS = DM_FIRST+10; // Set the keyboard focus to the given dialog item
- DM_REDRAW = DM_FIRST+11; // Redraw the whole dialog
- DM_SETTEXT = DM_FIRST+12; // Set a new string value for an edit line or a new caption for an item
- DM_SETMAXTEXTLENGTH = DM_FIRST+13; // Set the maximum length of an edit string
- DM_SHOWDIALOG = DM_FIRST+14; // Show/hide the dialog window
- DM_SHOWITEM = DM_FIRST+15; // Show/hide a dialog item
- DM_GETCHECK = DM_FIRST+16; // Retrieve the state of TCheckBox or TRadioButton items
- DM_SETCHECK = DM_FIRST+17; // Change the state of TCheckBox and TRadioButton items
- DM_LISTGETITEM = DM_FIRST+18; // Retrieve a list item
- DM_LISTGETITEMINDEX = DM_FIRST+19; // Get current item index in a list
- DM_LISTSETITEMINDEX = DM_FIRST+20; // Set current item index in a list
- DM_LISTDELETE = DM_FIRST+21;
- DM_LISTADD = DM_FIRST+22;
- DM_LISTADDSTR = DM_FIRST+23;
- DM_LISTUPDATE = DM_FIRST+24;
- DM_LISTINSERT = DM_FIRST+25;
- DM_LISTINDEXOF = DM_FIRST+26;
- DM_LISTGETCOUNT = DM_FIRST+27;
- DM_LISTGETDATA = DM_FIRST+28;
- DM_LISTSETDATA = DM_FIRST+29;
- DM_SETDLGBOUNDS = DM_FIRST+30;
- DM_SETITEMBOUNDS = DM_FIRST+31;
- DM_GETDROPPEDDOWN = DM_FIRST+32;
- DM_SETDROPPEDDOWN = DM_FIRST+33;
- DM_GETITEMDATA = DM_FIRST+34;
- DM_SETITEMDATA = DM_FIRST+35;
- DM_LISTSET = DM_FIRST+36;
- DM_SETPROGRESSVALUE = DM_FIRST+37;
- DM_SETPROGRESSSTYLE = DM_FIRST+38;
- DM_SETPASSWORDCHAR = DM_FIRST+39;
- DM_LISTCLEAR = DM_FIRST+40;
- DM_TIMERSETINTERVAL = DM_FIRST+41;
- // events messages
- DN_FIRST = $1000;
- DN_CLICK = DN_FIRST+1; // Sent after mouse click
- DN_DBLCLICK = DN_FIRST+2; // Sent after mouse double click
- DN_CHANGE = DN_FIRST+3; // Sent after the dialog item is changed
- DN_GOTFOCUS = DN_FIRST+4; // Sent when the dialog item gets input focus
- DN_INITDIALOG = DN_FIRST+5; // Sent before showing the dialog
- DN_KILLFOCUS = DN_FIRST+6; // Sent before a dialog item loses the input focus
- DN_TIMER = DN_FIRST+7; // Sent when a timer expires
- DN_KEYDOWN = DM_KEYDOWN;
- DN_KEYUP = DM_KEYUP;
- DN_CLOSE = DM_CLOSE; // Sent before the dialog is closed
- DM_USER = $4000; // Starting value for user defined messages
- const
- // MessageBox: To indicate the buttons displayed in the message box,
- // specify one of the following values.
- MB_OK = $00000000;
- MB_OKCANCEL = $00000001;
- MB_ABORTRETRYIGNORE = $00000002;
- MB_YESNOCANCEL = $00000003;
- MB_YESNO = $00000004;
- MB_RETRYCANCEL = $00000005;
- MB_ICONHAND = $00000010;
- MB_ICONQUESTION = $00000020;
- MB_ICONEXCLAMATION = $00000030;
- MB_ICONASTERICK = $00000040;
- MB_ICONWARNING = MB_ICONEXCLAMATION;
- MB_ICONERROR = MB_ICONHAND;
- MB_ICONSTOP = MB_ICONHAND;
- MB_ICONINFORMATION = MB_ICONASTERICK;
- // MessageBox: To indicate the default button, specify one of the following values.
- MB_DEFBUTTON1 = $00000000;
- MB_DEFBUTTON2 = $00000100;
- MB_DEFBUTTON3 = $00000200;
- MB_DEFBUTTON4 = $00000300;
- // MessageBox: Return values
- ID_OK = 1;
- ID_CANCEL = 2;
- ID_ABORT = 3;
- ID_RETRY = 4;
- ID_IGNORE = 5;
- ID_YES = 6;
- ID_NO = 7;
- ID_CLOSE = 8;
- ID_HELP = 9;
- const
- EXT_MAX_PATH = 16384; // 16 Kb
- { For compatibility with Delphi use $IFDEF's to set calling convention }
- type
- { Dialog window callback function }
- TDlgProc = function(pDlg: PtrUInt; DlgItemName: PAnsiChar; Msg, wParam, lParam: PtrInt): PtrInt; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF};
- { Definition of callback functions called by the DLL }
- TInputBoxProc = function(Caption, Prompt: PAnsiChar; MaskInput: LongBool; Value: PAnsiChar; ValueMaxLen: Integer): LongBool; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF};
- TMessageBoxProc = function(Text, Caption: PAnsiChar; Flags: Longint): Integer; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF};
- TDialogBoxLFMProc = function(LFMData: Pointer; DataSize: LongWord; DlgProc: TDlgProc): LongBool; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF};
- TDialogBoxLRSProc = function(LRSData: Pointer; DataSize: LongWord; DlgProc: TDlgProc): LongBool; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF};
- TDialogBoxLFMFileProc = function(lfmFileName: PAnsiChar; DlgProc: TDlgProc): LongBool; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF};
- type
- PExtensionStartupInfo = ^TExtensionStartupInfo;
- TExtensionStartupInfo = packed record
- // The size of the structure, in bytes
- StructSize: LongWord;
- // Directory where plugin is located (UTF-8 encoded)
- PluginDir: packed array [0..Pred(EXT_MAX_PATH)] of AnsiChar;
- // Directory where plugin configuration file must be located (UTF-8 encoded)
- PluginConfDir: packed array [0..Pred(EXT_MAX_PATH)] of AnsiChar;
- // Dialog API
- InputBox: TInputBoxProc;
- MessageBox: TMessageBoxProc;
- DialogBoxLFM: TDialogBoxLFMProc;
- DialogBoxLRS: TDialogBoxLRSProc;
- DialogBoxLFMFile: TDialogBoxLFMFileProc;
- SendDlgMsg: TDlgProc;
- // Reserved for future API extension
- Reserved: packed array [0..Pred(4096 * SizeOf(Pointer))] of Byte;
- end;
- type
- TExtensionInitializeProc = procedure(StartupInfo: PExtensionStartupInfo); {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF};
- TExtensionFinalizeProc = procedure(Reserved: Pointer); {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF};
- implementation
- (* Plugin must implement this function for working with Extension API
- procedure ExtensionInitialize(StartupInfo: PExtensionStartupInfo); {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF};
- procedure ExtensionFinalize(Reserved: Pointer); {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF};
- *)
- end.
|