次の方法で共有


IWMDMStorageControl::Insert メソッド (mswmdm.h)

Insert メソッドは、デバイス上のストレージにコンテンツを配置します。

構文

HRESULT Insert(
  [in]  UINT           fuMode,
  [in]  LPWSTR         pwszFile,
  [in]  IWMDMOperation *pOperation,
  [in]  IWMDMProgress  *pProgress,
  [out] IWMDMStorage   **ppNewObject
);

パラメーター

[in] fuMode

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

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

[in] pwszFile

挿入操作の内容を検索する場所を示すワイド文字の null で終わる文字列へのポインター。 fuMode でWMDM_CONTENT_OPERATIONINTERFACEが指定されている場合、このパラメーターは NULL である必要があります。

[in] pOperation

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

[in] pProgress

Windows Media デバイス マネージャーがアプリケーションに進行状況を報告するために使用する IWMDMProgress インターフェイスへのオプションのポインター。 これを使用する場合、 fuMode には WMDM_MODE_PROGRESSを含める必要があります。

[out] ppNewObject

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

戻り値

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

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

注釈

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

デバイスに保存されているオブジェクトの名前と拡張子は、ソース ファイルの名前と拡張子と同じになります ( pOperationNULL の場合)。

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

Insert メソッドは、デバイスが順序付けられたファイル挿入をサポートすることを保証しませんが、フラグWMDM_STORAGECONTROL_INSERTBEFOREとWMDM_STORAGECONTROL_INSERTAFTERを提供します。 ファイル システムで順序付け (FAT32 など) がサポートされていない場合、WMDM_STORAGECONTROL_INSERTBEFOREとWMDM_STORAGECONTROL_INSERTAFTERは、ファイル システム階層内の現在のオブジェクトと同じレベルで新しいストレージ オブジェクトを挿入するだけです。

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

要件

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

こちらもご覧ください

IWMDMStorageControl インターフェイス

IWMDMStorageControl2::Insert2

IWMDMStorageControl3::Insert3

IWMDMStorageControl::Read

デバイスへのファイルの書き込み