次の方法で共有


MAPIADDRESS コールバック関数 (mapi.h)

[この関数の使用はお勧めしません。 それ以降のバージョンの Windows では、変更または使用できない場合があります。

MAPIAddress 関数は、アドレス一覧エントリのセットを作成または変更します。

構文

MAPIADDRESS Mapiaddress;

ULONG Mapiaddress(
  [in]  LHANDLE lhSession,
  [in]  ULONG_PTR ulUIParam,
  [in]  LPSTR lpszCaption,
  [in]  ULONG nEditFields,
  [in]  LPSTR lpszLabels,
  [in]  ULONG nRecips,
  [in]  lpMapiRecipDesc lpRecips,
  [in]  FLAGS flFlags,
        ULONG ulReserved,
  [out] LPULONG lpnNewRecips,
        lpMapiRecipDesc *lppNewRecips
)
{...}

パラメーター

[in] lhSession

単純な MAPI セッションまたは 0 を表すセッション ハンドル。 lhSession パラメーターの値が 0 の場合、MAPI はユーザーにログを記録し、呼び出しの期間中だけ存在するセッションを作成します。 この一時セッションには、既存の共有セッションまたは新しいセッションを指定できます。 必要に応じて、ログオン ダイアログ ボックスが表示されます。

[in] ulUIParam

親ウィンドウ ハンドルまたは 0。ダイアログ ボックスが表示されている場合は、それがアプリケーション モーダルであることを示します。 ulUIParam パラメーターに親ウィンドウ ハンドルが含まれている場合は、HWND 型です (ULONG_PTRにキャストされます)。 呼び出し中にダイアログ ボックスが表示されない場合、 ulUIParam は無視されます。

[in] lpszCaption

アドレス一覧ダイアログ ボックス、NULL、または空の文字列のキャプションへのポインター。 lpszCaption パラメーターが NULL または空の文字列を指している場合、MAPIAddress は既定のキャプション "アドレス帳" を使用します。

[in] nEditFields

アドレス一覧に存在する必要がある編集コントロールの数。 値 0 ~ 4 は有効です。 nEditFields パラメーターの値が 4 の場合、基になるメッセージング システムでサポートされる各受信者クラスには編集コントロールがあります。 nEditFields の値が 0 の場合は、アドレス一覧の参照のみが可能です。 1、2、または 3 の値は、存在する編集コントロールの数を制御します。 ただし、 lpRecips パラメーターが指す配列内の受信者クラスの数が nEditFields の値より大きい場合、 lpRecips 内のクラスの数は 、nEditFields の値ではなく編集コントロールの数を示すために使用されます。 nEditFields の値が 1 で、lpRecips に複数の種類のエントリが存在する場合、lpszLabels パラメーターは無視されます。 さまざまなコントロールに対して選択されたエントリは、返された受信者構造の ulRecipClass メンバーによって区別されます。

[in] lpszLabels

アドレス一覧ダイアログ ボックスで編集コントロール ラベルとして使用する文字列へのポインター。 nEditFields パラメーターが 1 以外の値に設定されている場合、lpszLabels パラメーターは無視され、NULL または空の文字列を指す必要があります。 また、呼び出し元で既定のコントロール ラベル "To" が必要な場合 は、lpszLabelsを NULL にするか、空の文字列を指す必要があります。

[in] nRecips

lpRecips パラメーターによって示される配列内のエントリの数。 nRecips パラメーターの値が 0 の場合、lpRecips は無視されます。

[in] lpRecips

[アドレス一覧] ダイアログ ボックスの設定に使用する最初の受信者エントリを定義する MapiRecipDesc 構造体の配列へのポインター。 エントリを受信者クラス別にグループ化する必要はありません。これらは、配列内の MapiRecipDesc 構造体の ulRecipClass メンバーの値によって区別されます。 異なる受信者クラスの数が nEditFields パラメーターで示される値より大きい場合、 nEditFields パラメーターと lpszLabels パラメーターは無視されます。

[in] flFlags

オプション フラグのビットマスク。 次のフラグを設定できます。

説明
MAPI_LOGON_UI
必要に応じてログオンするようにユーザーに求めるダイアログ ボックスが表示されます。 MAPI_LOGON_UI フラグが設定されていない場合、クライアント アプリケーションはログオン ダイアログ ボックスを表示せず、ユーザーがログオンしていない場合はエラー値を返します。
MAPI_NEW_SESSION
環境の共有セッションを取得するのではなく、新しいセッションを作成する必要があります。 MAPI_NEW_SESSION フラグが設定されていない場合、 MAPIAddress は既存の共有セッションを使用します。

ulReserved

予約;は 0 である必要があります。

[out] lpnNewRecips

lppNewRecips 受信者出力配列内のエントリ数へのポインター。 lpnNewRecips パラメーターの値が 0 の場合、lppNewRecips パラメーターは無視されます。

lppNewRecips

戻り値

この関数は、次のいずれかの値を返します。

リターン コード 説明
MAPI_E_FAILURE
メッセージのアドレス指定中に、1 つ以上の未指定のエラーが発生しました。 受信者エントリの一覧が返されませんでした。
MAPI_E_INSUFFICIENT_MEMORY
続行するメモリが不足していました。 受信者エントリの一覧が返されませんでした。
MAPI_E_INVALID_EDITFIELDS
nEditFields パラメーターの値が 0 から 4 の範囲外でした。 受信者エントリの一覧が返されませんでした。
MAPI_E_INVALID_RECIPS
アドレス一覧の 1 つ以上の受信者が無効でした。 受信者エントリの一覧が返されませんでした。
MAPI_E_INVALID_SESSION
lhSession パラメーターに無効なセッション ハンドルが使用されました。 受信者エントリの一覧が返されませんでした。
MAPI_E_LOGIN_FAILURE
既定のログオンがなく、ログオン ダイアログ ボックスが表示されたときにユーザーが正常にログオンできませんでした。 受信者エントリの一覧が返されませんでした。
MAPI_E_NOT_SUPPORTED
操作は、基になるメッセージング システムでサポートされていませんでした。
MAPI_E_USER_ABORT
ユーザーがダイアログ ボックスの 1 つを取り消しました。 受信者エントリの一覧が返されませんでした。
SUCCESS_SUCCESS
呼び出しが成功し、受信者のエントリの一覧が返されました。

解説

MAPIAddress 関数は、0 個以上の受信者の初期セットを表示する標準のアドレス一覧ダイアログ ボックスを表示します。 ユーザーは、セットに追加する新しいエントリを選択するか、既存のエントリに変更を加えることができます。 このダイアログ ボックスは非表示にできませんが、呼び出し元はダイアログ ボックスの特性を設定できます。 変更された受信者のセットが呼び出し元に返されます。

MAPIAddress は、新規または変更された受信者情報を書き込む前に、情報を格納する構造体配列にメモリを割り当てる必要があります。 新しい受信者データまたは変更された受信者データが書き込まれるかどうかに関係なく、アドレス帳の事前読み込みの一部としてメモリも割り当てられます。 クライアント アプリケーションは、MAPIAddress が返された後、このメモリを解放するために MAPIFreeBuffer 関数を呼び出す必要があります。 エラーが発生した場合、メモリは割り当てられず、クライアントは MAPIFreeBuffer を呼び出す必要はありません。

必要条件

   
対象プラットフォーム Windows
ヘッダー mapi.h

関連項目

MAPIFreeBuffer

MAPILogon

MapiRecipDesc

簡易 MAPI