OSDN Git Service

Redo the filters based on assumptions discussed in mingw-dvlpr list.
[mingw/mingw-org-wsl.git] / include / dsclient.h
1 /**
2  * @file dsclient.h
3  * @copy 2012 MinGW.org project
4  *
5  * Permission is hereby granted, free of charge, to any person obtaining a
6  * copy of this software and associated documentation files (the "Software"),
7  * to deal in the Software without restriction, including without limitation
8  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9  * and/or sell copies of the Software, and to permit persons to whom the
10  * Software is furnished to do so, subject to the following conditions:
11  * 
12  * The above copyright notice and this permission notice (including the next
13  * paragraph) shall be included in all copies or substantial portions of the
14  * Software.
15  * 
16  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22  * DEALINGS IN THE SOFTWARE.
23  */
24 #ifndef _DSCLIENT_H
25 #define _DSCLIENT_H
26 #pragma GCC system_header
27
28 #ifdef __cplusplus
29 extern "C" {
30 #endif
31
32 #if (_WIN32_WINNT >= 0x0500)
33 /*--- Active Directory Reference - Active Directory Functions - Active Directory Display Functions - BFFCallBack */
34 #define DSBM_QUERYINSERTW 0x0064
35 #define DSBM_QUERYINSERTA 0x0065
36 #define DSBM_CHANGEIMAGESTATE 0x0066
37 #define DSBM_HELP 0x0067
38 #define DSBM_CONTEXTMENU 0x0068
39 #ifdef UNICODE
40 #define DSBM_QUERYINSERT DSBM_QUERYINSERTW
41 #else
42 #define DSBM_QUERYINSERT DSBM_QUERYINSERTA
43 #endif
44 /*--- Active Directory Reference - Active Directory Structures - Active Directory Display Structures */
45 typedef struct _DOMAINDESC {
46         LPWSTR pszName;
47         LPWSTR pszPath;
48         LPWSTR pszNCName;
49         LPWSTR pszTrustParent;
50         LPWSTR pszObjectClass;
51         ULONG ulFlags;
52         BOOL fDownLevel;
53         struct _DOMAINDESC* pdChildList;
54         struct _DOMAINDESC* pdNextSibling;
55 } DOMAIN_DESC,DOMAINDESC,*PDOMAIN_DESC,*LPDOMAINDESC;
56 typedef struct {
57         DWORD dsSize;
58         DWORD dwCount;
59         DOMAINDESC aDomains[1];
60 } DOMAINTREE,DOMAIN_TREE,*PDOMAIN_TREE,*LPDOMAINTREE;
61 #define DSB_MAX_DISPLAYNAME_CHARS 64
62 typedef struct {
63         DWORD cbStruct;
64         LPCWSTR pszADsPath;
65         LPCWSTR pszClass;
66         DWORD dwMask;
67         DWORD dwState;
68         DWORD dwStateMask;
69         CHAR szDisplayName[DSB_MAX_DISPLAYNAME_CHARS];
70         CHAR szIconLocation[MAX_PATH];
71         INT iIconResID;
72 } DSBITEMA,*PDSBITEMA;
73 typedef struct {
74         DWORD cbStruct;
75         LPCWSTR pszADsPath;
76         LPCWSTR pszClass;
77         DWORD dwMask;
78         DWORD dwState;
79         DWORD dwStateMask;
80         CHAR szDisplayName[DSB_MAX_DISPLAYNAME_CHARS];
81         CHAR szIconLocation[MAX_PATH];
82         INT iIconResID;
83 } DSBITEMW,*PDSBITEMW;
84 #define DSBF_STATE 0x00000001
85 #define DSBF_ICONLOCATION 0x00000002
86 #define DSBF_DISPLAYNAME 0x00000004
87 #define DSBS_CHECKED 0x00000001
88 #define DSBS_HIDDEN 0x00000002
89 #define DSBS_ROOT 0x00000004
90 typedef struct {
91         DWORD cbStruct;
92         HWND hwndOwner;
93         LPCSTR pszCaption;
94         LPCSTR pszTitle;
95         LPCWSTR pszRoot;
96         LPWSTR pszPath;
97         ULONG cchPath;
98         DWORD dwFlags;
99         BFFCALLBACK pfnCallback;
100         LPARAM lParam;
101         DWORD dwReturnFormat;
102         LPCWSTR pUserName;
103         LPCWSTR pPassword;
104         LPWSTR pszObjectClass;
105         ULONG cchObjectClass;
106 } DSBROWSEINFOA,*PDSBROWSEINFOA;
107 typedef struct {
108         DWORD cbStruct;
109         HWND hwndOwner;
110         LPCWSTR pszCaption;
111         LPCWSTR pszTitle;
112         LPCWSTR pszRoot;
113         LPWSTR pszPath;
114         ULONG cchPath;
115         DWORD dwFlags;
116         BFFCALLBACK pfnCallback;
117         LPARAM lParam;
118         DWORD dwReturnFormat;
119         LPCWSTR pUserName;
120         LPCWSTR pPassword;
121         LPWSTR pszObjectClass;
122         ULONG cchObjectClass;
123 } DSBROWSEINFOW,*PDSBROWSEINFOW;
124 #define DSBI_NOBUTTONS 0x00000001
125 #define DSBI_NOLINES 0x00000002
126 #define DSBI_NOLINESATROOT 0x00000004
127 #define DSBI_CHECKBOXES 0x00000100
128 #define DSBI_NOROOT 0x00010000
129 #define DSBI_INCLUDEHIDDEN 0x00020000
130 #define DSBI_EXPANDONOPEN 0x00040000
131 #define DSBI_ENTIREDIRECTORY 0x00090000
132 #define DSBI_RETURN_FORMAT 0x00100000
133 #define DSBI_HASCREDENTIALS 0x00200000
134 #define DSBI_IGNORETREATASLEAF 0x00400000
135 #define DSBI_SIMPLEAUTHENTICATE 0x00800000
136 #define DSBI_RETURNOBJECTCLASS 0x01000000
137 #define DSBI_DONTSIGNSEAL 0x02000000
138 typedef struct {
139         DWORD dwFlags;
140         CLSID clsidWizardDialog;
141         CLSID clsidWizardPrimaryPage;
142         DWORD cWizardExtensions;
143         CLSID aWizardExtensions[1];
144 } DSCLASSCREATIONINFO,*LPDSCLASSCREATIONINFO;
145 #define DSCCIF_HASWIZARDDIALOG 0x00000001
146 #define DSCCIF_HASWIZARDPRIMARYPAGE 0x00000002
147 typedef struct _DSDISPLAYSPECOPTIONS {
148         DWORD dwSize;
149         DWORD dwFlags;
150         DWORD offsetAttribPrefix;
151         DWORD offsetUserName;
152         DWORD offsetPassword;
153         DWORD offsetServer;
154         DWORD offsetServerConfigPath;
155 } DSDISPLAYSPECOPTIONS,*PDSDISPLAYSPECOPTIONS,*LPDSDISPLAYSPECOPTIONS;
156 #define DSDSOF_HASUSERANDSERVERINFO 0x00000001
157 #define DSDSOF_SIMPLEAUTHENTICATE 0x00000002
158 #define DSDSOF_DONTSIGNSEAL 0x00000004
159 #define DSDSOF_DSAVAILABLE 0x40000000
160 typedef struct {
161         DWORD dwFlags;
162         DWORD dwProviderFlags;
163         DWORD offsetName;
164         DWORD offsetClass;
165 } DSOBJECT,*LPDSOBJECT;
166 #define DSOBJECT_ISCONTAINER 0x00000001
167 #define DSOBJECT_READONLYPAGES 0x80000000
168 #define DSPROVIDER_UNUSED_0 0x00000001
169 #define DSPROVIDER_UNUSED_1 0x00000002
170 #define DSPROVIDER_UNUSED_2 0x00000004
171 #define DSPROVIDER_UNUSED_3 0x00000008
172 #define DSPROVIDER_ADVANCED 0x00000010
173 typedef struct {
174         CLSID clsidNamespace;
175         UINT cItems;
176         DSOBJECT aObjects[1];
177 } DSOBJECTNAMES,*LPDSOBJECTNAMES;
178 typedef struct {
179         DWORD offsetString;
180 } DSPROPERTYPAGEINFO,*LPDSPROPERTYPAGEINFO;
181 #ifdef UNICODE
182 typedef DSBITEMW DSBITEM,*PDSBITEM;
183 typedef DSBROWSEINFOW DSBROWSEINFO,*PDSBROWSEINFO;
184 #else
185 typedef DSBITEMA DSBITEM,*PDSBITEM;
186 typedef DSBROWSEINFOA DSBROWSEINFO,*PDSBROWSEINFO;
187 #endif
188 #endif /* (_WIN32_WINNT >= 0x0500) */
189
190 #ifdef __cplusplus
191 }
192 #endif
193 #endif