diff options
Diffstat (limited to 'plugins/Actman/m_actions.inc')
-rw-r--r-- | plugins/Actman/m_actions.inc | 193 |
1 files changed, 193 insertions, 0 deletions
diff --git a/plugins/Actman/m_actions.inc b/plugins/Actman/m_actions.inc new file mode 100644 index 0000000000..7600d0dcdf --- /dev/null +++ b/plugins/Actman/m_actions.inc @@ -0,0 +1,193 @@ +// defined in interfaces.inc
+//const MIID_ACTMANAGER:MUUID='{9584DA04-FB4F-40c1-9325-E4F9CAAFCB5D}';
+
+// hotkey and action (common) flags
+const
+ ACF_DISABLED = $10000000; // action disabled
+ ACF_USEDNOW = $20000000; // action in use (reserved)
+ ACF_DOBREAK = $40000000; // special, make break;
+ ACF_ASSIGNED = $80000000; // action assigned
+ ACF_EXPORT = $08000000; // action to export
+ ACF_IMPORT = ACF_EXPORT; // imported
+ ACF_VOLATILE = $04000000; // don't save in DB
+ ACF_PARALLEL = $02000000; // parallel action work (no wait thread)
+ ACF_OVERLOAD = $01000000; // imported action overwrite old
+
+// action flags
+const
+ // ACT_CONTACT
+ ACF_KEEPONLY = $00000001; // keep contact handle in Last, don't show window
+
+ // ACT_SERVICE
+ ACF_WPARNUM = $00000001; // wParam is number
+ ACF_LPARNUM = $00000002; // lParam is number
+ ACF_WUNICODE = $00000004; // wParam is Unicode string
+ ACF_LUNICODE = $00000008; // lParam is Unicode string
+ ACF_WCURRENT = $00000010; // wParam is ignored, used current user handle
+ // from current message window
+ ACF_LCURRENT = $00000020; // lParam is ignored, used current user handle
+ // from current message window
+ ACF_WPARHEX = $00000040; //!! Show as hex
+ ACF_LPARHEX = $00000080; //!! Show as hex
+
+ ACF_WRESULT = $00010000; // wParam is previous action result
+ ACF_LRESULT = $00020000; // lParam is previous action result
+ ACF_WPARAM = $00040000; // wParam is Call parameter
+ ACF_LPARAM = $00080000; // lParam is Call parameter
+ ACF_WSTRUCT = $00100000;
+ ACF_LSTRUCT = $00200000;
+ ACF_WPARTYPE = ACF_WPARNUM or ACF_WUNICODE or ACF_WCURRENT or ACF_WPARAM or ACF_WSTRUCT;
+ ACF_LPARTYPE = ACF_LPARNUM or ACF_LUNICODE or ACF_LCURRENT or ACF_LPARAM or ACF_LSTRUCT;
+
+ ACF_INSERT = $00000100; // Insert result in message
+ ACF_MESSAGE = $00000200; // Show service result as message
+ ACF_POPUP = $00000400; // Show service result as popup
+ ACF_STRING = $00000800; // Service result is string
+ ACF_UNICODE = $00001000; // Service result is Widestring
+ ACF_HEX = $00002000; // Result as Hex
+ ACF_SIGNED = $00004000; // Result as signed value
+//!!
+ ACF_STRUCT = $00008000; // Service result in structure
+
+ // ACT_TEXT
+ ACF_CLIPBRD = $00000002; // Clipboard operations, not window
+ ACF_ANSI = $00000004; // File: ANSI or Unicode (UTF8/UTF16) text
+ ACF_COPYTO = $00000008; // Clipboard operations: 'copy to' or 'paste from'
+
+ ACF_FILE = $00000010; // File operations
+ ACF_FWRITE = $00000020; // read/write file
+ ACF_FAPPEND = $00000040; // append file
+
+ ACF_UTF8 = $00000080; // File: UTF8 or UTF16
+ ACF_SIGN = $00000100; // File: with signature or not
+
+ // ACT_PROGRAM
+ ACF_CURPATH = $00000002; // Current (not program) path
+ ACF_PRTHREAD = $00000004; // parallel Program
+
+ // ACT_ADVANCED
+ ACF_VARASINT = $00000001; // if variables script, translate to int
+
+ // ACT_DBRW
+ ACF_DBWRITE = $00000001; // write to (not read from) DB
+ ACF_DBBYTE = $00000002; // read/write byte (def. dword)
+ ACF_DBWORD = $00000004; // read/write word (def. dword)
+ ACF_PARAM = $00000008; // hContact from parameter
+ ACF_CURRENT = $00000010; // hContact is 0 (user settings)
+ ACF_RESULT = $00000020; // hContact is last result value
+ ACF_LAST = $00000040; // use last result for DB writing
+ ACF_DBUTEXT = $00000080; // read/write Unicode string
+ ACF_DBANSI = $00000082; // read/write ANSI string
+ ACF_DBDELETE = $00000100; // delete setting
+ ACF_NOCNTCT = ACF_PARAM or ACF_CURRENT or ACF_RESULT;
+
+ // ACT_CHAIN
+ ACF_BYNAME = $00000001; // Address action link by name, not Id
+
+ // ACT_MESSAGE
+ ACF_MSG_KEEP = $00000001; // Keep past 'last result'
+
+const
+ // Variables use
+ ACF2_SRV_WPAR = $00000001;
+ ACF2_SRV_LPAR = $00000002;
+ ACF2_SRV_SRVC = $00000004;
+ ACF2_SRV_WHEX = $00000008;
+ ACF2_SRV_LHEX = $00000010;
+ ACF2_PRG_PRG = $00000001;
+ ACF2_PRG_ARG = $00000002;
+ ACF2_TXT_FILE = $00000001;
+ ACF2_TXT_TEXT = $00000002;
+ ACF2_RW_MVAR = $00000001;
+ ACF2_RW_SVAR = $00000002;
+ ACF2_RW_TVAR = $00000004;
+ ACF2_RW_HEX = $00000008;
+ ACF2_MSG_TTL = $00000001;
+ ACF2_MSG_TXT = $00000002;
+
+ ACF2_FREEMEM = $00000100;
+
+const
+ ADV_COND_NOP = 0;
+ ADV_COND_GT = 1;
+ ADV_COND_LT = 2;
+ ADV_COND_EQ = 3;
+ ADV_COND_NOT = $80;
+
+ ADV_ACT_NOP = 0; // two lower bits $03 mask
+ ADV_ACT_BREAK = 1;
+ ADV_ACT_JUMP = 2;
+
+ ADV_ACT_POST = $0F;
+
+ ADV_ACT_MATH = $10; // bit masks
+ ADV_ACT_VARS = $20;
+
+ ADV_ACTION = $F0;
+
+const
+ ACT_UNKNOWN = 0;
+ ACT_CONTACT = 1;
+ ACT_SERVICE = 2;
+ ACT_PROGRAM = 3;
+ ACT_TEXT = 4;
+ ACT_ADVANCE = 5;
+ ACT_CHAIN = 6;
+ ACT_RW = 7;
+ ACT_MESSAGE = 8;
+ ACT_MAXTYPE = 8;
+ ACT_SPECIAL = ACT_MAXTYPE+1;
+ ACT_FINISH = ACT_SPECIAL+1;
+
+type
+ pHKRecord = ^tHKRecord;
+ tHKRecord = record
+ descr :pWideChar; // like name
+ id :dword;
+ flags :dword; // Assigned or not
+ firstAction:dword; // array [0..0] of dword
+ active :pointer;
+ end;
+
+ pHKAction = ^tHKAction;
+ tHKAction = record
+ flags :dword; // See ACF_* constants
+ flags2:dword; // See ACF2_* constants (Variables use etc.)
+ next :dword;
+ descr :PWideChar;
+ case actionType:dword of
+ ACT_CONTACT:
+ (contact:THANDLE);
+ ACT_SERVICE:
+ (service:PAnsiChar;
+ wparam :WPARAM;
+ lparam :LPARAM);
+ ACT_PROGRAM:
+ (prgname:pWideChar;
+ args :pWideChar;
+ show :dword;
+ time :dword);
+ ACT_TEXT:
+ (text :pWideChar;
+ tfile :pWideChar);
+ ACT_ADVANCE:
+ (condition:dword;
+ value :uint_ptr;
+ action :dword;
+ operval :pWideChar;
+ oper :dword;
+ mathval :dword;
+ varval :pWideChar);
+ ACT_CHAIN:
+ (id :dword;
+ actname:pWideChar);
+ ACT_RW:
+ (dbcontact:THANDLE;
+ dbmodule :PAnsiChar;
+ dbsetting :PAnsiChar;
+ dbvalue :uint_ptr);
+ ACT_MESSAGE:
+ (boxopts:dword;
+ msgtitle:pWideChar;
+ msgtext :pWideChar);
+ end;
|