IMAPIProgress
COM公式ドキュメント
IMAPIProgress : IUnknown は、クライアントアプリケーションに進捗インジケーターを提供する進捗オブジェクトを実装します。
解説(Remarks)
適用対象: Outlook 2013 | Outlook 2016
クライアントアプリケーションに進捗インジケーターを提供する進捗オブジェクトを実装します。進捗インジケーターとは、メッセージストア間でのフォルダーのコピーなど、操作の完了率を表示するユーザーインターフェイスです。進捗オブジェクトは MAPI およびクライアントアプリケーションが実装し、サービスプロバイダーがそれを使用します。
| プロパティ | 値 |
|---|---|
| ヘッダーファイル: |
Mapidefs.h |
| 公開元: |
進捗オブジェクト |
| 実装元: |
MAPI およびクライアントアプリケーション |
| 呼び出し元: |
サービスプロバイダー |
| インターフェイス識別子: |
IID_IMAPIProgress |
| ポインター型: |
LPMAPIPROGRESS |
MAPI は、時間のかかる可能性のある処理を実行する多くのメソッドに lpProgress パラメーターを含めています。 lpProgress は、進捗オブジェクトのクライアント実装を指します。IMAPIProgress インターフェイスを実装するクライアントは、このパラメーターを自身の実装を指すように設定します。IMAPIProgress を実装しないクライアントは、このパラメーターを NULL に設定します。操作の処理中に進捗インジケーターを表示するため、サービスプロバイダーは、利用可能であればクライアントが提供する進捗オブジェクトを使用し、そうでない場合( lpProgress が NULL に設定されている場合)は MAPI の実装を使用します。
メソッド 5
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
| ulValue | DWORD | in | 現在の進捗値を指定する。 |
| ulCount | DWORD | in | ネストした進捗表示における現在のレベルの位置を指定する。 |
| ulTotal | DWORD | in | ネストした進捗表示における現在のレベルの総数を指定する。 |
| lpulFlags | DWORD* | inout | 進捗インジケータのフラグを受け取る変数へのポインタである。 |
| lpulMax | DWORD* | inout | 進捗範囲の最大値を受け取る変数へのポインタである。 |
| lpulMin | DWORD* | inout | 進捗範囲の最小値を受け取る変数へのポインタである。 |
| lpulMin | DWORD* | inout | 設定する進捗範囲の最小値へのポインタである。 |
| lpulMax | DWORD* | inout | 設定する進捗範囲の最大値へのポインタである。 |
| lpulFlags | DWORD* | inout | 設定する進捗インジケータのフラグへのポインタである。 |
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IMAPIProgress "{}" #usecom global IMAPIProgress IID_IMAPIProgress "{}" #comfunc global IMAPIProgress_Progress 3 int,int,int #comfunc global IMAPIProgress_GetFlags 4 var #comfunc global IMAPIProgress_GetMax 5 var #comfunc global IMAPIProgress_GetMin 6 var #comfunc global IMAPIProgress_SetLimits 7 var,var,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_IMAPIProgress "{}" #usecom global IMAPIProgress IID_IMAPIProgress "{}" #comfunc global IMAPIProgress_Progress 3 int,int,int #comfunc global IMAPIProgress_GetFlags 4 sptr #comfunc global IMAPIProgress_GetMax 5 sptr #comfunc global IMAPIProgress_GetMin 6 sptr #comfunc global IMAPIProgress_SetLimits 7 sptr,sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。