私はいくつかのインタフェースを記述するタイプライブラリを持っています。これらのインタフェースのいくつかはカテゴリとして使用されるため、タイプIDにカテゴリIDを追加したいと考えています。したがって、質問は:タイプライブラリにGUIDを追加することはできますか?
)これはDelphi(2007以降)でどのように行うことができますか?
または代替
Bなど)は、それがCATIDのインターフェイスのGUIDを使用することが可能であり、推奨されますか?
私はいくつかのインタフェースを記述するタイプライブラリを持っています。これらのインタフェースのいくつかはカテゴリとして使用されるため、タイプIDにカテゴリIDを追加したいと考えています。したがって、質問は:タイプライブラリにGUIDを追加することはできますか?
)これはDelphi(2007以降)でどのように行うことができますか?
または代替
Bなど)は、それがCATIDのインターフェイスのGUIDを使用することが可能であり、推奨されますか?
については、デルファイについてはわかりません。しかし、C++では単にインターフェイスの説明をMIDLファイルに追加するだけです。あなたは本当にインターフェイスを使用しているように見えるので、CoClassの実装は必要ないでしょうから、これで十分です。基本的に、他のインタフェースをタイプライブラリにどのように追加しましたか?今も同じようにしてください。
[編集]私はtypelib-editorの使用に関する簡単なチュートリアルを見つけました。
b)については、インターフェイスをカテゴリIDとして使用するのに問題はありませんが、この質問は多少曖昧です。可能なカテゴリのセットは固定されていて、あなたはいくつかの継承のような振る舞いを使いません(少なくとも、インターフェイス自体ではなく、インターフェイスのGUIDを使用していると思います)。インタフェースなどを使用することは、インタフェースが実際にそのように使用される場合、すなわち、いくつかのカテゴリ固有の動作へのアクセスを提供する場合を除いて、過剰に設計された解決策のように見える。
[編集] ICatRegister
などについて言えば、なぜGUIDを使用したいのか分かります。カテゴリGUIDはCOMインターフェイスのGUIDとは異なる名前空間にあるため、同じものを使用してください。あなたのインターフェイスのGUIDは、カテゴリIDと同じスコープ内では一意である必要があります。また、1:1マッピングを持つことは、メンテナンスのためのシンプルなモデルにも見えます。
a)Delphiにはtypelibが組み込まれていますエディタ - 通常、MIDLファイルを編集する必要はありません。しかし、これが解決策であれば - それでは。 b)実際にICatRegisterとICatInformationで処理できるコンポーネントのカテゴリについて話しています。アイデアは確立された行動を使用することです。 –
さて、GUIDは大丈夫ですが、まだタイプライターエディタをあきらめないでください。 typelib-editorが望むことができるようだ(答えのリンクを参照)。 – gimpf