summaryrefslogtreecommitdiff
path: root/plugins/ExternalAPI/m_actman.inc
blob: 02a84a44708d1b280ddb56fe8e2f8efa3603b17e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
{$IFNDEF M_ACTMAN}
{$DEFINE M_ACTMAN}

// defined in interfaces.inc
//const MIID_ACTMANAGER:MUUID='{9584DA04-FB4F-40c1-9325-E4F9CAAFCB5D}';

const
  ACCF_DISABLED = $10000000;  // action disabled
  ACCF_EXPORT   = $08000000;  // action to export
  ACCF_VOLATILE = $04000000;  // don't save in DB
  ACCF_IMPORTED = ACF_EXPORT;
  ACCF_FLAGS    = ACCF_DISABLED or ACCF_EXPORT or ACCF_IMPORTED or ACCF_VOLATILE;
  ACCF_ID       = $02000000;  // for MS_ACT_SELECT, lParam is ID (else name)
  ACCF_CLEAR    = $01000000;  // clear other flags, else - set
type
  pChain = ^tChain;
  TChain = record
    descr:pWideChar;
    id   :dword;
    flags:dword; // ACCF_* flags
  end;

const
  {
    wParam - 0
    lParam - address of destination list variable (address of pointer to tChain)
    Return - count of elements
    Notes: first 4 bytes = size of TChain structure (to add new fields in future)
  }
  MS_ACT_GETLIST:PAnsiChar = 'Actions/GetList';
  {
    wParam - 0
    lParam - list address (pointer to data returned by MS_ACT_GETLIST)
  }
  MS_ACT_FREELIST:PAnsiChar = 'Actions/FreeList';
  {
    wParam - id: dword
    lParam - parameter
  }
  MS_ACT_RUNBYID  :PAnsiChar = 'Actions/RunById';
  {
    wParam - unicode action name
    lParam - parameter
  }
  MS_ACT_RUNBYNAME:PAnsiChar = 'Actions/RunByName';

{ Starts action with 2 parameters
  wParam: 0
  lParam: pointer to TAct_Param
}
  MS_ACT_RUNPARAMS:PAnsiChar = 'Actions/RunWithParams';
const
  ACTP_BYNAME = 1;
  ACTP_WAIT   = 2;
type
  PAct_Param = ^TAct_Param;
  TAct_Param = record
    flags :dword; // ACTP_*
    ID    :dword; // Id or name
    wParam:WPARAM;
    lParam:LPARAM;
  end;

const
  ACTM_NEW    = $00000001;
  ACTM_DELETE = $00000002;
  ACTM_RELOAD = $00000004;
  ACTM_RENAME = $00000008;
  ACTM_SORT   = $00000010;
  ACTM_ACT    = $10000000; // do not check, internal
  ACTM_ACTS   = $20000000; // do not check, internal
  ACTM_LOADED = $80000000;

  {
    Event: action group list was changed: some was added or deleted
    wParam - set of ACTM_* flags
    lParam - 0
  }
  ME_ACT_CHANGED:PAnsiChar = 'Actions/Changed';

  ACIO_EXPORT   = $00000001; // export, else - import
  ACIO_APPEND   = $00000002; // append file on export
  ACIO_ASKEXIST = $00000004; // ask, if action exists on import
  ACIO_SELECTED = $00000008; // export selected actions only

  {
    wParam - ACIO_* flags
    lParam - Unicode file name
    Return - true, if totally succesful 
  }
  MS_ACT_INOUT:PAnsiChar = 'Actions/ImpExp';

  {
    Event: Export actions
    wParam - ACIO_* flags
    lParam - unicode filename
  }
  ME_ACT_INOUT:PAnsiChar = 'Actions/InOut';

  {
    Select/unselect specified action
    wParam - set of ACCF_* consts
    lParam - unicode action name / number
    Return - -1 if unsuccesful
  }
  MS_ACT_SELECT:PAnsiChar = 'Actions/Select';

  {
    Event: Action started/finished
    wParam - Action status: 0 - started, 1 - finished
    lParam - action id
  }
  ME_ACT_ACTION:PAnsiChar = 'Actions/Action';

{$ENDIF}