OSDN Git Service

Prepare environment for Earnie's tools.
[mingw/mingw-org-wsl.git] / w32api / include / dsclient.h
1 /*
2  * dsclient.h - Active Directory
3  *
4  * THIS SOFTWARE IS NOT COPYRIGHTED
5  *
6  * This source code is offered for use in the public domain.  You may use,
7  * modify or distribute it freely.
8  *
9  * This code is distributed in the hope that it will be useful but
10  * WITHOUT ANY WARRANTY.  ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
11  * DISCLAIMED.  This includes but is not limited to warranties of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
13  *
14  */
15 #ifndef _DSCLIENT_H
16 #define _DSCLIENT_H
17 #if __GNUC__ >= 3
18 #pragma GCC system_header
19 #endif
20
21 #ifdef __cplusplus
22 extern "C" {
23 #endif
24
25 #if (_WIN32_WINNT >= 0x0500)
26 /*--- Active Directory Reference - Active Directory Functions - Active Directory Display Functions - BFFCallBack */
27 #define DSBM_QUERYINSERTW 0x0064
28 #define DSBM_QUERYINSERTA 0x0065
29 #define DSBM_CHANGEIMAGESTATE 0x0066
30 #define DSBM_HELP 0x0067
31 #define DSBM_CONTEXTMENU 0x0068
32 #ifdef UNICODE
33 #define DSBM_QUERYINSERT DSBM_QUERYINSERTW
34 #else
35 #define DSBM_QUERYINSERT DSBM_QUERYINSERTA
36 #endif
37 /*--- Active Directory Reference - Active Directory Structures - Active Directory Display Structures */
38 typedef struct _DOMAINDESC {
39         LPWSTR pszName;
40         LPWSTR pszPath;
41         LPWSTR pszNCName;
42         LPWSTR pszTrustParent;
43         LPWSTR pszObjectClass;
44         ULONG ulFlags;
45         BOOL fDownLevel;
46         struct _DOMAINDESC* pdChildList;
47         struct _DOMAINDESC* pdNextSibling;
48 } DOMAIN_DESC,DOMAINDESC,*PDOMAIN_DESC,*LPDOMAINDESC;
49 typedef struct {
50         DWORD dsSize;
51         DWORD dwCount;
52         DOMAINDESC aDomains[1];
53 } DOMAINTREE,DOMAIN_TREE,*PDOMAIN_TREE,*LPDOMAINTREE;
54 #define DSB_MAX_DISPLAYNAME_CHARS 64
55 typedef struct {
56         DWORD cbStruct;
57         LPCWSTR pszADsPath;
58         LPCWSTR pszClass;
59         DWORD dwMask;
60         DWORD dwState;
61         DWORD dwStateMask;
62         CHAR szDisplayName[DSB_MAX_DISPLAYNAME_CHARS];
63         CHAR szIconLocation[MAX_PATH];
64         INT iIconResID;
65 } DSBITEMA,*PDSBITEMA;
66 typedef struct {
67         DWORD cbStruct;
68         LPCWSTR pszADsPath;
69         LPCWSTR pszClass;
70         DWORD dwMask;
71         DWORD dwState;
72         DWORD dwStateMask;
73         CHAR szDisplayName[DSB_MAX_DISPLAYNAME_CHARS];
74         CHAR szIconLocation[MAX_PATH];
75         INT iIconResID;
76 } DSBITEMW,*PDSBITEMW;
77 #define DSBF_STATE 0x00000001
78 #define DSBF_ICONLOCATION 0x00000002
79 #define DSBF_DISPLAYNAME 0x00000004
80 #define DSBS_CHECKED 0x00000001
81 #define DSBS_HIDDEN 0x00000002
82 #define DSBS_ROOT 0x00000004
83 typedef struct {
84         DWORD cbStruct;
85         HWND hwndOwner;
86         LPCSTR pszCaption;
87         LPCSTR pszTitle;
88         LPCWSTR pszRoot;
89         LPWSTR pszPath;
90         ULONG cchPath;
91         DWORD dwFlags;
92         BFFCALLBACK pfnCallback;
93         LPARAM lParam;
94         DWORD dwReturnFormat;
95         LPCWSTR pUserName;
96         LPCWSTR pPassword;
97         LPWSTR pszObjectClass;
98         ULONG cchObjectClass;
99 } DSBROWSEINFOA,*PDSBROWSEINFOA;
100 typedef struct {
101         DWORD cbStruct;
102         HWND hwndOwner;
103         LPCWSTR pszCaption;
104         LPCWSTR pszTitle;
105         LPCWSTR pszRoot;
106         LPWSTR pszPath;
107         ULONG cchPath;
108         DWORD dwFlags;
109         BFFCALLBACK pfnCallback;
110         LPARAM lParam;
111         DWORD dwReturnFormat;
112         LPCWSTR pUserName;
113         LPCWSTR pPassword;
114         LPWSTR pszObjectClass;
115         ULONG cchObjectClass;
116 } DSBROWSEINFOW,*PDSBROWSEINFOW;
117 #define DSBI_NOBUTTONS 0x00000001
118 #define DSBI_NOLINES 0x00000002
119 #define DSBI_NOLINESATROOT 0x00000004
120 #define DSBI_CHECKBOXES 0x00000100
121 #define DSBI_NOROOT 0x00010000
122 #define DSBI_INCLUDEHIDDEN 0x00020000
123 #define DSBI_EXPANDONOPEN 0x00040000
124 #define DSBI_ENTIREDIRECTORY 0x00090000
125 #define DSBI_RETURN_FORMAT 0x00100000
126 #define DSBI_HASCREDENTIALS 0x00200000
127 #define DSBI_IGNORETREATASLEAF 0x00400000
128 #define DSBI_SIMPLEAUTHENTICATE 0x00800000
129 #define DSBI_RETURNOBJECTCLASS 0x01000000
130 #define DSBI_DONTSIGNSEAL 0x02000000
131 typedef struct {
132         DWORD dwFlags;
133         CLSID clsidWizardDialog;
134         CLSID clsidWizardPrimaryPage;
135         DWORD cWizardExtensions;
136         CLSID aWizardExtensions[1];
137 } DSCLASSCREATIONINFO,*LPDSCLASSCREATIONINFO;
138 #define DSCCIF_HASWIZARDDIALOG 0x00000001
139 #define DSCCIF_HASWIZARDPRIMARYPAGE 0x00000002
140 typedef struct _DSDISPLAYSPECOPTIONS {
141         DWORD dwSize;
142         DWORD dwFlags;
143         DWORD offsetAttribPrefix;
144         DWORD offsetUserName;
145         DWORD offsetPassword;
146         DWORD offsetServer;
147         DWORD offsetServerConfigPath;
148 } DSDISPLAYSPECOPTIONS,*PDSDISPLAYSPECOPTIONS,*LPDSDISPLAYSPECOPTIONS;
149 #define DSDSOF_HASUSERANDSERVERINFO 0x00000001
150 #define DSDSOF_SIMPLEAUTHENTICATE 0x00000002
151 #define DSDSOF_DONTSIGNSEAL 0x00000004
152 #define DSDSOF_DSAVAILABLE 0x40000000
153 typedef struct {
154         DWORD dwFlags;
155         DWORD dwProviderFlags;
156         DWORD offsetName;
157         DWORD offsetClass;
158 } DSOBJECT,*LPDSOBJECT;
159 #define DSOBJECT_ISCONTAINER 0x00000001
160 #define DSOBJECT_READONLYPAGES 0x80000000
161 #define DSPROVIDER_UNUSED_0 0x00000001
162 #define DSPROVIDER_UNUSED_1 0x00000002
163 #define DSPROVIDER_UNUSED_2 0x00000004
164 #define DSPROVIDER_UNUSED_3 0x00000008
165 #define DSPROVIDER_ADVANCED 0x00000010
166 typedef struct {
167         CLSID clsidNamespace;
168         UINT cItems;
169         DSOBJECT aObjects[1];
170 } DSOBJECTNAMES,*LPDSOBJECTNAMES;
171 typedef struct {
172         DWORD offsetString;
173 } DSPROPERTYPAGEINFO,*LPDSPROPERTYPAGEINFO;
174 #ifdef UNICODE
175 typedef DSBITEMW DSBITEM,*PDSBITEM;
176 typedef DSBROWSEINFOW DSBROWSEINFO,*PDSBROWSEINFO;
177 #else
178 typedef DSBITEMA DSBITEM,*PDSBITEM;
179 typedef DSBROWSEINFOA DSBROWSEINFO,*PDSBROWSEINFO;
180 #endif
181 #endif /* (_WIN32_WINNT >= 0x0500) */
182
183 #ifdef __cplusplus
184 }
185 #endif
186 #endif