4e2933c620 2015-04-21 kinaba: /***********************************************************************\ 4e2933c620 2015-04-21 kinaba: * secext.d * 4e2933c620 2015-04-21 kinaba: * * 4e2933c620 2015-04-21 kinaba: * Windows API header module * 4e2933c620 2015-04-21 kinaba: * * 4e2933c620 2015-04-21 kinaba: * Translated from MinGW Windows headers * 4e2933c620 2015-04-21 kinaba: * * 4e2933c620 2015-04-21 kinaba: * Placed into public domain * 4e2933c620 2015-04-21 kinaba: \***********************************************************************/ 4e2933c620 2015-04-21 kinaba: // Don't include this file directly, use win32.security instead. 4e2933c620 2015-04-21 kinaba: module win32.secext; 4e2933c620 2015-04-21 kinaba: pragma(lib, "secur32.lib"); 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: private import win32.w32api, win32.windef; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: static assert (_WIN32_WINNT >= 0x0501, 4e2933c620 2015-04-21 kinaba: "SecExt is only available on WindowsXP and later"); 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: enum EXTENDED_NAME_FORMAT { 4e2933c620 2015-04-21 kinaba: NameUnknown, 4e2933c620 2015-04-21 kinaba: NameFullyQualifiedDN, 4e2933c620 2015-04-21 kinaba: NameSamCompatible, 4e2933c620 2015-04-21 kinaba: NameDisplay, // = 3 4e2933c620 2015-04-21 kinaba: NameUniqueId = 6, 4e2933c620 2015-04-21 kinaba: NameCanonical, 4e2933c620 2015-04-21 kinaba: NameUserPrincipal, 4e2933c620 2015-04-21 kinaba: NameCanonicalEx, 4e2933c620 2015-04-21 kinaba: NameServicePrincipal, // = 10 4e2933c620 2015-04-21 kinaba: NameDnsDomain = 12 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias EXTENDED_NAME_FORMAT* PEXTENDED_NAME_FORMAT; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: extern (Windows) { 4e2933c620 2015-04-21 kinaba: BOOLEAN GetComputerObjectNameA(EXTENDED_NAME_FORMAT, LPSTR, PULONG); 4e2933c620 2015-04-21 kinaba: BOOLEAN GetComputerObjectNameW(EXTENDED_NAME_FORMAT, LPWSTR, PULONG); 4e2933c620 2015-04-21 kinaba: BOOLEAN GetUserNameExA(EXTENDED_NAME_FORMAT, LPSTR, PULONG); 4e2933c620 2015-04-21 kinaba: BOOLEAN GetUserNameExW(EXTENDED_NAME_FORMAT, LPWSTR, PULONG); 4e2933c620 2015-04-21 kinaba: BOOLEAN TranslateNameA(LPCSTR, EXTENDED_NAME_FORMAT, 4e2933c620 2015-04-21 kinaba: EXTENDED_NAME_FORMAT, LPSTR, PULONG); 4e2933c620 2015-04-21 kinaba: BOOLEAN TranslateNameW(LPCWSTR, EXTENDED_NAME_FORMAT, 4e2933c620 2015-04-21 kinaba: EXTENDED_NAME_FORMAT, LPWSTR, PULONG); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: version (Unicode) { 4e2933c620 2015-04-21 kinaba: alias GetComputerObjectNameW GetComputerObjectName; 4e2933c620 2015-04-21 kinaba: alias GetUserNameExW GetUserNameEx; 4e2933c620 2015-04-21 kinaba: alias TranslateNameW TranslateName; 4e2933c620 2015-04-21 kinaba: } else { 4e2933c620 2015-04-21 kinaba: alias GetComputerObjectNameA GetComputerObjectName; 4e2933c620 2015-04-21 kinaba: alias GetUserNameExA GetUserNameEx; 4e2933c620 2015-04-21 kinaba: alias TranslateNameA TranslateName; 4e2933c620 2015-04-21 kinaba: }