ADRPARM
適用対象: Outlook 2013 | Outlook 2016
共通アドレス ダイアログ ボックスの表示と動作について説明します。
値 | 説明 |
---|---|
ヘッダー ファイル: |
Mapidefs.h |
typedef struct _ADRPARM
{
ULONG cbABContEntryID;
LPENTRYID lpABContEntryID;
ULONG ulFlags;
LPVOID lpReserved;
ULONG ulHelpContext;
LPSTR lpszHelpFileName;
LPFNABSDI lpfnABSDI;
LPFNDISMISS lpfnDismiss;
LPVOID lpvDismissContext;
LPSTR lpszCaption;
LPSTR lpszNewEntryTitle;
LPSTR lpszDestWellsTitle;
ULONG cDestFields;
ULONG nDestFieldFocus;
LPSTR FAR *lppszDestTitles;
ULONG FAR *lpulDestComps;
LPSRestriction lpContRestriction;
LPSRestriction lpHierRestriction;
} ADRPARM, FAR *LPADRPARM;
メンバー
cbABContEntryID
lpABContEntryID によって指されるエントリ識別子のバイト数。
lpABContEntryID
[アドレス] ダイアログ ボックスに表示される受信者アドレスの最初の一覧を提供するコンテナーのエントリ識別子へのポインター。
ulFlags
さまざまなアドレス ダイアログ ボックス オプションに関連付けられているフラグのビットマスク。 次のフラグを設定できます。
AB_RESOLVE
[アドレス] ダイアログ ボックスを閉じた後にすべての名前を解決できるようにします。 名前解決プロセスの結果としてあいまいなエントリがある場合は、解決に関するヘルプをユーザーに求めるダイアログ ボックスが表示されます。 このフラグを設定すると、 IAddrBook::Address によって返されるすべての名前が解決されます。
AB_SELECTONLY
受信者リストの 1 回限りのアドレスの作成を無効にします。 このフラグは、設定されているDIALOG_MODAL フラグによって示されるように、ダイアログ ボックスがモーダルである場合にのみ使用されます。
ADDRESS_ONE
ユーザーは、リストから複数の受信者ではなく、1 つの受信者を正確に選択できます。 このフラグは、 cDestFields が 0 でダイアログ ボックスがモーダルである場合にのみ有効です。これは、設定されているDIALOG_MODAL フラグによって示されます。
DIALOG_MODAL
共通アドレス ダイアログ ボックスのモーダル バージョンを表示します。 このフラグまたはDIALOG_SDIを設定する必要があります。両方を設定することはできません。
DIALOG_OPTIONS
ダイアログ ボックスに [送信オプション] ボタンを表示します。 このフラグは、設定されているDIALOG_MODAL フラグによって示されるように、ダイアログ ボックスがモーダルである場合にのみ使用されます。
DIALOG_SDI
共通アドレス ダイアログ ボックスのモードレス バージョンを表示します。 このフラグまたはDIALOG_MODALを設定する必要があります。両方を設定することはできません。 DIALOG_SDI フラグは Outlook 以外のクライアントでは無視され、ダイアログ ボックスのモーダル バージョンが表示されます。 そのため、ハンドルへのポインターは、IAddrBook::Address の lpulUIParam パラメーターでは想定しないでください。
lpreserved
予約済み。0 にする必要があります。
ulHelpContext
ユーザーがアドレス ダイアログ ボックスの [ヘルプ ] ボタンをクリックしたときに最初に表示されるヘルプ内のコンテキストを指定します。
lpszHelpFileName
[アドレス] ダイアログ ボックスに関連付けられるヘルプ ファイルの名前へのポインター。 lpszHelpFileName メンバーを ulHelpContext と共に使用して、Windows WinHelp 関数を呼び出します。
lpfnABSDI
ACCELERATEABSDI プロトタイプまたは NULL に基づく MAPI 関数へのポインター。 このメンバーは、設定されているDIALOG_SDI フラグによって示されるように、ダイアログ ボックスのモードレス バージョンにのみ適用されます。 IAddrBook::Address に渡す ADRPARM 構造体を構築するクライアントは、常に lpfnABSDI メンバーを NULL に設定する必要があります。 DIALOG_SDI フラグが設定されている場合、MAPI は、返す前に有効な関数に設定します。 クライアントはメッセージ ループからこの関数を呼び出して、アドレス帳ダイアログ ボックスのアクセラレータが機能することを確認します。 ダイアログ ボックスが閉じられ、MAPI が lpfnDismiss メンバーが指す関数を呼び出すと、クライアントはメッセージ ループから ACCELERATEABSDI 関数のフックを解除する必要があります。
lpfnDismiss
DISMISSMODELESS プロトタイプまたは NULL に基づく関数へのポインター。 このメンバーは、設定されているDIALOG_SDI フラグによって示されるように、ダイアログ ボックスのモードレス バージョンにのみ適用されます。 MAPI は、ユーザーがモードレス アドレス ダイアログ ボックスを閉じると、ユーザーが IAddrBook::Address を呼び出すクライアントにダイアログ ボックスがアクティブでないことを通知するときに、DISMISSMODELESS 関数を呼び出します。
lpvDismissContext
lpfnDismiss メンバーが指す DISMISSMODELESS 関数に渡されるコンテキスト情報へのポインター。 このメンバーは、設定されているDIALOG_SDI フラグによって示されるように、ダイアログ ボックスのモードレス バージョンにのみ適用されます。
lpszCaption
共通アドレス ダイアログ ボックスのタイトルとして使用するテキストへのポインター。
lpszNewEntryTitle
[新しいエントリ] ダイアログ ボックスまたは別のダイアログ ボックスを呼び出すボタンのボタン ラベルとして使用するテキストへのポインター。
lpszDestWellsTitle
共通アドレス ダイアログ ボックスのモーダル バージョンに表示できる受信者テキスト ボックス コントロールのタイトルとして使用するテキストへのポインター。 このメンバーは、モードレス ダイアログ ボックスには使用されません。
cDestFields
アドレス ダイアログ ボックスのモーダル バージョンの受信者テキスト ボックス コントロールの数。ダイアログ ボックスがモードレスの場合は 0。 [アドレス] ダイアログ ボックスは、次の条件が満たされている場合にのみ参照用に開きます。
cDestFields メンバーは 0 に設定されます。
DIALOG_BOX フラグが設定されています。
ADDRESS_ONE フラグは設定されていません。
cDestFields を 0XFFFFFFFF に設定すると、MAPI で既定の数の受信者テキスト ボックス コントロールが作成されます。 この場合、 lppszDestTitles メンバーと lpulDestComps メンバーは NULL である必要があります。
nDestFieldFocus
ダイアログ ボックスのモーダル バージョンが表示されたときに最初にフォーカスする必要がある特定のテキスト ボックス コントロールを示します。 この値は、0 から cDestFields から 1 を引いた値の間である必要があります。
lppszDestTitles
アドレス ダイアログ ボックスのモーダル バージョンに表示される各テキスト ボックス コントロールに関連付けられているボタンのラベルの配列へのポインター。 cDestFields メンバーの値は、配列に含まれるラベルの数を示します。 lppszDestTitles メンバーが NULL の場合、Address メソッドは既定のタイトルを使用します。
lpulDestComps
各テキスト ボックス コントロールに関連付けられているMAPI_TO、MAPI_CC、MAPI_BCCなど、受信者の種類の値の配列へのポインター。 CDestFields メンバーの値は、配列に含まれる受信者の種類の数を示します。 lpulDestComps が指す値を使用して、各受信者のPR_RECIPIENT_TYPE (PidTagRecipientType) プロパティを設定できます。 lpulDestComps メンバーが NULL の場合、Address メソッドは既定の受信者の種類を使用します。
lpContRestriction
ダイアログ ボックスに表示できるアドレス エントリの種類を制限する SRestriction 構造体へのポインター。
lpHierRestriction
ダイアログ ボックスに表示するアドレス エントリを指定できるアドレス帳コンテナーを制限する SRestriction 構造体へのポインター。
注釈
ADRPARM 構造体は、MAPI 共通アドレス ダイアログ ボックスの外観と動作を制御するために、クライアントとサービス プロバイダーによって使用されます。 アドレス ダイアログ ボックスには、モードレスとモーダルの 2 種類があります。 ADRPARM 構造体の一部のメンバーは、両方のバージョンのダイアログ ボックスに適用されますが、一部は 2 つのバージョンのいずれかに適用されます。 次の表は、 ADRPARM 構造体のメンバーを、共通アドレス ダイアログ ボックスでの使用に関連付けます。
ADRPARM メンバー | ダイアログ ボックスの種類 |
---|---|
cbABContEntryID と lpABContEntryID |
モーダルとモードレス |
ulFlags |
モーダルとモードレス |
lpreserved |
モーダルとモードレス |
ulHelpContext と lpszHelpFileName |
モーダルとモードレス |
lpfnABSDI |
Modeless |
lpfnDismiss とlpvDismissContext |
Modeless |
lpszCaption |
モーダルとモードレス |
lpszNewEntryTitle |
Modal |
lpszDestWellsTitle、 cDestFields、 nDestFieldFocus、 lppszDestTitles、 lpulDestComps |
Modal |
lpContRestriction |
モーダルとモードレス |
lpHierRestriction |
モーダルとモードレス |
モードレス ダイアログ ボックスは、1 つ以上のアドレス帳コンテナーからのエントリの読み取り専用表示です。 ダイアログ ボックスには、選択したコンテナーのすべてのエントリを表示することも、制限によって確立された条件に一致するエントリとコンテナーのみに制限することもできます。 lpContRestriction によって指されるコンテンツ制限は、表示されるエントリの種類を制限でき、lpHierRestriction によって指される階層制限によって、エントリを提供するコンテナーが制限される可能性があります。 ダイアログ ボックスが閉じられたときに呼び出し元に通知するために、MAPI は 、DISMISSMODELESS プロトタイプに一致する呼び出し元によって提供される関数を呼び出します。 もう 1 つの関数 ( ACCELERATEABSDI プロトタイプと一致するもの) は MAPI によって提供され、キーボード ショートカットの動作を容易にするために Windows メッセージ ループの呼び出し元によって呼び出されます。 MAPI アドレス ダイアログ ボックスのモードレス バージョンは、クライアントが IAddrBook::Address を呼び出すとき、またはサービス プロバイダーが IMAPISupport::Address を呼び出すときに表示できます。
モーダル ダイアログ ボックスは、1 つ以上のコンテナーからのエントリの読み取り/書き込み表示です。 その内容は、lpContRestriction メンバーと lpHierRestriction メンバーに設定されている制限によって、モードレス バージョンと同じ方法で影響を受ける可能性があります。 コンテナー エントリを表示するリスト ボックスに加えて、モーダル ダイアログ ボックスには、ユーザーが選択したエントリを保持するための 1 つまたは 3 つのテキスト ボックス コントロールを含めることができます。 各編集コントロールは、特定の受信者の種類または MAPI_TOなどのPR_RECIPIENT_TYPE プロパティに関連付けられます。 モーダル アドレス ダイアログ ボックスは、 Address メソッドまたはクライアントが IAddrBook::D etails を呼び出し、サービス プロバイダーが IMAPISupport::D etails を呼び出したときに表示できます。
この図には、このダイアログ ボックスの表示を制御する ADRPARM 構造体の cDestFields メンバーが 2 に設定されているため、2 つのテキスト ボックス コントロールが含まれています。 nDestFieldFocus メンバーが 0 に設定されているため、最初のコントロールには初期フォーカスがあります。
lpszNewEntryTitle メンバーはボタン ラベルのテキストを指し示し、ボタン ラベルが選択されると、追加のダイアログ ボックスが表示されます。 通常、モーダル ダイアログ ボックスの図に示すように、ボタンには [ 新規 ] というラベルが付き、表示されるダイアログ ボックスには、プロファイル内の任意のアドレス帳プロバイダーによって作成できるすべての種類のアドレスが一覧表示されます。 クライアントでは、IAddrBook::NewEntry を呼び出し、ユーザーがボタンを選択したときに cbEidNewEntryTpl パラメーターに 0 を渡し、lpEidNewEntryTpl パラメーターに NULL を渡すことで、この [新しいエントリ] ダイアログ ボックスが表示されます。 このダイアログ ボックスに含まれる情報は、MAPI の 1 回限りのテーブルから取得されます。
このダイアログ ボックス内のすべてのエントリは、特定の種類のアドレスを作成するために必要なデータを入力するためのテンプレートに関連付けられています。 ほとんどのアドレス帳プロバイダーは、作成できるアドレス入力の種類ごとに 1 つのテンプレートを提供します。 ユーザーがこのダイアログ ボックスから選択すると、MAPI に対応するテンプレートが表示されます。
ADRPARM 構造体の ulFlags メンバーの最上位の 4 ビットには、ADRPARM 構造体のバージョンを識別するバージョン番号が含まれています。 現在のバージョンは 0 (ゼロ) またはADRPARM_HELP_CTXです。 MAPI の現在の実装は、0 以外の構造体のバージョンでは失敗します。
構造体の将来のバージョンは完全に異なる場合があります。バージョン 0 構造体をサポートしていない可能性があります。 ulFlags メンバーからバージョン番号を抽出し、定義されたフラグと組み合わせるためのマクロを次に示します。
- GET_ADRPARM_VERSION (ulFlags)
- SET_ADRPARM_VERSION (ulFlags、 ulVersion)
- ADRPARM_HELP_CTX