354 lines
10 KiB
C
354 lines
10 KiB
C
//****************************************************************************
|
||
//
|
||
// 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_
|
||
|