home *** CD-ROM | disk | FTP | other *** search
- /**********************************************************************/
- /** Microsoft Exchange **/
- /** Copyright (c) Microsoft Corp. 1986-1996. All Rights Reserved. **/
- /**********************************************************************/
-
- /*
- adminext.h
- This file contains the common messages, manifests, types, and
- structures used by Microsoft Exchange Administration Extensions.
-
- NOTE: You must include windows.h and mapix.h before this file.
-
- */
-
-
-
- #ifndef _ADMINEXT_H_
- #define _ADMINEXT_H_
-
-
- #ifdef __cplusplus
- extern "C"
- {
- #endif
-
-
-
- // Miscellanous definitions
-
- #define ADMIN_ExtensionAPIVersion 0x000d
-
-
- // List of dialog page IDs passed to the ShowPage proc in the
- // extension DLL for approval.
-
- // for gateway objects (ObjID_GW)
- #define iddGWGeneral 3020
- #define iddGWPermissions 3500
- #define iddGWSchedule 4011
- #define iddGWConnected_Sites 4020
- #define iddGWAddress_Space 3021
- #define iddGWDelivery_Restrictions 4008
- #define iddGWAdvanced 3022
- #define iddGWImportContainer 3063
- #define iddGWExportContainers 3067
- #define iddGWDiagLogSetting 4030
-
- // for mail agent objects (ObjID_MA)
- #define iddMAGeneral 4028
- #define iddMAPermissions 3500
- #define iddMADistributionList 4090
- #define iddMAEMailAddresses 4014
- #define iddMADeliveryRestrictions 4008
- #define iddMADeliveryOptions 4007
- #define iddMASecurity 4051
- #define iddMACustomAttributes 4022
- #define iddMASchedule 4011
- #define iddMAAdvanced 4040
-
-
-
- typedef struct _ADMIN_ObjectInfo
- {
- LPWSTR szComputerName; // Computer on which the gateway runs, when applicable
- LPWSTR szDistinguishedName; // of the object administered
- LPWSTR szDNHomeMDB; // Distinguished name of the server running the home message database
- LPWSTR szDNHomeMTA; // Distinguished name of the server running the home message transport agent
- LCID lcid; // locale ID
- UINT uObjectID; // object ID code
- HFONT hfontDialog; // font handle
- } ADMIN_ObjectInfo;
-
-
- // Object ID codes
- #define ObjID_UK 0 // UnKnown
-
- #define ObjID_DSFirst 1 // first DS DOC
-
- #define ObjID_EP 2 // Enterprise
- #define ObjID_DM 3 // Domain (Site)
- #define ObjID_CT 4 // Container
- #define ObjID_SV 5 // Server
-
- // Recipients
- #define ObjID_MR 6 // Mail Recipients
- #define ObjID_MB 7 // Mailbox
- #define ObjID_DL 8 // Distribution List
- #define ObjID_RR 9 // Remote Recipient
- #define ObjID_PF 10 // Public Folder
- #define ObjID_MA 11 // Mail Agent
-
- // Connections
- #define ObjID_GW 12 // Gateway
- #define ObjID_MGW 13 // Special Gateway for Goalline
- #define ObjID_DXAREQ 14 // DXA requestor, was Remote DXA
- #define ObjID_DXASV 15 // DXA Site server
- #define ObjID_DXACONN 16 // DXA Server Connection
- #define ObjID_ISC 17 // Site Connector
- #define ObjID_LNKRAS 18 // Dynamic RAS Connector
- #define ObjID_LNKTCP 19 // TCP (RFC1006) X.400 Connector
- #define ObjID_LNKTP4 20 // TP4 X.400 Connector
- #define ObjID_LNKX25 21 // X.25 X.400 Connector
- #define ObjID_DRC 22 // Directory Replication Connector
-
- // Server Objects
- #define ObjID_MTA 23 // MTA
- #define ObjID_DSA 24 // Directory
- #define ObjID_MDB 26 // Private Information Store
- #define ObjID_PMDB 27 // Public Information Store
- #define ObjID_LDXA 28 // Local DXA
- #define ObjID_SAA 29 // System Attendant
- #define ObjID_STKRAS 30 // RAS MTA Transport Stack
- #define ObjID_STKTCP 31 // TCP (RFC1006) MTA Transport Stack
- #define ObjID_STKTP4 32 // TP4 MTA Transport Stack
- #define ObjID_STKX25 33 // X.25 MTA Transport Stack
-
- // Monitor Configurations
- #define ObjID_MSV 34 // Monitoring Server Configuration (DS)
- #define ObjID_MLK 35 // Monitoring Link Configuration (DS)
-
- // Templates
- #define ObjID_ATP 36 // Address Type
- #define ObjID_ATL 37 // Address Template
- #define ObjID_DTL 38 // Display Template
-
- // Schema Objects
- #define ObjID_Schema 39 // The Schema container (DMD)
- #define ObjID_SchemaAttr 40 // Schema Attribute
- #define ObjID_SchemaObj 41 // Schema Object
-
- // Site Configurations
- #define ObjID_ENC 42 // Encryption Configuration
- #define ObjID_SADR 43 // Site Addressing
- #define ObjID_SDSA 44 // Site Directory Configuration
- #define ObjID_SMDB 45 // Site Information Store Configuration
- #define ObjID_SMTA 46 // Site MTA Configuration
-
- #define ObjID_ADDIN 47 // Add-In
- #define ObjID_EXT 48 // Admin Extension
-
-
-
-
-
- typedef struct _ADMIN_SheetInfo
- {
- HINSTANCE hInstance;
- UINT iddDialog; // To pass to MAKEINTRESOURCE()
- DLGPROC lpfnDlgProc;
- UINT idsName; // For LoadString()
- LPARAM lParam; // Passed to DlgProc on WM_INITDIALOG
- LANGID langid; // language ID of dialog to be loaded
- } ADMIN_SheetInfo;
-
-
- /*********************************************************************************/
- /*********************************************************************************/
-
- // Functions implemented by the Extension DLL
- // and called by the Microsoft Exchange Administrator program.
-
- typedef BOOL (PASCAL * PADMIN_InstallExtension) (ADMIN_ObjectInfo * poi);
- typedef BOOL (PASCAL * PADMIN_DeinstallExtension) (ADMIN_ObjectInfo * poi);
- typedef BOOL (PASCAL * PADMIN_ShowPage) (UINT iddAdminPage);
- typedef INT (PASCAL * PADMIN_StartPage) (void);
- typedef BOOL (PASCAL * PADMIN_InitSheet)
- ( ADMIN_ObjectInfo * poi,
- ULONG fFlags,
- ADMIN_SheetInfo ** ppsi,
- UINT * pcsi,
- VOID ** ppvExtensionData);
-
- // PADMIN_InitSheet definitions for fFlags
- #define fxfReadOnly 0x00000001
- // high byte of fFlags reserved as private for extension dll writers to use as they see fit.
- #define MaskExtensionPrivateFlags 0x00ffffff
-
- /*********************************************************************************/
- /*********************************************************************************/
-
- // FSetActive() typedef BOOL (PASCAL * PADMIN_RefreshDisplay) (VOID * pvExtensionData, HWND hwnd);
- typedef BOOL (PASCAL * PADMIN_HasHelp) (VOID * pvExtensionData, HWND hwnd);
- typedef VOID (PASCAL * PADMIN_DoHelp) (VOID * pvExtensionData, HWND hwnd);
- typedef BOOL (PASCAL * PADMIN_SaveData) (VOID * pvExtensionData, HWND hwnd);
- typedef BOOL (PASCAL * PADMIN_CommitData) (VOID * pvExtensionData, HWND hwnd);
-
- typedef VOID (PASCAL * PADMIN_DeinitSheet)
- (VOID * pvExtensionData);
-
-
- // The pointers in this structure (except pfnInitSheet) can be NULL
- // if a pointer is null, no call is made.
- typedef struct _ADMIN_ExtensionFunction
- {
- int nAPIVersion;
- PADMIN_InstallExtension pfnInstallExtension;
- PADMIN_DeinstallExtension pfnDeinstallExtension;
- PADMIN_InitSheet pfnInitSheet;
- PADMIN_ShowPage pfnShowPage;
- PADMIN_StartPage pfnStartPage;
- PADMIN_HasHelp pfnHasHelp;
- PADMIN_DoHelp pfnDoHelp;
- PADMIN_SaveData pfnSaveData;
- PADMIN_CommitData pfnCommitData;
- PADMIN_DeinitSheet pfnDeinitSheet;
- } ADMIN_ExtensionFunction;
-
-
-
- // Functions implemented by the Microsoft Exchange Administrator Program
- // and called by the Extension DLL.
-
- typedef RC (PASCAL * PADMIN_GetObjectDataSize)
- (HWND hwnd, LPWSTR wszBlobName, UINT * pcb);
-
- typedef RC (PASCAL * PADMIN_GetObjectData)
- (HWND hwnd, LPWSTR wszBlobName, BYTE * pb, UINT cb);
-
- typedef RC (PASCAL * PADMIN_SetObjectData)
- (HWND hwnd, BYTE * pb, UINT cb, BOOL fNew);
-
- // These 2 APIs take WCHAR *, NOT TCHAR!!!
- // szServiceName is the SHORT name of the service.
- typedef BOOL (PASCAL * PADMIN_AddService)
- (HWND hwnd, LPWSTR wszServiceName);
- typedef BOOL (PASCAL * PADMIN_RemoveService)
- (HWND hwnd, LPWSTR wszServiceName);
-
- typedef VOID (PASCAL * PADMIN_InfoHasChanged)
- (HWND hwnd);
-
- typedef VOID (PASCAL * PADMIN_SetIcon)
- (HWND hwnd, int id);
-
- typedef VOID (PASCAL * PADMIN_SetTitle)
- (HWND hwnd, int id);
-
- typedef BOOL (PASCAL * PADMIN_LoadDialogResource)
- (HINSTANCE hinst, UINT iddDialog, LANGID langid, BYTE ** ppbDialog);
-
- // *ppbDialog will be set to NULL after being freed in this call
- typedef VOID (PASCAL * PADMIN_FreeDialogResource)
- (BYTE ** ppbDialog);
-
- /*
- * psz is a pointer to an array of string pointers. The array is
- * cstr elements long.
- * Name 0: psz[0], etc.
- * The extension is responsible for calling FreeNameList to reelease the memory
- */
- typedef BOOL (PASCAL * PADMIN_GetNameList)
- (HWND hwnd, int * pcstr, LPWSTR ** ppsz);
- typedef void (PASCAL * PADMIN_FreeNameList)
- (int cstr, LPWSTR * psz);
- /*
- * Admin will make a copy of the strings, so the extension can release the memory
- * it allocated when the SetProxy call returns.
- */
- typedef BOOL (PASCAL * PADMIN_SetNameList)
- (HWND hwnd, int cstr, LPWSTR * psz);
- // NOTE on both GetNameList and SetNameList: Admin will issue the error message if appropriate
-
-
- typedef struct _ADMIN_AdministratorFunction
- {
- PADMIN_GetObjectDataSize pfnGetObjectDataSize;
- PADMIN_GetObjectData pfnGetObjectData;
- PADMIN_SetObjectData pfnSetObjectData;
- PADMIN_AddService pfnAddService;
- PADMIN_RemoveService pfnRemoveService;
- PADMIN_InfoHasChanged pfnInfoHasChanged;
- PADMIN_SetIcon pfnSetIcon;
- PADMIN_SetTitle pfnSetTitle;
- PADMIN_GetNameList pfnGetNameList;
- PADMIN_FreeNameList pfnFreeNameList;
- PADMIN_SetNameList pfnSetNameList;
- PADMIN_LoadDialogResource pfnLoadDialogResource;
- PADMIN_FreeDialogResource pfnFreeDialogResource;
- } ADMIN_AdministratorFunction;
-
- typedef struct _ADMIN_AdministratorConnections
- {
- IMAPISession * psesMapi;
- IAddrBook * pab;
- IABContainer * pabContainer;
- } ADMIN_AdministratorConnections;
-
-
- // Initialization function where the API is clarified.
-
- typedef VOID (PASCAL * PADMIN_Initialize)
- ( ADMIN_AdministratorConnections * pac,
- ADMIN_AdministratorFunction * pAdminFunction,
- ADMIN_ExtensionFunction ** ppExtensionFunction);
-
-
- #ifdef __cplusplus
- }
- #endif
-
- #endif // #ifndef _ADMINEXT_H_