3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/*
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Copyright (C) 2003 Ulrich Czekalla for CodeWeavers
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync *
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * This library is free software; you can redistribute it and/or
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * modify it under the terms of the GNU Lesser General Public
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * License as published by the Free Software Foundation; either
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * version 2.1 of the License, or (at your option) any later version.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync *
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * This library is distributed in the hope that it will be useful,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * but WITHOUT ANY WARRANTY; without even the implied warranty of
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Lesser General Public License for more details.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync *
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * You should have received a copy of the GNU Lesser General Public
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * License along with this library; if not, write to the Free Software
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync */
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync/*
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * other than GPL or LGPL is available it will apply instead, Oracle elects to use only
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * a choice of LGPL license versions is made available with the language indicating
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * that LGPLv2 or any later version may be used, or where a choice of which version
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * of the LGPL is applied is otherwise unspecified.
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync */
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifndef __SDDL_H__
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define __SDDL_H__
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifdef __cplusplus
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncextern "C" {
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* Versioning */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define SDDL_REVISION_1 1
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define SDDL_REVISION SDDL_REVISION_1
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifndef WINE_NO_UNICODE_MACROS
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* Component tags */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifndef UNICODE
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define SDDL_OWNER "O"
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define SDDL_GROUP "G"
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define SDDL_DACL "D"
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define SDDL_SACL "S"
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#else
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# if defined(__GNUC__)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define SDDL_OWNER (const WCHAR[]){ 'O',0 }
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define SDDL_GROUP (const WCHAR[]){ 'G',0 }
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define SDDL_DACL (const WCHAR[]){ 'D',0 }
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define SDDL_SACL (const WCHAR[]){ 'S',0 }
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# elif defined(_MSC_VER)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define SDDL_OWNER L"O"
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define SDDL_GROUP L"G"
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define SDDL_DACL L"D"
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define SDDL_SACL L"S"
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# else
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync static const WCHAR SDDL_OWNER[] = { 'O',0 };
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync static const WCHAR SDDL_GROUP[] = { 'G',0 };
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync static const WCHAR SDDL_DACL[] = { 'D',0 };
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync static const WCHAR SDDL_SACL[] = { 'S',0 };
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# endif
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif /* UNICODE */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* Separators as characters */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* SDDL_SEPERATORC is not a typo, as per Microsoft's headers */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifndef UNICODE
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define SDDL_SEPERATORC ';'
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define SDDL_DELIMINATORC ':'
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define SDDL_ACE_BEGINC '('
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define SDDL_ACE_ENDC ')'
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#else
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define SDDL_SEPERATORC ((WCHAR)';')
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define SDDL_DELIMINATORC ((WCHAR)':')
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define SDDL_ACE_BEGINC ((WCHAR)'(')
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define SDDL_ACE_ENDC ((WCHAR)')')
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif /* UNICODE */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* Separators as strings */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* SDDL_SEPERATOR is not a typo, as per Microsoft's headers */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifndef UNICODE
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define SDDL_SEPERATOR ";"
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define SDDL_DELIMINATOR ":"
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define SDDL_ACE_BEGIN "("
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define SDDL_ACE_END ")"
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#else
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# if defined(__GNUC__)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define SDDL_SEPERATOR (const WCHAR[]){ ';',0 }
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define SDDL_DELIMINATOR (const WCHAR[]){ ':',0 }
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define SDDL_ACE_BEGIN (const WCHAR[]){ '(',0 }
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define SDDL_ACE_END (const WCHAR[]){ ')',0 }
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# elif defined(_MSC_VER)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define SDDL_SEPERATOR L";"
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define SDDL_DELIMINATOR L":"
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define SDDL_ACE_BEGIN L"("
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define SDDL_ACE_END L")"
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# else
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync static const WCHAR SDDL_SEPERATOR[] = { ';',0 };
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync static const WCHAR SDDL_DELIMINATOR[] = { ':',0 };
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync static const WCHAR SDDL_ACE_BEGIN[] = { '(',0 };
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync static const WCHAR SDDL_ACE_END[] = { ')',0 };
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# endif
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif /* UNICODE */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif /* WINE_NO_UNICODE_MACROS */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncBOOL WINAPI ConvertSidToStringSidA( PSID, LPSTR* );
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncBOOL WINAPI ConvertSidToStringSidW( PSID, LPWSTR* );
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define ConvertSidToStringSid WINELIB_NAME_AW(ConvertSidToStringSid)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncBOOL WINAPI ConvertStringSidToSidA( LPCSTR, PSID* );
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncBOOL WINAPI ConvertStringSidToSidW( LPCWSTR, PSID* );
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define ConvertStringSidToSid WINELIB_NAME_AW(ConvertStringSidToSid)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncBOOL WINAPI ConvertStringSecurityDescriptorToSecurityDescriptorA(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync LPCSTR, DWORD, PSECURITY_DESCRIPTOR*, PULONG );
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncBOOL WINAPI ConvertStringSecurityDescriptorToSecurityDescriptorW(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync LPCWSTR, DWORD, PSECURITY_DESCRIPTOR*, PULONG );
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define ConvertStringSecurityDescriptorToSecurityDescriptor WINELIB_NAME_AW(ConvertStringSecurityDescriptorToSecurityDescriptor)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncBOOL WINAPI ConvertSecurityDescriptorToStringSecurityDescriptorA(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync PSECURITY_DESCRIPTOR, DWORD, SECURITY_INFORMATION, LPSTR*, PULONG );
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncBOOL WINAPI ConvertSecurityDescriptorToStringSecurityDescriptorW(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync PSECURITY_DESCRIPTOR, DWORD, SECURITY_INFORMATION, LPWSTR*, PULONG );
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define ConvertSecurityDescriptorToStringSecurityDescriptor WINELIB_NAME_AW(ConvertSecurityDescriptorToStringSecurityDescriptor)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifdef __cplusplus
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync}
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif /* __SDDL_H__ */