wine/include/sddl.h

121 lines
4.1 KiB
C

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