IPersistMessage::InitNewIPersistMessage::InitNew

適用されます: OutlookApplies to: Outlook

新しいメッセージを初期化します。Initializes a new message.

HRESULT InitNew(
  LPMAPIMESSAGESITE pMessageSite,
  LPMESSAGE pMessage
);

ParametersParameters

pMessageSitepMessageSite

[in]ビューアーでのメッセージを操作するのには、フォームを使用するメッセージのサイトへのポインター。[in] A pointer to the message site that the form will use to work with the message in the viewer.

pMessagepMessage

[in]新しいメッセージへのポインター。[in] A pointer to the new message.

�߂�lReturn value

S_OKS_OK

新しいメッセージが正常に初期化しました。The new message was successfully initialized.

備考Remarks

フォーム ビューアーは、ユーザーがフォームを処理するメッセージ クラスが所属する新しいメッセージを書き込むときに、 IPersistMessage::InitNewメソッドを呼び出します。Form viewers call the IPersistMessage::InitNew method when the user writes a new message that belongs to a message class that the form handles. フォーム オブジェクトに有効なユーザー インターフェイスのポインターがある場合は、メッセージ オブジェクトのユーザー インターフェイスが表示されます。If the form object has a valid user interface pointer, the user interface for the message object should be displayed.

InitNew呼び出せませんフォームが初期化されていない状態以外の任意の状態にします。InitNew should not be called when your form is in any state except the Uninitialized state. InitNewが呼び出されたときに、フォームは他の状態のいずれかでは場合は、E_UNEXPECTED を返します。If the form is in one of the other states when InitNew is called, return E_UNEXPECTED.

実装者へのメモNotes to implementers

通常、プロパティが保存されていないメッセージは変更済みとしてマーク、クライアントがユーザーの入力を求めるダイアログ ボックスを表示できるようにこれらのプロパティを保存するかどうか。Typically, messages that have unsaved properties are marked as modified so that the client can display a dialog box that prompts the user whether these properties should be saved. ユーザーは、メッセージを保存する必要があることを示している場合は、データを保存し、クリーンとしてメッセージをマーク、正常終了します。If the user indicates that a message should be saved, save the data, mark the message as clean, and exit normally.

ただし、新たに初期化されたメッセージの処理は、いずれかを設定またはプロパティでは、以上の計算、それらのプロパティを保存する必要をオフにメッセージを変更されたとします。However, if processing for your newly initialized messages includes setting one or more computed properties, and it is important for those properties to be saved, do not mark the messages as modified. プロパティがユーザーに表示する必要がありますが計算するためダイアログ ボックスが表示されません。Because computed properties should be invisible to users, no dialog box should be displayed.

InitNewに渡される 1 つは別の作業中のメッセージ、サイトへの参照は、フォームに場合、は、使用できなくするために元のサイトをリリースします。If your form has a reference to an active message site other than the one that is passed into InitNew, release the original site because it will no longer be used. _PMessageSite_と_pMessage_パラメーターからは、サイトのメッセージとメッセージへのポインターを格納し、その参照カウントをインクリメントするのには、両方のオブジェクトのIUnknown::AddRefメソッドを呼び出します。Store the pointers to the message site and message from the pMessageSite and pMessage parameters and call both objects' IUnknown::AddRef methods to increment their reference counts.

メッセージ クラスの適切なPR_MESSAGE_FLAGS (PidTagMessageFlags) とPR_MSG_STATUS (PidTagMessageStatus)、新しいメッセージのプロパティを設定します。Set the PR_MESSAGE_FLAGS (PidTagMessageFlags) and PR_MSG_STATUS (PidTagMessageStatus) properties for the new message to something appropriate for your message class. 多くのメッセージ クラスは、新しいメッセージのPR_MESSAGE_FLAGSを MSGFLAG_UNSENT などの設定します。Many message classes, for example, set PR_MESSAGE_FLAGS to MSGFLAG_UNSENT for new messages.

戻る前にフォームにエラーがない場合は、通常状態の遷移が発生しました。Before returning, transition the form to the Normal state if no errors have occurred. IMAPIViewAdviseSink::OnNewMessageメソッドを呼び出すことによって登録されているすべてのビューアーに新着メッセージの通知を送信して、S_OK を返します。Send a new message notification to all registered viewers by calling their IMAPIViewAdviseSink::OnNewMessage methods and return S_OK.

呼び出し側への注意Notes to callers

InitNewの呼び出しが成功したら、次の必要なプロパティおよびその他、フォームに設定されていることを引き受けることができます。After you have made a successful call to InitNew, you can assume that the following required properties, and no others, have been set for the form:

PR_DELETE_AFTER_SUBMIT(PidTagDeleteAfterSubmit)PR_DELETE_AFTER_SUBMIT (PidTagDeleteAfterSubmit)

PR_IMPORTANCE(PidTagImportance)PR_IMPORTANCE (PidTagImportance)

PR_ORIGINATOR_DELIVERY_REPORT_REQUESTED(PidTagOriginatorDeliveryReportRequested)PR_ORIGINATOR_DELIVERY_REPORT_REQUESTED (PidTagOriginatorDeliveryReportRequested)

PR_PRIORITY(PidTagPriority)PR_PRIORITY (PidTagPriority)

PR_READ_RECEIPT_REQUESTED(PidTagReadReceiptRequested)PR_READ_RECEIPT_REQUESTED (PidTagReadReceiptRequested)

PR_SENSITIVITY(PidTagSensitivity)PR_SENSITIVITY (PidTagSensitivity)

PR_SENTMAIL_ENTRYID(PidTagSentMailEntryId)PR_SENTMAIL_ENTRYID (PidTagSentMailEntryId)

フォームの状態の詳細については、フォームの状態を参照してください。For more information about the states of forms, see Form States. ストレージ ・ オブジェクトを初期化する方法の詳細については、 IPersistStorage::InitNewメソッドを参照してください。For more information about how storage objects are initialized, see the IPersistStorage::InitNew method.

関連項目See also

IPersistMessage: IUnknownIPersistMessage : IUnknown