|
|
/*++
Copyright (c) 1995 Microsoft Corporation
Module Name:
smtpapi.h
Abstract:
This file contains information about the MSN SMTP server counters
Author:
Johnson Apacible (johnsona) 10-Sept-1995 Rohan Phillips (Rohanp) 11-Dec-1995
--*/
#ifndef _SMTPAPI_
#define _SMTPAPI_
#ifdef __cplusplus
extern "C" { #endif
#include <inetcom.h>
#ifndef NET_API_FUNCTION
#define NET_API_FUNCTION _stdcall
#endif
#include "smtpext.h"
#include "perfcat.h"
//
// Config Structures and API's
#pragma warning( disable:4200 ) // nonstandard ext. - zero sized array
// (MIDL requires zero entries)
#define NAME_TYPE_USER (BitFlag(0))
#define NAME_TYPE_LIST_NORMAL (BitFlag(1))
#define NAME_TYPE_LIST_DOMAIN (BitFlag(2))
#define NAME_TYPE_LIST_SITE (BitFlag(3))
#define NAME_TYPE_ALL ( \
NAME_TYPE_USER | \ NAME_TYPE_LIST_NORMAL | \ NAME_TYPE_LIST_DOMAIN | \ NAME_TYPE_LIST_SITE \ )
typedef struct _SMTP_NAME_ENTRY { DWORD dwType; LPWSTR lpszName; } SMTP_NAME_ENTRY, *LPSMTP_NAME_ENTRY;
typedef struct _SMTP_NAME_LIST { DWORD cEntries; #if defined(MIDL_PASS)
[size_is(cEntries)] #endif
SMTP_NAME_ENTRY aNameEntry[]; } SMTP_NAME_LIST, *LPSMTP_NAME_LIST;
typedef struct _SMTP_CONN_USER_ENTRY { DWORD dwUserId; LPWSTR lpszName; LPWSTR lpszHost; DWORD dwConnectTime; } SMTP_CONN_USER_ENTRY, *LPSMTP_CONN_USER_ENTRY;
typedef struct _SMTP_CONN_USER_LIST { DWORD cEntries; #if defined(MIDL_PASS)
[size_is(cEntries)] #endif
SMTP_CONN_USER_ENTRY aConnUserEntry[]; } SMTP_CONN_USER_LIST, *LPSMTP_CONN_USER_LIST;
typedef struct _SMTP_CONFIG_DOMAIN_ENTRY { LPWSTR lpszDomain; } SMTP_CONFIG_DOMAIN_ENTRY, *LPSMTP_CONFIG_DOMAIN_ENTRY;
typedef struct _SMTP_CONFIG_DOMAIN_LIST { DWORD cEntries; // Count of supported domains
#if defined(MIDL_PASS)
[size_is(cEntries)] #endif
SMTP_CONFIG_DOMAIN_ENTRY aDomainEntry[]; // Supported domains
} SMTP_CONFIG_DOMAIN_LIST, *LPSMTP_CONFIG_DOMAIN_LIST;
typedef struct _SMTP_CONFIG_ROUTING_ENTRY { LPWSTR lpszSource; } SMTP_CONFIG_ROUTING_ENTRY, *LPSMTP_CONFIG_ROUTING_ENTRY;
typedef struct _SMTP_CONFIG_ROUTING_LIST { DWORD cEntries; // Count of supported data sources
#if defined(MIDL_PASS)
[size_is(cEntries)] #endif
SMTP_CONFIG_ROUTING_ENTRY aRoutingEntry[]; } SMTP_CONFIG_ROUTING_LIST, *LPSMTP_CONFIG_ROUTING_LIST;
// 0 - Perfmon stats
typedef struct _SMTP_STATISTICS_0 {
// total bytes sent/received, including protocol msgs
unsigned __int64 BytesSentTotal; unsigned __int64 BytesRcvdTotal; unsigned __int64 BytesSentMsg; unsigned __int64 BytesRcvdMsg;
//incoming counters
DWORD NumMsgRecvd; DWORD NumRcptsRecvd; DWORD NumRcptsRecvdLocal; DWORD NumRcptsRecvdRemote; DWORD MsgsRefusedDueToSize; DWORD MsgsRefusedDueToNoCAddrObjects; DWORD MsgsRefusedDueToNoMailObjects;
//MTA counters
DWORD NumMsgsDelivered; DWORD NumDeliveryRetries; DWORD NumMsgsForwarded; DWORD NumNDRGenerated; DWORD LocalQueueLength; DWORD RetryQueueLength; DWORD NumMailFileHandles; DWORD NumQueueFileHandles; DWORD CatQueueLength;
//outgoing counters
DWORD NumMsgsSent; DWORD NumRcptsSent; DWORD NumSendRetries; DWORD RemoteQueueLength;
//DNS query counters
DWORD NumDnsQueries; DWORD RemoteRetryQueueLength;
//connection counters
DWORD NumConnInOpen; DWORD NumConnInClose; DWORD NumConnOutOpen; DWORD NumConnOutClose; DWORD NumConnOutRefused;
// other counters
DWORD NumProtocolErrs; DWORD DirectoryDrops; DWORD RoutingTableLookups; DWORD ETRNMessages;
DWORD MsgsBadmailNoRecipients; DWORD MsgsBadmailHopCountExceeded; DWORD MsgsBadmailFailureGeneral; DWORD MsgsBadmailBadPickupFile; DWORD MsgsBadmailEvent; DWORD MsgsBadmailNdrOfDsn; DWORD MsgsPendingRouting; DWORD MsgsPendingUnreachableLink; DWORD SubmittedMessages; DWORD DSNFailures; DWORD MsgsInLocalDelivery;
CATPERFBLOCK CatPerfBlock;
DWORD TimeOfLastClear; // statistics last cleared
} SMTP_STATISTICS_0, *LPSMTP_STATISTICS_0;
typedef struct _SMTP_STATISTICS_BLOCK { DWORD dwInstance; SMTP_STATISTICS_0 Stats_0; } SMTP_STATISTICS_BLOCK, *PSMTP_STATISTICS_BLOCK;
typedef struct _SMTP_STATISTICS_BLOCK_ARRAY { DWORD cEntries; // Count of instances of statistics
#if defined(MIDL_PASS)
[size_is(cEntries)] #endif
SMTP_STATISTICS_BLOCK aStatsBlock[]; } SMTP_STATISTICS_BLOCK_ARRAY, *PSMTP_STATISTICS_BLOCK_ARRAY;
#pragma warning(default:4200)
//
// Cut by keithlau on 7/8/96
//
// #define FC_SMTP_INFO_LOOP_BACK ((FIELD_CONTROL)BitFlag(0))
// #define FC_SMTP_INFO_BACK_LOG ((FIELD_CONTROL)BitFlag(1))
// #define FC_SMTP_INFO_MAX_OBJECTS ((FIELD_CONTROL)BitFlag(6))
// #define FC_SMTP_INFO_DOMAIN ((FIELD_CONTROL)BitFlag(12))
// #define FC_SMTP_INFO_DELIVERY ((FIELD_CONTROL)BitFlag(17))
// #define FC_SMTP_INFO_BAD_MAIL ((FIELD_CONTROL)BitFlag(19))
// #define FC_SMTP_INFO_MAIL_QUEUE_DIR ((FIELD_CONTROL)BitFlag(20))
// #define FC_SMTP_INFO_FILELINKS ((FIELD_CONTROL)BitFlag(21))
// #define FC_SMTP_INFO_BATCHMSGS ((FIELD_CONTROL)BitFlag(22))
// #define FC_SMTP_INFO_ROUTING_DLL ((FIELD_CONTROL)BitFlag(23))
// #define FC_SMTP_INFO_MAIL_PICKUP_DIR ((FIELD_CONTROL)BitFlag(25))
#define FC_SMTP_INFO_REVERSE_LOOKUP ((FIELD_CONTROL)BitFlag(0))
#define FC_SMTP_INFO_MAX_HOP_COUNT ((FIELD_CONTROL)BitFlag(1))
#define FC_SMTP_INFO_MAX_ERRORS ((FIELD_CONTROL)BitFlag(2))
#define FC_SMTP_INFO_MAX_SIZE ((FIELD_CONTROL)BitFlag(3))
#define FC_SMTP_INFO_REMOTE_TIMEOUT ((FIELD_CONTROL)BitFlag(4))
#define FC_SMTP_INFO_MAX_OUTBOUND_CONN ((FIELD_CONTROL)BitFlag(5))
#define FC_SMTP_INFO_MAX_RECIPS ((FIELD_CONTROL)BitFlag(6))
#define FC_SMTP_INFO_RETRY ((FIELD_CONTROL)BitFlag(7))
#define FC_SMTP_INFO_PIPELINE ((FIELD_CONTROL)BitFlag(8))
#define FC_SMTP_INFO_OBSOLETE_ROUTING ((FIELD_CONTROL)BitFlag(9))
#define FC_SMTP_INFO_SEND_TO_ADMIN ((FIELD_CONTROL)BitFlag(10))
#define FC_SMTP_INFO_SMART_HOST ((FIELD_CONTROL)BitFlag(11))
#define FC_SMTP_INFO_AUTHORIZATION ((FIELD_CONTROL)BitFlag(12))
#define FC_SMTP_INFO_COMMON_PARAMS ((FIELD_CONTROL)BitFlag(13))
#define FC_SMTP_INFO_DEFAULT_DOMAIN ((FIELD_CONTROL)BitFlag(14))
#define FC_SMTP_INFO_ROUTING ((FIELD_CONTROL)BitFlag(15))
//
// Added by keithlau on 7/8/96
//
#define FC_SMTP_INFO_BAD_MAIL_DIR ((FIELD_CONTROL)BitFlag(15))
#define FC_SMTP_INFO_MASQUERADE ((FIELD_CONTROL)BitFlag(16))
#define FC_SMTP_INFO_REMOTE_PORT ((FIELD_CONTROL)BitFlag(17))
#define FC_SMTP_INFO_LOCAL_DOMAINS ((FIELD_CONTROL)BitFlag(18))
#define FC_SMTP_INFO_DOMAIN_ROUTING ((FIELD_CONTROL)BitFlag(19))
#define FC_SMTP_INFO_ADMIN_EMAIL_NAME ((FIELD_CONTROL)BitFlag(20))
#define FC_SMTP_INFO_ALWAYS_USE_SSL ((FIELD_CONTROL)BitFlag(21))
#define FC_SMTP_INFO_MAX_OUT_CONN_PER_DOMAIN ((FIELD_CONTROL)BitFlag(22))
#define FC_SMTP_INFO_SASL_LOGON_DOMAIN ((FIELD_CONTROL)BitFlag(23))
#define FC_SMTP_INFO_INBOUND_SUPPORT_OPTIONS ((FIELD_CONTROL)BitFlag(24))
#define FC_SMTP_INFO_DEFAULT_DROP_DIR ((FIELD_CONTROL)BitFlag(25))
#define FC_SMTP_INFO_FQDN ((FIELD_CONTROL)BitFlag(26))
#define FC_SMTP_INFO_ETRN_SUBDOMAINS ((FIELD_CONTROL)BitFlag(27))
#define FC_SMTP_INFO_NTAUTHENTICATION_PROVIDERS ((FIELD_CONTROL)BitFlag(29))
#define FC_SMTP_CLEARTEXT_AUTH_PROVIDER ((FIELD_CONTROL)BitFlag(30))
//
// Added by mlans on 7/24/96
//
#define FC_SMTP_INFO_SSL_PERM ((FIELD_CONTROL)BitFlag(28))
#define FC_SMTP_ROUTING_TYPE_FILTER ((FIELD_CONTROL)(BitFlag(30) | BitFlag(31)))
#define FC_SMTP_ROUTING_TYPE_SQL ((FIELD_CONTROL)(0)))
#define FC_SMTP_ROUTING_TYPE_FF ((FIELD_CONTROL)BitFlag(30))
#define FC_SMTP_ROUTING_TYPE_LDAP ((FIELD_CONTROL)BitFlag(31))
#define FC_SMTP_INFO_ALL ( \
FC_SMTP_INFO_REVERSE_LOOKUP | \ FC_SMTP_INFO_MAX_HOP_COUNT | \ FC_SMTP_INFO_MAX_ERRORS | \ FC_SMTP_INFO_MAX_SIZE | \ FC_SMTP_INFO_REMOTE_TIMEOUT | \ FC_SMTP_INFO_MAX_OUTBOUND_CONN | \ FC_SMTP_INFO_MAX_RECIPS | \ FC_SMTP_INFO_RETRY | \ FC_SMTP_INFO_PIPELINE | \ FC_SMTP_INFO_ROUTING | \ FC_SMTP_INFO_OBSOLETE_ROUTING | \ FC_SMTP_INFO_SEND_TO_ADMIN | \ FC_SMTP_INFO_SMART_HOST | \ FC_SMTP_INFO_COMMON_PARAMS | \ FC_SMTP_INFO_DEFAULT_DOMAIN | \ FC_SMTP_INFO_BAD_MAIL_DIR | \ FC_SMTP_INFO_MASQUERADE | \ FC_SMTP_INFO_LOCAL_DOMAINS | \ FC_SMTP_INFO_REMOTE_PORT | \ FC_SMTP_INFO_DOMAIN_ROUTING |\ FC_SMTP_INFO_ADMIN_EMAIL_NAME |\ FC_SMTP_INFO_ALWAYS_USE_SSL |\ FC_SMTP_INFO_MAX_OUT_CONN_PER_DOMAIN |\ FC_SMTP_INFO_INBOUND_SUPPORT_OPTIONS |\ FC_SMTP_INFO_DEFAULT_DROP_DIR |\ FC_SMTP_INFO_FQDN |\ FC_SMTP_INFO_ETRN_SUBDOMAINS |\ FC_SMTP_INFO_SSL_PERM |\ FC_SMTP_INFO_AUTHORIZATION |\ FC_SMTP_INFO_NTAUTHENTICATION_PROVIDERS |\ FC_SMTP_INFO_SASL_LOGON_DOMAIN |\ FC_SMTP_CLEARTEXT_AUTH_PROVIDER \ )
//
// Cut out from FC_SMTP_INFO_ALL by keithlau on 7/8/96
//
/*
* FC_SMTP_INFO_LOOP_BACK | \ FC_SMTP_INFO_BACK_LOG | \ FC_SMTP_INFO_MAX_OBJECTS | \ FC_SMTP_INFO_DELIVERY | \ FC_SMTP_INFO_BAD_MAIL | \ FC_SMTP_INFO_DOMAIN | \ FC_SMTP_INFO_MAIL_QUEUE_DIR | \ FC_SMTP_INFO_FILELINKS | \ FC_SMTP_INFO_BATCHMSGS | \ FC_SMTP_INFO_ROUTING_DLL | \ FC_SMTP_INFO_MAIL_PICKUP_DIR \ * */
typedef struct _SMTP_CONFIG_INFO { FIELD_CONTROL FieldControl;
//
// Removed by keithlau on 7/8/96
//
// DWORD dwCheckLoopBack; // Make sure we're not sending to ourself
// DWORD dwLocalBackLog; //
// DWORD dwRemoteBackLog; //
// DWORD dwMaxAddressObjects; // Max CPool Addresses
// DWORD dwMaxMailObjects; // Max CPool Msgs
// DWORD dwShouldDelete; // Should delete messages when delivered
// DWORD dwShouldDeliver; // Should deliver messages when accepted
// DWORD dwUseFileLinks; // 0 = use NTFS file links, 1 = use CopyFile
// DWORD dwBatchMsgs; // 0 = Don't batch msgs, 1 = batch msgs
// DWORD dwMaxBatchLimit; // if dwBatchMsgs == 1, batch this many in a row
// DWORD dwSaveBadMail; // Save bad mail locally - independent of sending to admin
// DWORD dwEnableMailPickUp; // 1 = Pickup from a Dir, 0 = No pickup from a Dir
// LPWSTR lpszDeleteDir; // Dir to move delivered msg to if dwShouldDelete == FALSE
// LPWSTR lpszRoutingDll; // Mail routing DLL
// LPWSTR lpszMailQueueDir; // Local directory to use for the mail queue
// LPWSTR lpszMailPickupDir; // Local Directory for mail pickup
// LPSMTP_CONFIG_DOMAIN_LIST DomainList; // Domain config info - default domain and supported domains
DWORD dwReverseLookup; // Do DNS Reverse lookup?
DWORD dwMaxHopCount; // Max msg hops before NDR
DWORD dwMaxRemoteTimeOut; // Outbound inactivity timeout
DWORD dwMaxErrors; // Max protocol errors before drop conn
DWORD dwMaxMsgSizeAccepted; // Largest msg we'll accept
DWORD dwMaxMsgSizeBeforeClose; // Largest msg we'll wait for before abrupt close
DWORD dwMaxRcpts; // Max recips per message
DWORD dwShouldRetry; // Should retry delivery
DWORD dwMaxRetryAttempts; // Max # of retry attempts
DWORD dwMaxRetryMinutes; // Minutes between retries
DWORD dwNameResolution; // 0 = DNS, 1 = GetHostByName
DWORD dwShouldPipelineOut; // Pipeline outbound mail?
DWORD dwShouldPipelineIn; // Advertise inbound pipeline support?
DWORD dwSmartHostType; // 0 = Never, 1 = On failed connection, 1 = Always
DWORD dwSendNDRCopyToAdmin; // Send copy of all NDR's to AdminEmail?
DWORD dwSendBadMailToAdmin; // Send bad msgs to AdminEmail?
DWORD dwMaxOutboundConnections; // Maximum outbound connections allowed
LPWSTR lpszSmartHostName; // Smart host server
LPWSTR lpszConnectResp; // Connection response
LPWSTR lpszBadMailDir; // Dir to save bad mail
LPWSTR lpszDefaultDomain; // Default domain
LPSMTP_CONFIG_ROUTING_LIST RoutingList; // Mail routing source information
} SMTP_CONFIG_INFO, *LPSMTP_CONFIG_INFO;
NET_API_STATUS NET_API_FUNCTION SmtpGetAdminInformation( IN LPWSTR pszServer OPTIONAL, OUT LPSMTP_CONFIG_INFO * ppConfig, DWORD dwInstance );
NET_API_STATUS NET_API_FUNCTION SmtpSetAdminInformation( IN LPWSTR pszServer OPTIONAL, IN LPSMTP_CONFIG_INFO pConfig, IN DWORD dwInstance );
NET_API_STATUS NET_API_FUNCTION SmtpGetConnectedUserList( IN LPWSTR pszServer OPTIONAL, OUT LPSMTP_CONN_USER_LIST *ppConnUserList, IN DWORD dwInstance );
NET_API_STATUS NET_API_FUNCTION SmtpDisconnectUser( IN LPWSTR pszServer OPTIONAL, IN DWORD dwUserId, IN DWORD dwInstance );
NET_API_STATUS NET_API_FUNCTION SmtpRenameDomain( IN LPWSTR wszServerName, IN LPWSTR wszOldDomainName, IN LPWSTR wszNewDomainName, IN DWORD dwInstance );
NET_API_STATUS NET_API_FUNCTION SmtpGetLocalDomains( IN LPWSTR wszServerName, OUT LPSMTP_CONFIG_DOMAIN_LIST *ppDomainList, IN DWORD dwInstance );
NET_API_STATUS NET_API_FUNCTION SmtpAddLocalDomain( IN LPWSTR wszServerName, IN LPWSTR wszLocalDomain, IN DWORD dwInstance );
NET_API_STATUS NET_API_FUNCTION SmtpDelLocalDomain( IN LPWSTR wszServerName, IN LPWSTR wszLocalDomain, IN DWORD dwInstance
);
//
// User config
//
#define FC_SMTP_USER_PROPS_FORWARD ((FIELD_CONTROL)BitFlag(0))
#define FC_SMTP_USER_PROPS_MAILBOX_SIZE ((FIELD_CONTROL)BitFlag(1))
#define FC_SMTP_USER_PROPS_VROOT ((FIELD_CONTROL)BitFlag(2))
#define FC_SMTP_USER_PROPS_LOCAL ((FIELD_CONTROL)BitFlag(3))
#define FC_SMTP_USER_PROPS_MAILBOX_MESSAGE_SIZE ((FIELD_CONTROL)BitFlag(4))
#define FC_SMTP_USER_PROPS_ALL ( \
FC_SMTP_USER_PROPS_FORWARD | \ FC_SMTP_USER_PROPS_MAILBOX_SIZE | \ FC_SMTP_USER_PROPS_VROOT | \ FC_SMTP_USER_PROPS_LOCAL |\ FC_SMTP_USER_PROPS_MAILBOX_MESSAGE_SIZE \ ) #if defined(MIDL_PASS)
#define MIDL(x) x
#else
#define MIDL(x)
#endif
typedef struct _SMTP_USER_PROPS { FIELD_CONTROL fc;
LPWSTR wszForward; DWORD dwMailboxMax; LPWSTR wszVRoot; DWORD dwLocal; DWORD dwMailboxMessageMax; } SMTP_USER_PROPS, *LPSMTP_USER_PROPS;
NET_API_STATUS NET_API_FUNCTION SmtpCreateUser( IN LPWSTR wszServerName, IN LPWSTR wszEmail, IN LPWSTR wszForwardEmail, IN DWORD dwLocal, IN DWORD dwMailboxSize, IN DWORD dwMailboxMessageSize, IN LPWSTR wszVRoot, IN DWORD dwInstance
);
NET_API_STATUS NET_API_FUNCTION SmtpDeleteUser( IN LPWSTR wszServerName, IN LPWSTR wszEmail, IN DWORD dwInstance );
NET_API_STATUS NET_API_FUNCTION SmtpGetUserProps( IN LPWSTR wszServerName, IN LPWSTR wszEmail, OUT LPSMTP_USER_PROPS *ppUserProps, IN DWORD dwInstance );
NET_API_STATUS NET_API_FUNCTION SmtpSetUserProps( IN LPWSTR wszServerName, IN LPWSTR wszEmail, IN LPSMTP_USER_PROPS pUserProps, IN DWORD dwInstance );
NET_API_STATUS NET_API_FUNCTION SmtpCreateDistList( IN LPWSTR wszServerName, IN LPWSTR wszEmail, IN DWORD dwType, IN DWORD dwInstance );
NET_API_STATUS NET_API_FUNCTION SmtpDeleteDistList( IN LPWSTR wszServerName, IN LPWSTR wszEmail, IN DWORD dwInstance );
NET_API_STATUS NET_API_FUNCTION SmtpCreateDistListMember( IN LPWSTR wszServerName, IN LPWSTR wszEmail, IN LPWSTR wszEmailMember, IN DWORD dwInstance
);
NET_API_STATUS NET_API_FUNCTION SmtpDeleteDistListMember( IN LPWSTR wszServerName, IN LPWSTR wszEmail, IN LPWSTR wszEmailMember, IN DWORD dwInstance );
NET_API_STATUS NET_API_FUNCTION SmtpGetNameList( IN LPWSTR wszServer, IN LPWSTR wszEmail, IN DWORD dwType, IN DWORD dwRowsReq, IN BOOL fForward, OUT LPSMTP_NAME_LIST *ppNameList, IN DWORD dwInstance );
NET_API_STATUS NET_API_FUNCTION SmtpGetNameListFromList( IN LPWSTR wszServerName, IN LPWSTR wszEmailList, IN LPWSTR wszEmail, IN DWORD dwType, IN DWORD dwRowsRequested, IN BOOL fForward, OUT LPSMTP_NAME_LIST *ppNameList, IN DWORD dwInstance );
NET_API_STATUS NET_API_FUNCTION SmtpGetVRootSize( IN LPWSTR wszServerName, IN LPWSTR wszVRoot, IN LPDWORD pdwBytes, IN DWORD dwInstance );
NET_API_STATUS NET_API_FUNCTION SmtpBackupRoutingTable( IN LPWSTR wszServerName, IN LPWSTR wszPath, IN DWORD dwInstance );
// ===================================================
// SMTP SDK RPCs
//
NET_API_STATUS NET_API_FUNCTION SmtpGetUserProfileInformation( IN LPWSTR pszServer OPTIONAL, IN LPWSTR wszEmail, IN OUT LPSSE_USER_PROFILE_INFO lpProfileInfo, IN DWORD dwInstance );
NET_API_STATUS NET_API_FUNCTION SmtpSetUserProfileInformation( IN LPWSTR pszServer OPTIONAL, IN LPWSTR wszEmail, IN LPSSE_USER_PROFILE_INFO lpProfileInfo, IN DWORD dwInstance );
//
// Get Server Statistics
//
NET_API_STATUS NET_API_FUNCTION SmtpQueryStatistics( IN LPWSTR ServerName OPTIONAL, IN DWORD Level, OUT LPBYTE * Buffer );
//
// Clear server statistics
//
NET_API_STATUS NET_API_FUNCTION SmtpClearStatistics( IN LPWSTR ServerName OPTIONAL, IN DWORD dwInstance );
//
// Used to free buffers returned by APIs
//
VOID SmtpFreeBuffer( LPVOID Buffer );
//
// AQ Admin APIs
//
#include <aqadmtyp.h>
NET_API_STATUS NET_API_FUNCTION SmtpAQApplyActionToLinks( LPWSTR wszServer, LPWSTR wszInstance, LINK_ACTION laAction);
NET_API_STATUS NET_API_FUNCTION SmtpAQApplyActionToMessages( LPWSTR wszServer, LPWSTR wszInstance, QUEUELINK_ID *pqlQueueLinkId, MESSAGE_FILTER *pmfMessageFilter, MESSAGE_ACTION maMessageAction, DWORD *pcMsgs);
NET_API_STATUS NET_API_FUNCTION SmtpAQGetQueueInfo( LPWSTR wszServer, LPWSTR wszInstance, QUEUELINK_ID *pqlQueueId, QUEUE_INFO *pqiQueueInfo);
NET_API_STATUS NET_API_FUNCTION SmtpAQGetLinkInfo( LPWSTR wszServer, LPWSTR wszInstance, QUEUELINK_ID *pqlLinkId, LINK_INFO *pliLinkInfo);
NET_API_STATUS NET_API_FUNCTION SmtpAQSetLinkState( LPWSTR wszServer, LPWSTR wszInstance, QUEUELINK_ID *pqlLinkId, LINK_ACTION la);
NET_API_STATUS NET_API_FUNCTION SmtpAQGetLinkIDs( LPWSTR wszServer, LPWSTR wszInstance, DWORD *pcLinks, QUEUELINK_ID **rgLinks);
NET_API_STATUS NET_API_FUNCTION SmtpAQGetQueueIDs( LPWSTR wszServer, LPWSTR wszInstance, QUEUELINK_ID *pqlLinkId, DWORD *pcQueues, QUEUELINK_ID **rgQueues);
NET_API_STATUS NET_API_FUNCTION SmtpAQGetMessageProperties( LPWSTR wszServer, LPWSTR wszInstance, QUEUELINK_ID *pqlQueueLinkId, MESSAGE_ENUM_FILTER *pmfMessageEnumFilter, DWORD *pcMsgs, MESSAGE_INFO **rgMsgs);
#ifdef __cplusplus
} #endif
#endif _SMTPAPI_
|