Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

354 lines
10 KiB

//****************************************************************************
//
// 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 <pshpack8.h>
//
// 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 <poppack.h>
#endif // _ILS_LDAP_H_