ウィンドウの自動化を提供する
ドキュメントとツールのウィンドウにオートメーションを提供できます。 ウィンドウでオートメーション オブジェクトを使用できるようにしたい一方で、環境で既製のオートメーション オブジェクトが提供されていない場合は、タスク リストを使用する場合と同様に、常にオートメーションを提供することをお勧めします。
ツール ウィンドウでのオートメーション
環境では、次の手順で説明するように、標準の Window オブジェクトを返すことによって、ツール ウィンドウにオートメーションが提供されます。
環境から、_VSFPROPID.VSFPROPID_ExtWindowObject を
VSFPROPID
パラメーターとして指定して GetProperty メソッドを呼び出し、Window
オブジェクトを取得します。呼び出し元が Object を通じてツール ウィンドウ用の VSPackage 固有のオートメーション オブジェクトを要求すると、環境では
IExtensibleObject
、IVsExtensibleObject、またはIDispatch
インターフェイスに対しQueryInterface
が呼び出されます。IExtensibleObject
とIVsExtensibleObject
の両方によって GetAutomationObject メソッドが提供されます。その後、環境で
NULL
を渡すGetAutomationObject
メソッドが呼び出されたら、VSPackage 固有のオブジェクトを渡して応答します。IExtensibleObject
およびIVsExtensibleObject
に対するQueryInterface
の呼び出しが失敗した場合、環境ではIDispatch
に対してQueryInterface
が呼び出されます。
ドキュメント ウィンドウでのオートメーション
エディターでは、IExtensibleObject
インターフェイスを実装して GetAutomationObject
に応答することによって、Document オブジェクトの独自の実装を含めることができますが、標準の Document オブジェクトは環境からも使用できます。
また、エディターでは、IVsExtensibleObject
または IExtensibleObject
インターフェイスを実装することによって、Object メソッドを通じて取得される VSPackage 固有のオートメーション オブジェクトを提供でき ます。 VSSDK サンプルは、RTF ドキュメント固有のオートメーション オブジェクトの提供に役立っています。