IMAPISupport::DoCopyPropsIMAPISupport::DoCopyProps

適用されます: OutlookApplies to: Outlook

オブジェクトの 1 つまたは複数のプロパティを別のオブジェクトを移動またはコピーします。Copies or moves one or more properties of an object to another object.

HRESULT DoCopyProps(
  LPCIID lpSrcInterface,
  LPVOID lpSrcObj,
  LPSPropTagArray lpIncludeProps,
  ULONG_PTR ulUIParam,
  LPMAPIPROGRESS lpProgress,
  LPCIID lpDestInterface,
  LPVOID lpDestObj,
  ULONG ulFlags,
  LPSPropProblemArray FAR * lppProblems
);

ParametersParameters

lpSrcInterfacelpSrcInterface

[in]コピーまたは移動するプロパティを持つオブジェクトへのアクセスに使用するインターフェイスを表すインターフェイス識別子 (IID) へのポインター。[in] A pointer to the interface identifier (IID) that represents the interface to be used to access the object with the properties to be copied or moved.

lpSrcObjlpSrcObj

[in]コピーまたは移動するにはプロパティを格納しているオブジェクトへのポインター。[in] A pointer to the object that contains the properties to be copied or moved.

lpIncludePropslpIncludeProps

[in]コピーまたは移動するにはプロパティを指定するプロパティ タグのカウント済み配列を含むSPropTagArray構造体へのポインター。[in] A pointer to an SPropTagArray structure that contains a counted array of property tags that indicate the properties to copy or move. _LpIncludeProps_パラメーターは、NULL にすることはできません。The lpIncludeProps parameter cannot be NULL.

ulUIParamulUIParam

[in]進行状況インジケーターの親ウィンドウへのハンドル。[in] A handle to the parent window of the progress indicator.

lpProgresslpProgress

[in]進行状況のインジケーターの実装へのポインター。[in] A pointer to an implementation of a progress indicator. _LpProgress_パラメーターに NULL が渡されると、MAPI 実装を使用して進行状況のインジケーターが表示されます。If NULL is passed in the lpProgress parameter, the progress indicator is displayed by using the MAPI implementation. _UlFlags_パラメーターで MAPI_DIALOG フラグが設定されていない場合、 _lpProgress_パラメーターは無視されます。The lpProgress parameter is ignored unless the MAPI_DIALOG flag is set in the ulFlags parameter.

lpDestInterfacelpDestInterface

[in]プロパティをコピーまたは移動を受信するオブジェクトへのアクセスに使用するインターフェイスを表すインターフェイス識別子へのポインター。[in] A pointer to the interface identifier that represents the interface to be used to access the object to receive the properties that are copied or moved.

lpDestObjlpDestObj

[in]コピーまたは移動先のプロパティを表示するオブジェクトへのポインター。[in] A pointer to the object to receive the copied or moved properties.

ulFlagsulFlags

[in]コピーまたは移動操作の実行方法を制御するフラグのビットマスクです。[in] A bitmask of flags that controls how the copy or move operation is performed. 次のフラグを設定することができます。The following flags can be set:

MAPI_DIALOGMAPI_DIALOG

進行状況のインジケーターが表示されます。Displays a progress indicator.

MAPI_MOVEMAPI_MOVE

DoCopyPropsは、コピー操作ではなく移動操作を実行する必要があります。DoCopyProps should perform a move operation instead of a copy operation. このフラグが設定されていない場合、 DoCopyPropsは、コピー操作を実行します。When this flag is not set, DoCopyProps performs a copy operation.

MAPI_NOREPLACEMAPI_NOREPLACE

コピー先オブジェクトの既存のプロパティを上書きしてはなりません。Existing properties in the destination object should not be overwritten. このフラグが設定されていない場合、 DoCopyPropsには、既存のプロパティが上書きされます。When this flag is not set, DoCopyProps overwrites existing properties.

lppProblemslppProblems

