IWMDMStorageControl2::Insert2 メソッド (mswmdm.h)

Insert2 メソッドは、コンテンツをストレージの次に配置します。 このメソッドは、アプリケーションで新しい宛先名を指定し、カスタム COM オブジェクトへのポインターを指定できるようにすることで、 IWMDMStorageControl::Insert を拡張します。

構文

HRESULT Insert2(
  [in]  UINT           fuMode,
  [in]  LPWSTR         pwszFileSource,
  [in]  LPWSTR         pwszFileDest,
  [in]  IWMDMOperation *pOperation,
  [in]  IWMDMProgress  *pProgress,
  [in]  IUnknown       *pUnknown,
  [out] IWMDMStorage   **ppNewObject
);

パラメーター

[in] fuMode

Insert2 操作に使用される処理モード。 次の表に、 fuMode パラメーターで指定できる処理モードを示します。 最初の 2 つのモードのうちの 1 つ、STORAGECONTROL モードの 1 つ、および CONTENT モードの 1 つを正確に指定する必要があります。 WMDM_MODE_BLOCKとWMDM_MODE_THREADの両方が指定されている場合は、ブロック モードが使用されます。

組み合わせ モード 説明
次のいずれかです。 WMDM_MODE_BLOCK この操作は、ブロック モード処理を使用して実行されます。 操作が完了するまで、呼び出しは戻りません。
- WMDM_MODE_THREAD 操作はスレッド モード処理を使用して実行されます。 呼び出しはすぐに返され、操作はバックグラウンド スレッドで実行されます。
オプション WMDM_MODE_QUERY 挿入操作が成功したかどうかを判断するためのテストが実行されますが、挿入は実行されません。
次のいずれかです。 WMDM_STORAGECONTROL_INSERTBEFORE オブジェクトは、ターゲット オブジェクトの前に挿入されます。
- WMDM_STORAGECONTROL_INSERTAFTER オブジェクトは、ターゲット オブジェクトの後に挿入されます。
- WMDM_STORAGECONTROL_INSERTINTO オブジェクトが現在の オブジェクトに挿入されます。 これは、現在のオブジェクトがフォルダーの場合にのみ機能します。
オプション WMDM_FILE_CREATE_OVERWRITE オブジェクトはターゲット オブジェクトを置き換えます。
次のいずれかです。 WMDM_CONTENT_FILE 挿入されるコンテンツはファイルです。
- WMDM_CONTENT_FOLDER 挿入されるコンテンツはフォルダーです。 フォルダーの内容は転送されません。
オプション WMDM_CONTENT_OPERATIONINTERFACE 挿入されるコンテンツは操作インターフェイスです。 コンテンツのデータは、アプリケーションで実装された IWMDMOperation インターフェイスに書き込む必要があります。
オプション WMDM_MODE_PROGRESS 進行状況の通知は 、pProgress パラメーターを使用して送信する必要があります。
オプションの 1 つ: WMDM_MODE_TRANSFER_PROTECTED 挿入は保護転送モードです。
- WMDM_MODE_TRANSFER_UNPROTECTED 挿入は保護されていない転送モードです。

[in] pwszFileSource

デバイスに送信するオブジェクトの完全な名前とパスを示す、ワイド文字の null で終わる文字列へのポインター。 fuMode でWMDM_CONTENT_OPERATIONINTERFACEが指定されている場合、このパラメーターは NULL である必要があります。

[in] pwszFileDest

デバイス上のファイルの省略可能な名前。 指定せず、アプリケーションが IWMDMOperation ポインターを pOperation に渡す場合、Windows Media デバイス マネージャー は IWMDMOperation::GetObjectName を呼び出して宛先名を要求します。 指定せず、アプリケーションで pOperation を使用しない場合は、元のファイル名と拡張子が (パスなしで) 使用されます。

[in] pOperation

メディア デバイスへのコンテンツの転送を制御するための 、IWMDMOperation インターフェイスへのオプションのポインター。 指定した場合、 fuMode には WMDM_CONTENT_OPERATIONINTERFACE フラグを含める必要があります。 fuMode でWMDM_CONTENT_FILEまたはWMDM_CONTENT_FOLDERが指定されている場合、このパラメーターは NULL である必要があります。

[in] pProgress

オプションの IWMDMProgress インターフェイスへのポインター。アクションの進行状況をアプリケーションに報告します。 指定した場合、 fuMode には WMDM_MODE_PROGRESSを含める必要があります。

[in] pUnknown

セキュリティで保護されたコンテンツ プロバイダーに渡されるカスタム COM オブジェクトのオプション の IUnknown ポインター。 これにより、アプリケーションにセキュリティで保護されたコンテンツ プロバイダーに関する十分な情報がある場合に、セキュリティで保護されたコンテンツ プロバイダーにカスタム情報を渡すことができます。

[out] ppNewObject

新しいコンテンツを含む IWMDMStorage インターフェイスへのポインター。 呼び出し元は、このインターフェイスが終了したら、このインターフェイスを解放する必要があります。

戻り値

このメソッドは HRESULT を返します。 Windows Media デバイス マネージャーのすべてのインターフェイス メソッドは、次のいずれかのエラー コード クラスを返すことができます。

  • 標準 COM エラー コード
  • HRESULT 値に変換された Windows エラー コード
  • Windows Media デバイス マネージャーエラー コード
考えられるエラー コードの詳細な一覧については、「 エラー コード」を参照してください。

注釈

デバイスが IWMDMStorageControl3::Insert3 をサポートしている場合は、これを使用することをお勧めします。

WMDM_MODE_THREAD フラグが指定されている場合は、IWMDMProgress2::End2 または IWMDMProgress3::End3 を呼び出して完了状態を取得する必要があります。 これらのメソッドを使用すると、操作が完了し、成功または失敗の情報を含む HRESULT も返されます。

アプリケーションで WMDM_MODE_THREADを使用し、null 以外の pProgress パラメーターを渡す場合、Windows Media デバイス マネージャーはこのオブジェクトに進行状況通知を送信するため、挿入操作が完了するまで pProgress が属するオブジェクトが破棄されないようにする必要があります。 このオブジェクトは、End 通知を受信した後にのみ破棄できます。 これを行わないと、アクセス違反が発生します。

要件

要件
対象プラットフォーム Windows
ヘッダー mswmdm.h
Library Mssachlp.lib

こちらもご覧ください

IWMDMDevice::GetStatus

IWMDMOperation インターフェイス

IWMDMProgress インターフェイス

IWMDMStorage インターフェイス

IWMDMStorageControl2 インターフェイス

IWMDMStorageControl3::Insert3