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
|
#ifndef _ALARMS_H
#define _ALARMS_H
// flags for alarm action
#define AAF_POPUP 0x01 // show a popup window (or a popup from popups plugin, if installed and activated via options)
#define AAF_SOUND 0x02 // play a sound
#define AAF_COMMAND 0x04 // run a command
#define AAF_SYSTRAY 0x08 // flash systray icon (not implemented)
typedef enum {
OC_ONCE, // all fields in time (see below) are valid
OC_DAILY, // only wHour, wMinute, and wSecond are valid
OC_SELECTED_DAYS, // only wHour, wMinute, and wSecond are valid
OC_WEEKLY, // wHour, wMinute, wSecond, and wDayOfWeek are valid
OC_WEEKDAYS, // only wHour, wMinute, and wSecond are valid
OC_MONTHLY, // wHour, wMinute, wSecond, and wDay are valid
OC_YEARLY // all fields except wYear are valid
} Occurrence;
// flags
#define ALF_HIDDEN 0x01 // do not show in GUI (either options or reminder frame)
#define ALF_NOREMINDER 0x02 // do not show in reminder frame
#define ALF_SUSPENDED 0x04 // do not trigger next occurence
#define ALF_NOSTARTUP 0x08 // do not trigger on startup if it was due when miranda was not running
#define ALF_NOSNOOZE 0x10 // do not allow snoozing of this alarm
//day flags
#define ALDF_1 0x01
#define ALDF_2 0x02
#define ALDF_3 0x04
#define ALDF_4 0x08
#define ALDF_5 0x10
#define ALDF_6 0x20
#define ALDF_7 0x40
typedef struct {
TCHAR *szTitle;
TCHAR *szDesc;
Occurrence occurrence;
BOOL snoozer; // this alarm is a 'once-off', the result of the user pressing the 'snooze' button - the time field no longer contains the original alarm time
SYSTEMTIME time; // the time the alarm is triggered at - different fields are valid depending on what the 'occurence' value is set to (see definition of Occurence type above)
unsigned short action; // bitwise OR of AAF_* constants above
TCHAR *szCommand; // passed to ShellExecute (if action & AAF_COMMAND) when the alarm is triggered
TCHAR *szCommandParams; // passed as parameters for above command
BYTE sound_num; // use alarm sound 1, 2, or 3 (if action & AAF_SOUND) (4 == speak, version 0.0.7.0+)
int flags; // ALF_* above
} ALARMINFO;
// set an alarm
// wparam = 0
// lparam = (ALARMINFO *)&alarm
#define MS_ALARMS_ADDALARM "Alarms/AddAlarm"
// event sent when an alarm is triggered
// wparam=0
// lparam=(ALARMINFO *)&alarm
// returning non-zero from your hook will prevent the alarm actions from being carried out
#define ME_ALARMS_TRIGGERED "Alarms/Triggered"
#endif
|