レガシ アプリケーションと Windows Vista ドライバーのマッピング
重要
この記事には、旧 Windows オペレーティング システムに適用される情報が含まれています。
このセクションでは、レガシ アプリケーションが Windows Vista ドライバーと連携する必要がある場合、Windows Vista の転送メッセージとデータ フローがレガシ転送メッセージとデータ フローにどのようにマッピングされるのかについて説明します。
コールバック転送
次の表は、Windows Vista ドライバーのコールバック転送メッセージをレガシ アプリケーションに送信されたメッセージにマッピングする方法を示しています。
Windows Vista ドライバー メッセージ | レガシ アプリケーション メッセージ (互換性レイヤー変換後) |
---|---|
WIA_TRANSFER_MSG_STATUS | IT_MSG_STATUS |
WIA_TRANSFER_MSG_ERROR | 無視されます。 |
WIA_TRANSFER_MSG_END_OF_STREAM | 無視されます。 このメッセージは、IWiaTransferCallback::GetNextStream が呼び出されるたびに常に送信されます。 メッセージの重複を避けるため、このメッセージは代わりに GetNextStream の実装内で処理されます。 |
WIA_TRANSFER_MSG_END_OF_TRANSFER | IT_MSG_TERMINATION (WIA_TRANSFER_MSG_END_OF_TRANSFER はドライバーによって送信されません)。 |
WIA_TRANSFER_MSG_DEVICE_STATUS | hrErrorStatus の値が WIA_STATUS_WARMING_UP である場合、互換性レイヤーはアプリケーションに対して転送の進行状況を通知すると同時に、Windows Vista アプリに転送をキャンセルできる機会を与えるために、IT_MSG_STATUS メッセージが IT_STATUS_TRANSFER_FROM_DEVICE ステータスと併せて送信されます。 |
WIA_TRANSFER_MSG_NEW_PAGE | 無視されます。 この場合、TYMED_FILE で Windows Vista ドライバーを呼び出すため、Windows Vista ドライバーから送信されるべきではありません。 |
IWiaTransferCallback::GetNextStream | 最初のページ: IT_MSG_DATA_HEADER 後続のページ: IT_MSG_NEW_PAGE |
IStream::Write | IT_MSG_DATA |
ファイル転送
次の表は、Windows Vista ドライバーのファイル転送メッセージをレガシ アプリケーションに送信されたメッセージにマッピングする方法を示しています。
Windows Vista ドライバー メッセージ | レガシ アプリケーション メッセージ (互換性レイヤー変換後) |
---|---|
WIA_TRANSFER_MSG_STATUS | IT_MSG_STATUS |
WIA_TRANSFER_MSG_ERROR | 無視されます。 |
WIA_TRANSFER_MSG_END_OF_STREAM | 無視されます。 このメッセージは、IWiaTransferCallback::GetNextStream が呼び出されるたびに常に送信されます。 メッセージの重複を避けるため、このメッセージは代わりに GetNextStream の実装内で処理されます。 |
WIA_TRANSFER_MSG_END_OF_TRANSFER | IT_MSG_TERMINATION (WIA_TRANSFER_MSG_END_OF_TRANSFER はドライバーによって送信されません)。 |
WIA_TRANSFER_MSG_DEVICE_STATUS | hrErrorStatus の値が WIA_STATUS_WARMING_UP である場合、アプリケーションに対して転送の進行状況を通知すると同時に、Windows Vista アプリに転送をキャンセルできる機会を与えるために、IT_MSG_STATUS メッセージが IT_STATUS_TRANSFER_FROM_DEVICE ステータスと併せて送信されます。 |
WIA_TRANSFER_MSG_NEW_PAGE | この動作は、従来のマルチページ ファイル転送とは多少異なります。これは、wiasWritePageBufToFile が IT_MSG_NEW_PAGE を送信しないためです。 |
IWiaTransferCallback::GetNextStream | 最初のページ: IT_MSG_FILE_PREVIEW_DATA_HEADER 後続のページ: エラー (WIA_ERROR_GENERAL_ERROR がドライバーに返されます)。 IWiaTransferCallback::GetNextStream は一度しか呼び出すべきではありません。TYMED_FILE では 1 ページしか転送できないためです。また、TYMED_MULTIPAGE_FILE 転送の際も、Windows Vista ドライバーは全ページを同一ストリームに集める必要があるので、GetNextStream の呼び出しは 1 回に限定されるべきです。 |
IStream::Write | メッセージは送信されません。 ファイル転送の場合、互換性レイヤーは、ドライバー (画像処理フィルター) がレガシ転送メッセージに書き込むデータを変換しません。 代わりに、データは単にファイルに書き込まれ、転送の終了時にユーザーに返されます。 |
レガシ転送メッセージの詳細については、「IWiaMiniDrvCallBack インターフェイス」を参照してください。
TYMED 定数の詳細については、「TYMED について」を参照してください。