146 lines
7.3 KiB
Plaintext
146 lines
7.3 KiB
Plaintext
//-----------------------------------------------------------------------------
|
|
//
|
|
//
|
|
// File: aqintrnl.idl
|
|
//
|
|
// Description: IDL file that defines the internal AQueue COM interfaces.
|
|
//
|
|
// Author: Mike Swafford (MikeSwa)
|
|
//
|
|
// History:
|
|
// 7/19/99 - MikeSwa Split from aqueue.idl.
|
|
//
|
|
// Copyright (C) 1997, 1999 Microsoft Corporation
|
|
//
|
|
//-----------------------------------------------------------------------------
|
|
|
|
import "oaidl.idl";
|
|
import "ocidl.idl";
|
|
import "mailmsg.idl";
|
|
|
|
//---[ eDSNActions ]-----------------------------------------------------------
|
|
//
|
|
//
|
|
// Description: Possible actions for DSN Generation event
|
|
//
|
|
//
|
|
//-----------------------------------------------------------------------------
|
|
typedef [v1_enum] enum
|
|
{
|
|
DSN_ACTION_FAILURE = 0x00000001, //Generate a FAILURE DSN for FAILED recips
|
|
DSN_ACTION_FAILURE_ALL = 0x00000002, //Generate a FAILURE DSN for UNDELIVERED and FAILED recips
|
|
DSN_ACTION_DELAYED = 0x00000004, //Generate a DELAY DSN for undelivered recips
|
|
DSN_ACTION_RELAYED = 0x00000008, //Generate a RELAY DSN for delivered recips
|
|
DSN_ACTION_EXPANDED = 0x00000010, //Generate a EXPANDED DSN for expanded
|
|
DSN_ACTION_DELIVERED = 0x00000020, //Generate a DELIVERED DSN for delivered recips
|
|
DSN_ACTION_TYPE_MASK = 0x0000003F, //Mask for the bits describing the type of DSN
|
|
DSN_ACTION_DEFAULT_HDRS = 0x00000100, //If RET is not specified - default to headers only
|
|
DSN_ACTION_DEFAULT_FULL = 0x00000200, //Default to sending FULL body
|
|
DSN_ACTION_IGNORE_RET = 0x00000400, //Ignore RET and use Default specified
|
|
DSN_ACTION_CONTEXT_STORE= 0x00100000, //DSN is being generated because of store
|
|
DSN_ACTION_CONTEXT_CAT = 0x00200000, //DSN is being generated because of cat
|
|
DSN_ACTION_CONTEXT_MTA = 0x00400000, //DSN is being generated becuase of mta
|
|
} eDSNActions ;
|
|
|
|
|
|
//---[ IConnectionRetryManager ]-----------------------------------------------
|
|
//
|
|
//
|
|
// Description: Public interface that exposes methods that allow scheduled
|
|
// connections and specialized retry logic.
|
|
//
|
|
//
|
|
//-----------------------------------------------------------------------------
|
|
[
|
|
object,
|
|
uuid(B870CE2B-A755-11d2-A6A9-00C04FA3490A),
|
|
helpstring("IConnectionRetryManager Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IConnectionRetryManager : IUnknown
|
|
{
|
|
[helpstring("method RetryLink")] HRESULT RetryLink(
|
|
[in] DWORD cbDomainName,
|
|
[in, size_is(cbDomainName + 1)] CHAR szDomainName[],
|
|
[in] DWORD dwScheduleID,
|
|
[in] GUID guidTransportSink);
|
|
};
|
|
|
|
//---[ IConnectionRetrySink ]---------------------------------------------------
|
|
//
|
|
//
|
|
// Description: Interface used handle retry logic.
|
|
//
|
|
// Note: If the fAllowImmediateRetry is
|
|
// set to TRUE, the given <domain, schedule> will be immediately put back
|
|
// into the pool from which connections are made. If FALSE, a call to
|
|
// RetryLink() must be made before any connections will
|
|
// be allocated for the given <domain, schedule>.
|
|
//-----------------------------------------------------------------------------
|
|
[
|
|
object,
|
|
uuid(B870CE2A-A755-11d2-A6A9-00C04FA3490A),
|
|
helpstring("IConnectionRetrySink Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IConnectionRetrySink : IUnknown
|
|
{
|
|
//Notification when a connection is released
|
|
[helpstring("method ConnectionReleased")] HRESULT ConnectionReleased(
|
|
[in] DWORD cbDomainName,
|
|
[in, size_is(cbDomainName+1)] CHAR szDomainName[],
|
|
[in] DWORD dwDomainInfoFlags, //DomainInfo configuration Flags
|
|
[in] DWORD dwScheduleID,
|
|
[in] GUID guidRouting,
|
|
[in] DWORD dwConnectionStatus, //eConnectionStatus
|
|
[in] DWORD cFailedMessages, //# of failed message for *this* connection
|
|
[in] DWORD cTriedMessages, //# of tried messages for *this* connection
|
|
[in] DWORD cConsecutiveConnectionFailures,//# of other active connections for this domain
|
|
[out] BOOL *pfAllowImmediateRetry,
|
|
[out] FILETIME *pftNextRetryAttempt);
|
|
|
|
};
|
|
|
|
|
|
//---[ IDSNGenerationSink ]----------------------------------------------------
|
|
//
|
|
//
|
|
// Description:
|
|
// Interface that sinks the DSN generation event. Will need to be moved
|
|
// to a public idl file (along with retry/schedule sink).
|
|
//
|
|
//-----------------------------------------------------------------------------
|
|
[
|
|
object,
|
|
uuid(E6641D7D-92AA-484b-BD5D-7099478CB2FE),
|
|
helpstring("IDSNGeneration Interface"),
|
|
]
|
|
interface IDSNGenerationSink : IUnknown
|
|
{
|
|
//Synchronous interface to generation a DSN and submit it to delivery
|
|
[helpstring("method GenerateDSN")] HRESULT GenerateDSN(
|
|
[in] ISMTPServer *pISMTPServer,
|
|
[in] IMailMsgProperties *pIMailMsgProperties,
|
|
[in] DWORD dwStartDomain, //starting index used to init context
|
|
[in] DWORD dwDSNActions, //type(s) of DSN to generate
|
|
[in] DWORD dwRFC821Status, //global RFC821 status
|
|
[in] HRESULT hrStatus, //global HRESULT
|
|
[in, size_is(cbDefaultDomain+1)] LPSTR szDefaultDomain,
|
|
[in] DWORD cbDefaultDomain,
|
|
[in, size_is(cbReportingMTA+1)] LPSTR szReportingMTA, //reporting MTA of DSN
|
|
[in] DWORD cbReportingMTA, //string length of reporting MTA
|
|
[in, size_is(cbReportingMTAType+1)] LPSTR szReportingMTAType, //reporting MTA type
|
|
[in] DWORD cbReportingMTAType, //string length of reporting MTA Type
|
|
[in, size_is(cbDSNContext+1)] LPSTR szDSNContext,
|
|
[in] DWORD cbDSNContext,
|
|
[in] DWORD dwLangId, //preferred language ID to generate DSNs in
|
|
[in] DWORD dwDSNOptions, //eDSNOptions flags
|
|
[in, size_is(cbCopyNDRTo+1)] LPSTR szCopyNDRTo,
|
|
[in] DWORD cbCopyNDRTo,
|
|
[out] IMailMsgProperties **ppIMailMsgPropertiesDSN,
|
|
[out] DWORD *pdwDSNTypesGenerated,
|
|
[out] DWORD *pcRecipsDSN, //# of recipes DSN'd
|
|
[out] DWORD *pcIterationsLeft); //# of times this should be called
|
|
};
|
|
|