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 をサポートしている場合は、これを使用することをお勧めします。
デバイスに保存されているオブジェクトの名前と拡張子は、ソース ファイルの名前と拡張子と同じになります ( pOperation が NULL の場合)。
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 |