184 lines
6.2 KiB
Plaintext
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;
|
|
};
|