1 /**
2 * Windows API header module
3 *
4 * Translated from MinGW Windows headers
5 *
6 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
7 * Source: $(DRUNTIMESRC src/core/sys/windows/_secext.d)
8 */
9 // Don't include this file directly, use core.sys.windows.security instead.
10 module core.sys.windows.secext;
version(Windows)11 version (Windows):
12
13 version (ANSI) {} else version = Unicode;
14 pragma(lib, "secur32");
15
16 private import core.sys.windows.w32api, core.sys.windows.windef;
17
18 static assert (_WIN32_WINNT >= 0x501,
19 "SecExt is only available on WindowsXP and later");
20
21 enum EXTENDED_NAME_FORMAT {
22 NameUnknown,
23 NameFullyQualifiedDN,
24 NameSamCompatible,
25 NameDisplay, // = 3
26 NameUniqueId = 6,
27 NameCanonical,
28 NameUserPrincipal,
29 NameCanonicalEx,
30 NameServicePrincipal, // = 10
31 NameDnsDomain = 12
32 }
33 alias EXTENDED_NAME_FORMAT* PEXTENDED_NAME_FORMAT;
34
35 extern (Windows) {
36 BOOLEAN GetComputerObjectNameA(EXTENDED_NAME_FORMAT, LPSTR, PULONG);
37 BOOLEAN GetComputerObjectNameW(EXTENDED_NAME_FORMAT, LPWSTR, PULONG);
38 BOOLEAN GetUserNameExA(EXTENDED_NAME_FORMAT, LPSTR, PULONG);
39 BOOLEAN GetUserNameExW(EXTENDED_NAME_FORMAT, LPWSTR, PULONG);
40 BOOLEAN TranslateNameA(LPCSTR, EXTENDED_NAME_FORMAT,
41 EXTENDED_NAME_FORMAT, LPSTR, PULONG);
42 BOOLEAN TranslateNameW(LPCWSTR, EXTENDED_NAME_FORMAT,
43 EXTENDED_NAME_FORMAT, LPWSTR, PULONG);
44 }
45
version(Unicode)46 version (Unicode) {
47 alias GetComputerObjectNameW GetComputerObjectName;
48 alias GetUserNameExW GetUserNameEx;
49 alias TranslateNameW TranslateName;
50 } else {
51 alias GetComputerObjectNameA GetComputerObjectName;
52 alias GetUserNameExA GetUserNameEx;
53 alias TranslateNameA TranslateName;
54 }
55