2025-04-27 07:49:33 -04:00

184 lines
6.2 KiB
Plaintext

//
// DDDDD EEEEEE AAA DDDDD
// D D E A A D D - This has moved to
// D D EEEE AAAAA D D staxpt\src\news\core\include. It
// D D E A A D D remains here to avoid breaking the build
// DDDDD EEEEEE A A DDDDD
//
/*
@doc NNTPSDK
*/
import "wtypes.idl";
import "ocidl.idl";
import "imsg.idl";
//
// @interface INNTPFilter | This interface should be implemented by sink
// objects that want to support the NNTP_ON_POST and NNTP_ON_POST_FINAL
// events.
//
// @meth HRESULT | OnPost | The OnPost method is called by the NNTP server
// when the NNTP_ON_POST or NNTP_ON_POST_FINAL event occurs.
//
// @xref <i IMsg>
// @xref <i INNTPFilterOnPostFinal>
// @xref <l NNTP_ON_POST Event>
// @xref <l NNTP_ON_POST_FINAL Event>
//
[
helpstring("INNTPFilter"),object,pointer_default(unique),
uuid(1826B028-E80A-11d0-B15B-00C04FC2F3B3)
]
interface INNTPFilter : IUnknown
{
//
// @method HRESULT | INNTPFilter | OnPost | The NNTP server calls this
// method when the NNTP_ON_POST or NNTP_ON_POST_FINAL event is triggered
// and passes the rule found in the binding database.
// @parm IMsg * | pMessage | [in] A pointer to the IMsg object for the
// message which is being posted
// @rvalue S_OK | Success, call the next installed sink
// @rvalue S_FALSE | Success, don't call any other sink
// @rvalue Any COM error code | Failure, don't call any other sinks
// @xref <i IMsg>
// @xref <om INNTPFilterOnPostFinal.OnPostFinal>
// @xref <l NNTP_ON_POST Event>
// @xref <l NNTP_ON_POST_FINAL Event>
//
HRESULT OnPost([in] IMsg *pMessage);
};
//
// @interface INNTPFilterOnPostFinal | This interface should be
// implemented by sink objects that want to support the NNTP_ON_POST_FINAL
// event.
//
// @meth HRESULT | OnPostFinal | The OnPostFinal method is called by the
// NNTP server when an NNTP_ON_POST_FINAL event occurs.
//
// @xref <i IMsg>
// @xref <i INNTPFilter>
// @xref <l NNTP_ON_POST Event>
// @xref <l NNTP_ON_POST_FINAL Event>
//
[
helpstring("INNTPFilterOnPostFinal"),object,pointer_default(unique),
uuid(1826B030-E80A-11d0-B15B-00C04FC2F3B3)
]
interface INNTPFilterOnPostFinal : IUnknown
{
//
// @method HRESULT | INNTPFilterOnPostFinal | OnPostFinal | The NNTP
// server calls this method when the NNTP_ON_POST_FINAL event is
// triggered and the passes the rule found in the binding database.
// @parm IMsg * | pMessage | [in] A pointer to the IMsg object for the
// message which is being posted.
// @rvalue S_OK | Success, call the next installed sink
// @rvalue S_FALSE | Success, don't call any other sinks
// @rvalue Any COM error code | Failure, don't call any other sinks
// @xref <i IMsg>
// @xref <om INNTPFilter.OnPost>
// @xref <l NNTP_ON_POST Event>
// @xref <l NNTP_ON_POST_FINAL Event>
//
HRESULT OnPostFinal([in] IMsg *pMessage);
};
//
// @topic NNTP_SOURCE_TYPE_GUID |
// GUID Value = {C028FD82-F943-11d0-85BD-00C04FB960EA}
// @head1 Description | This is the source type GUID for NNTP instances.
//
cpp_quote("// {C028FD82-F943-11d0-85BD-00C04FB960EA}")
cpp_quote("DEFINE_GUID(NNTP_SOURCE_TYPE_GUID, ")
cpp_quote("0xc028fd82, 0xf943, 0x11d0, 0x85, 0xbd, 0x0, 0xc0, 0x4f, 0xb9, 0x60, 0xea);")
//
// @topic CATID_NNTP_ON_POST |
// GUID Value = {C028FD83-F943-11d0-85BD-00C04FB960EA}
// @head1 Description |
// This is the GUID that is used for the NNTP_ON_POST event.
//
// @topic NNTP_ON_POST Event |
// The NNTP_ON_POST event is triggered by the NNTP server when a new message
// is being posted (either from a client or from a feed), before the message
// is processed or put into the store. Filters installed at this point
// can control server processing of the message, alter the newgroups
// that the message will be posted to, or stop the message from being
// posted.
// @head3 Filter Object Interfaces |
// Filter objects that are bound to the NNTP_ON_POST event must support
// the <i INNTPFilter> interface.
//
// @xref <l CATID_NNTP_ON_POST>
// @xref <l NNTP_ON_POST_FINAL Event>
// @xref <i INNTPFilter>
//
cpp_quote("// {C028FD83-F943-11d0-85BD-00C04FB960EA}")
cpp_quote("DEFINE_GUID(CATID_NNTP_ON_POST, ")
cpp_quote("0xc028fd83, 0xf943, 0x11d0, 0x85, 0xbd, 0x0, 0xc0, 0x4f, 0xb9, 0x60, 0xea);")
//
// @topic CATID_NNTP_ON_POST_FINAL |
// GUID Value = {C028FD83-F943-11d0-85BD-00C04FB960EA}
// @head1 Description |
// This is the GUID that is used for the NNTP_ON_POST_FINAL event.
//
// @topic NNTP_ON_POST_FINAL Event |
// The NNTP_ON_POST_FINAL event is triggered by the NNTP server when a new
// message is being posted (either from a client or from a feed) after the
// message has been written into the store. Filters should install at this
// point if they require notification of message postings. It is guaranteed
// that if this event is triggered that the message has been added to the
// store.
// @head3 Filter Object Interfaces |
// Filter objects that are bound to the NNTP_ON_POST_FINAL event must support
// the <i INNTPFilterOnPostFinal> interface or the <i INNTPFilter> interface.
// If both interfaces are supported then the server will use the
// <i INNTPFilterOnPostFinal> interface.
//
// @xref <l CATID_NNTP_ON_POST_FINAL>
// @xref <l NNTP_ON_POST Event>
// @xref <i INNTPFilterOnPostFinal>
//
cpp_quote("// {C028FD85-F943-11d0-85BD-00C04FB960EA}")
cpp_quote("DEFINE_GUID(CATID_NNTP_ON_POST_FINAL, ")
cpp_quote("0xc028fd85, 0xf943, 0x11d0, 0x85, 0xbd, 0x0, 0xc0, 0x4f, 0xb9, 0x60, 0xea);")
[
uuid(95786C44-0DED-11d1-85D1-00C04FB960EA),
version(1.0),
helpstring("nntpfilt 1.0 Type Library")
]
library INNTPFilterLib
{
importlib("stdole2.tlb");
// we need to import the IMsg type library to make sure that we don't
// regenerate it.
#ifdef EXEXPRESS
# ifdef DEBUG
# ifdef _X86_
importlib("..\..\..\imsg\ntx\dbg\imsg.tlb");
# else
importlib("..\..\..\imsg\nta\dbg\imsg.tlb");
# endif
# else
# ifdef _X86_
importlib("..\..\..\imsg\ntx\rtl\imsg.tlb");
# else
importlib("..\..\..\imsg\nta\rtl\imsg.tlb");
# endif
# endif
#else
importlib("imsg.tlb");
#endif
interface INNTPFilter;
interface INNTPFilterOnPostFinal;
};