setupapi: Implement SetupDiGetINFClassA on top of SetupDiGetINFClassW.
[wine] / include / sddl.h
1 /*
2  * Copyright (C) 2003 Ulrich Czekalla for CodeWeavers
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17  */
18 #ifndef __SDDL_H__
19 #define __SDDL_H__
20
21 #ifdef __cplusplus
22 extern "C" {
23 #endif
24
25 /* Versioning */
26 #define SDDL_REVISION_1 1
27 #define SDDL_REVISION   SDDL_REVISION_1
28
29 #ifndef __WINESRC__
30 /* Component tags */
31 #ifndef UNICODE
32 # define SDDL_OWNER "O"
33 # define SDDL_GROUP "G"
34 # define SDDL_DACL  "D"
35 # define SDDL_SACL  "S"
36 #else
37 # if defined(__GNUC__)
38 #  define SDDL_OWNER (const WCHAR[]){ 'O',0 }
39 #  define SDDL_GROUP (const WCHAR[]){ 'G',0 }
40 #  define SDDL_DACL  (const WCHAR[]){ 'D',0 }
41 #  define SDDL_SACL  (const WCHAR[]){ 'S',0 }
42 # elif defined(_MSC_VER)
43 #  define SDDL_OWNER L"O"
44 #  define SDDL_GROUP L"G"
45 #  define SDDL_DACL  L"D"
46 #  define SDDL_SACL  L"S"
47 # else
48    static const WCHAR SDDL_OWNER[] = { 'O',0 };
49    static const WCHAR SDDL_GROUP[] = { 'G',0 };
50    static const WCHAR SDDL_DACL[]  = { 'D',0 };
51    static const WCHAR SDDL_SACL[]  = { 'S',0 };
52 # endif
53 #endif /* UNICODE */
54
55 /* Separators as characters */
56 /* SDDL_SEPERATORC is not a typo, as per Microsoft's headers */
57 #ifndef UNICODE
58 # define SDDL_SEPERATORC   ';'
59 # define SDDL_DELIMINATORC ':'
60 # define SDDL_ACE_BEGINC   '('
61 # define SDDL_ACE_ENDC     ')'
62 #else
63 # define SDDL_SEPERATORC   ((WCHAR)';')
64 # define SDDL_DELIMINATORC ((WCHAR)':')
65 # define SDDL_ACE_BEGINC   ((WCHAR)'(')
66 # define SDDL_ACE_ENDC     ((WCHAR)')')
67 #endif /* UNICODE */
68
69 /* Separators as strings */
70 /* SDDL_SEPERATOR is not a typo, as per Microsoft's headers */
71 #ifndef UNICODE
72 # define SDDL_SEPERATOR   ";"
73 # define SDDL_DELIMINATOR ":"
74 # define SDDL_ACE_BEGIN   "("
75 # define SDDL_ACE_END     ")"
76 #else
77 # if defined(__GNUC__)
78 #  define SDDL_SEPERATOR   (const WCHAR[]){ ';',0 }
79 #  define SDDL_DELIMINATOR (const WCHAR[]){ ':',0 }
80 #  define SDDL_ACE_BEGIN   (const WCHAR[]){ '(',0 }
81 #  define SDDL_ACE_END     (const WCHAR[]){ ')',0 }
82 # elif defined(_MSC_VER)
83 #  define SDDL_SEPERATOR   L";"
84 #  define SDDL_DELIMINATOR L":"
85 #  define SDDL_ACE_BEGIN   L"("
86 #  define SDDL_ACE_END     L")"
87 # else
88    static const WCHAR SDDL_SEPERATOR[]   = { ';',0 };
89    static const WCHAR SDDL_DELIMINATOR[] = { ':',0 };
90    static const WCHAR SDDL_ACE_BEGIN[]   = { '(',0 };
91    static const WCHAR SDDL_ACE_END[]     = { ')',0 };
92 # endif
93 #endif /* UNICODE */
94 #endif /* __WINESRC__ */
95
96 BOOL WINAPI ConvertSidToStringSidA( PSID, LPSTR* );
97 BOOL WINAPI ConvertSidToStringSidW( PSID, LPWSTR* );
98 #define ConvertSidToStringSid WINELIB_NAME_AW(ConvertSidToStringSid)
99
100 BOOL WINAPI ConvertStringSidToSidA( LPCSTR, PSID* );
101 BOOL WINAPI ConvertStringSidToSidW( LPCWSTR, PSID* );
102 #define ConvertStringSidToSid WINELIB_NAME_AW(ConvertStringSidToSid)
103
104 BOOL WINAPI ConvertStringSecurityDescriptorToSecurityDescriptorA(
105     LPCSTR, DWORD, PSECURITY_DESCRIPTOR*, PULONG );
106 BOOL WINAPI ConvertStringSecurityDescriptorToSecurityDescriptorW(
107     LPCWSTR, DWORD, PSECURITY_DESCRIPTOR*, PULONG );
108 #define ConvertStringSecurityDescriptorToSecurityDescriptor WINELIB_NAME_AW(ConvertStringSecurityDescriptorToSecurityDescriptor)
109
110 BOOL WINAPI ConvertSecurityDescriptorToStringSecurityDescriptorA(
111     PSECURITY_DESCRIPTOR, DWORD, SECURITY_INFORMATION, LPSTR*, PULONG );
112 BOOL WINAPI ConvertSecurityDescriptorToStringSecurityDescriptorW(
113     PSECURITY_DESCRIPTOR, DWORD, SECURITY_INFORMATION, LPWSTR*, PULONG );
114 #define ConvertSecurityDescriptorToStringSecurityDescriptor WINELIB_NAME_AW(ConvertSecurityDescriptorToStringSecurityDescriptor)
115
116 #ifdef __cplusplus
117 }
118 #endif
119
120 #endif  /* __SDDL_H__ */