AqAdmin.Idl
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:22k
- /*
- @doc AQADMIN EXTERNAL
- @module AQADMIN.IDL - IDL for Advanced Queue Admin Object. | This module
- declares the various interfaces exported for access to the Advanced Queue
- administration object
- */
- cpp_quote("/*++")
- cpp_quote("")
- cpp_quote("Copyright (c) 1998 Microsoft Corporation")
- cpp_quote("")
- cpp_quote("Module Name:")
- cpp_quote("")
- cpp_quote(" aqadmin.idl / aqadmin.h")
- cpp_quote("")
- cpp_quote("Abstract:")
- cpp_quote("")
- cpp_quote(" This module contains definitions for the COM interfaces for")
- cpp_quote(" the Advanced Queue administration object.")
- cpp_quote("")
- cpp_quote("--*/")
- import "oaidl.idl";
- import "ocidl.idl";
- //
- // @doc AQADMIN EXTERNAL
- //
- interface IVSAQAdmin;
- interface IEnumVSAQLinks;
- interface IAQEnumMessages;
- interface IEnumLinkQueues;
- interface IAQMessage;
- interface IVSAQLink;
- interface ILinkQueue;
- cpp_quote("#ifndef __AQADMTYP_H__")
- cpp_quote("#define __AQADMTYP_H__")
- #include "aqadmtyp.h"
- cpp_quote("#endif")
- /*
- @interface IAQAdmin | Primary interface to Advanced Queue admin objects
- @meth HRESULT | GetVirtualServerAdminITF | Get admin interface to a
- SMTP or MTA virtual server's queues
- */
- [
- helpstring("Advanced Queue Administration Object"),
- object,
- pointer_default(unique),
- uuid(476D70A6-1A90-11d3-BFCB-00C04FA3490A)
- ]
- interface IAQAdmin : IUnknown
- {
- // @method HRESULT | IAQAdmin | GetVirtualServerAdminITF | Get admin
- // interface to a SMTP or MTA virtual server's queues
- // @rvalue S_OK | Success
- // @rvalue E_OUTOFMEMORY | Out of resources
- // @rvalue E_ACCESSDENIED | Logged on principal not authorized to view
- // queues on specified virtual server
- // @rvalue HRESULT_FROM_WIN32(RPC_S_SERVER_UNAVAILABLE) | Unable to
- //connect to specified virtual server
- HRESULT GetVirtualServerAdminITF(
- // @parm hostname of the computer
- [in] LPCWSTR wszComputer,
- // @parm virtual server number
- [in] LPCWSTR wszVirtualServer,
- // @parm Interface to Virtual Server admin object is
- // returned here
- [out] IVSAQAdmin **ppivsaqadmin
- );
- }
- /*
- @interface IAQMessageAction | Interface used to apply actions
- to messages on this virtual server. This interface is
- implemented at the server, link and queue level
- @meth HRESULT | ApplyActionToMessages | Apply specified action to
- messages on this Virtual Server that match the specified message
- filter criteria.
- @meth HRESULT | QuerySupportedActions | Describes
- which actions/filters of <t ApplyActionToMessages> is supported.
- */
- [
- helpstring("Advanced Queue Message Action Interface"),
- object,
- pointer_default(unique),
- uuid(1EB44A71-1E95-11d3-BFCC-00C04FA3490A)
- ]
- interface IAQMessageAction : IUnknown
- {
- // @method HRESULT | IAQMessageAction | ApplyActionToMessages | Apply
- // specified action to messages on this Virtual Server that match the
- // specified message filter criteria. The actions will only be applied
- // to messages that belong to the object implmenting this interface.
- // For example, on messages that match the filter on a given queue will
- // be affected if this method is called on an ILinkQueue object.
- // @rvalue S_OK | Success
- // @rvalue E_OUTOFMEMORY | Insufficient resources
- // @rvalue E_POINTER | Null pointer parameter
- // @rvalue E_INVALIDARG | Invalid parameter
- // @rvalue HRESULT_FROM_WIN32(RPC_S_SERVER_UNAVAILABLE) | Unable to
- // connect to specified virtual server
- HRESULT ApplyActionToMessages(
- // @parm The <t MESSAGE_FILTER> to use to select messages
- [in] PMESSAGE_FILTER Filter,
- // @parm The <t MESSAGE_ACTION> to apply to matching messages
- [in] MESSAGE_ACTION Action,
- // @parm The number of messages affected by the action
- [out] DWORD *pcMsgs
- );
- // @method HRESULT | IAQMessageAction | QuerySupportedActions | Describes
- // which actions/filters of <t ApplyActionToMessages> is supported.
- // @rvalue S_OK | Success
- // @rvalue E_OUTOFMEMORY | Insufficient resources
- // @rvalue E_POINTER | Null pointer parameter
- // @rvalue E_INVALIDARG | Invalid parameter
- // @rvalue HRESULT_FROM_WIN32(RPC_S_SERVER_UNAVAILABLE) | Unable to
- // connect to specified virtual server
- HRESULT QuerySupportedActions(
- [out] DWORD *pdwSupportedActions,
- // @parm The <t MESSAGE_ACTION> flags supported by this interface.
- [out] DWORD *pdwSupportedFilterFlags);
- // @parm The <t MESSAGE_FILTER_FLAGS> supported by this interface.
- }
- /*
- @interface IVSAQAdmin | Interface to per-virtual-server AQ
- Administration
- @meth HRESULT | GetLinkEnum | Get an enumerator over all links on
- this VS
- @meth HRESULT | StopAllLinks | Stop all active outbound links
- @meth HRESULT | StartAllLinks | Start all eligible outbound links
- */
- [
- helpstring("Advanced Queue Administration Object"),
- object,
- pointer_default(unique),
- uuid(E2ED3340-1E96-11d3-BFCC-00C04FA3490A)
- ]
- interface IVSAQAdmin : IUnknown
- {
- // @method HRESULT | IVSAQAdmin | GetLinkEnum | Get an enumerator over
- // all links on this VS
- // @rvalue S_OK | Success
- // @rvalue E_OUTOFMEMORY | Insufficient resources
- // @rvalue E_POINTER | Null pointer parameter
- // @rvalue E_INVALIDARG | Invalid parameter
- // @rvalue HRESULT_FROM_WIN32(RPC_S_SERVER_UNAVAILABLE) | Unable to
- // connect to specified virtual server
- HRESULT GetLinkEnum(
- // @parm Interface to link enumerator is returned here.
- [out] IEnumVSAQLinks **ppenum
- );
- // @method HRESULT | IVSAQAdmin | StopAllLinks | Stop all active
- // outbound links
- // @rvalue S_OK | Success
- // @rvalue HRESULT_FROM_WIN32(RPC_S_SERVER_UNAVAILABLE) | Unable to
- // connect to specified virtual server
- HRESULT StopAllLinks();
- // @method HRESULT | IVSAQAdmin | StartAllLinks | Start all active
- // outbound links
- // @rvalue S_OK | Success
- // @rvalue HRESULT_FROM_WIN32(RPC_S_SERVER_UNAVAILABLE) | Unable to
- // connect to specified virtual server
- HRESULT StartAllLinks();
- // @method HRESULT | IVSAQAdmin | GetGlobalLinkState | Checks the
- // global state of the links as set by StopAllLinks/StartAllLinks.
- // @rvalue S_OK | Links are started
- // @rvalue S_FALSE | Link have been stopped (by a previous call
- // to StopAllLinks.
- // @rvalue E_NOTIMPL | This provider does not support getting or
- // setting the global link state.
- // @rvalue HRESULT_FROM_WIN32(RPC_S_SERVER_UNAVAILABLE) | Unable to
- // connect to specified virtual server
- HRESULT GetGlobalLinkState();
- }
- /*
- @interface IEnumVSAQLinks | Enumerator for a Virtual Server's AQ Links
- @meth HRESULT | Next | Returns the sequentially consequetive specified
- number of IVSAQLink objects.
- @meth HRESULT | Skip | Advances current element cursor by specified
- number of elements
- @meth HRESULT | Reset | Resets current element cursor to start of list
- @meth HRESULT | Clone | Creates a copy of this enumerator object
- */
- [
- helpstring("Advanced Queue Administration Object"),
- object,
- pointer_default(unique),
- uuid(ba7af300-7373-11d2-94e4-00c04fa379f1)
- ]
- interface IEnumVSAQLinks : IUnknown
- {
- // @method HRESULT | IEnumVSAQLinks | Next | Returns the sequentially
- // consequetive specified number of IVSAQLink objects.
- // @rvalue S_OK | Success
- // @rvalue S_FALSE | Fewer than requested number of object returned
- HRESULT Next(
- // @parm Number of elements requested
- [in] ULONG cElt,
- // @parm Array in which to return IVSAQLink objects. Must be
- // atleast <p cElt> long.
- [out] IVSAQLink **rgelt,
- // @parm Number of elements actually returned.
- [out] ULONG *pcFetched
- );
- // @method HRESULT | IEnumVSAQLinks | Skip | Advances current element
- // cursor by specified number of elements
- // @rvalue S_OK | Success
- // @rvalue S_FALSE | Too few elements in enumerator to successfully
- // advance cursor. Cursor positioned to last element
- HRESULT Skip(
- // @parm Number of elements to advance cursor by.
- [in] ULONG cElt
- );
- // @method HRESULT | IEnumVSAQLinks | Reset | Resets current element
- // cursor to start of list
- // @rvalue S_OK | Success
- HRESULT Reset();
- // @method HRESULT | IEnumVSAQLinks | Clone | Creates a clone of the
- // this enumerator object.
- // @rvalue S_OK | Success
- // @rvalue E_POINTER | Null pointer parameter
- // @rvalue E_OUTOFMEMORY | Out of memory creating clone.
- HRESULT Clone(
- // @parm Interface to cloned IEnumVSAQLinks is returned here.
- [out] IEnumVSAQLinks **ppenum
- );
- }
- /*
- @interface IVSAQLink | Interface to a single virtual server AQ Link. A
- link represents a connectable entity. Another way to think of a link
- is that it represents the next-hop to which mail messages on this
- link will be delivered to.
- @meth HRESULT | GetInfo | Returns information about the link
- @meth HRESULT | SetLinkState | Sets the links state.
- @meth HRESULT | GetQueueEnum | Returns an enumerator for msg queues
- on this link
- */
- [
- helpstring("Advanced Queue Administration Object"),
- object,
- pointer_default(unique),
- uuid(3F962F94-1ECD-11d3-BFCC-00C04FA3490A)
- ]
- interface IVSAQLink : IUnknown
- {
- // @method HRESULT | IVSAQLink | GetInfo | Returns information about
- // the link
- // @rvalue S_OK | Success
- // @rvalue E_OUTOFMEMORY | Insufficient resources
- // @rvalue E_POINTER | Null pointer parameter
- // @rvalue E_INVALIDARG | Invalid parameter
- // @rvalue HRESULT_FROM_WIN32(RPC_S_SERVER_UNAVAILABLE) | Unable to
- // connect to specified virtual server
- HRESULT GetInfo(
- // @parm Pointer to <t LINK_INFO> structure to fill.
- [in, out] PLINK_INFO pli
- );
- // @method HRESULT | IVSAQLink | SetLinkState | Changes the state of the link
- // @rvalue S_OK | Success
- // @rvalue E_OUTOFMEMORY | Insufficient resources
- // @rvalue E_POINTER | Null pointer parameter
- // @rvalue E_INVALIDARG | Invalid parameter
- // @rvalue HRESULT_FROM_WIN32(RPC_S_SERVER_UNAVAILABLE) | Unable to
- // connect to specified virtual server
- HRESULT SetLinkState(
- // @parm <t LINK_ACTION> describing new state of link.
- [in] LINK_ACTION la
- );
-
- // @method HRESULT | IVSAQLink | GetQueueEnum | Get an enumerator for
- // message queues on this link
- // @rvalue S_OK | Success
- // @rvalue E_OUTOFMEMORY | Insufficient resources
- // @rvalue E_POINTER | Null pointer parameter
- // @rvalue E_INVALIDARG | Invalid parameter
- // @rvalue HRESULT_FROM_WIN32(RPC_S_SERVER_UNAVAILABLE) | Unable to
- // connect to specified virtual server
- HRESULT GetQueueEnum(
- // @parm Interface to IEnumLinkQueues is returned here.
- [out] IEnumLinkQueues **ppenum
- );
- }
- /*
- @interface IAQEnumMessages | Enumerator for a AQ Link's messages
- @meth HRESULT | Next | Returns the sequentially consequetive specified
- number of IAQMessage objects.
- @meth HRESULT | Skip | Advances current element cursor by specified
- number of elements
- @meth HRESULT | Reset | Resets current element cursor to start of list
- @meth HRESULT | Clone | Creates a copy of this enumerator object
- */
- [
- helpstring("Advanced Queue Administration Object"),
- object,
- pointer_default(unique),
- uuid(ba7af302-7373-11d2-94e4-00c04fa379f1)
- ]
- interface IAQEnumMessages : IUnknown
- {
- // @method HRESULT | IAQEnumMessages | Next | Returns the
- // sequentially consequetive specified number of IAQMessage objects.
- // @rvalue S_OK | Success
- // @rvalue S_FALSE | Fewer than requested number of object returned
- HRESULT Next(
- // @parm Number of elements requested
- [in] ULONG cElt,
- // @parm Array in which to return IAQMessage objects. Must be
- // atleast <p cElt> long.
- [out] IAQMessage **rgelt,
- // @parm Number of elements actually returned.
- [out] ULONG *pcFetched
- );
- // @method HRESULT | IAQEnumMessages | Skip | Advances current
- // element cursor by specified number of elements
- // @rvalue S_OK | Success
- // @rvalue S_FALSE | Too few elements in enumerator to successfully
- // advance cursor. Cursor positioned to last element
- HRESULT Skip(
- // @parm Number of elements to advance cursor by.
- [in] ULONG cElt
- );
- // @method HRESULT | IAQEnumMessages | Reset | Resets current element
- // cursor to start of list
- // @rvalue S_OK | Success
- HRESULT Reset();
- // @method HRESULT | IAQEnumMessages | Clone | Creates a clone of the
- // this enumerator object.
- // @rvalue S_OK | Success
- // @rvalue E_POINTER | Null pointer parameter
- // @rvalue E_OUTOFMEMORY | Out of memory creating clone.
- HRESULT Clone(
- // @parm Interface to cloned IAQEnumMessages is returned here.
- [out] IAQEnumMessages **ppenum
- );
- }
- /*
- @interface IEnumLinkQueues | Enumerator for a AQ Link's messages
- @meth HRESULT | Next | Returns the sequentially consequetive specified
- number of ILinkQueue objects.
- @meth HRESULT | Skip | Advances current element cursor by specified
- number of elements
- @meth HRESULT | Reset | Resets current element cursor to start of list
- @meth HRESULT | Clone | Creates a copy of this enumerator object
- */
- [
- helpstring("Advanced Queue Administration Object"),
- object,
- pointer_default(unique),
- uuid(ba7af303-7373-11d2-94e4-00c04fa379f1)
- ]
- interface IEnumLinkQueues : IUnknown
- {
- // @method HRESULT | IEnumLinkQueues | Next | Returns the sequentially
- // consequetive specified number of ILinkQueue objects.
- // @rvalue S_OK | Success
- // @rvalue S_FALSE | Fewer than requested number of object returned
- HRESULT Next(
- // @parm Number of elements requested
- [in] ULONG cElt,
- // @parm Array in which to return ILinkQueue objects. Must
- // be atleast <p cElt> long.
- [out] ILinkQueue **rgelt,
- // @parm Number of elements actually returned.
- [out] ULONG *pcFetched
- );
- // @method HRESULT | IEnumLinkQueues | Skip | Advances current element
- // cursor by specified number of elements
- // @rvalue S_OK | Success
- // @rvalue S_FALSE | Too few elements in enumerator to successfully
- // advance cursor. Cursor positioned to last element
- HRESULT Skip(
- // @parm Number of elements to advance cursor by.
- [in] ULONG cElt
- );
- // @method HRESULT | IEnumLinkQueues | Reset | Resets current element
- // cursor to start of list
- // @rvalue S_OK | Success
- HRESULT Reset();
- // @method HRESULT | IEnumLinkQueues | Clone | Creates a clone of
- // the this enumerator object.
- // @rvalue S_OK | Success
- // @rvalue E_POINTER | Null pointer parameter
- // @rvalue E_OUTOFMEMORY | Out of memory creating clone.
- HRESULT Clone(
- // @parm Interface to cloned IEnumLinkQueues is returned here.
- [out] IEnumLinkQueues **ppenum
- );
- }
- /*
- @interface ILinkQueue | Interface to a single queue of messages that
- will be serviced by a link. A link may be servicing 0 to many queues.
- For example, if the server GW1 has a SMTP connector for *.com, then
- on server MB1, there may be a link for GW1 servicing the queues for
- IBM.COM and MSFT.COM
- @meth HRESULT | GetInfo | Returns information about the Queue
- @meth HRESULT | GetMessageEnum | Returns an enumerator for messages
- on this link
- */
- [
- helpstring("Advanced Queue Administration Object"),
- object,
- pointer_default(unique),
- uuid(FF9A1BB6-1E96-11d3-BFCC-00C04FA3490A)
- ]
- interface ILinkQueue : IUnknown
- {
- // @method HRESULT | ILinkQueue | GetInfo | Returns information about
- // the link
- // @rvalue S_OK | Success
- // @rvalue E_OUTOFMEMORY | Insufficient resources
- // @rvalue E_POINTER | Null pointer parameter
- // @rvalue E_INVALIDARG | Invalid parameter
- // @rvalue HRESULT_FROM_WIN32(RPC_S_SERVER_UNAVAILABLE) | Unable to
- // connect to specified virtual server
- HRESULT GetInfo(
- // @parm Pointer to <t QUEUE_INFO> structure to fill.
- [in, out] PQUEUE_INFO pqi
- );
- // @method HRESULT | ILinkQueue | GetMessageEnum | Get an enumerator for
- // messages on this link
- // @rvalue S_OK | Success
- // @rvalue E_OUTOFMEMORY | Insufficient resources
- // @rvalue E_POINTER | Null pointer parameter
- // @rvalue E_INVALIDARG | Invalid parameter
- // @rvalue HRESULT_FROM_WIN32(RPC_S_SERVER_UNAVAILABLE) | Unable to
- // connect to specified virtual server
- HRESULT GetMessageEnum(
- // @parm Filter specifying messages to return
- [in] PMESSAGE_ENUM_FILTER pFilter,
- // @parm Interface to IAQEnumMessages is returned here.
- [out] IAQEnumMessages **ppenum
- );
- }
- /*
- @interface IAQMessage | Interface representing a single message
- @meth HRESULT | GetInfo | Returns information about the Queue
- @meth HRESULT | GetContentStream | Returns a stream for the message content
- */
- [
- helpstring("Advanced Queue Administration Object"),
- object,
- pointer_default(unique),
- uuid(ba7af305-7373-11d2-94e4-00c04fa379f1)
- ]
- interface IAQMessage : IUnknown
- {
- // @method HRESULT | IAQMessage | GetInfo | Returns information about
- // the message
- // @rvalue S_OK | Success
- // @rvalue E_OUTOFMEMORY | Insufficient resources
- // @rvalue E_POINTER | Null pointer parameter
- // @rvalue E_INVALIDARG | Invalid parameter
- // @rvalue HRESULT_FROM_WIN32(RPC_S_SERVER_UNAVAILABLE) | Unable to
- // connect to specified virtual server
- HRESULT GetInfo(
- // @parm Pointer to <t MESSAGE_INFO> structure to fill
- [in, out] PMESSAGE_INFO pmi
- );
- // @method HRESULT | IAQMessage | GetContentStream | Returns
- // a Stream of the message content
- // @rvalue S_OK | Success
- // @rvalue E_NOTIMPL | This queue provider does not support
- // this functionality
- // @rvalue E_OUTOFMEMORY | Insufficient resources
- // @rvalue E_POINTER | Null pointer parameter
- // @rvalue E_INVALIDARG | Invalid parameter
- // @rvalue HRESULT_FROM_WIN32(RPC_S_SERVER_UNAVAILABLE) | Unable to
- // connect to specified virtual server
- HRESULT GetContentStream(
- // @parm Pointer to IStream interface for message content
- [out] IStream **ppIStream,
- // @parm String describing the content type (if known) of the message
- [out] LPWSTR *pwszContentType);
- }
- /*
- @interface IUniqueId | Interface to get canonical name of queue/link
- @meth HRESULT | GetUniqueId | Return QUEUELINK_ID for queue/link
- */
- [
- helpstring("Queue/Link Id Object"),
- object,
- pointer_default(unique),
- uuid(EA4DFDF2-9E87-4c57-B845-123872C5649F)
- ]
- interface IUniqueId : IUnknown
- {
- // @method HRESULT | IUniqueId | GetUniqueId | Returns
- // a QUEUELINK_ID for this queue or link. This is the canonical
- // representation of the queue. The QAPI guarantees that there is
- // no more than one queue or link with the same QUEUELINKID at a
- // given point in time. The memory associated with the out parameter
- // is guaranteed good until the underlying QAPI object is released
- // @rvalue S_OK | Success
- // @rvalue E_NOTIMPL | This queue provider does not support
- // this functionality
- HRESULT GetUniqueId(
- [out] QUEUELINK_ID **ppqlid);
- }
- [
- helpstring("Advanced Queueing Admin 1.0 Type Library"),
- uuid(83866cac-740d-11d2-94e4-00c04fa379f1),
- version(1.0)
- ]
- library AQAdmin
- {
- importlib("stdole2.tlb");
- interface IAQAdmin;
- [
- helpstring("Advanced Queueuing Administration Class"),
- uuid(83866cad-740d-11d2-94e4-00c04fa379f1)
- ]
- coclass AQAdmin {
- [default] interface IAQAdmin;
- }
- };