IMessage::ModifyRecipients

適用対象: Outlook 2013 | Outlook 2016

�lj��A�폜�A�܂��̓��b�Z�[�W�̎�M�҂�ύX���܂��B

HRESULT ModifyRecipients(
  ULONG ulFlags,
  LPADRLIST lpMods
);

パラメーター

ulFlags

[in]受信者の変更を制御するフラグのビットマスク。 ulFlags パラメーターに 0 が渡された場合、ModifyRecipients は、既存のすべての受信者を lpMods パラメーターが指す受信者リストに置き換えます。 ulFlags には、次のフラグを設定できます。

MODRECIP_ADD

lpMods パラメーターが指す受信者を受信者リストに追加する必要があります。

MODRECIP_MODIFY

lpMods パラメーターが指す受信者は、既存の受信者を置き換える必要があります。 既存のすべてのプロパティは、対応する ADRENTRY 構造体内のプロパティに置き換えられます。

MODRECIP_REMOVE

lpMods パラメーターの各受信者エントリのプロパティ値配列に含まれるPR_ROWID (PidTagRowid) プロパティをインデックスとして使用して、既存の受信者を受信者リストから削除する必要があります。

lpMods

[����]�|�C���^�[��lj��A�폜�A�܂��̓��b�Z�[�W��ɕύX���ꂽ����̃��X�g��܂�ADRLIST�\���ɂ��܂��B

戻り値

S_OK

���惊�X�g������ɕύX����܂����B

注釈

IMessage::ModifyRecipients メソッドは、メッセージの受信者リストを変更します。 このリストから、 ADRLIST 構造体に保持され、受信者テーブルがビルドされます。

ADRLIST�\���̊e��M�҂� 1 �‚�ADRENTRY�\�����܂܂�Ă��邵�A�e ADRENTRY�\���ɂ́A��M�҂̃v���p�e�B��L�q����v���p�e�B�̒l�̔z�񂪊܂܂�Ă��܂��B

ADRLIST 構造体の受信者は、解決または未解決にすることができます。 違いは、含まれるプロパティの数と種類にあります。 未解決の受信者には 、PR_DISPLAY_NAME (PidTagDisplayName) プロパティと PR_RECIPIENT_TYPE (PidTagRecipientType) プロパティのみが含まれますが、解決された受信者には、これらの 2 つのプロパティと PR_ADDRTYPE (PidTagAddressType) と PR_ENTRYID (PidTagEntryId) が含まれています。 PR_EMAIL_ADDRESS (PidTagEmailAddress) が使用可能な場合は、含めることもできます。

メッセージが送信されるまでに、解決済みの受信者のみを受信者リストに含める必要があります。 未解決の受信者は、非送信レポートを作成し、メッセージの元の送信者に送信します。 クライアントの観点からの名前解決プロセスの詳細については、「 名前の解決」を参照してください。 アドレス帳プロバイダーの観点から詳しくは、「 名前解決の実装」をご覧ください。

解決された受信者と未解決の受信者に加えて、受信者には NULL を指定できます。 受信者の ADRENTRY 構造体の cValues メンバーが 0 に設定され、rgPropVals メンバーが NULL に設定されています。

呼び出し側への注意

You can create a recipient list by calling IAddrBook::Address to display the common dialog box and prompt the user to select entries. lppAdrList パラメーターが Address に指すアドレス 一覧は、lpMods パラメーターとして ModifyRecipients に渡すことができます。

ADRLIST 構造体で受信者のプロパティを指定する場合は、新しいプロパティや変更されたプロパティだけでなく、すべての受信者のプロパティを含めます。 受信者が変更されると、 ADRLIST 構造体に含まれていないプロパティはすべて削除されます。 メッセージのすべての受信者の現在のプロパティ セットを取得するには、 GetRecipientTable を呼び出して、すべての行を取得します。 SRowSetADRLIST と同じ構造であるため、同じ意味で使用できます。

ModifyRecipients は、ulFlags パラメーターにフラグが設定されていない場合に、現在の受信者リスト内のすべてのエントリを lpMods が指す情報に置き換えます。

MODRECIP_MODIFY フラグを設定すると、ModifyRecipients は、各受信者行全体を、lpMods で渡された ADRLIST 構造体内の関連付けられた行に置き換えます。 受信者が意図せずに削除されないように変更したかどうかに関係なく、受信者が持つ必要があるすべてのプロパティを指定するように注意してください。

�ȉ��́A ADRLIST�\���Ŏ�M�҂̃v���p�e�B��ݒ肷�邽�߂̂����‚��̃��[���ł��B

  • プロパティ型としてPT_NULLを使用しないでください。 ModifyRecipients は、 この値を検出するとエラーを返します。

  • プロパティ型としてPT_ERRORを使用しないでください。 ModifyRecipients はこの値を無視します。

  • ulFlagsMODRECIP_REMOVE または MODRECIP_MODIFY フラグを設定するときに、すべての受信者の PR_ROWID プロパティを含めます。

  • ulFlags でMODRECIP_ADD フラグを設定する場合、または ulFlags で 0 を渡す場合は、どの受信者にも PR_ROWID プロパティを含めないでください。

受信者の PR_ADDRTYPE プロパティまたは PR_EMAIL_ADDRESS プロパティのいずれかを含め、これらのプロパティの一方または両方が、 PR_ENTRYIDによって識別される受信者のアドレスの種類とアドレスと一致しない場合、結果は未定義になります。 つまり、サービス プロバイダーに応じて、次の 3 つの可能性があります。

  • ���b�Z�[�W�́A PR_ADDRTYPE�� PR_EMAIL_ADDRESS�v���p�e�B�Ő������Ă���A�h���X�ɔz�M����܂��B

  • PR_ENTRYID�Ŏ����ꂽ��M�҂Ƀ��b�Z�[�W���z�M����܂��B

  • ���b�Z�[�W�́A�Z���̂����܂����������Ŕz�M�s�\�錾����܂��B

「ADRLIST および SRowSet 構造体のメモリ管理」で説明されている割り当て規則を使用して、受信者リストのメモリを割り当てます。 ModifyRecipients では 、ADRLIST 構造体も、そのサブ構造体も解放されません。 ADRLIST 構造体と各 SPropValue 構造体は、それぞれ個別に解放できるように MAPIAllocateBuffer 関数を使用して個別に割り当てる必要があります。 メソッドで SPropValue 構造体に追加の領域が必要な場合は、 SPropValue 構造体を 、MAPIFreeBuffer を使用して後で解放できる新しい構造体に置き換えることができます。 元の SPropValue 構造体も MAPIFreeBuffer を使用して解放する必要があります。

MFCMAPI リファレンス

MFCMAPI のサンプル コードについては、次の表を参照してください。

ファイル 関数 �R�����g
MAPIABFunctions.cpp
AddRecipient
MFCMAPI �ł́A IMessage::ModifyRecipients���\�b�h��g�p���āA���b�Z�[�W�ɁA�V������M�҂�lj����܂��B

関連項目

ADRENTRY

ADRLIST

IAddrBook::Address

IMAPISupport::Address

MAPIAllocateBuffer

MAPIFreeBuffer

SPropValue

IMessage: IMAPIProp

[�R��h �T���v���Ƃ��� MFCMAPI