//**************************************************************************** // // Module: ULS.DLL // File: ulsldap.h // Content: This file contains the declaration for LDAP function calls // History: // Tue 08-Oct-1996 08:54:45 -by- Lon-Chan Chu [lonchanc] // // Copyright (c) Microsoft Corporation 1996-1997 // //**************************************************************************** #ifndef _ILS_LDAP_H_ #define _ILS_LDAP_H_ #include // // Asynchronous request result: // // ********************************************************************************** // Message wParam lParam // ********************************************************************************** // #define WM_ILS_ASYNC_RES (WM_USER+0x1001) // client object #define WM_ILS_REGISTER_CLIENT (WM_ILS_ASYNC_RES+0) // uMsgID hResult #define WM_ILS_UNREGISTER_CLIENT (WM_ILS_ASYNC_RES+1) // uMsgID hResult #define WM_ILS_SET_CLIENT_INFO (WM_ILS_ASYNC_RES+2) // uMsgID hResult #define WM_ILS_RESOLVE_CLIENT (WM_ILS_ASYNC_RES+3)// uMsgID PLDAP_USERINFO_RES #define WM_ILS_ENUM_CLIENTS (WM_ILS_ASYNC_RES+4)// uMsgID PLDAP_ENUM #define WM_ILS_ENUM_CLIENTINFOS (WM_ILS_ASYNC_RES+5)// uMsgID PLDAP_ENUM // protocol object #define WM_ILS_REGISTER_PROTOCOL (WM_ILS_ASYNC_RES+6) // uMsgID hResult #define WM_ILS_UNREGISTER_PROTOCOL (WM_ILS_ASYNC_RES+7) // uMsgID hResult #define WM_ILS_SET_PROTOCOL_INFO (WM_ILS_ASYNC_RES+8) // uMsgID hResult #define WM_ILS_RESOLVE_PROTOCOL (WM_ILS_ASYNC_RES+9)// uMsgID PLDAP_PROTINFO_RES #define WM_ILS_ENUM_PROTOCOLS (WM_ILS_ASYNC_RES+10)// uMsgID PLDAP_ENUM #ifdef ENABLE_MEETING_PLACE // meeting object #define WM_ILS_REGISTER_MEETING (WM_ILS_ASYNC_RES+11) #define WM_ILS_UNREGISTER_MEETING (WM_ILS_ASYNC_RES+12) #define WM_ILS_SET_MEETING_INFO (WM_ILS_ASYNC_RES+13) #define WM_ILS_RESOLVE_MEETING (WM_ILS_ASYNC_RES+14) #define WM_ILS_ENUM_MEETINGINFOS (WM_ILS_ASYNC_RES+15) #define WM_ILS_ENUM_MEETINGS (WM_ILS_ASYNC_RES+16) #define WM_ILS_ADD_ATTENDEE (WM_ILS_ASYNC_RES+17) #define WM_ILS_REMOVE_ATTENDEE (WM_ILS_ASYNC_RES+18) #define WM_ILS_ENUM_ATTENDEES (WM_ILS_ASYNC_RES+19) #define WM_ILS_CANCEL (WM_ILS_ASYNC_RES+20) #else #define WM_ILS_CANCEL (WM_ILS_ASYNC_RES+11) #endif #define WM_ILS_LAST_ONE WM_ILS_CANCEL // client notification #define WM_ILS_CLIENT_NEED_RELOGON (WM_ILS_ASYNC_RES+51)// fPrimary pszServerName #define WM_ILS_CLIENT_NETWORK_DOWN (WM_ILS_ASYNC_RES+52)// fPrimary pszServerName #ifdef ENABLE_MEETING_PLACE // meeting notification #define WM_ILS_MEETING_NEED_RELOGON (WM_ILS_ASYNC_RES+61) #define WM_ILS_MEETING_NETWORK_DOWN (WM_ILS_ASYNC_RES+62) #endif // // Constants // #define INVALID_OFFSET 0 #define INVALID_USER_FLAGS -1 // used in LDAP_USERINFO dwFlags #ifdef ENABLE_MEETING_PLACE #define INVALID_MEETING_FLAGS 0 // used in LDAP_MEETINFO dwFlags #define INVALID_MEETING_TYPE 0 // used in LDAP_MEETINFO lMeetingType #define INVALID_ATTENDEE_TYPE 0 // used in LDAP_MEETINFO lAttendeeType #endif // // Asynchronous response info structures // typedef struct tagLDAPAsyncInfo { ULONG uMsgID; } LDAP_ASYNCINFO, *PLDAP_ASYNCINFO; typedef struct tagLDAPEnum { ULONG uSize; HRESULT hResult; ULONG cItems; ULONG uOffsetItems; } LDAP_ENUM, *PLDAP_ENUM; typedef struct tagLDAPClientInfo { ULONG uSize; // user object attributes ULONG uOffsetCN; ULONG uOffsetFirstName; ULONG uOffsetLastName; ULONG uOffsetEMailName; ULONG uOffsetCityName; ULONG uOffsetCountryName; ULONG uOffsetComment; ULONG uOffsetIPAddress; DWORD dwFlags; // 0, private; 1, public // app object attributes ULONG uOffsetAppName; ULONG uOffsetAppMimeType; GUID AppGuid; // app extended attributes to add, modify, and remove ULONG cAttrsToAdd; ULONG uOffsetAttrsToAdd; ULONG cAttrsToModify; ULONG uOffsetAttrsToModify; ULONG cAttrsToRemove; ULONG uOffsetAttrsToRemove; // for notification of enum-user-infos ULONG cAttrsReturned; ULONG uOffsetAttrsReturned; } LDAP_CLIENTINFO, *PLDAP_CLIENTINFO; typedef struct tagLDAPClientInfoRes { ULONG uSize; HRESULT hResult; LDAP_CLIENTINFO lci; } LDAP_CLIENTINFO_RES, *PLDAP_CLIENTINFO_RES; typedef struct tagLDAPProtocolInfo { ULONG uSize; // protocol standard attributes ULONG uOffsetName; ULONG uPortNumber; ULONG uOffsetMimeType; } LDAP_PROTINFO, *PLDAP_PROTINFO; typedef struct tagLDAPProtInfoRes { ULONG uSize; HRESULT hResult; LDAP_PROTINFO lpi; } LDAP_PROTINFO_RES, *PLDAP_PROTINFO_RES; #ifdef ENABLE_MEETING_PLACE typedef struct tagLDAPMeetingInfo { ULONG uSize; // meeting standard attributes LONG lMeetingPlaceType; LONG lAttendeeType; ULONG uOffsetMeetingPlaceID; ULONG uOffsetDescription; ULONG uOffsetHostName; ULONG uOffsetHostIPAddress; // meeting extended attributes to add, modify, and remove ULONG cAttrsToAdd; ULONG uOffsetAttrsToAdd; ULONG cAttrsToModify; ULONG uOffsetAttrsToModify; ULONG cAttrsToRemove; ULONG uOffsetAttrsToRemove; // for notification of enum-meeting-infos ULONG cAttrsReturned; ULONG uOffsetAttrsReturned; } LDAP_MEETINFO, *PLDAP_MEETINFO; #endif #ifdef ENABLE_MEETING_PLACE typedef struct tagLDAPMeetingInfoRes { ULONG uSize; HRESULT hResult; LDAP_MEETINFO lmi; } LDAP_MEETINFO_RES, *PLDAP_MEETINFO_RES; #endif // Initialization HRESULT UlsLdap_Initialize ( HWND hwndCallback); HRESULT UlsLdap_Deinitialize (void); HRESULT UlsLdap_Cancel ( ULONG uMsgID); // Clients related HRESULT UlsLdap_RegisterClient ( DWORD_PTR dwContext, SERVER_INFO *pServer, PLDAP_CLIENTINFO pCleintInfo, PHANDLE phClient, PLDAP_ASYNCINFO pAsyncInfo ); HRESULT UlsLdap_UnRegisterClient ( HANDLE hClient, PLDAP_ASYNCINFO pAsyncInfo ); HRESULT UlsLdap_SetClientInfo ( HANDLE hClient, PLDAP_CLIENTINFO pInfo, PLDAP_ASYNCINFO pAsyncInfo ); HRESULT UlsLdap_EnumClients ( SERVER_INFO *pServer, LPTSTR pszFilter, PLDAP_ASYNCINFO pAsyncInfo ); HRESULT UlsLdap_ResolveClient ( SERVER_INFO *pServer, LPTSTR pszUserName, LPTSTR pszAppName, LPTSTR pszProtName, LPTSTR pszAttrNameList, ULONG cAttrNames, PLDAP_ASYNCINFO pAsyncInfo ); HRESULT UlsLdap_EnumClientInfos ( SERVER_INFO *pServer, LPTSTR pszAttrNameList, ULONG cAttrNames, LPTSTR pszFilter, PLDAP_ASYNCINFO pAsyncInfo ); // Protocols related HRESULT UlsLdap_RegisterProtocol ( HANDLE hApp, PLDAP_PROTINFO pProtInfo, PHANDLE phProt, PLDAP_ASYNCINFO pAsyncInfo ); HRESULT UlsLdap_UnRegisterProtocol ( HANDLE hProt, PLDAP_ASYNCINFO pAsyncInfo ); HRESULT UlsLdap_VirtualUnRegisterProtocol ( HANDLE hProt ); HRESULT UlsLdap_SetProtocolInfo ( HANDLE hProt, PLDAP_PROTINFO pInfo, PLDAP_ASYNCINFO pAsyncInfo ); HRESULT UlsLdap_EnumProtocols ( SERVER_INFO *pServer, LPTSTR pszUserName, LPTSTR pszAppName, PLDAP_ASYNCINFO pAsyncInfo ); HRESULT UlsLdap_ResolveProtocol ( SERVER_INFO *pServer, LPTSTR pszUserName, LPTSTR pszAppName, LPTSTR pszProtName, LPTSTR pszAnyAttrNameList, ULONG cAttrNames, PLDAP_ASYNCINFO pAsyncInfo ); #ifdef ENABLE_MEETING_PLACE // Meetings related HRESULT UlsLdap_RegisterMeeting( DWORD dwContext, SERVER_INFO *pServer, PLDAP_MEETINFO pMeetInfo, PHANDLE phMeeting, PLDAP_ASYNCINFO pAsyncInfo ); HRESULT UlsLdap_UnRegisterMeeting( HANDLE hMeeting, PLDAP_ASYNCINFO pAsyncInfo ); HRESULT UlsLdap_EnumMeetingInfos( SERVER_INFO *pServer, LPTSTR pszAnyAttrNameList, ULONG cAnyAttrNames, LPTSTR pszFilter, PLDAP_ASYNCINFO pAsyncInfo ); HRESULT UlsLdap_EnumMeetings( SERVER_INFO *pServer, LPTSTR pszFilter, PLDAP_ASYNCINFO pAsyncInfo ); HRESULT UlsLdap_ResolveMeeting( SERVER_INFO *pServer, LPTSTR pszMeetingID, LPTSTR pszAnyAttrNameList, ULONG cAnyAttrNames, PLDAP_ASYNCINFO pAsyncInfo ); HRESULT UlsLdap_SetMeetingInfo( SERVER_INFO *pServer, LPTSTR pszMeetingID, PLDAP_MEETINFO pMeetInfo, PLDAP_ASYNCINFO pAsyncInfo ); HRESULT UlsLdap_AddAttendee( SERVER_INFO *pServer, LPTSTR pszMeetingID, ULONG cAttendees, LPTSTR pszAttendeeID, PLDAP_ASYNCINFO pAsyncInfo ); HRESULT UlsLdap_RemoveAttendee( SERVER_INFO *pServer, LPTSTR pszMeetingID, ULONG cAttendees, LPTSTR pszAttendeeID, PLDAP_ASYNCINFO pAsyncInfo ); HRESULT UlsLdap_EnumAttendees( SERVER_INFO *pServer, LPTSTR pszMeetingID, LPTSTR pszFilter, PLDAP_ASYNCINFO pAsyncInfo ); #endif // ENABLE_MEETING_PLACE const TCHAR *UlsLdap_GetStdAttrNameString ( ILS_STD_ATTR_NAME StdName ); const TCHAR *UlsLdap_GetExtAttrNamePrefix ( VOID ); #include #endif // _ILS_LDAP_H_