FAQ
なぜいくつかのArcObjectsのインタフェースの末尾に複数の番号があるのですか?

ナレッジ番号:5509 | 登録日:2023/07/27 | 更新日:2024/11/21

ArcObjects developer documentation を見たとき、いくつかのインタフェースはその末尾に IFeatureLayer2, IEditor2, IEditEvents3 のように番号を持っています。

Microsoftによって作成されたCOM標準にしたがって、新しいバージョンのソフトが作成されたときインタフェースの機能を変更できません。 これはArcObjectsのように、COM標準の下で書かれたコードの上方と下方の互換性をサポートしているためです。

ESRI がプロパティやメソッドを現在あるインタフェースに追加しようとしたとき、新しいインタフェースが作成されなければなりません。 その番号は存在するインタフェースのアップデートバージョンを意味します。例えば、IEditSelectionCashe2はオリジナルのIEditSelectionCacheインタフェースの最初のアップデートで、IEditSelectionCache3はオリジナルインタフェースの2回目のアップデートです。

以前のバージョンのインタフェースは、互換性のために依然として使用可能です。もし開発者がアップデートしたインタフェースの新しいプロパティやメソッドを使うことを望まない場合、 もしくは古いバージョンのソフトウェアのカスタマイズを行っている場合、 オリジナルバージョンのインタフェースを使うことができます。

実際、古いソフトウェアバージョンを使ったArcObjectsのカスタマイゼーションを行う場合、 古いインタフェースを使われなければなりません。 古いソフトウェアバージョンでは、アップデートしたインタフェースの新しいプロパティやメソッドをサポートしないため、古いインタフェースが使われなければなりません。ArcGISソフトウェアバージョンに適合したインタフェースの情報は、ESRI Developer Network のウェブサイトにあります。 例えば、開発者がIEditSelectionCache2::InitializeメソッドのためのblockTopoFeaturesを引数が必要がない場合、IEditSelectionCacheを使うことができます。

もし開発者がアップデートしたインタフェースの新しいプロパティやメソッドを使いたい場合、オリジナルではなくアップデートしたインタフェースが使われなければなりません。 例えば、IEditSelectionCache3::Intializeの引数のannoOnlyを使う必要がある場合、IEditSelectionCache2やIEditSelectionCacheではなく、IEditSelectionCache3インタフェースが使われなければなりません。

インタフェースのアップデートバージョンは、古いバージョンのインタフェースで利用できるプロパティやメソッドを含んでいるかもしれませんが、 いつもそうとは限りません。開発者は特定のプロパティやメソッドを使うために、あるインタフェースから別のインタフェースにQuery Interfaceを行うかもしれません。特定のインタフェースにどのプロパティやメソッドが見つけるために、ArcGIS Developer Help , Object Model Diagram, Object Browser, もしくは EDN を使ってください。

関連情報

メタデータ

種類

製品