GrapeCity Secure Mail for .NET 4.0J
Progress イベント (Pop)
使用例 

電子メールメッセージの取得中に繰り返し発生します。
シンタックス
<CategoryAttribute("Progress")>
<DescriptionAttribute("Raised repeatedly while a message is being retrieved.")>
Public Event Progress As EventHandler(Of PopProgressEventArgs)
[Category("Progress")]
[Description("Raised repeatedly while a message is being retrieved.")]
public event EventHandler<PopProgressEventArgs> Progress
イベント データ

イベント ハンドラが、このイベントに関連するデータを含む、PopProgressEventArgs 型の引数を受け取りました。次の PopProgressEventArgs プロパティには、このイベントの固有の情報が記載されます。

プロパティ解説
Final Dart.Mail.ProgressEventArgsから継承されます。これが特定のメッセージに対して発生した最後のProgressイベントである場合、trueを返します。
Length Dart.Mail.ProgressEventArgsから継承されます。メッセージデータの長さ。
Message 現在取得中のメッセージを表すPopMessageを取得します。
Position Dart.Mail.ProgressEventArgsから継承されます。メッセージデータ内の位置。
解説

メッセージを取得するとき、各データバッファーが処理されるたびにProgressが発生します。このイベントによって提供されるPopProgressEventArgsには、進行状況をユーザーに表示するために役立つデータが含まれます。たとえば、全メッセージの取得の進行状況をProgressBarを使用して表示する場合は、System.Windows.Forms.ProgressBar.Minimumとして0、System.Windows.Forms.ProgressBar.Maximumとしてpop1.Messages.Length、System.Windows.Forms.ProgressBar.ValueとしてMessageBase.Idを、それぞれ使用します。各メッセージの進行状況を表示する場合は、System.Windows.Forms.ProgressBar.Minimumとして0、System.Windows.Forms.ProgressBar.MaximumとしてProgressEventArgs.LengthSystem.Windows.Forms.ProgressBar.ValueとしてProgressEventArgs.Positionを、それぞれ使用します。

ProgressEventArgs.LengthMessageBase.Sizeを使用するので、有効な長さが必要な場合は、Authenticateの'getSizes'パラメーターをtrueにする必要があります。

このイベントをUIスレッドにマーシャリングできるようにするには、ComponentBase.SynchronizingObjectを設定します。

使用例
以下のサンプルコードでは、Popコンポーネントを使用してメッセージのヘッダのみを取得し、送信者、件名、および日付をリストに追加します。
private void previewMessages(object sender)
{
    // サーバーとアカウントの情報を設定します。
    pop1.Session.RemoteEndPoint = new Dart.Mail.IPEndPoint(myServer, Pop.GetDefaultPort(pop1.Session));
    pop1.Session.Username = myUsername;
    pop1.Session.Password = myPassword;

    // 接続してアカウントにログインします。
    pop1.Connect();
    pop1.Authenticate(true, true);

    // アカウントの各メッセージのヘッダフィールドを取得します。
    foreach (PopMessage popMessage in pop1.Messages)
        popMessage.Get(0);

    // セッションから適切にログアウトします。
    pop1.Close();
}

private void pop1_Progress(object sender, PopProgressEventArgs e)
{
    // メッセージヘッダの情報をリストビューに表示します。
    if (e.Final)
    {
        string[] header = { e.Message.Message.From, e.Message.Message.Subject, e.Message.Message.Date.ToString() };
        listView1.Items.Add(new ListViewItem(header));
    }
}
Private Sub previewMessages(ByVal sender As Object)
    ' サーバーとアカウントの情報を設定します。
    pop1.Session.RemoteEndPoint = New Dart.Mail.IPEndPoint(myServer, Pop.GetDefaultPort(pop1.Session))
    pop1.Session.Username = myUsername
    pop1.Session.Password = myPassword

    ' 接続してアカウントにログインします。
    pop1.Connect()
    pop1.Authenticate(True, True)

    ' アカウントの各メッセージのヘッダフィールドを取得します。
    For Each popMessage As PopMessage In pop1.Messages
        popMessage.Get(0)
    Next popMessage

    ' セッションから適切にログアウトします。
    pop1.Close()
End Sub

Private Sub pop1_Progress(ByVal sender As Object, ByVal e As PopProgressEventArgs) Handles pop1.Progress
    ' メッセージヘッダの情報をリストビューに表示します。
    If e.Final Then
        Dim header() As String = { e.Message.Message.From, e.Message.Message.Subject, e.Message.Message.Date.ToString() }
        listView1.Items.Add(New ListViewItem(header))
    End If
End Sub
参照

参照

Pop クラス
Pop メンバ

 

 


© 2003, GrapeCity inc. All rights reserved.