Differences From Artifact [59233b3c2f66ba16]:
- File
src/win32/winsvc.d
- 2015-04-21 10:46:55 - part of checkin [4e2933c620] on branch trunk - Rebased to the latest verson dmd 2.067. Not yet verified the outcome. (user: kinaba) [annotate]
To Artifact [1045de9392b75c75]:
- File
src/win32/winsvc.d
-
2015-05-05 06:49:05
- part of checkin
[9b639cf2d6]
on branch trunk
- Working version for update to 2.067.
The problem was __gshared. Replacing it with TLS fixed the issue. Remaining problem is that "hack.d"'s CloseHandle hack is not working anymore.
(user: kinaba) [annotate]
-
2015-05-05 06:49:05
- part of checkin
[9b639cf2d6]
on branch trunk
- Working version for update to 2.067.
5 5 * *
6 6 * Translated from MinGW Windows headers *
7 7 * by Stewart Gordon *
8 8 * *
9 9 * Placed into public domain *
10 10 \***********************************************************************/
11 11 module win32.winsvc;
12 -pragma(lib, "advapi32.lib");
12 +pragma(lib, "advapi32");
13 13
14 14 private import win32.w32api, win32.windef;
15 -
16 -static assert (_WIN32_WINNT_ONLY,
17 - "win32.winsvc is available only if version WindowsNTonly, WindowsXP, "
18 - "Windows2003 or WindowsVista is set");
19 -
20 15
21 16 // FIXME: check Windows version support
22 17
23 18 const TCHAR[]
24 19 SERVICES_ACTIVE_DATABASE = "ServicesActive",
25 20 SERVICES_FAILED_DATABASE = "ServicesFailed";
26 21
................................................................................
183 178
184 179 struct SERVICE_TABLE_ENTRYW {
185 180 LPWSTR lpServiceName;
186 181 LPSERVICE_MAIN_FUNCTIONW lpServiceProc;
187 182 }
188 183 alias SERVICE_TABLE_ENTRYW* LPSERVICE_TABLE_ENTRYW;
189 184
190 -alias HANDLE SC_HANDLE;
191 -alias HANDLE* LPSC_HANDLE;
185 +mixin DECLARE_HANDLE!("SC_HANDLE");
186 +alias SC_HANDLE* LPSC_HANDLE;
192 187 alias void* SC_LOCK;
193 -alias DWORD SERVICE_STATUS_HANDLE;
188 +mixin DECLARE_HANDLE!("SERVICE_STATUS_HANDLE");
194 189
195 190 extern (Windows) {
196 191 alias void function(DWORD) LPHANDLER_FUNCTION;
197 192 alias DWORD function(DWORD, DWORD, LPVOID, LPVOID) LPHANDLER_FUNCTION_EX;
198 193 }
199 194
200 195 static if (_WIN32_WINNT >= 0x500) {