XFOR: IStream::stat () 傳回 E_NOTIMPL MCIS 2.0 中

重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。

按一下這裡查看此文章的英文版本:195046
本文已封存。本文係以「現狀」提供且不會再更新。
徵狀
當您在撰寫使用與 Microsoft 商業網際網路系統 (MCIS) 2.0 的 SMTP 事件接收器時您可以使用 IStream::Stat() 介面來傳回訊息的大小。下列程式碼區段示範這項:
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}				

但是,Istream::Stat() 呼叫會傳回 E_NOTIMPL。
發生的原因
不是以前的版本的 Smtpsvc.dll 版本 1877.11 實作這個介面。

如果要實作這項功能,您就必須使用此版本或更新的版本和修改程式碼以呼叫 pStream-Stat(&statStg,STATFLAG_NONAME),> 然後擷取大小資訊超出 statStg.cbSize。呼叫在接收後,只有建立檔案時,這個方法不能用來擷取檔案名稱。在使用 pStream 之後您必須呼叫 pStream-> [發行 (),或者在佇列中傳遞之後保留訊息]。
解決方案
如果要解決這個問題,取得最新的 Service Pack 的 Windows NT 4.0 或個別的軟體更新。如需取得最新的 Service Pack 資訊,請至:
  • 152734如何取得最新的視窗 NT 4.0 Service Pack
如需取得個別的軟體更新資訊,請連絡 Microsoft 產品支援服務。如需 Microsoft 產品支援服務電話號碼] 和 [資訊] 支援費用的完整清單,請至下列地址在全球資訊網上:
狀況說明
Microsoft 已確認這是 Microsoft 商業網際網路系統 2.0 版中的問題。

警告:本文為自動翻譯

內容

文章識別碼:195046 - 最後檢閱時間:10/10/2013 22:41:13 - 修訂: 1.6

Microsoft Commercial Internet System 2.0

  • kbnosurvey kbarchive kbmt kbbug kbfix kbqfe KB195046 KbMtzh
意見反應