summaryrefslogtreecommitdiff
path: root/plugins/ExternalAPI/delphi/m_shutdown.inc
blob: fbdede1fb6aa53eae0e4aa9603eeebf7c99f3213 (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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
{

'AutoShutdown'-Plugin for
Miranda IM: the free IM client for Microsoft* Windows*

Copyright (C) 2004-2007 H. Herkenrath

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program (Shutdown-License.txt); if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
}

{$IFNDEF M_SHUTDOWN}
{$DEFINE M_SHUTDOWN}

const
  MIID_SHUTDOWN:TGUID = '{142982A8-88CF-4C65-8721-6DE27D5CE7B5}';

//******************************************************************/
//************************* SERVICES *******************************/
//******************************************************************/

{ Show settings dialog   v1.3.0.0+
Shows the dialog by which the shutdown watcher can be started.
If the dialog is already opened this brings it to foreground.
 wParam=lParam=0
Returns 0 on success, nonzero otherwise.
}
  MS_AUTOSHUTDOWN_SHOWSETTINGSDIALOG:PAnsiChar = 'AutoShutdown/ShowSettingsDialog';

{ Initiate shutdown process   v1.3.0.0+
Initiates the shutdown process for a given shutdown type.
If another shutdown process is already pending it will return error.
Associated events: ME_AUTOSHUTDOWN_OKTOSHUTDOWN, ME_AUTOSHUTDOWN_SHUTDOWN
 wParam=shutdownType
 lParam=(LPARAM)(bool)fShowConfirmDlg (whether to show the warning dialog or not)
Returns 0 on success, nonzero otherwise.
}
  MS_AUTOSHUTDOWN_SHUTDOWN:PAnsiChar = 'AutoShutdown/Shutdown';

//* shutdown types */
  SDSDT_CLOSEMIRANDA        = 1;  // close miranda process 
  SDSDT_SETMIRANDAOFFLINE   = 2;  // set all protocols to offline
  SDSDT_LOGOFF              = 3;  // logoff from Windows
  SDSDT_REBOOT              = 4;  // reboot computer
  SDSDT_SHUTDOWN            = 5;  // shutdown Windows and power off
  SDSDT_STANDBY             = 6;  // standby mode
  SDSDT_HIBERNATE           = 7;  // hibernate mode
  SDSDT_LOCKWORKSTATION     = 8;  // lock the workstation
  SDSDT_CLOSERASCONNECTIONS = 9;  // close all dialup connections
  SDSDT_MAX                 = 9;

{ Get shutdown type description   v1.4.0.0+
Gets a textual description of the given shutdown type.
 wParam=shutdownType
 lParam=flags (see GSTDF_* below)
Returns a static buffer of the description of the given shutdown type.
It does not need to be freed in any way.
The returned text is already translated.
Returns a pointer to a string on success, NULL on error.
}
  MS_AUTOSHUTDOWN_GETTYPEDESCRIPTION:PAnsiChar = 'AutoShutdown/GetTypeDescription';

  GSTDF_LONGDESC     = $0001;  // returns a long description
  GSTDF_UNICODE      = $0002;  // returns a Unicode string
  GSTDF_UNTRANSLATED = $0004;  // returns an untranslated string

{ Check if shutdown type is enabled   v1.4.0.0+
Tests if a specific shutdown type is activated and its use is possible
on the system. For example hibernate and stand-by modes are not available on 
older versions of Windows (needs Windows ME/2000+).
Shutdown might also be prohibited by security restrictions.
This services checks it all.
However, there is no need to call this before calling MS_AUTOSHUTDOWN_SHUTDOWN.
MS_AUTOSHUTDOWN_SHUTDOWN will fail if the given shutdown type is not enabled.
 wParam=shutdownType
 lParam=0
Returns TRUE if the given shutdown type is enabled, FALSE otherwise.
}
  MS_AUTOSHUTDOWN_ISTYPEENABLED:PAnsiChar = 'AutoShutdown/IsTypeEnabled';

{ Start shutdown watcher   v1.4.0.0+
Starts the watcher using the last settings specified on the dialog
shown by MS_AUTOSHUTDOWN_SHOWSETTINGSDIALOG.
Call MS_AUTOSHUTDOWN_SHOWSETTINGSDIALOG instead to offer
options about what watcher to use.
Associated event: ME_AUTOSHUTDOWN_WATCHERCHANGED
 wParam=lParam=0
Returns 0 on success, nonzero otherwise.
}
  MS_AUTOSHUTDOWN_STARTWATCHER:PAnsiChar = 'AutoShutdown/StartWatcher';

{ Stop shutdown watcher   v1.4.0.0+
Stops the currently running watcher.
If the watcher is not running, it returns error.
Associated event: ME_AUTOSHUTDOWN_WATCHERCHANGED
 wParam=lParam=0
Returns 0 on success, nonzero otherwise.
}
  MS_AUTOSHUTDOWN_STOPWATCHER:PAnsiChar = 'AutoShutdown/StopWatcher';

{ Check if watcher is running   v1.4.0.0+
Checks if the watcher is currently active or not.
 wParam=lParam=0
Returns TRUE if the watcher is enabled, FALSE otherwise.
}
  MS_AUTOSHUTDOWN_ISWATCHERENABLED:PAnsiChar = 'AutoShutdown/IsWatcherEnabled';

//******************************************************************/
//************************** EVENTS ********************************/
//******************************************************************/

{ Disallow shutdown process (event)   v1.3.0.0+
Gets fired when MS_AUTOSHUTDOWN_SHUTDOWN is called.
Parmeters are the same as specified at the call to MS_AUTOSHUTDOWN_SHUTDOWN.
 wParam=shutdownType
 lParam=(LPARAM)(bool)fShowConfirmDlg
Return 0 to allow shutdown, 1 to disallow.
}
  ME_AUTOSHUTDOWN_OKTOSHUTDOWN:PAnsiChar = 'AutoShutdown/OkToShutdown';

{ Shutdown process started (event)   v1.3.0.1+
Gets fired when ME_AUTOSHUTDOWN_OKTOSHUTDOWN was confirmed.
Parmeters are the same as specified at the call
to MS_AUTOSHUTDOWN_SHUTDOWN.
 wParam=shutdownType
 lParam=(LPARAM)(bool)fShowConfirmDlg
Unused, return always 0 here.
}
  ME_AUTOSHUTDOWN_SHUTDOWN:PAnsiChar = 'AutoShutdown/ShutdownEvent';

{ Watcher changed (event)   v1.3.0.0+
Fired when MS_AUTOSHUTDOWN_STARTWATCHER or MS_AUTOSHUTDOWN_STOPWATCHER
is called.
 wParam=(WPARAM)(bool)fIsStarted (whether whe watcher is running now)
 lParam=0
Unused, return always 0 here.
}
  ME_AUTOSHUTDOWN_WATCHERCHANGED:PAnsiChar = 'AutoShutdown/Watcher/Changed';

  SDWTF_SPECIFICTIME = $0001;
  SDWTF_ST_TIME      = $0002;
  SDWTF_ST_COUNTDOWN = $0004;
  SDWTF_ST_MASK      = $0006; // bitmask for SDWTF_ST_* bits
  SDWTF_MESSAGE      = $0008;
  SDWTF_FILETRANSFER = $0010;
  SDWTF_IDLE         = $0020;
  SDWTF_STATUS       = $0040;
  SDWTF_CPUUSAGE     = $0080;
  SDWTF_MASK         = $00FF; // bitmask for all SDWTF_* bits

  SETTING_REMEMBERONRESTART_DEFAULT   = 0;  // SDROR_RUNNING
  SETTING_SHOWCONFIRMDLG_DEFAULT      = 1;
  SETTING_CONFIRMDLGCOUNTDOWN_DEFAULT = 30; // seconds
  SETTING_WEATHERSHUTDOWN_DEFAULT     = 0;
  SETTING_HDDOVERHEATSHUTDOWN_DEFAULT = 1;
  SETTING_SMARTOFFLINECHECK_DEFAULT   = 1;

  SETTING_SHUTDOWNTYPE_DEFAULT        = SDSDT_SHUTDOWN;
  SETTING_WATCHERFLAGS_DEFAULT        = SDWTF_SPECIFICTIME or SDWTF_ST_COUNTDOWN;
  SETTING_COUNTDOWN_DEFAULT           = 30;
  SETTING_COUNTDOWNUNIT_DEFAULT       = 60; // x times countdown seconds
  SETTING_TIMESTAMP_DEFAULT           = SETTING_COUNTDOWN_DEFAULT*SETTING_COUNTDOWNUNIT_DEFAULT;
  SETTING_CPUUSAGETHRESHOLD_DEFAULT   = 90; // percent

  SDROR_RUNNING = 3;

{$ENDIF}