none
检索COM 类工厂中CLSID出现错误 RRS feed

  • 问题

  • System.Runtime.InteropServices.COMException (0x80040154): 检索 COM 类工厂中 CLSID 为 {29131528-2EED-1069-BF5D-00DD011186B7} 的组件时失败,原因是出现以下错误: 80040154

    提示是这一行Dim MailDoc As New NotesDocument出错。

    下面附上部分代码

            Public Sub SendNotesMail(ByVal Subject As String, ByVal Attachment As String, ByVal Recipient() As Object, ByVal BodyText As String, ByVal SaveIt As Boolean)
            Dim Maildb As NotesDatabase
            '定义邮件数据库
            Dim UserName As String
            '定义当前用户 Notes 名称
            Dim MailDbName As String
            '定义当前用户邮件数据库
            Dim MailDoc As New NotesDocument
            '定义邮件中的文档
            Dim AttachME As New NotesRichTextItem
            '定义文本对象
            Dim Session As New NotesSession
            '定义 Notes 会话
            Dim EmbedObj As New NotesEmbeddedObject
            '定义附件对象
            '创建 Notes 会话
            Session = CreateObject("Lotus.NotesSession")
            Call Session.Initialize("wanglgl0728")
            MailDbName = "Mail/wangluo.nsf"

            '打开 Notes 邮箱
            Maildb = Session.GetDatabase("benb_s/宁波/cma", MailDbName)
            ' NOTES.ini 文件可轻易找到你自己的服务器
            If Maildb.IsOpen = True Then
            Else
                Maildb.Open()
            End If

            '创建新邮件
            MailDoc = Maildb.CreateDocument
            Call MailDoc.ReplaceItemValue("Form", "Memo")
            '设定接收者, Recipient 为一数组, 只给一个人时可设为一变量()
            Call MailDoc.ReplaceItemValue("SendTo", Recipient)
            '邮件标题
            Call MailDoc.ReplaceItemValue("Subject", Subject)

            '邮件正文内容
            AttachME = MailDoc.CreateRichTextItem("Body")
            Call AttachME.AppendText(BodyText)
            '添加附件
            Call AttachME.AddNewLine(2)
            Call AttachME.EmbedObject(1454, "", Attachment, "Attachment")
            '保存附件
            MailDoc.SaveMessageOnSend = True

            '发送邮件
            Call MailDoc.ReplaceItemValue("PostedDate", Now())
            Call MailDoc.Send(False)
            MsgBox(" 发送完毕! ")

            '释放对象
            Maildb = Nothing
            MailDoc = Nothing
            AttachME = Nothing
            Session = Nothing
            EmbedObj = Nothing
        End Sub

    望高人给出出排错的注意,一般这种状况是怎么引起的,如何排错?
    2010年12月4日 3:15

答案

  • 您好

    您的電腦有安裝 NotesDocument類所需的 COM 組件或者 Lotus Notes 軟件嗎?

    2010年12月4日 15:14
  • 你好,

    您是否可以尝试地重新安装下您的 Lotus Notes 软件,或者手动注册下您的 COM组件.

    Regsvr32 /s <Path>  命令来注册.

    ->> 怎么看有没有安装完整啊?!

    这个就需要去检查你所需要的Com有没有成功注册上,很简单,打开一个.Net 项目, 右击 Reference ,然后查看COM 选项卡,看看你所要的组件是否在列表中!

    Sincerely,
    Bob Bao


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2010年12月14日 10:45
    版主

全部回复

  • 您好

    您的電腦有安裝 NotesDocument類所需的 COM 組件或者 Lotus Notes 軟件嗎?

    2010年12月4日 15:14
  • 有安装了Lotus Notes,COM组件应该是安装上了,怎么看有没有安装完整啊?!

    2010年12月6日 5:03
  • 你好,

    您是否可以尝试地重新安装下您的 Lotus Notes 软件,或者手动注册下您的 COM组件.

    Regsvr32 /s <Path>  命令来注册.

    ->> 怎么看有没有安装完整啊?!

    这个就需要去检查你所需要的Com有没有成功注册上,很简单,打开一个.Net 项目, 右击 Reference ,然后查看COM 选项卡,看看你所要的组件是否在列表中!

    Sincerely,
    Bob Bao


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2010年12月14日 10:45
    版主