[で [チェック アウト]SPropProblemArray構造体へのポインターへのポインターの入力でそれ以外の場合、NULL、エラー情報の必要性を示すしません。[in, out] On input, a pointer to a pointer to an SPropProblemArray structure; otherwise, NULL, which indicates no need for error information. _LppProblems_が入力時に有効なポインターである場合は、 DoCopyPropsは、1 つまたは複数のプロパティのコピーでエラーに関する詳細な情報を返します。If lppProblems is a valid pointer on input, DoCopyProps returns detailed information about errors in copying one or more properties.

�߂�lReturn value

S_OKS_OK

プロパティは、コピーまたは移動されて正常にします。Properties were successfully copied or moved.

MAPI_E_COLLISIONMAPI_E_COLLISION

先のオブジェクトのプロパティをコピーまたは移動を既にが存在して MAPI_NOREPLACE フラグを設定します。A property to be copied or moved already exists in the destination object and the MAPI_NOREPLACE flag is set.

MAPI_E_FOLDER_CYCLEMAPI_E_FOLDER_CYCLE

ソース オブジェクトには直接または間接的に目的のオブジェクトが含まれています。The source object directly or indirectly contains the destination object. 重要な作業が実行された前に、この条件が検出された元とコピー先のオブジェクトを部分的に変更された可能性がありますので。Significant work might have been performed before this condition was discovered, so the source and destination objects might be partially modified.

MAPI_E_INTERFACE_NOT_SUPPORTEDMAPI_E_INTERFACE_NOT_SUPPORTED

ソース オブジェクトでは、 _lpSrcInterface_パラメーターで指定されたインターフェイスはサポートされていないか、先のオブジェクトでは、 _lpDestInterface_パラメーターで指定されたインターフェイスはサポートされていません。The interface identified by the lpSrcInterface parameter is not supported by the source object, or the interface identified by the lpDestInterface parameter is not supported by the destination object.

MAPI_E_NO_ACCESSMAPI_E_NO_ACCESS

呼び出し元が十分なアクセス許可を持っているオブジェクトにアクセスしようとしました。An attempt was made to access an object for which the caller has insufficient permissions. 目的のオブジェクトは、ソース オブジェクトと同じ場合、このエラーが返されます。This error is returned if the destination object is the same as the source object.

次の値が返される、 SPropProblemArray構造体には戻り値としてではなくDoCopyPropsThe following values can be returned in the SPropProblemArray structure, but not as return values for DoCopyProps. これらのエラーは、1 つのプロパティに適用されます。These errors apply to a single property.

MAPI_E_BAD_CHARWIDTHMAPI_E_BAD_CHARWIDTH

か、MAPI_UNICODE フラグが設定されたDoCopyPropsは、Unicode をサポートしていませんまたは MAPI_UNICODE が設定されていないとDoCopyPropsは、Unicode だけをサポートしています。Either the MAPI_UNICODE flag was set and DoCopyProps does not support Unicode, or MAPI_UNICODE was not set and DoCopyProps supports only Unicode.

MAPI_E_COMPUTEDMAPI_E_COMPUTED

コピー先オブジェクトの所有者によって計算される、読み取り専用プロパティであるために、呼び出し元がプロパティを変更できません。The property cannot be modified by the caller because it is a read-only property, computed by the owner of the destination object. このエラーは重大です。呼び出し元は、コピー操作を続行を許可する必要があります。This error is not severe; the caller should allow the copy operation to continue.

MAPI_E_INVALID_TYPEMAPI_E_INVALID_TYPE

プロパティの型が正しくありません。The property type is invalid.

MAPI_E_UNEXPECTED_TYPEMAPI_E_UNEXPECTED_TYPE

プロパティの型は、呼び出し元が要求する型ではありません。The property type is not the type that the caller expects.

備考Remarks

メッセージ ストア プロバイダーのサポート オブジェクトのIMAPISupport::DoCopyPropsメソッドを実装します。The IMAPISupport::DoCopyProps method is implemented for message store provider support objects. メッセージ ストア プロバイダーは、そのフォルダーとメッセージのIMAPIProp::CopyPropsメソッドを実装するためにDoCopyPropsを呼び出すことができます。Message store providers can call DoCopyProps to implement the IMAPIProp::CopyProps method for their folders and messages. DoCopyPropsにコピーまたは移動のプロパティで_lpIncludeProps_で指定されたプロパティ タグ配列を識別し、 _lpSrcObj_が指すオブジェクトに存在します。DoCopyProps copies or moves the properties that are identified in the property tag array pointed to by lpIncludeProps and that are present in the object pointed to by lpSrcObj.

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

_LpSrcInterface_および_lpDestInterface_パラメーターが同じインターフェイス識別子、および、 _lpSrcObj_および_lpDestObj_パラメーターを含める必要があります、2 つのメッセージなど、同じ種類のオブジェクト間でプロパティをコピーすると、同じ種類のオブジェクトをポイントする必要があります。When you copy properties between objects of the same type, such as two messages, the lpSrcInterface and lpDestInterface parameters must contain the same interface identifier, and the lpSrcObj and lpDestObj parameters must point to objects of the same type. _LpDestInterface_は、NULL に設定されている場合、 DoCopyPropsは MAPI_E_INVALID_PARAMETER を返します。If lpDestInterface is set to NULL, DoCopyProps returns MAPI_E_INVALID_PARAMETER. 許容可能なインタ フェース識別子は無効なポインターをセット_lpDestObj_に_lpDestInterface_を設定した場合、結果は予測できません。If you set lpDestInterface to an acceptable interface identifier, but set lpDestObj to an invalid pointer, the results are unpredictable. ほとんどの場合、プロバイダーは失敗します。Most likely your provider will fail.

上書き先のオブジェクトのプロパティのいずれかしない場合は、MAPI_NOREPLACE フラグを設定します。Set the MAPI_NOREPLACE flag if you do not want any of the properties in the destination object to be overwritten. ソース オブジェクト内に存在し、上書きされないプロパティを目的のオブジェクトには、削除したり、変更するはありません。Properties in the destination object that exist in the source object and are not overwritten are not deleted or modified.

メッセージの受信者のリストをコピーするのには、 _lpIncludeProps_パラメーターで指定されたプロパティ タグ配列のPR_MESSAGE_RECIPIENTS (PidTagMessageRecipients) のプロパティが含まれます。To copy a message's recipient list, include the PR_MESSAGE_RECIPIENTS (PidTagMessageRecipients) property in the property tag array pointed to by the lpIncludeProps parameter. メッセージの添付ファイルをコピーするには、 PR_MESSAGE_ATTACHMENTS (PidTagMessageAttachments) のプロパティが含まれます。To copy the message's attachments, include the PR_MESSAGE_ATTACHMENTS (PidTagMessageAttachments) property.

フォルダーまたはアドレス帳コンテナーの階層構造または内容のテーブルをコピーするには、プロパティ タグ配列のPR_CONTAINER_HIERARCHY (PidTagContainerHierarchy) またはPR_CONTAINER_CONTENTS (PidTagContainerContents) を含めます。To copy a folder or address book container's hierarchy or contents table, include PR_CONTAINER_HIERARCHY (PidTagContainerHierarchy) or PR_CONTAINER_CONTENTS (PidTagContainerContents) in the property tag array. フォルダーの内容を関連するテーブルを含めるには、 PR_FOLDER_ASSOCIATED_CONTENTS (PidTagFolderAssociatedContents) のプロパティを配列に指定します。To include a folder's associated contents table, include the PR_FOLDER_ASSOCIATED_CONTENTS (PidTagFolderAssociatedContents) property in the array.

サブフォルダーは、コピーまたは移動は場合、その内容がコピーまたは、 SPropTagArray構造体で示されているプロパティの使用に関係なく、完全に移動します。If subfolders are copied or moved, their contents are copied or moved in their entirety, regardless of the use of properties indicated by the SPropTagArray structure.

DoCopyPropsは、グローバル エラーの全体としての操作で発生して、プロパティのいずれかで発生する個々 のエラーを報告します。DoCopyProps reports global errors that occur with the operation as a whole, and individual errors that occur with one or more of the properties. これらの個々 のエラーは、 SPropProblemArray構造体に配置されます。These individual errors are put in an SPropProblemArray structure. プロパティ問題配列構造体パラメーターに有効なポインターではなく NULL を渡すことにより、プロパティ レベルでレポートのエラーを抑制できます。You can suppress error reporting at the property level by passing NULL, rather than a valid pointer, for the property problem array structure parameter.

エラーに関する情報を受信する場合は、 _lppProblems_パラメーターに有効なSPropProblemArray構造体のポインターを渡します。If you want to receive information about errors, pass a valid SPropProblemArray structure pointer in the lppProblems parameter. DoCopyPropsに S_OK が返されるときは、構造内の個々 のプロパティを持つ可能性のあるエラーを確認します。When DoCopyProps returns S_OK, check for possible errors with individual properties in the structure. DoCopyPropsにエラーが返されるとき、 SPropProblemArray構造体の情報は返されません。When DoCopyProps returns an error, no information is returned in the SPropProblemArray structure. 代わりに、詳細なエラー情報を取得するためにIMAPISupport::GetLastErrorメソッドを呼び出します。Instead, call the IMAPISupport::GetLastError method to retrieve detailed error information.

DoCopyPropsでは、S_OK が返された場合は、 MAPIFreeBuffer関数の呼び出しによって返されたSPropProblemArray構造体を解放します。If DoCopyProps returns S_OK, free the returned SPropProblemArray structure by calling the MAPIFreeBuffer function.

関連項目See also

IMAPIProp::CopyPropsIMAPIProp::CopyProps

IMAPISupport::CopyMessagesIMAPISupport::CopyMessages

IMAPISupport::DoCopyToIMAPISupport::DoCopyTo

IMAPISupport::GetLastErrorIMAPISupport::GetLastError

PidTagContainerContents の標準的なプロパティPidTagContainerContents Canonical Property

PidTagContainerHierarchy の標準的なプロパティPidTagContainerHierarchy Canonical Property

PidTagFolderAssociatedContents の標準的なプロパティPidTagFolderAssociatedContents Canonical Property

PidTagMessageAttachments の標準的なプロパティPidTagMessageAttachments Canonical Property

PidTagMessageRecipients の標準的なプロパティPidTagMessageRecipients Canonical Property

SPropProblemArraySPropProblemArray

SPropTagArraySPropTagArray

IMAPISupport: IUnknownIMAPISupport : IUnknown