TransferContainerDataOnClearChannel メソッドは、クリア チャネルを介してコンテナー ファイル データをコンテンツ プロバイダーに転送します。 コンテンツ プロバイダーは、コンテナーを内部的に分割し、コンテナーから抽出されたコンテンツのどの部分が使用可能かを報告します。
このメソッドは ISCPSecureExchange::TransferContainerData と同じですが、このメソッドに渡されるパラメーターは暗号化されません。 したがって、この方法の方が効率的です。
構文
HRESULT TransferContainerDataOnClearChannel(
IMDSPDevice *pDevice,
BYTE *pData,
DWORD dwSize,
IWMDMProgress3 *pProgressCallback,
UINT *pfuReadyFlags
);
パラメーター
pDevice
デバイス オブジェクトへのポインター。
pData
コンテナー ファイルから転送されている現在のデータを保持しているバッファーへのポインター。
dwSize
バッファー内のバイト数を格納します。
pProgressCallback
コンテンツ プロバイダーが実行する必要があるステップの進行状況を報告できる進行状況コールバック。このステップは、IWMDMProgress3 メソッドの EventId パラメーターによって識別されます。
pfuReadyFlags
コンテナー ファイルのどの部分を読み取る準備ができているかを示すフラグ。 このパラメーターは、出力メッセージ認証コードに含まれています。 次のフラグは、準備ができていることを示しています。
| 値 | 説明 |
|---|---|
|
オブジェクトのデータは、 GetObjectDataOnClearChannel メソッドを呼び出すことによって使用できます。 |
|
コンテンツ プロバイダーは、転送されるファイルのそれ以上の処理や変更は必要ないと判断しました。 Windows Media デバイス マネージャーは、ファイルの残りの部分をデバイスに直接転送できます。 |
戻り値
メソッドが成功した場合は、S_OK を返します。 メソッドが失敗した場合は、 HRESULT エラー コードが返されます。
| リターン コード | 説明 |
|---|---|
|
呼び出し元には、このインターフェイスの使用が許可されていません。 |
|
呼び出し元には、要求された操作を実行するために必要な権限がありません。 |
|
メッセージ認証コードが無効です。 |
|
メソッドが失敗しました。 コンテンツ プロバイダーとの対話を終了します。 |
|
パラメーターが無効であるか、 NULL ポインターです。 |
|
未指定のエラーが発生しました。 |
解説
Windows Media デバイス マネージャーは、コンテナー ファイルからコンテンツ プロバイダーにデータを転送して、このメソッドを繰り返し呼び出します。 Windows Media デバイス マネージャーは、最終的に dwSize を 0 に設定してこのメソッドを呼び出して、転送するデータがなくなったことを示します。 コンテンツ プロバイダーは、データを収集し、そこからさまざまなオブジェクトを抽出すると、呼び出しのたびに使用できるオブジェクト (存在する場合) を Windows Media デバイス マネージャーに報告します。 使用可能なオブジェクトがない場合、コンテンツ プロバイダーは pfuReadyFlags パラメーターを 0 に設定してS_OKを返します。 コンテンツ プロバイダーが、転送されるファイルのそれ以上の処理や変更を必要としていないと判断すると、フラグ WMDM_SCP_NO_MORE_CHANGESが返されます。 Windows Media デバイス マネージャーは、ファイルの残りの部分をデバイスに直接転送できます。
オブジェクト データは、 GetObjectDataOnClearChannel メソッドを呼び出すことによってコンテンツ プロバイダーから転送されます。 Windows Media デバイス マネージャーは、3 番目のパラメーター pdwsize で 0 が返されるまで、GetObjectDataOnClearChannel を繰り返し呼び出します。
ISCPSecureExchange::TransferComplete (またはセッションがアクティブな場合は TransferCompleteForDevice) メソッドは、データ転送の終了を通知するために Windows Media デバイス マネージャーによって呼び出されます。
Windows Media デバイス マネージャーは、pProgressCallback パラメーターで、アプリケーション提供の進行状況コールバックをコンテンツ プロバイダーに渡します。 コンテンツ プロバイダーは、このパラメーターを使用して、実行する必要があるステップの進行状況通知を提供できます。ステップ自体は、IWMDMProgress3 のメソッドの最初のパラメーターである EventId によって識別されます。 特定のコンテンツ プロバイダーの実装では、使用するアプリケーションの EventId 値が定義されます。
このメソッドは ISCPSecureExchange::TransferContainerData と同じですが、このメソッドに渡されるパラメーターは暗号化されません。 したがって、この方法の方が効率的です。
必要条件
| 対象プラットフォーム | Windows |
| ヘッダー | mswmdm.h |
| Library | Mssachlp.lib |