IMAPISupport::DoCopyToIMAPISupport::DoCopyTo

適用されます: OutlookApplies to: Outlook

明確に除外されたプロパティを 1 つのオブジェクトのすべてのプロパティを別のオブジェクトを移動またはコピーします。Copies or moves all properties of one object, except for specifically excluded properties, to another object.

HRESULT DoCopyTo(
  LPCIID lpSrcInterface,
  LPVOID lpSrcObj,
  ULONG ciidExclude,
  LPCIID rgiidExclude,
  LPSPropTagArray lpExcludeProps,
  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 that has the properties to be copied or moved.

lpSrcObjlpSrcObj

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

ciidExcludeciidExclude

[in]コピーまたはプロパティを移動する際に除外するインターフェイスの数。[in] The count of interfaces to exclude when you copy or move properties.

rgiidExcludergiidExclude

[in]コピーまたは変換先オブジェクトに補足的な情報を移動するときに使用しないインターフェイスを示すインターフェイス識別子の配列。[in] An array of interface identifiers that indicates interfaces that should not be used when you copy or move supplemental information to the destination object.

lpExcludePropslpExcludeProps

[in]コピーから除外する必要がありますまたは移動操作のプロパティ タグを識別するプロパティ タグ配列へのポインター。[in] A pointer to a property tag array that identifies the property tags that should be excluded from the copy or move operation. _LpExcludeProps_パラメーターに NULL を渡すことでは、あるすべてのオブジェクトのプロパティがコピーまたは移動することを示します。Passing NULL in the lpExcludeProps parameter indicates that all of the object's properties should be copied or moved. DoCopyToは、MAPI_E_INVALID_PARAMETER、あうSPropTagArray構造体のメンバーが_lpExcludeProps_で示される場合は 0 に設定を取得します。DoCopyTo returns MAPI_E_INVALID_PARAMETER when the cValues member of the SPropTagArray structure pointed to by lpExcludeProps is set to 0.

ulUIParamulUIParam

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

lpProgresslpProgress

[in]進行状況インジケーターの実装へのポインター。[in] A pointer to a progress indicator implementation. _LpProgress_パラメーターに NULL を渡した場合、MAPI は、進行状況の実装を提供します。If NULL is passed in the lpProgress parameter, MAPI provides the progress 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 copied or moved properties.

lpDestObjlpDestObj

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

ulFlagsulFlags

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

MAPI_DIALOGMAPI_DIALOG

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

MAPI_MOVEMAPI_MOVE

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

MAPI_NOREPLACEMAPI_NOREPLACE

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

lppProblemslppProblems

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

�߂�lReturn value

S_OKS_OK

プロパティは、正常にコピーまたは移動されています。The properties have been 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

_LpSrcObj_が指すオブジェクトでは、 _lpSrcInterface_パラメーターで指定されたインターフェイスはサポートされていない、または_の lpDestObj が指すオブジェクトでは、 lpDestInterface_パラメーターで指定されたインターフェイスはサポートされていません.The interface identified by the lpSrcInterface parameter is not supported by the object pointed to by lpSrcObj, or the interface identified by the lpDestInterface parameter is not supported by the object pointed to by lpDestObj.

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.

MAPI_E_INVALID_PARAMETERMAPI_E_INVALID_PARAMETER

_LpSrcInterface_パラメーターは、NULL です。The lpSrcInterface parameter is NULL.

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

MAPI_E_BAD_CHARWIDTHMAPI_E_BAD_CHARWIDTH

か、MAPI_UNICODE フラグが設定されたDoCopyToは、Unicode をサポートしていませんまたは MAPI_UNICODE が設定されていないとDoCopyToは、Unicode だけをサポートしています。Either the MAPI_UNICODE flag was set and DoCopyTo does not support Unicode, or MAPI_UNICODE was not set and DoCopyTo 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 expected by the caller.

備考Remarks

メッセージ ストア プロバイダーのサポート オブジェクトのIMAPISupport::DoCopyToメソッドを実装します。The IMAPISupport::DoCopyTo method is implemented for message store provider support objects. メッセージ ストア プロバイダーは、そのフォルダーとメッセージのIMAPIProp::CopyToメソッドを実装するためにDoCopyToを呼び出すことができます。Message store providers can call DoCopyTo to implement the IMAPIProp::CopyTo method for their folders and messages.

既定では、 DoCopyToにコピーまたはすべて 1 つのオブジェクトのプロパティの別のオブジェクトを移動します。By default, DoCopyTo copies or moves all of the properties of one object to another object. ソース オブジェクトのサブオブジェクトに自動的に操作に含まれているとコピーまたは移動の全体です。Any subobjects in the source object are automatically included in the operation and copied or moved in their entirety.

コピー先オブジェクトにコピーまたは移動先のプロパティのいずれかの場合、 _ulFlags_パラメーターに MAPI_NOREPLACE フラグが設定されていない限り、既存のプロパティが新しいプロパティによって上書きされます。If any of the copied or moved properties already exist in the destination object, the existing properties are overwritten by the new properties, unless the MAPI_NOREPLACE flag is set in the ulFlags parameter. 変更は上書きされず、変換先オブジェクトの既存の情報は行われないです。Existing information in the destination object that is not overwritten is left untouched.

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

除外するプロパティのコピーか移動の操作を_lpExcludeProps_パラメーターで、プロパティ タグが含まれます。To exclude properties from the copy or move operation, include their property tags in the lpExcludeProps parameter. プロパティ タグ プロパティ タグ配列内の特定の識別子からを構築するPROP_TAGマクロを使用する場合の結果を渡すと、その識別子を持つすべてのプロパティは除外されます。If you pass the results of using the PROP_TAG macro to build a property tag from a specific identifier in the property tag array, all properties with that identifier will be excluded. たとえば、プロパティ タグ配列内の次のエントリでは、種類に関係なく、除外する 0x8002 の識別子を持つすべてのプロパティが発生します。For example, the following entry in the property tag array causes all properties with an identifier of 0x8002 to be excluded, regardless of type:

PROP_TAG(PT_LONG, 0x8002)

プロパティをコピーすると、メッセージを別のフォルダーにPR_MESSAGE_DELIVERY_TIME (PidTagMessageDeliveryTime) を指定するメッセージの配信時刻をコピーしないようにするのには、タグは、配列を除外します。To avoid copying a message's delivery time when you copy the message to a different folder, specify PR_MESSAGE_DELIVERY_TIME (PidTagMessageDeliveryTime) in the property tag exclude array. メッセージの受信者の一覧を除外するには、除外アレイにPR_MESSAGE_RECIPIENTS (PidTagMessageRecipients) のプロパティを追加します。To exclude a message's recipient list, add the PR_MESSAGE_RECIPIENTS (PidTagMessageRecipients) property to the exclude array. メッセージの添付ファイルを除外するには、配列にPR_MESSAGE_ATTACHMENTS (PidTagMessageAttachments) のプロパティを追加します。To exclude a message's attachments, add the PR_MESSAGE_ATTACHMENTS (PidTagMessageAttachments) property to the array.

同様に、コピーまたはフォルダー、アドレス帳コンテナーの階層、または内容のテーブルの移動を防ぐためには、 PR_CONTAINER_HIERARCHY (PidTagContainerHierarchy) またはPR_CONTAINER_CONTENTS (PidTagContainerContents) プロパティのタグは配列を除外します。Similarly, to prevent the copying or moving of 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 exclude array.

MAPI_E_COMPUTED を無視して、 SPropProblemArrayパラメーターに構造体の_lppProblems_でエラーが返されます。Ignore MAPI_E_COMPUTED errors returned in the SPropProblemArray structure in the lppProblems parameter.

_LpSrcInterface_ポイントは、通常、インターフェイス識別子と同じを_lpDestInterface_が指すインターフェイスの識別子です。The interface identifier that lpSrcInterface points to is usually the same as the interface identifier that lpDestInterface points to.

_LpDestInterface_で受け入れ可能なインタ フェース識別子が_lpDestObj_に無効なポインターを渡す場合、結果は予測できません。If you pass an acceptable interface identifier in lpDestInterface but an invalid pointer in lpDestObj, the results are unpredictable. ほとんどの場合、プロバイダーは失敗になります。Most likely this will cause your provider to fail.

逆に、コピーまたは移動する必要がありますはない補足的な情報に注意してください場合は、 _rgiidExclude_パラメーターに渡される配列に除外するインターフェイスのインターフェイス識別子を追加します。Conversely, if you are aware of supplemental information that should not be copied or moved, add the interface identifiers for the interfaces to be excluded in the array passed in the rgiidExclude parameter. たとえば、コピーする場合は、メッセージが、メッセージの添付ファイルのいずれかのない、 _rgiidExclude_配列の IID_IMessage を渡します。For example, if you are copying messages, but not any of their message attachments, pass IID_IMessage in the rgiidExclude array. DoCopyToでは、認識されない_rgiidExclude_に記載されているすべてのインタ フェースを無視します。DoCopyTo ignores any interfaces listed in rgiidExclude that it does not recognize.

インタ フェースを除外するのには、 _rgiidExclude_パラメーターを使用する場合も、そのインターフェイスから派生するすべてのインタ フェースを除外します。When you use the rgiidExclude parameter to exclude an interface, it also excludes all interfaces derived from that interface. などのIMAPIContainerインタ フェースを除外すると、フォルダーまたはプロバイダーの種類によって、除外するアドレス帳のコンテナー。For example, excluding the IMAPIContainer interface causes folders or address book containers to be excluded, depending on the type of provider. 非常に多くのインターフェイスは、それらから派生するためにIMAPIPropまたはIUnknownを除外しません。Do not exclude IMAPIProp or IUnknown because so many interfaces derive from them.

DoCopyToでは、全体として操作に適用されるグローバル エラーと個々 のプロパティに適用される個々 のエラーを報告します。DoCopyTo reports global errors that apply to the operation as a whole, and individual errors that apply to individual 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. DoCopyToに S_OK が返されるときは、構造内の個々 のプロパティを持つ可能性のあるエラーを確認します。When DoCopyTo returns S_OK, check for possible errors with individual properties in the structure. DoCopyToにエラーが返されるとき、 SPropProblemArray構造体の情報は返されません。When DoCopyTo returns an error, no information is returned in the SPropProblemArray structure. 代わりに、詳細なエラー情報を取得するためにIMAPISupport::GetLastErrorメソッドを呼び出します。Instead, call the IMAPISupport::GetLastError method to retrieve detailed error information.

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

DoCopyToの呼び出しでは、グローバル エラーが発生する場合を使用したりしないで、 SPropProblemArray構造体を解放します。If a global error occurs on the DoCopyTo call, do not use or free the SPropProblemArray structure. プロバイダーは、 DoCopyToによって返されたSPropProblemArray構造体の_ulIndex_メンバーを無視してください。Providers should ignore the ulIndex member in SPropProblemArray structures returned by DoCopyTo.

関連項目See also

IMAPIProp::CopyToIMAPIProp::CopyTo

IMAPISupport::CopyFolderIMAPISupport::CopyFolder

IMAPISupport::CopyMessagesIMAPISupport::CopyMessages

IMAPISupport::GetLastErrorIMAPISupport::GetLastError

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

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

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

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

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

SPropProblemArraySPropProblemArray

SPropTagArraySPropTagArray

IMAPISupport: IUnknownIMAPISupport : IUnknown