XFOR: IStream::Stat( ) Returns E_NOTIMPL in MCIS 2.0ID: q195046
|
When you write an SMTP event sink for use with Microsoft Commercial
Internet System (MCIS) 2.0, you can use the IStream::Stat() interface to
return the size of the message. The following code segment demonstrates
this:
HRESULT STDMETHODCALLTYPE CSmtpRules::OnDelivery(IMsg *pMsg)
{
IStream *pStream;
HRESULT hr;
hr = pMsg->GetInterfaceA("Msg Stream", IID_IStream, (IUnknown**)
&pStream);
if (SUCCEEDED(hr))
{
STATSTG stg;
if (S_OK == pStream->Stat(&stg, STATFLAG_NONAME))
{
sprintf(buffer, "Data size: %d - %d\r\n",
stg.cbSize.LowPart,
stg.cbSize.HighPart);
}
else
// report error
}
This interface was not implemented in versions of Smtpsvc.dll prior to version 1877.11.
If you want to implement this feature, you must use this version or later and modify your code to call pStream->Stat(&statStg,STATFLAG_NONAME), and then retrieve the size information out of statStg.cbSize. This method cannot be used to retrieve file names, as files are only created after the sinks are called. After using pStream, you must call pStream->Release( ), or the message will be left in the queue after delivery.
To resolve this problem, obtain the latest service pack for Windows NT 4.0 or
the individual fix. For information on obtaining the
latest service pack, please go to:
http://www.microsoft.com/support/supportnet/overview/overview.asp
Q154871 Determining If You Are Eligible for No-Charge Technical Support
Microsoft has confirmed this to be a problem in Microsoft Commercial Internet System version 2.0.
Additional query words:
Keywords : prodmcis2 prodIMS nt4sp5fix
Version : winnt:2.0
Platform : winnt
Issue type : kbbug
Last Reviewed: July 2, 1999