次の方法で共有


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されます。 次の手順では、ユーザーが [次へ ] をクリックしてから最初のプロバイダーの構成ページがレンダリングされるまでの間の動作について説明します。

  1. プロファイル ウィザードでは、ウィンドウ上にあるコントロールが非表示になります。

  2. プロファイル ウィザードは、プロバイダーの非表示コントロールをページに追加します。

  3. プロファイル ウィザードは SERVICEWIZARDDLGPROC を呼び出し、WM_INITDIALOG メッセージを送信して、プロバイダーがコントロールを初期化できるようにします。

  4. プロファイル ウィザードは SERVICEWIZARDDLGPROC を呼び出し、WIZ_QUERYNUMPAGES メッセージを送信します。 プロバイダーは、表示するページ数を返します。

  5. プロファイル ウィザードは SERVICEWIZARDDLGPROC を呼び出し、 wParam パラメーターを WIZ_NEXT または WIZ_PREV に設定したWM_COMMAND メッセージを送信します。 この時点で、プロバイダーは FALSE {error} を返すか、コントロールを表示して TRUE {success} を返します。 プロファイル ウィザードがID_NEXTに渡されると、プロバイダーの最初のページが表示されます。 ID_PREVが渡されると、最後のページが表示されます。

  6. プロファイル ウィザードはプロバイダーの SERVICEWIZARDDLGPROC 関数を呼び出し、 wParam パラメーターを WIZ_NEXT または WIZ_PREV (ユーザーがクリックしたボタンに応じて) に設定したWM_COMMAND メッセージを送信します。 プロバイダーは、コントロールを表示または非表示にし、そのデータをプロファイル ウィザードに渡された IMAPIProp に書き込み、ページのシーケンスをステップ実行する責任を負います。 プロバイダーは、次のページまたは前のページが正常に表示された場合は TRUE を返し、次のページも前のページも表示できない場合は FALSE を返す必要があります。 プロバイダーは、ページのシーケンスの外にステップアウトする場合を認識し、コントロールを非表示にしてプロファイルにデータを書き込むことで適切に対応する必要があります。

  7. ユーザーがプロバイダーのページの範囲外にステップした場合、プロファイル ウィザードはダイアログ ボックスからプロバイダーの非表示コントロールを削除し、次のプロバイダーを呼び出すか、最後のプロバイダーの場合は次のページを表示します。