Windows」をあくまでも自分用に和訳したものです。英語が得意ではないのでかなりの確率で間違っている可能性がありますので理解できない場合は原文を読むことをお勧めします。Windowsはあなたのアプリケーションに直接QuickTimeの機能を組み込むことができます。あなたがMacintoshの開発者なら、SDKはQuickTimeベースの機能をWindowsへ移植するのに必要なツールを提供します。このチャプターでは、QuickTimeとWindowsの両方が働くために理解する必要のある基本的なコンセプトのいくつかを論じます。Windowsの中核は、Windowsプラットフォーム上でQuickTimeと幾つかのMacintoshのツールボックスルーチンの振る舞いを搭載したWindowsのダイナミックリンクライブラリ(DLL)です。QuickTimeのルーチン郡はそもそもMacOS向けにデザインがされており、それらはMacOSのデータ構造を操作し、MacOSオペレーティング環境のフィーチャーを想定されています。QuickTimeのルーチン郡はWindowsスタイルのメッセージよりむしろMacOSスタイルのイベントにより駆動されます。Windowsデバイスコンテキストのの代わりにMacOSグラフィックスポートへそれらの描画を行います。それらをWindows環境で使うため、それら2つのプラットフォーム間を仲介するいくつかの特別な作業をする必要があります。Layer(QTML)のコンセプトとそれらとWindowsとの対応です。相当物メッセージ(MSG)イベント(EventRecord)グラフィックスデバイスインターフェース(GDI)クイックドローデバイスコンテキスト(DC)グラフィックスポート(CGrafPort)ウィンドウハンドル(HWND)ウィンドウポインタ(CWindowPtr)コモンダイアログボックスライブラリスタンダードファイルパッケージここに標準のWindowsアプリケーションの構造の中にどうやってQuickTimeをフィットさせるのか、そして現在あるQuickTimeのドキュメントを理解し、読むために必要な最小限の概念基盤をWindows開発者にお見せするための簡単な答えがあります。思考の中のそれらの目標とともに、このドキュメント中のプログラミング例は意図的にシンプルに、そして直接的なものとしています。コードサンプルは最も基本的なQuickTimeの機能性:ムービーのプレゼンテーション、ユーザーが操作し、コントロールするその標準的なQuickTimeムービーコントローラーを通してそれらを見せます。MacOSとWindowsの相違点Windowsプログラミングのイベントループ構造は、Macintoshのそれに非常に似ています。相違点は実装方法の詳細にあり、基本的なアプローチにはない。QuickTimeに影響するメジャーな相違点は次の点になります:・グラフィック環境。QuickTimeはMacOSのQuickDrawを使ってユーザーのスクリーンに描画する、そしてQuickDrawはペンの太さや、背景色、クリップ境界や現在のテキストフォントのような特徴を定義したグラフィックポートと呼ばれるデータ構造に依存します。Windowsは同じような用途でデバイスコンテキスト(DC)を使用する。デバイスコンテキストは個々のデバイスを特定する(Windowやプリンターのように)。対してMacOSのグラフィックポートは一時にすべての描画操作を包括します。MacOSのリソースはファイルの中に格納された構造化されたデータの項目と、プログラムの振る舞いを決定するのを助ける要求を読み込めます。アプリケーションファイル中のリソースは通常、メニューやダイアログボックスのようなユーザーインターフェース項目の記述を含みます。アプリケーションの実行可能コードはアプリケーションのファイル中リソースとして格納されます。Windowsはリソースのコンセプトを使用する上、システムのソフトウェアアーキテクチャにとって重要は重要ではない。・データタイプコード。QuickTimeはトラックタイプ、メディアタイプ、コンポーネントタイプといった項目を識別するために4つのキャラクタコードを使用します。内部的にはそのコードはシンプルな32bitのInteger型コードです。ソースコード内では’abcd’のようにシングルクォーテーションで囲んだ4つのキャラクタ文字列で表されます。Macintoshでのファイルはすべて2つの分割したセクションで構成されており、1つのファイル名で論理的に接続されています。データフォークはシーケンシャルリードを対象とする1つのデータバイトストリームから構成されています。それはDOSやWindowsが一つのファイルとして扱うものに対応します。MacOSのイベントは、Windowsのメッセージとコンセプトはにたようなもので、本質的に同じ情報を運びます。Windowsのメッセージは特定のウィンドウに指図されます。MacOSのイベントは現在実行中のプログラムへ全体的に発せられます。・Windowsレジストレーション。QuickTimeはその自分自身のグラフィックポートのMacOSウィンドウレコードへ1つのポインタによって1つのウィンドウを指示します。Windowsプラットフォームでは、通常はHWNDハンドルによって指定される1つのウィンドウとなります。Windowsはウィンドウへ描画する前に、CreatePortAssociationを呼び出し、あなたのコードからQuickTimeとともにウィンドウを登録しなければならない。この関数はグラフィックポートを作成し、QuickTimeの内部データ構造とウィンドウを関連付けます。すべてのMacintoshファイルは4文字のファイルタイプとアプリケーションプログラムを識別する4文字の作成者署名をそのファイルの属性情報にスタンプされています。このテクニックは3文字のDos/Windowsのファイル名拡張子と目標を同じとするものです。・Stringフォーマット。DOS/WindowsはCスタイル文字列(nullキャラクタで終わるもの)を使用しています。QuickTimeルーチンはPascalフォーム(先頭の1バイトに文字列の長さが入るもの)を使用します。QuickTimeユーティリティ関数c2pstrやp2cstrはこれらのフォーマットを相互に変換します。DOS/WindowsのファイルはMacintoshのリソースフォークに対応するものを持たず、データフォークに相当するもののみを持ちます。これは、あなたがWindowsのファイルシステムにQuickTimeムービーを格納またはアプリケーションを使用しようとした時に問題が生じます。WindowsのファイルへQuickTimeムービーを格納するために、あなたはムービー構造から分けて提供されるメディアを格納するいくつかの方法が必要となります。・アプリケーションファイル。既存のQuickTimeアプリケーションをMacintoshからWindowsへ移植する際、アプリケーションプログラム自身に属するリソースをどのように持っていくかという問題が発生します。そのようなリソースは通常Machintosh環境で開発している間は’qtr’ファイルに分けて格納されます。それらは最終的にMacアプリケーションの(‘APPL’)ファイルのリソースフォークとなります。SDKで使用可能)は、Windoes環境では、実行可能ファイル(.exe)やダイナミックリンクライブラリ(DLL)ファイルのなかにこれらのリソースを移動します。メンバーではありません。エラーDirectShow関係のプログラムを行なっていて、以下のようなエラーが出た。メンバーではありません。