1 | /**
|
---|
2 | * This file has no copyright assigned and is placed in the Public Domain.
|
---|
3 | * This file is part of the mingw-w64 runtime package.
|
---|
4 | * No warranty is given; refer to the file DISCLAIMER.PD within this package.
|
---|
5 | */
|
---|
6 | #ifndef __dsclient_h
|
---|
7 | #define __dsclient_h
|
---|
8 |
|
---|
9 | #include <_mingw_unicode.h>
|
---|
10 | #include <shlobj.h>
|
---|
11 |
|
---|
12 | DEFINE_GUID(CLSID_MicrosoftDS,0xfe1290f0,0xcfbd,0x11cf,0xa3,0x30,0x0,0xaa,0x0,0xc1,0x6e,0x65);
|
---|
13 | #define CLSID_DsFolder CLSID_MicrosoftDS
|
---|
14 | DEFINE_GUID(CLSID_DsPropertyPages,0xd45d530,0x764b,0x11d0,0xa1,0xca,0x0,0xaa,0x0,0xc1,0x6e,0x65);
|
---|
15 | DEFINE_GUID(CLSID_DsDomainTreeBrowser,0x1698790a,0xe2b4,0x11d0,0xb0,0xb1,0x00,0xc0,0x4f,0xd8,0xdc,0xa6);
|
---|
16 | DEFINE_GUID(IID_IDsBrowseDomainTree,0x7cabcf1e,0x78f5,0x11d2,0x96,0xc,0x0,0xc0,0x4f,0xa3,0x1a,0x86);
|
---|
17 | DEFINE_GUID(CLSID_DsDisplaySpecifier,0x1ab4a8c0,0x6a0b,0x11d2,0xad,0x49,0x0,0xc0,0x4f,0xa3,0x1a,0x86);
|
---|
18 | #define IID_IDsDisplaySpecifier CLSID_DsDisplaySpecifier
|
---|
19 | DEFINE_GUID(CLSID_DsFolderProperties,0x9e51e0d0,0x6e0f,0x11d2,0x96,0x1,0x0,0xc0,0x4f,0xa3,0x1a,0x86);
|
---|
20 | #define IID_IDsFolderProperties CLSID_DsFolderProperties
|
---|
21 |
|
---|
22 | #ifndef GUID_DEFS_ONLY
|
---|
23 |
|
---|
24 | #include "activeds.h"
|
---|
25 |
|
---|
26 | #define DSOBJECT_ISCONTAINER 0x00000001
|
---|
27 | #define DSOBJECT_READONLYPAGES 0x80000000
|
---|
28 |
|
---|
29 | #define DSPROVIDER_UNUSED_0 0x00000001
|
---|
30 | #define DSPROVIDER_UNUSED_1 0x00000002
|
---|
31 | #define DSPROVIDER_UNUSED_2 0x00000004
|
---|
32 | #define DSPROVIDER_UNUSED_3 0x00000008
|
---|
33 | #define DSPROVIDER_ADVANCED 0x00000010
|
---|
34 |
|
---|
35 | #define CFSTR_DSOBJECTNAMES TEXT("DsObjectNames")
|
---|
36 |
|
---|
37 | typedef struct {
|
---|
38 | DWORD dwFlags;
|
---|
39 | DWORD dwProviderFlags;
|
---|
40 | DWORD offsetName;
|
---|
41 | DWORD offsetClass;
|
---|
42 | } DSOBJECT,*LPDSOBJECT;
|
---|
43 |
|
---|
44 | typedef struct {
|
---|
45 | CLSID clsidNamespace;
|
---|
46 | UINT cItems;
|
---|
47 | DSOBJECT aObjects[1];
|
---|
48 | } DSOBJECTNAMES,*LPDSOBJECTNAMES;
|
---|
49 |
|
---|
50 | #define CFSTR_DS_DISPLAY_SPEC_OPTIONS TEXT("DsDisplaySpecOptions")
|
---|
51 | #define CFSTR_DSDISPLAYSPECOPTIONS CFSTR_DS_DISPLAY_SPEC_OPTIONS
|
---|
52 |
|
---|
53 | typedef struct _DSDISPLAYSPECOPTIONS {
|
---|
54 | DWORD dwSize;
|
---|
55 | DWORD dwFlags;
|
---|
56 | DWORD offsetAttribPrefix;
|
---|
57 | DWORD offsetUserName;
|
---|
58 | DWORD offsetPassword;
|
---|
59 | DWORD offsetServer;
|
---|
60 | DWORD offsetServerConfigPath;
|
---|
61 | } DSDISPLAYSPECOPTIONS,*PDSDISPLAYSPECOPTIONS,*LPDSDISPLAYSPECOPTIONS;
|
---|
62 |
|
---|
63 | #define DS_PROP_SHELL_PREFIX L"shell"
|
---|
64 | #define DS_PROP_ADMIN_PREFIX L"admin"
|
---|
65 |
|
---|
66 | #define DSDSOF_HASUSERANDSERVERINFO 0x00000001
|
---|
67 | #define DSDSOF_SIMPLEAUTHENTICATE 0x00000002
|
---|
68 | #define DSDSOF_DONTSIGNSEAL 0x00000004
|
---|
69 | #define DSDSOF_DSAVAILABLE 0x40000000
|
---|
70 |
|
---|
71 | #define CFSTR_DSPROPERTYPAGEINFO TEXT("DsPropPageInfo")
|
---|
72 |
|
---|
73 | typedef struct {
|
---|
74 | DWORD offsetString;
|
---|
75 | } DSPROPERTYPAGEINFO,*LPDSPROPERTYPAGEINFO;
|
---|
76 |
|
---|
77 | #define DSPROP_ATTRCHANGED_MSG TEXT("DsPropAttrChanged")
|
---|
78 |
|
---|
79 | #define DBDTF_RETURNFQDN 0x00000001
|
---|
80 | #define DBDTF_RETURNMIXEDDOMAINS 0x00000002
|
---|
81 | #define DBDTF_RETURNEXTERNAL 0x00000004
|
---|
82 | #define DBDTF_RETURNINBOUND 0x00000008
|
---|
83 | #define DBDTF_RETURNINOUTBOUND 0x00000010
|
---|
84 |
|
---|
85 | typedef struct _DOMAINDESC {
|
---|
86 | LPWSTR pszName;
|
---|
87 | LPWSTR pszPath;
|
---|
88 | LPWSTR pszNCName;
|
---|
89 | LPWSTR pszTrustParent;
|
---|
90 | LPWSTR pszObjectClass;
|
---|
91 | ULONG ulFlags;
|
---|
92 | WINBOOL fDownLevel;
|
---|
93 | struct _DOMAINDESC *pdChildList;
|
---|
94 | struct _DOMAINDESC *pdNextSibling;
|
---|
95 | } DOMAIN_DESC,DOMAINDESC,*PDOMAIN_DESC,*LPDOMAINDESC;
|
---|
96 |
|
---|
97 | typedef struct {
|
---|
98 | DWORD dsSize;
|
---|
99 | DWORD dwCount;
|
---|
100 | DOMAINDESC aDomains[1];
|
---|
101 | } DOMAIN_TREE,DOMAINTREE,*PDOMAIN_TREE,*LPDOMAINTREE;
|
---|
102 |
|
---|
103 | #undef INTERFACE
|
---|
104 | #define INTERFACE IDsBrowseDomainTree
|
---|
105 | DECLARE_INTERFACE_(IDsBrowseDomainTree,IUnknown) {
|
---|
106 | STDMETHOD(QueryInterface)(THIS_ REFIID riid,LPVOID *ppvObj) PURE;
|
---|
107 | STDMETHOD_(ULONG,AddRef)(THIS) PURE;
|
---|
108 | STDMETHOD_(ULONG,Release)(THIS) PURE;
|
---|
109 | STDMETHOD(BrowseTo)(THIS_ HWND hwndParent,LPWSTR *ppszTargetPath,DWORD dwFlags) PURE;
|
---|
110 | STDMETHOD(GetDomains)(THIS_ PDOMAIN_TREE *ppDomainTree,DWORD dwFlags) PURE;
|
---|
111 | STDMETHOD(FreeDomains)(THIS_ PDOMAIN_TREE *ppDomainTree) PURE;
|
---|
112 | STDMETHOD(FlushCachedDomains)(THIS) PURE;
|
---|
113 | STDMETHOD(SetComputer)(THIS_ LPCWSTR pszComputerName,LPCWSTR pszUserName,LPCWSTR pszPassword) PURE;
|
---|
114 | };
|
---|
115 |
|
---|
116 | #define DSSSF_SIMPLEAUTHENTICATE 0x00000001
|
---|
117 | #define DSSSF_DONTSIGNSEAL 0x00000002
|
---|
118 | #define DSSSF_DSAVAILABLE 0x80000000
|
---|
119 |
|
---|
120 | #define DSGIF_ISNORMAL 0x0000000
|
---|
121 | #define DSGIF_ISOPEN 0x0000001
|
---|
122 | #define DSGIF_ISDISABLED 0x0000002
|
---|
123 | #define DSGIF_ISMASK 0x000000f
|
---|
124 | #define DSGIF_GETDEFAULTICON 0x0000010
|
---|
125 | #define DSGIF_DEFAULTISCONTAINER 0x0000020
|
---|
126 |
|
---|
127 | #define DSICCF_IGNORETREATASLEAF 0x00000001
|
---|
128 |
|
---|
129 | #define DSECAF_NOTLISTED 0x00000001
|
---|
130 |
|
---|
131 | typedef HRESULT (CALLBACK *LPDSENUMATTRIBUTES)(LPARAM lParam,LPCWSTR pszAttributeName,LPCWSTR pszDisplayName,DWORD dwFlags);
|
---|
132 |
|
---|
133 | #define DSCCIF_HASWIZARDDIALOG 0x00000001
|
---|
134 | #define DSCCIF_HASWIZARDPRIMARYPAGE 0x00000002
|
---|
135 |
|
---|
136 | typedef struct {
|
---|
137 | DWORD dwFlags;
|
---|
138 | CLSID clsidWizardDialog;
|
---|
139 | CLSID clsidWizardPrimaryPage;
|
---|
140 | DWORD cWizardExtensions;
|
---|
141 | CLSID aWizardExtensions[1];
|
---|
142 | } DSCLASSCREATIONINFO,*LPDSCLASSCREATIONINFO;
|
---|
143 |
|
---|
144 | #undef INTERFACE
|
---|
145 | #define INTERFACE IDsDisplaySpecifier
|
---|
146 | DECLARE_INTERFACE_(IDsDisplaySpecifier,IUnknown) {
|
---|
147 | STDMETHOD(QueryInterface)(THIS_ REFIID riid,LPVOID *ppvObj) PURE;
|
---|
148 | STDMETHOD_(ULONG,AddRef)(THIS) PURE;
|
---|
149 | STDMETHOD_(ULONG,Release)(THIS) PURE;
|
---|
150 | STDMETHOD(SetServer)(THIS_ LPCWSTR pszServer,LPCWSTR pszUserName,LPCWSTR pszPassword,DWORD dwFlags) PURE;
|
---|
151 | STDMETHOD(SetLanguageID)(THIS_ LANGID langid) PURE;
|
---|
152 | STDMETHOD(GetDisplaySpecifier)(THIS_ LPCWSTR pszObjectClass,REFIID riid,void **ppv) PURE;
|
---|
153 | STDMETHOD(GetIconLocation)(THIS_ LPCWSTR pszObjectClass,DWORD dwFlags,LPWSTR pszBuffer,INT cchBuffer,INT *presid) PURE;
|
---|
154 | STDMETHOD_(HICON,GetIcon)(THIS_ LPCWSTR pszObjectClass,DWORD dwFlags,INT cxIcon,INT cyIcon) PURE;
|
---|
155 | STDMETHOD(GetFriendlyClassName)(THIS_ LPCWSTR pszObjectClass,LPWSTR pszBuffer,INT cchBuffer) PURE;
|
---|
156 | STDMETHOD(GetFriendlyAttributeName)(THIS_ LPCWSTR pszObjectClass,LPCWSTR pszAttributeName,LPWSTR pszBuffer,UINT cchBuffer) PURE;
|
---|
157 | STDMETHOD_(WINBOOL,IsClassContainer)(THIS_ LPCWSTR pszObjectClass,LPCWSTR pszADsPath,DWORD dwFlags) PURE;
|
---|
158 | STDMETHOD(GetClassCreationInfo)(THIS_ LPCWSTR pszObjectClass,LPDSCLASSCREATIONINFO *ppdscci) PURE;
|
---|
159 | STDMETHOD(EnumClassAttributes)(THIS_ LPCWSTR pszObjectClass,LPDSENUMATTRIBUTES pcbEnum,LPARAM lParam) PURE;
|
---|
160 | STDMETHOD_(ADSTYPE,GetAttributeADsType)(THIS_ LPCWSTR pszAttributeName) PURE;
|
---|
161 | };
|
---|
162 |
|
---|
163 | typedef struct {
|
---|
164 | DWORD cbStruct;
|
---|
165 | HWND hwndOwner;
|
---|
166 | LPCWSTR pszCaption;
|
---|
167 | LPCWSTR pszTitle;
|
---|
168 | LPCWSTR pszRoot;
|
---|
169 | LPWSTR pszPath;
|
---|
170 | ULONG cchPath;
|
---|
171 | DWORD dwFlags;
|
---|
172 | BFFCALLBACK pfnCallback;
|
---|
173 | LPARAM lParam;
|
---|
174 | DWORD dwReturnFormat;
|
---|
175 | LPCWSTR pUserName;
|
---|
176 | LPCWSTR pPassword;
|
---|
177 | LPWSTR pszObjectClass;
|
---|
178 | ULONG cchObjectClass;
|
---|
179 | } DSBROWSEINFOW,*PDSBROWSEINFOW;
|
---|
180 |
|
---|
181 | typedef struct {
|
---|
182 | DWORD cbStruct;
|
---|
183 | HWND hwndOwner;
|
---|
184 | LPCSTR pszCaption;
|
---|
185 | LPCSTR pszTitle;
|
---|
186 | LPCWSTR pszRoot;
|
---|
187 | LPWSTR pszPath;
|
---|
188 | ULONG cchPath;
|
---|
189 | DWORD dwFlags;
|
---|
190 | BFFCALLBACK pfnCallback;
|
---|
191 | LPARAM lParam;
|
---|
192 | DWORD dwReturnFormat;
|
---|
193 | LPCWSTR pUserName;
|
---|
194 | LPCWSTR pPassword;
|
---|
195 | LPWSTR pszObjectClass;
|
---|
196 | ULONG cchObjectClass;
|
---|
197 | } DSBROWSEINFOA,*PDSBROWSEINFOA;
|
---|
198 |
|
---|
199 | #define DSBROWSEINFO __MINGW_NAME_AW(DSBROWSEINFO)
|
---|
200 | #define PDSBROWSEINFO __MINGW_NAME_AW(PDSBROWSEINFO)
|
---|
201 |
|
---|
202 | #define DSBI_NOBUTTONS 0x00000001
|
---|
203 | #define DSBI_NOLINES 0x00000002
|
---|
204 | #define DSBI_NOLINESATROOT 0x00000004
|
---|
205 | #define DSBI_CHECKBOXES 0x00000100
|
---|
206 | #define DSBI_NOROOT 0x00010000
|
---|
207 | #define DSBI_INCLUDEHIDDEN 0x00020000
|
---|
208 | #define DSBI_EXPANDONOPEN 0x00040000
|
---|
209 | #define DSBI_ENTIREDIRECTORY 0x00090000
|
---|
210 | #define DSBI_RETURN_FORMAT 0x00100000
|
---|
211 | #define DSBI_HASCREDENTIALS 0x00200000
|
---|
212 | #define DSBI_IGNORETREATASLEAF 0x00400000
|
---|
213 | #define DSBI_SIMPLEAUTHENTICATE 0x00800000
|
---|
214 | #define DSBI_RETURNOBJECTCLASS 0x01000000
|
---|
215 | #define DSBI_DONTSIGNSEAL 0x02000000
|
---|
216 |
|
---|
217 | #define DSB_MAX_DISPLAYNAME_CHARS 64
|
---|
218 |
|
---|
219 | typedef struct {
|
---|
220 | DWORD cbStruct;
|
---|
221 | LPCWSTR pszADsPath;
|
---|
222 | LPCWSTR pszClass;
|
---|
223 | DWORD dwMask;
|
---|
224 | DWORD dwState;
|
---|
225 | DWORD dwStateMask;
|
---|
226 | WCHAR szDisplayName[DSB_MAX_DISPLAYNAME_CHARS];
|
---|
227 | WCHAR szIconLocation[MAX_PATH];
|
---|
228 | INT iIconResID;
|
---|
229 | } DSBITEMW,*PDSBITEMW;
|
---|
230 |
|
---|
231 | typedef struct {
|
---|
232 | DWORD cbStruct;
|
---|
233 | LPCWSTR pszADsPath;
|
---|
234 | LPCWSTR pszClass;
|
---|
235 | DWORD dwMask;
|
---|
236 | DWORD dwState;
|
---|
237 | DWORD dwStateMask;
|
---|
238 | CHAR szDisplayName[DSB_MAX_DISPLAYNAME_CHARS];
|
---|
239 | CHAR szIconLocation[MAX_PATH];
|
---|
240 | INT iIconResID;
|
---|
241 | } DSBITEMA,*PDSBITEMA;
|
---|
242 |
|
---|
243 | #define DSBITEM __MINGW_NAME_AW(DSBITEM)
|
---|
244 | #define PDSBITEM __MINGW_NAME_AW(PDSBITEM)
|
---|
245 |
|
---|
246 | #define DSBF_STATE 0x00000001
|
---|
247 | #define DSBF_ICONLOCATION 0x00000002
|
---|
248 | #define DSBF_DISPLAYNAME 0x00000004
|
---|
249 |
|
---|
250 | #define DSBS_CHECKED 0x00000001
|
---|
251 | #define DSBS_HIDDEN 0x00000002
|
---|
252 | #define DSBS_ROOT 0x00000004
|
---|
253 |
|
---|
254 | #define DSBM_QUERYINSERTW 100
|
---|
255 | #define DSBM_QUERYINSERTA 101
|
---|
256 |
|
---|
257 | #define DSBM_QUERYINSERT __MINGW_NAME_AW(DSBM_QUERYINSERT)
|
---|
258 |
|
---|
259 | #define DSBM_CHANGEIMAGESTATE 102
|
---|
260 | #define DSBM_HELP 103
|
---|
261 | #define DSBM_CONTEXTMENU 104
|
---|
262 |
|
---|
263 | #define DSBID_BANNER 256
|
---|
264 | #define DSBID_CONTAINERLIST 257
|
---|
265 |
|
---|
266 | STDAPI_(int) DsBrowseForContainerW(PDSBROWSEINFOW pInfo);
|
---|
267 | STDAPI_(int) DsBrowseForContainerA(PDSBROWSEINFOA pInfo);
|
---|
268 |
|
---|
269 | #define DsBrowseForContainer __MINGW_NAME_AW(DsBrowseForContainer)
|
---|
270 |
|
---|
271 | STDAPI_(HICON) DsGetIcon(DWORD dwFlags,LPWSTR pszObjectClass,INT cxImage,INT cyImage);
|
---|
272 | STDAPI DsGetFriendlyClassName(LPWSTR pszObjectClass,LPWSTR pszBuffer,UINT cchBuffer);
|
---|
273 | #endif
|
---|
274 | #endif
|
---|