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,我们将在第一时间删除该信息。
|
|
|
|
|
【发表评论】【告诉好友】【打印此文】【关闭窗口】 |