Win32 API 日本語リファレンス
ホームSystem.AddressBook › IMAPIProgress

IMAPIProgress

COM
継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

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。

vtbl 3 HRESULT Progress(DWORD ulValue, DWORD ulCount, DWORD ulTotal)
ulValueDWORDin現在の進捗値を指定する。
ulCountDWORDinネストした進捗表示における現在のレベルの位置を指定する。
ulTotalDWORDinネストした進捗表示における現在のレベルの総数を指定する。
vtbl 4 HRESULT GetFlags(DWORD* lpulFlags)
lpulFlagsDWORD*inout進捗インジケータのフラグを受け取る変数へのポインタである。
vtbl 5 HRESULT GetMax(DWORD* lpulMax)
lpulMaxDWORD*inout進捗範囲の最大値を受け取る変数へのポインタである。
vtbl 6 HRESULT GetMin(DWORD* lpulMin)
lpulMinDWORD*inout進捗範囲の最小値を受け取る変数へのポインタである。
vtbl 7 HRESULT SetLimits(DWORD* lpulMin, DWORD* lpulMax, DWORD* lpulFlags)
lpulMinDWORD*inout設定する進捗範囲の最小値へのポインタである。
lpulMaxDWORD*inout設定する進捗範囲の最大値へのポインタである。
lpulFlagsDWORD*inout設定する進捗インジケータのフラグへのポインタである。
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
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 方式にも切替可。