476 lines
21 KiB
Plaintext
476 lines
21 KiB
Plaintext
//-----------------------------------------------------------------------------
|
|
//
|
|
//
|
|
// File: aqueue.idl
|
|
//
|
|
// Description: IDL source for aqueue.dll. Contains interface descriptions
|
|
// for:
|
|
// IAdvQueue
|
|
// Exposes SubmitMessage via server event as well
|
|
// as HandleFailedMessage.
|
|
// IAdvQueueConfig
|
|
// Allows SMTP service to configure AQ
|
|
// IConnectionManager
|
|
// Interface to SMTP for outbound connections
|
|
// IAdvQueueDomainType
|
|
// Interface passed to the default categorizer that
|
|
// allows it to check if a domain is local or not.
|
|
//
|
|
// Author: mikeswa
|
|
//
|
|
// History:
|
|
// 7/28/98 - MikeSwa Modified - added IAdvQueueDomainType and
|
|
// HandleFailedMessage
|
|
// 6/7/99 - MikeSwa Removed queue admin interface
|
|
// Copyright (C) 1997 Microsoft Corporation
|
|
//
|
|
//-----------------------------------------------------------------------------
|
|
|
|
import "oaidl.idl";
|
|
import "ocidl.idl";
|
|
import "mailmsg.idl";
|
|
import "smtpevent.idl";
|
|
import "perfcat.h";
|
|
|
|
// Include aqdll.h to define the dll and function names and prototypes
|
|
cpp_quote("#include \"aqdll.h\" ")
|
|
|
|
//---[ eMessageStatus ]--------------------------------------------------------
|
|
//
|
|
//
|
|
// Description: enum used to describe Message status on
|
|
// ISMTPConnection::AckMessage
|
|
//
|
|
//-----------------------------------------------------------------------------
|
|
typedef [v1_enum] enum
|
|
{
|
|
MESSAGE_STATUS_ALL_DELIVERED = 0x00000001, //everything succeed
|
|
MESSAGE_STATUS_RETRY = 0x00000002, //need to retry message
|
|
MESSAGE_STATUS_CHECK_RECIPS = 0x00000004, //send message through dsn code
|
|
MESSAGE_STATUS_NDR_ALL = 0x00000008, //delivery failed -- NDR all recips
|
|
MESSAGE_STATUS_DSN_NOT_SUPPORTED = 0x00000010, //remote system does not support DSN's
|
|
MESSAGE_STATUS_EXTENDED_STATUS_CODES = 0x00000020, //Extended status codes returned
|
|
MESSAGE_STATUS_RESERVED = 0xFF000000, //reserved for internal use
|
|
} eMessageStatus ;
|
|
|
|
cpp_quote("#define MESSAGE_STATUS_RETRY_ALL 0x00000002") //*** OBSOLETE ***
|
|
|
|
//---[ eConnectionStatus ]-----------------------------------------------------
|
|
//
|
|
//
|
|
// Description: enum used to describe connection status on
|
|
// ISMTPConnection::AckConnection
|
|
//
|
|
//-----------------------------------------------------------------------------
|
|
typedef [v1_enum] enum
|
|
{
|
|
CONNECTION_STATUS_OK = 0x00000000,
|
|
CONNECTION_STATUS_FAILED = 0x00000001, //Initial Connection failed
|
|
CONNECTION_STATUS_DROPPED = 0x00000002, //Initial Connection succeeded, but was later dropped
|
|
CONNECTION_STATUS_FAILED_NDR_UNDELIVERED = 0x00000004, //NDR undelivered recipients
|
|
CONNECTION_STATUS_FAILED_LOOPBACK = 0x00000010, //Connection configured as loop
|
|
} eConnectionStatus ;
|
|
|
|
//---[ eDomainInfoFlags ]------------------------------------------------------
|
|
//
|
|
// Description: Flags used to describe boolean per domain properties
|
|
// See smtpevent.idl for the definition of the domain info flags.
|
|
//
|
|
//-----------------------------------------------------------------------------
|
|
|
|
//---[ DomainInfo ]------------------------------------------------------------
|
|
//
|
|
//
|
|
// Description: Struct passed back by ISMTPConnection::GetDomainInfo
|
|
// (string size does not include '\0'). Also used to set per-domain
|
|
// properties.
|
|
//
|
|
// String values that are returned in proc via GetDomainInfo will be
|
|
// valid while the connection exists.
|
|
//
|
|
//-----------------------------------------------------------------------------
|
|
typedef struct _DomainInfo
|
|
{
|
|
DWORD cbVersion; //version / size of info struct
|
|
DWORD dwDomainInfoFlags; //OR'd eDomainInfoFlags
|
|
DWORD cbDomainNameLength;
|
|
LPSTR szDomainName; //Domain Name this info references
|
|
DWORD cbETRNDomainNameLength;
|
|
LPSTR szETRNDomainName; //Domain Name to send with ETRN
|
|
DWORD cbSmartHostDomainNameLength;
|
|
LPSTR szSmartHostDomainName; //Domain Name to connect as
|
|
DWORD cbDropDirectoryLength;
|
|
LPSTR szDropDirectory; //Directory to drop to
|
|
DWORD cbAuthTypeLength;
|
|
LPSTR szAuthType; //Arbitrary auth type string
|
|
DWORD cbUserNameLength;
|
|
LPSTR szUserName; //User name to authenticate with
|
|
DWORD cbPasswordLength;
|
|
LPSTR szPassword; //Password to authenticate with
|
|
DWORD cEtrnDelayTime; //Delay between making connection and sending ETRN
|
|
DWORD cbBlob;
|
|
DWORD *pvBlob; //Blob associated with domain (used in relay restrictions)
|
|
} DomainInfo ;
|
|
|
|
|
|
//---[ eAQConfigInfoFlags ]----------------------------------------------------
|
|
//
|
|
//
|
|
// Description: Flags describing which AQConfigInfo parameters to use (are
|
|
// updated)
|
|
//
|
|
//-----------------------------------------------------------------------------
|
|
typedef [v1_enum] enum
|
|
{
|
|
AQ_CONFIG_INFO_MAX_CON = 0x00000001, //Use cMaxConnections
|
|
AQ_CONFIG_INFO_MAX_LINK = 0x00000002, //Use cMaxLinkConnections
|
|
AQ_CONFIG_INFO_MIN_MSG = 0x00000004, //Use cMinMessagesPerConnection
|
|
AQ_CONFIG_INFO_CON_WAIT = 0x00000008, //Use dwConnectionWaitMilliseconds
|
|
AQ_CONFIG_INFO_CON_RETRY = 0x00000010, //Use dwConnectionWaitMilliseconds
|
|
AQ_CONFIG_INFO_MSGCAT_DOMAIN = 0x00000020, //Use szMsgCatDomain
|
|
AQ_CONFIG_INFO_MSGCAT_USER = 0x00000040, //Use szMsgCatUser
|
|
AQ_CONFIG_INFO_MSGCAT_PASSWORD = 0x00000080, //Use szMsgCatPassword
|
|
AQ_CONFIG_INFO_MSGCAT_BINDTYPE = 0x00000100, //Use szMsgCatBindType
|
|
AQ_CONFIG_INFO_MSGCAT_SCHEMATYPE = 0x00000200, //Use szMsgCatSchemaType
|
|
AQ_CONFIG_INFO_MSGCAT_HOST = 0x00000400, //Use szMsgCatHost
|
|
AQ_CONFIG_INFO_MSGCAT_FLAGS = 0x00000800, //Use dwMsgCatFlags
|
|
AQ_CONFIG_INFO_MSGCAT_NAMING_CONTEXT = 0x00001000, //Use szMsgCatNamingContext
|
|
AQ_CONFIG_INFO_MSGCAT_TYPE = 0x00002000, //Use szMsgCatType
|
|
AQ_CONFIG_INFO_MSGCAT_PORT = 0x00004000, //Use dwMsgCatPort
|
|
AQ_CONFIG_INFO_EXPIRE_DELAY = 0x00008000, //Use dwDelayExpireMinutes
|
|
AQ_CONFIG_INFO_EXPIRE_NDR = 0x00010000, //Use dwNDRExpireMinutes
|
|
AQ_CONFIG_INFO_LOCAL_EXPIRE_DELAY = 0x00020000, //Use dwLocalDelayExpireMinutes
|
|
AQ_CONFIG_INFO_LOCAL_EXPIRE_NDR = 0x00040000, //Use dwLocalNDRExpireMinutes
|
|
AQ_CONFIG_INFO_DEFAULT_DOMAIN = 0x00080000, //Use szDefaultLocalDomain
|
|
AQ_CONFIG_INFO_BADMAIL_DIR = 0x00100000, //Use szBadMailDir
|
|
AQ_CONFIG_INFO_USE_DSN_OPTIONS = 0x00200000, //Use dwDSNOptions
|
|
AQ_CONFIG_INFO_USE_DSN_LANGUAGE = 0x00400000, //Use dwDSNLanguageID
|
|
AQ_CONFIG_INFO_MSGCAT_ENABLE = 0x00800000, //Use dwMsgCatEnable
|
|
AQ_CONFIG_INFO_SEND_DSN_TO = 0x01000000, //Use send NDR to address
|
|
AQ_CONFIG_INFO_MSGCAT_DEFAULT = 0x02000000, //Use defaults if params not set
|
|
AQ_CONFIG_INFO_SERVER_FQDN = 0x04000000, //Use server FQDN
|
|
AQ_CONFIG_INFO_ALL = 0x07FFFFFF, //Use all Fields
|
|
} eAQConfigInfoFlags ;
|
|
|
|
//---[ eDSNOptions ]-----------------------------------------------------------
|
|
//
|
|
//
|
|
// Description:
|
|
// Options flags for DSN options passed into AQueue.
|
|
//
|
|
//-----------------------------------------------------------------------------
|
|
typedef [v1_enum] enum
|
|
{
|
|
DSN_OPTIONS_DEFAULT = 0x00000000,
|
|
DSN_OPTIONS_DEFAULT_RET_HEADERS = 0x00000001,
|
|
DSN_OPTIONS_DEFAULT_RET_FULL = 0x00000002,
|
|
DSN_OPTIONS_IGNORE_MSG_RET = 0x00000004,
|
|
DSN_OPTIONS_SEND_DELAY_DEFAULT = 0x00000008,
|
|
DSN_OPTIONS_SEND_DELAY_UPON_REQUEST = 0x00000010,
|
|
DSN_OPTIONS_SEND_DELAY_NEVER = 0x00000020,
|
|
} eDSNOptions;
|
|
|
|
//---[ AQConfigInfo ]----------------------------------------------------------
|
|
//
|
|
//
|
|
// Description: Struct containing all dynamically set-able global AQ
|
|
// properties
|
|
//
|
|
//-----------------------------------------------------------------------------
|
|
typedef struct _AQConfigInfo
|
|
{
|
|
DWORD cbVersion; //version / size of into struct
|
|
DWORD dwAQConfigInfoFlags; //Flags describing which info to update
|
|
DWORD cMaxConnections; //Total maximum Connections
|
|
DWORD cMaxLinkConnections; //Total number of connections per link
|
|
DWORD cMinMessagesPerConnection; //Minimum # of message before creating
|
|
//*additional* connection
|
|
DWORD dwConnectionWaitMilliseconds; //# of milliseconds to in
|
|
//GetNextConnection, before timing out and
|
|
//retrying link objects
|
|
DWORD dwConnectionRetryMilliseconds; //# of milliseconds wwait before
|
|
//retrying failed connections
|
|
|
|
DWORD dwRetryThreshold; //# of connections failures before we start
|
|
DWORD dwFirstRetrySeconds; //Interval to hold when retrying for first time
|
|
DWORD dwSecondRetrySeconds; //Interval to hold when retrying for second time
|
|
DWORD dwThirdRetrySeconds; //Interval to hold when retrying for third time
|
|
DWORD dwFourthRetrySeconds; //Interval to hold when retrying more than three times
|
|
|
|
//credentials & config into used by MsgCat to athenticate against DS
|
|
LPSTR szMsgCatDomain;
|
|
LPSTR szMsgCatUser;
|
|
LPSTR szMsgCatPassword;
|
|
LPSTR szMsgCatBindType;
|
|
LPSTR szMsgCatSchemaType;
|
|
LPSTR szMsgCatHost;
|
|
DWORD dwMsgCatPort;
|
|
DWORD dwMsgCatFlags;
|
|
DWORD dwMsgCatEnable;
|
|
LPSTR szMsgCatNamingContext;
|
|
LPSTR szMsgCatType;
|
|
|
|
//Expiry information
|
|
DWORD dwDelayExpireMinutes;
|
|
DWORD dwNDRExpireMinutes;
|
|
DWORD dwLocalDelayExpireMinutes;
|
|
DWORD dwLocalNDRExpireMinutes;
|
|
|
|
//Default local domain information
|
|
LPSTR szDefaultLocalDomain;
|
|
|
|
//Badmail handling
|
|
LPSTR szBadMailDir;
|
|
|
|
//DSN Configuration
|
|
DWORD dwDSNOptions;
|
|
DWORD dwDSNLanguageID;
|
|
LPSTR szSendCopyOfNDRToAddress;
|
|
LPSTR szServerFQDN;
|
|
} AQConfigInfo;
|
|
|
|
//---[ MessageAck ]------------------------------------------------------------
|
|
//
|
|
//
|
|
// Description: Struct passed back with message acks.
|
|
//
|
|
//
|
|
//-----------------------------------------------------------------------------
|
|
typedef struct _MessageAck
|
|
{
|
|
IMailMsgProperties *pIMailMsgProperties; //IMailMsgProperties to Ack
|
|
DWORD *pvMsgContext; //Context generated on GetNextMessage
|
|
DWORD dwMsgStatus; //eMsgStatus flags
|
|
DWORD dwStatusCode; //The DWORD version of the status code
|
|
DWORD cbExtendedStatus; //size of extended status string
|
|
LPSTR szExtendedStatus; //extended status -- valid only when
|
|
//MESSAGE_STATUS_EXTENDED_STATUS_CODES is set
|
|
} MessageAck ;
|
|
|
|
//---[ eMessageFailureReasons ]------------------------------------------------
|
|
//
|
|
//
|
|
// Description:
|
|
// Enum describing the possible SMTP message failure reasons.
|
|
//
|
|
//-----------------------------------------------------------------------------
|
|
typedef [v1_enum] enum
|
|
{
|
|
MESSAGE_FAILURE_GENERAL = 0x00000001,
|
|
MESSAGE_FAILURE_HOP_COUNT_EXCEEDED = 0x00000002, //Hop count on message exceeds max
|
|
MESSAGE_FAILURE_BAD_PICKUP_DIR_FILE = 0x00000003, //Unable to process pickup dir file
|
|
} eMessageFailureReasons;
|
|
|
|
|
|
//---[ ISMTPConnection ]-------------------------------------------------------
|
|
//
|
|
//
|
|
// Description: Interface used by SMTP to represent a single outbound
|
|
// connection.
|
|
//
|
|
//
|
|
//-----------------------------------------------------------------------------
|
|
[
|
|
object,
|
|
local,
|
|
uuid(838258A5-4EEB-11D1-B2CD-00C04FC32984),
|
|
helpstring("ISMTPConnection Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface ISMTPConnection : IUnknown
|
|
{
|
|
[helpstring("method AckConnection")] HRESULT AckConnection(
|
|
[in] DWORD dwConnectionStatus);
|
|
[helpstring("method GetDomainInfo")] HRESULT GetDomainInfo(
|
|
[in, out] DomainInfo *pDomainInfo);
|
|
[helpstring("method GetNextMessage")] HRESULT GetNextMessage(
|
|
[out] IMailMsgProperties **ppIMailMsgProperties,
|
|
[out] DWORD **ppvMsgContext,
|
|
[in, out] DWORD *pcIndexes,
|
|
[out, size_is(*pcIndexes)] DWORD *prgdwRecipIndex[]);
|
|
[helpstring("method AckMessage")] HRESULT AckMessage(
|
|
[in] MessageAck *pMsgAck);
|
|
[helpstring("method SetDiagnosticInfo")] HRESULT SetDiagnosticInfo(
|
|
[in] HRESULT hrDiagnosticError,
|
|
[in, string] LPCSTR szDiagnosticVerb,
|
|
[in, string] LPCSTR szDiagnosticResponse);
|
|
};
|
|
|
|
//---[ IConnectionManager ]----------------------------------------------------
|
|
//
|
|
//
|
|
// Description: Interface used by SMTP to Get outbound connections and
|
|
// to handle TURN, ETRN, and ATRN requests
|
|
//
|
|
//
|
|
//-----------------------------------------------------------------------------
|
|
[
|
|
object,
|
|
local,
|
|
uuid(B198B19B-C346-11d1-A67D-00C04FA3490A),
|
|
helpstring("IConnectionManager Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IConnectionManager : IUnknown
|
|
{
|
|
//method that waits until an outbound connection can be created
|
|
[helpstring("method GetNextConnection")] HRESULT GetNextConnection(
|
|
[out, retval] ISMTPConnection **ppISMTPConnection);
|
|
|
|
//Used to get a connection for TURN and ATRN. The domain must be
|
|
//configured as TURN or ATRN.
|
|
[helpstring("method GetNamedConnection")] HRESULT GetNamedConnection(
|
|
[in] DWORD cbSMTPDomain,
|
|
[in, size_is(cbSMTPDomain + 1)] CHAR szSMTPDomain[],
|
|
[out] ISMTPConnection **ppISMTPConnection);
|
|
|
|
//Used to release threads waiting in GetNextConnection for shutdown
|
|
[helpstring("method ReleaseWaitingThreads")] HRESULT ReleaseWaitingThreads();
|
|
|
|
//Used to request that a connection be created in GetNextConnection
|
|
//for the given domain. The domain must be configured as an ETRN
|
|
//domain.
|
|
[helpstring("method ETRNDomain")] HRESULT ETRNDomain(
|
|
[in] DWORD cbSMTPDomain,
|
|
[in, size_is(cbSMTPDomain + 1)] CHAR szSMTPDomain[],
|
|
[out] DWORD *pcMessages);
|
|
};
|
|
|
|
//---[ IAdvQueue ]-------------------------------------------------------------
|
|
//
|
|
//
|
|
// Description: Public interface that exposes servier-wide SubmitMessage
|
|
// (eventually through a server event). For MM1, both SMTP an the MAPI
|
|
// driver will use this to queueu messages for delivery,
|
|
//
|
|
//
|
|
//-----------------------------------------------------------------------------
|
|
[
|
|
object,
|
|
uuid(838258A9-4EEB-11D1-B2CD-00C04FC32984),
|
|
helpstring("IAdvQueue Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IAdvQueue : IUnknown
|
|
{
|
|
[helpstring("method SubmitMessage")] HRESULT SubmitMessage(
|
|
[in] IMailMsgProperties *pIMailMsgProperties);
|
|
[helpstring("method HandleFailedMessage")] HRESULT HandleFailedMessage(
|
|
[in] IMailMsgProperties *pIMailMsgProperties,
|
|
[in] BOOL fUseIMailMsgProperties,
|
|
[in] LPSTR szFileName,
|
|
[in] DWORD dwFailureDescription,
|
|
[in] HRESULT hrFailureCode);
|
|
};
|
|
|
|
//---[ AQPerfCounters ]------------------------------------------------------------
|
|
//
|
|
//
|
|
// Description: Struct containing A/Q perf counters
|
|
//
|
|
//
|
|
//-----------------------------------------------------------------------------
|
|
typedef struct _AQPerfCounters
|
|
{
|
|
DWORD cbVersion; //version / size of struct
|
|
DWORD cMsgsDeliveredLocal;
|
|
DWORD cCurrentMsgsPendingCat;
|
|
DWORD cCurrentMsgsPendingRemoteDelivery;
|
|
DWORD cCurrentMsgsPendingLocalDelivery;
|
|
DWORD cCurrentMsgsPendingRemoteRetry;
|
|
DWORD cCurrentMsgsPendingLocalRetry;
|
|
DWORD cCurrentQueueMsgInstances;
|
|
DWORD cTotalMsgRemoteSendRetries;
|
|
DWORD cTotalMsgLocalRetries;
|
|
DWORD cNDRsGenerated;
|
|
DWORD cDelayedDSNsGenerated;
|
|
DWORD cDeliveredDSNsGenerated;
|
|
DWORD cRelayedDSNsGenerated;
|
|
DWORD cExpandedDSNsGenerated;
|
|
DWORD cCurrentRemoteDestQueues;
|
|
DWORD cCurrentRemoteNextHopLinks;
|
|
DWORD cCurrentRemoteNextHopLinksEnabled;
|
|
DWORD cCurrentRemoteNextHopLinksPendingRetry;
|
|
DWORD cCurrentRemoteNextHopLinksPendingScheduling;
|
|
DWORD cCurrentRemoteNextHopLinksPendingTURNETRN;
|
|
DWORD cCurrentRemoteNextHopLinksFrozenByAdmin;
|
|
DWORD cTotalMsgsTURNETRN;
|
|
DWORD cTotalMsgsBadmailNoRecipients;
|
|
DWORD cTotalMsgsBadmailHopCountExceeded;
|
|
DWORD cTotalMsgsBadmailFailureGeneral;
|
|
DWORD cTotalMsgsBadmailBadPickupFile;
|
|
DWORD cTotalMsgsBadmailEvent;
|
|
DWORD cTotalMsgsBadmailNdrOfDsn;
|
|
DWORD cCurrentMsgsPendingRouting;
|
|
DWORD cCurrentMsgsPendingUnreachableLink;
|
|
DWORD cTotalMsgsSubmitted;
|
|
DWORD cTotalDSNFailures;
|
|
DWORD cCurrentMsgsInLocalDelivery;
|
|
} AQPerfCounters ;
|
|
|
|
|
|
//---[ IAdvQueueConfig ]-------------------------------------------------------
|
|
//
|
|
//
|
|
// Description: Configuration interface... used by SMTP to set global
|
|
// and per-domain configuration info. GetDomainInfo will match the
|
|
// closest configured wildcard domain if no exact match is found. For
|
|
// example, dino.exchange.microsoft.com will match *.microsoft.com if
|
|
// dino.exchange.microsoft.com and *.exchange.microsoft,com have no
|
|
// specific config info.
|
|
//
|
|
//
|
|
//-----------------------------------------------------------------------------
|
|
[
|
|
object,
|
|
local,
|
|
uuid(EABA472E-BE94-11d1-A678-00C04FA3490A),
|
|
helpstring("IAdvQueueConfig Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IAdvQueueConfig : IUnknown
|
|
{
|
|
//set the global config info for this server instance
|
|
[helpstring("method SetConfigInfo")] HRESULT SetConfigInfo(
|
|
[in] AQConfigInfo *pAQConfigInfo);
|
|
//set the domain configuration info for a specified domain
|
|
[helpstring("method SetDomainInfo")] HRESULT SetDomainInfo(
|
|
[in] DomainInfo *pDomainInfo);
|
|
//get the domain config info... will handle wildcard matching
|
|
[helpstring("method GetDomainInfo")] HRESULT GetDomainInfo(
|
|
[in] DWORD cbDomainNameLength,
|
|
[in, size_is(cbDomainNameLength+1)] CHAR szDomainName[],
|
|
[in, out] DomainInfo *pDomainInfo,
|
|
[out] DWORD **ppvDomainContext);
|
|
//Releases references memory allocated in GetDomainInfo
|
|
[helpstring("method ReleaseDomainInfo")] HRESULT ReleaseDomainInfo(
|
|
[in] DWORD *pvDomainContext);
|
|
//get A/Q perf counters
|
|
[helpstring("method GetPerfCounters")] HRESULT GetPerfCounters(
|
|
[out] AQPerfCounters *pAQPerfCounters,
|
|
[out] PCATPERFBLOCK pCatPerfCounters);
|
|
[helpstring("method ResetPerfCounters")] HRESULT ResetPerfCounters();
|
|
|
|
//Used to start/finish an update
|
|
[helpstring("method StartConfigUpdate")] HRESULT StartConfigUpdate();
|
|
[helpstring("method FinishConfigUpdate")] HRESULT FinishConfigUpdate();
|
|
|
|
};
|
|
|
|
//---[ IAdvQueueDomainType ]---------------------------------------------------
|
|
//
|
|
//
|
|
// Description:
|
|
// Interface passed to the default categorizer that allows it to check if
|
|
// a domain is local or not.
|
|
// The methods are defined in ICategorizerDomainInfo/smtpevent.idl.
|
|
//
|
|
//-----------------------------------------------------------------------------
|
|
[
|
|
object,
|
|
uuid(47EA42AD-2667-11d2-A68B-00C04FA3490A),
|
|
helpstring("IAdvQueueDomainType Interface"),
|
|
]
|
|
interface IAdvQueueDomainType : ICategorizerDomainInfo
|
|
{
|
|
} |