187 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			187 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			C
		
	
	
	
/*
 | 
						|
 * dsclient.h - Active Directory
 | 
						|
 *
 | 
						|
 * THIS SOFTWARE IS NOT COPYRIGHTED
 | 
						|
 *
 | 
						|
 * This source code is offered for use in the public domain.  You may use,
 | 
						|
 * modify or distribute it freely.
 | 
						|
 *
 | 
						|
 * This code is distributed in the hope that it will be useful but
 | 
						|
 * WITHOUT ANY WARRANTY.  ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
 | 
						|
 * DISCLAIMED.  This includes but is not limited to warranties of
 | 
						|
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 | 
						|
 *
 | 
						|
 */
 | 
						|
#ifndef _DSCLIENT_H
 | 
						|
#define _DSCLIENT_H
 | 
						|
#if __GNUC__ >= 3
 | 
						|
#pragma GCC system_header
 | 
						|
#endif
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
extern "C" {
 | 
						|
#endif
 | 
						|
 | 
						|
#if (_WIN32_WINNT >= 0x0500)
 | 
						|
/*--- Active Directory Reference - Active Directory Functions - Active Directory Display Functions - BFFCallBack */
 | 
						|
#define DSBM_QUERYINSERTW 0x0064
 | 
						|
#define DSBM_QUERYINSERTA 0x0065
 | 
						|
#define DSBM_CHANGEIMAGESTATE 0x0066
 | 
						|
#define DSBM_HELP 0x0067
 | 
						|
#define DSBM_CONTEXTMENU 0x0068
 | 
						|
#ifdef UNICODE
 | 
						|
#define DSBM_QUERYINSERT DSBM_QUERYINSERTW
 | 
						|
#else
 | 
						|
#define DSBM_QUERYINSERT DSBM_QUERYINSERTA
 | 
						|
#endif
 | 
						|
/*--- Active Directory Reference - Active Directory Structures - Active Directory Display Structures */
 | 
						|
typedef struct _DOMAINDESC {
 | 
						|
	LPWSTR pszName;
 | 
						|
	LPWSTR pszPath;
 | 
						|
	LPWSTR pszNCName;
 | 
						|
	LPWSTR pszTrustParent;
 | 
						|
	LPWSTR pszObjectClass;
 | 
						|
	ULONG ulFlags;
 | 
						|
	BOOL fDownLevel;
 | 
						|
	struct _DOMAINDESC* pdChildList;
 | 
						|
	struct _DOMAINDESC* pdNextSibling;
 | 
						|
} DOMAIN_DESC,DOMAINDESC,*PDOMAIN_DESC,*LPDOMAINDESC;
 | 
						|
typedef struct {
 | 
						|
	DWORD dsSize;
 | 
						|
	DWORD dwCount;
 | 
						|
	DOMAINDESC aDomains[1];
 | 
						|
} DOMAINTREE,DOMAIN_TREE,*PDOMAIN_TREE,*LPDOMAINTREE;
 | 
						|
#define DSB_MAX_DISPLAYNAME_CHARS 64
 | 
						|
typedef struct {
 | 
						|
	DWORD cbStruct;
 | 
						|
	LPCWSTR pszADsPath;
 | 
						|
	LPCWSTR pszClass;
 | 
						|
	DWORD dwMask;
 | 
						|
	DWORD dwState;
 | 
						|
	DWORD dwStateMask;
 | 
						|
	CHAR szDisplayName[DSB_MAX_DISPLAYNAME_CHARS];
 | 
						|
	CHAR szIconLocation[MAX_PATH];
 | 
						|
	INT iIconResID;
 | 
						|
} DSBITEMA,*PDSBITEMA;
 | 
						|
typedef struct {
 | 
						|
	DWORD cbStruct;
 | 
						|
	LPCWSTR pszADsPath;
 | 
						|
	LPCWSTR pszClass;
 | 
						|
	DWORD dwMask;
 | 
						|
	DWORD dwState;
 | 
						|
	DWORD dwStateMask;
 | 
						|
	CHAR szDisplayName[DSB_MAX_DISPLAYNAME_CHARS];
 | 
						|
	CHAR szIconLocation[MAX_PATH];
 | 
						|
	INT iIconResID;
 | 
						|
} DSBITEMW,*PDSBITEMW;
 | 
						|
#define DSBF_STATE 0x00000001
 | 
						|
#define DSBF_ICONLOCATION 0x00000002
 | 
						|
#define DSBF_DISPLAYNAME 0x00000004
 | 
						|
#define DSBS_CHECKED 0x00000001
 | 
						|
#define DSBS_HIDDEN 0x00000002
 | 
						|
#define DSBS_ROOT 0x00000004
 | 
						|
typedef struct {
 | 
						|
	DWORD cbStruct;
 | 
						|
	HWND hwndOwner;
 | 
						|
	LPCSTR pszCaption;
 | 
						|
	LPCSTR pszTitle;
 | 
						|
	LPCWSTR pszRoot;
 | 
						|
	LPWSTR pszPath;
 | 
						|
	ULONG cchPath;
 | 
						|
	DWORD dwFlags;
 | 
						|
	BFFCALLBACK pfnCallback;
 | 
						|
	LPARAM lParam;
 | 
						|
	DWORD dwReturnFormat;
 | 
						|
	LPCWSTR pUserName;
 | 
						|
	LPCWSTR pPassword;
 | 
						|
	LPWSTR pszObjectClass;
 | 
						|
	ULONG cchObjectClass;
 | 
						|
} DSBROWSEINFOA,*PDSBROWSEINFOA;
 | 
						|
typedef struct {
 | 
						|
	DWORD cbStruct;
 | 
						|
	HWND hwndOwner;
 | 
						|
	LPCWSTR pszCaption;
 | 
						|
	LPCWSTR pszTitle;
 | 
						|
	LPCWSTR pszRoot;
 | 
						|
	LPWSTR pszPath;
 | 
						|
	ULONG cchPath;
 | 
						|
	DWORD dwFlags;
 | 
						|
	BFFCALLBACK pfnCallback;
 | 
						|
	LPARAM lParam;
 | 
						|
	DWORD dwReturnFormat;
 | 
						|
	LPCWSTR pUserName;
 | 
						|
	LPCWSTR pPassword;
 | 
						|
	LPWSTR pszObjectClass;
 | 
						|
	ULONG cchObjectClass;
 | 
						|
} DSBROWSEINFOW,*PDSBROWSEINFOW;
 | 
						|
#define DSBI_NOBUTTONS 0x00000001
 | 
						|
#define DSBI_NOLINES 0x00000002
 | 
						|
#define DSBI_NOLINESATROOT 0x00000004
 | 
						|
#define DSBI_CHECKBOXES 0x00000100
 | 
						|
#define DSBI_NOROOT 0x00010000
 | 
						|
#define DSBI_INCLUDEHIDDEN 0x00020000
 | 
						|
#define DSBI_EXPANDONOPEN 0x00040000
 | 
						|
#define DSBI_ENTIREDIRECTORY 0x00090000
 | 
						|
#define DSBI_RETURN_FORMAT 0x00100000
 | 
						|
#define DSBI_HASCREDENTIALS 0x00200000
 | 
						|
#define DSBI_IGNORETREATASLEAF 0x00400000
 | 
						|
#define DSBI_SIMPLEAUTHENTICATE 0x00800000
 | 
						|
#define DSBI_RETURNOBJECTCLASS 0x01000000
 | 
						|
#define DSBI_DONTSIGNSEAL 0x02000000
 | 
						|
typedef struct {
 | 
						|
	DWORD dwFlags;
 | 
						|
	CLSID clsidWizardDialog;
 | 
						|
	CLSID clsidWizardPrimaryPage;
 | 
						|
	DWORD cWizardExtensions;
 | 
						|
	CLSID aWizardExtensions[1];
 | 
						|
} DSCLASSCREATIONINFO,*LPDSCLASSCREATIONINFO;
 | 
						|
#define DSCCIF_HASWIZARDDIALOG 0x00000001
 | 
						|
#define DSCCIF_HASWIZARDPRIMARYPAGE 0x00000002
 | 
						|
typedef struct _DSDISPLAYSPECOPTIONS {
 | 
						|
	DWORD dwSize;
 | 
						|
	DWORD dwFlags;
 | 
						|
	DWORD offsetAttribPrefix;
 | 
						|
	DWORD offsetUserName;
 | 
						|
	DWORD offsetPassword;
 | 
						|
	DWORD offsetServer;
 | 
						|
	DWORD offsetServerConfigPath;
 | 
						|
} DSDISPLAYSPECOPTIONS,*PDSDISPLAYSPECOPTIONS,*LPDSDISPLAYSPECOPTIONS;
 | 
						|
#define DSDSOF_HASUSERANDSERVERINFO 0x00000001
 | 
						|
#define DSDSOF_SIMPLEAUTHENTICATE 0x00000002
 | 
						|
#define DSDSOF_DONTSIGNSEAL 0x00000004
 | 
						|
#define DSDSOF_DSAVAILABLE 0x40000000
 | 
						|
typedef struct {
 | 
						|
	DWORD dwFlags;
 | 
						|
	DWORD dwProviderFlags;
 | 
						|
	DWORD offsetName;
 | 
						|
	DWORD offsetClass;
 | 
						|
} DSOBJECT,*LPDSOBJECT;
 | 
						|
#define DSOBJECT_ISCONTAINER 0x00000001
 | 
						|
#define DSOBJECT_READONLYPAGES 0x80000000
 | 
						|
#define DSPROVIDER_UNUSED_0 0x00000001
 | 
						|
#define DSPROVIDER_UNUSED_1 0x00000002
 | 
						|
#define DSPROVIDER_UNUSED_2 0x00000004
 | 
						|
#define DSPROVIDER_UNUSED_3 0x00000008
 | 
						|
#define DSPROVIDER_ADVANCED 0x00000010
 | 
						|
typedef struct {
 | 
						|
	CLSID clsidNamespace;
 | 
						|
	UINT cItems;
 | 
						|
	DSOBJECT aObjects[1];
 | 
						|
} DSOBJECTNAMES,*LPDSOBJECTNAMES;
 | 
						|
typedef struct {
 | 
						|
	DWORD offsetString;
 | 
						|
} DSPROPERTYPAGEINFO,*LPDSPROPERTYPAGEINFO;
 | 
						|
#ifdef UNICODE
 | 
						|
typedef DSBITEMW DSBITEM,*PDSBITEM;
 | 
						|
typedef DSBROWSEINFOW DSBROWSEINFO,*PDSBROWSEINFO;
 | 
						|
#else
 | 
						|
typedef DSBITEMA DSBITEM,*PDSBITEM;
 | 
						|
typedef DSBROWSEINFOA DSBROWSEINFO,*PDSBROWSEINFO;
 | 
						|
#endif
 | 
						|
#endif /* (_WIN32_WINNT >= 0x0500) */
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
}
 | 
						|
#endif
 | 
						|
#endif
 |