0

Crystal レポートをエクスポートすると、MAPI アドレス帳の表示に問題が発生するという奇妙な問題が発生しています。これらはまったく無関係な 2 つのタスクであり、一方が他方にどのように影響するかわかりません。

これは、レポートをエクスポートする例です。

Using rpt As New TestReport
    rpt.ExportToStream(ExportFormatType.PortableDocFormat)
End Using

これは、MAPI アドレス帳を表示する例です。

Dim msg As New AxMSMAPI.AxMAPIMessages
Dim sess As New AxMSMAPI.AxMAPISession
Dim f As System.Reflection.FieldInfo
Const MAPI_LICENSE As String = "mgkgtgnnmnmninigthkgogggvmkhinjggnvm"

f = GetType(AxHost).GetField("licenseKey", System.Reflection.BindingFlags.NonPublic Or System.Reflection.BindingFlags.Instance)
f.SetValue(msg, MAPI_LICENSE)
f.SetValue(sess, MAPI_LICENSE)

sess.Parent = Me
msg.Parent = Me

sess.DownLoadMail = False
sess.LogonUI = True
sess.SignOn()
sess.NewSession = True
msg.SessionID = sess.SessionID
msg.Compose()

msg.Action = MSMAPI.MessagesActionConstants.mapShowAddressBook

sess.SignOff()

奇妙な点の 1 つは、最初に MAPI アドレス帳を表示すると、Crystal レポートのエクスポートと MAPI アドレス帳の表示の両方が、プログラムの残りの期間にわたって機能することです。最初にエクスポートすると、プログラムの残りの期間、MAPI アドレス帳が機能しなくなります。

スローされる例外は、エラーコード「-2146796286」の「特定できない障害が発生しました」という次の行にあります。

msg.Action = MSMAPI.MessagesActionConstants.mapShowAddressBook
4

1 に答える 1

0

価値があるのは、私も MAPI コードと Crystal Reports に問題があることです。最終的な原因を突き止める機会はありませんでしたが、場合によっては、現在のフォルダーを照会し、レポートを実行してから、現在のフォルダーを復元することが役立つように見えました.

于 2013-03-21T19:48:46.703 に答える