设为首页
联系站长
加入收藏
 您的位置: Pecker's Home >> 文章频道 >> 程序设计 >> Visual Basic >> 正文
  48389错误对策       
48389错误对策
[ 作者:Pecker    转贴自:Pecker's Home    点击数:3518    更新时间:2006-11-7    文章录入:pecker
    最近在用VB6写一个程序时遇到一个奇怪的48389的错误,在处理这个错误时花了不少时间。这里拿出来给有相同问题的朋友做个参考,避免重走我走过的弯路。
    由于最近有个程序需要进行邮件处理,为了降低程序的复杂程度使用了MAPI。哪知道就是前一天调试完毕的程序,第二天运行时出现一个48389错误(见下图)。



    一检查发现出错时程序停在“MAPISession.SignOn”处。马上想到是不是不小心弄错了MAPI部分的什么代码,于是仔细检查了和MAPI有关的所有代码,但是没有发现错误。然后重新注册了MSMAPI32.OCX、mapi32.dll,发现也不是MAPI控件库文件的问题。在MSDN中也没有找到这个错误的解释。实在没有办法了,只好上网去搜索一下,也没有找到解决办法。倒是发现有不少网友都在找这个错误的处理方法。看来这个错误不好处理,只有先放一放了。
    过了几天处理别的问题时需要设置IE中“Internet程序”里面一些默认程序项目,这时看到默认的邮件程序是Foxmail。突然想到会不会是由于默认程序没有设置为Outlook导致出现那个48389错误呢?于是将默认邮件程序设置为Outlook,然后再试那个出现错误的程序,果然没有出现错误提示。看来问题就在这里了,原来使用MAPI控件的前提条件除了需要在Outlook中设置好邮件账户,另外还需要将默认邮件程序设置为Outlook。而这一点在MSDN中不知道为什么没有提到。问题找到了,现在处理起来就方便了。使用下面的代码就可以很方便的避免发生48389错误。
Option Explicit
Dim LastErrNumber As Long

Private Sub Form_Load()

On Error GoTo Error48389
MAPISession1.SignOn
Exit Sub

Error48389:
If Err = 48389 Then
    LastErrNumber = 48389
    MsgBox "MAPI错误,请将Outlook设为IE的默认邮件发送程序后再使用本功能。", 48
Else
    MsgBox Err & Error(Err)
End If

End Sub

Private Sub Form_Unload(Cancel As Integer)

If LastErrNumber <> 48389 Then MAPISession1.SignOff

End Sub

(2006年09月16日于武汉)
分享到:
    免责声明:本文仅代表作者个人观点,与Pecker's Home无关。登载目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字和图片(或其他媒体形式内容)的真实性、完整性、及时性本站不作任何保证或承诺。请读者仅作参考,并请自行核实相关内容。如果有侵犯版权事宜,请通知master@peckerhome.com,我们将在第一时间删除该信息。
  • 上一篇文章: 没有了

  • 下一篇文章: 没有了
  • 发表评论】【告诉好友】【打印此文】【关闭窗口
     最新5篇热点文章
    处理器架构消亡史[00139]
    通信恩仇,5G江湖[00280]
    官方辟谣扫码支付引爆加油…[00523]
    谷歌搭售是不是作恶?可以…[00284]
    你对Zigbee无线连接了解多…[00514]
     
     最新5篇推荐文章
    Pecker之家开通用于电子元…[02-13]
    印刷电路板图设计经验[04-04]
    基于电力线通信的家庭网络…[03-23]
    利用USB控制器设计的Windo…[01-20]
    基于ARM920T微处理器的IDE…[01-20]
     
     相 关 文 章
  • 无相关文章

  •   网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
        没有任何评论