COM では、必要なライブラリ情報はタイプ ライブラリ (TLB ファイル) にエンコードされます。Direct3D は、ほぼ 10 年前の DirectX 8.0 以降、どのオブジェクトに対してもタイプ ライブラリまたは CoCreateInstance を使用していません。Direct3D はオブジェクトの有効期間を管理するために COM インターフェイスを使用します。彼らは QueryInterface をまったく使用しません。COM インフラストラクチャのほとんどは、Direct3D とそれに関連するオブジェクトで使用されるインターフェイスには適用されません。
それらはオブジェクトの作成に CoCreateInstance を使用しませんが、代わりに単一のファクトリ関数 (Direct3DCreate9 など) を提供し、そこから基本インターフェイスを取得し、その基本インターフェイスからクリエーター メソッドを使用して他のすべてを取得します。Direct3D 10 では、ディスプレイなどを列挙する基本インターフェイスが安定しており、D3D 8 と D3D 9 で同じであることを認識したため、安定した基本インターフェイス IDXGIFactory に移動しました。D3D 10、10.1、および 11 には同じ DXGI コードが使用されます。