SERVICEWIZARDDLGPROC
適用対象: Outlook 2013 | Outlook 2016
プロファイル ウィザードによって呼び出されるコールバック関数を定義して、プロバイダーのプロパティ シートまたはページが表示されているときにサービス プロバイダーがユーザー イベントに反応できるようにします。
プロパティ | 値 |
---|---|
ヘッダー ファイル: |
Mapiwz.h |
によって実装される定義された関数: |
サービス プロバイダー |
によって呼び出される定義済み関数: |
MAPI プロファイル ウィザード |
BOOL SERVICEWIZARDDLGPROC(
HWND hDlg,
UINT wMsgID,
WPARAM wParam,
LPARAM lParam
);
パラメーター
hDlg
[in][プロファイル ウィザード] ダイアログ ボックスのウィンドウ ハンドル。
wMsgID
[in]処理するウィンドウ メッセージ。 モーダル ダイアログ ボックスで予期される通常のウィンドウ メッセージに加えて、次のメッセージを受信できます。
Wm_close
プロファイル ウィザードが完了しました。 サービス プロバイダーは、動的に割り当てられたメモリの割り当てを解除するなど、必要なすべてのクリーンアップを実行する必要があります。
Wm_command
プロバイダーのコントロールのいずれかが選択されているか、[ 次へ ] または [ 戻る ] ボタンがクリックされています。 wParam パラメーターの値は、これらのユーザー イベントのうち発生したイベントを示します。
WM_INITDIALOG
ユーザーは、ダイアログ ボックスを初期化する必要がある別のプロパティ ページに移動しました。 プロバイダーは、プロファイル ウィザードがダイアログ ボックスに追加したコントロールを初期化する必要があります。
WIZ_QUERYNUMPAGES
プロファイル ウィザードでは、プロバイダーが表示する必要があるページ数の入力を求められます。 プロバイダーは、TRUE または FALSE ではなくページ数を返す必要があります。 たとえば、次の return ステートメントを使用して、3 つのページを表示する必要があることを示します。
return (BOOL)3;
wParam
[in]ウィンドウ メッセージに関連付けられた 32 ビット パラメーター。 指定できる値は、 wMsgID パラメーターで指定されたメッセージによって異なります。 モーダル ダイアログ ボックスの通常のウィンドウ メッセージで予期される値に加えて、次の値を受信できます。
WIZ_NEXT
wMsgID にWM_COMMANDが含まれている場合、ユーザーは [次へ] ボタンをクリックしました。
WIZ_PREV
wMsgID にWM_COMMANDが含まれている場合、ユーザーは [戻る] ボタンをクリックしました。
lParam
[in]ウィンドウ メッセージに関連付けられた 32 ビット パラメーター。 指定できる値は、 wMsgID パラメーターで指定されたメッセージによって異なります。
戻り値
SERVICEWIZARDDLGPROC ベースの関数によって返される値は、受信したウィンドウ メッセージによって異なります。 特に、WIZ_QUERYNUMPAGES メッセージの例外的な戻り値に注意してください。 通常の戻り値は次のとおりです。
TRUE
サービス プロバイダーが受信ウィンドウ メッセージを処理しました。
FALSE
サービス プロバイダーが受信ウィンドウ メッセージを処理していません。
注釈
ユーザーがあるプロパティ ページから別のプロパティ ページに移動すると、プロバイダーは古いページのコントロールを非表示にし、次のページまたは前のページのコントロールを表示する役割を担います。 ユーザーが [次へ ] ボタンをクリックすると、 serviceWIZARDDLGPROC ベースの関数が WM_COMMAND メッセージで呼び出され、 wParam パラメーターにWIZ_NEXTされます。 次の手順では、ユーザーが [次へ ] をクリックしてから最初のプロバイダーの構成ページがレンダリングされるまでの間の動作について説明します。
プロファイル ウィザードでは、ウィンドウ上にあるコントロールが非表示になります。
プロファイル ウィザードは、プロバイダーの非表示コントロールをページに追加します。
プロファイル ウィザードは SERVICEWIZARDDLGPROC を呼び出し、WM_INITDIALOG メッセージを送信して、プロバイダーがコントロールを初期化できるようにします。
プロファイル ウィザードは SERVICEWIZARDDLGPROC を呼び出し、WIZ_QUERYNUMPAGES メッセージを送信します。 プロバイダーは、表示するページ数を返します。
プロファイル ウィザードは SERVICEWIZARDDLGPROC を呼び出し、 wParam パラメーターを WIZ_NEXT または WIZ_PREV に設定したWM_COMMAND メッセージを送信します。 この時点で、プロバイダーは FALSE {error} を返すか、コントロールを表示して TRUE {success} を返します。 プロファイル ウィザードがID_NEXTに渡されると、プロバイダーの最初のページが表示されます。 ID_PREVが渡されると、最後のページが表示されます。
プロファイル ウィザードはプロバイダーの SERVICEWIZARDDLGPROC 関数を呼び出し、 wParam パラメーターを WIZ_NEXT または WIZ_PREV (ユーザーがクリックしたボタンに応じて) に設定したWM_COMMAND メッセージを送信します。 プロバイダーは、コントロールを表示または非表示にし、そのデータをプロファイル ウィザードに渡された IMAPIProp に書き込み、ページのシーケンスをステップ実行する責任を負います。 プロバイダーは、次のページまたは前のページが正常に表示された場合は TRUE を返し、次のページも前のページも表示できない場合は FALSE を返す必要があります。 プロバイダーは、ページのシーケンスの外にステップアウトする場合を認識し、コントロールを非表示にしてプロファイルにデータを書き込むことで適切に対応する必要があります。
ユーザーがプロバイダーのページの範囲外にステップした場合、プロファイル ウィザードはダイアログ ボックスからプロバイダーの非表示コントロールを削除し、次のプロバイダーを呼び出すか、最後のプロバイダーの場合は次のページを表示します。