- 題名: 暗黙的な型変換について
- 日時: 2005/06/23 11:03:36
- ID: 11424
- この記事の返信元:
- (なし)
- この記事への返信:
- [11426] Re[1]: 暗黙的な型変換について2005/06/23 11:23:27
- ツリーを表示
じゃんぬさん、お返事ありがとうございます。
以下のようにソースを変更させて下さい。
'Outlook
Dim oApp As Outlook.Application = New Outlook.Application()
'Mapi NameSpace
Dim oNS As Outlook.NameSpace = oApp.GetNamespace("mapi")
oNS.Logon("username", "password", False, True)
'受信トレイ
Dim oInbox As Outlook.MAPIFolder = oNS.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox)
Dim oItems As Outlook.Items = oInbox.Items
'未読メールを処理します
oItems = oItems.Restrict("[Unread] = true")
'未読メールについてループします
Dim oMsg As Outlook.MailItem
Dim i As Integer
For i = 1 To oItems.Count
oMsg = oItems.Item(i)
Console.WriteLine(i)
Console.WriteLine(oMsg.Subject) '件名
Console.WriteLine(oMsg.ReceivedTime) '受信日時
Console.WriteLine(oMsg.Body) '本文
Next
上記のoMsg = oItems.Item(i)で先程のキャストのエラーになります。
このエラーは受信トレイにシステム管理者からの「配信不能」メールが
入っている場合に発生します。(普通のメールではエラーにならないで動作します)
その違いが分かりません。
どのメールも処理したいのでこのエラーを解決しなければいけないです。
CTypeまたはDirectCastのMSDNを見ております。
これらを使用すれば良いのですね。
ちょっと頑張ってみますが、またアドバイスを頂けたらうれしいです。
分類:[.NET]
以下のようなソースです。MAPIを使用したメール受信処理です。
' Create Outlook application.
Dim oApp As Outlook.Application = New Outlook.Application()
' Get NameSpace and Logon.
Dim oNS As Outlook.NameSpace = oApp.GetNamespace("mapi")
oNS.Logon("username", "password", False, True)
' Get Appointments collection from the Calendar folder.
Dim oInBox As Outlook.MAPIFolder = oNS.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox)
Dim oItems As Outlook.Items = oInBox.Items
' Get the first AppointmentItem.
Dim oAppt As Outlook.AppointmentItem = oItems.GetFirst() ※
Option Strict Onにすると
※のoItems.GetFirst()で「Option Strict On で 'System.Object'
から 'Outlook.AppointmentItem' への暗黙的な変換はできません。」と
ビルドエラーになるのですが、初心者なもので対処方法が分かりません。
アドバイスを頂けないでしょうか?宜しくお願いします。