root/trunk/win32/secext.d

Revision 155, 2.0 kB (checked in by Don Clugston, 6 years ago)

Committed on behalf of Stewart.

Line 
1 /***********************************************************************\
2 *                                secext.d                               *
3 *                                                                       *
4 *                       Windows API header module                       *
5 *                                                                       *
6 *                 Translated from MinGW Windows headers                 *
7 *                                                                       *
8 *                       Placed into public domain                       *
9 \***********************************************************************/
10 // Don't include this file directly, use win32.security instead.
11 module win32.secext;
12 pragma(lib, "secur32.lib");
13
14 private import win32.w32api, win32.windef;
15
16 static assert (_WIN32_WINNT >= 0x0501,
17   "SecExt is only available on WindowsXP and later");
18
19 enum EXTENDED_NAME_FORMAT {
20     NameUnknown,
21     NameFullyQualifiedDN,
22     NameSamCompatible,
23     NameDisplay,          // =  3
24     NameUniqueId             =  6,
25     NameCanonical,
26     NameUserPrincipal,
27     NameCanonicalEx,
28     NameServicePrincipal, // = 10
29     NameDnsDomain            = 12
30 }
31 alias EXTENDED_NAME_FORMAT* PEXTENDED_NAME_FORMAT;
32
33 extern (Windows) {
34     BOOLEAN GetComputerObjectNameA(EXTENDED_NAME_FORMAT, LPSTR, PULONG);
35     BOOLEAN GetComputerObjectNameW(EXTENDED_NAME_FORMAT, LPWSTR, PULONG);
36     BOOLEAN GetUserNameExA(EXTENDED_NAME_FORMAT, LPSTR, PULONG);
37     BOOLEAN GetUserNameExW(EXTENDED_NAME_FORMAT, LPWSTR, PULONG);
38     BOOLEAN TranslateNameA(LPCSTR, EXTENDED_NAME_FORMAT,
39       EXTENDED_NAME_FORMAT, LPSTR, PULONG);
40     BOOLEAN TranslateNameW(LPCWSTR, EXTENDED_NAME_FORMAT,
41       EXTENDED_NAME_FORMAT, LPWSTR, PULONG);
42 }
43
44 version (Unicode) {
45     alias GetComputerObjectNameW GetComputerObjectName;
46     alias GetUserNameExW GetUserNameEx;
47     alias TranslateNameW TranslateName;
48 } else {
49     alias GetComputerObjectNameA GetComputerObjectName;
50     alias GetUserNameExA GetUserNameEx;
51     alias TranslateNameA TranslateName;
52 }
Note: See TracBrowser for help on using the browser.