最近、DLL で COM コクラス/インターフェイスを作成および実装するプロジェクトを継承しました。この COM DLL は、GUI を COM クラスのインターフェイスに適用するアプリケーションによって利用されます。これは、COM DLL を使用する唯一のアプリケーションです。私は COM を扱うのが初めてで、適切なドキュメントを見つけるのが難しいです。
私のタスクの一部には、インターフェイスにいくつかのメソッド/プロパティを追加する (および不要になったものを削除する) ことが含まれます。これを実現するには、IDL を変更する必要があることを知りました。現在、新しいメソッドとプロパティをインターフェイスの最後に追加しただけで、うまく機能しているようです。ただし、プロパティの 1 つを削除すると (たとえば)、アプリケーションを実行するとすぐに問題が発生します。
interface IMyComInterface : IDispatch
    {
        [id(1), helpstring("method CheckMessage")] HRESULT CheckMessage([in] VARIANT vMsg);
        [id(2), helpstring("method CheckFolder")] HRESULT CheckFolder([in] VARIANT Folder, [out] VARIANT *pCount, [out, retval] VARIANT *pErrorCount);
        //[propget, id(3), helpstring("property Flags")] HRESULT Flags([out, retval] VARIANT *pVal);
        //[propput, id(3), helpstring("property Flags")] HRESULT Flags([in] VARIANT newVal);
        [propget, id(4), helpstring("property MessageStore")] HRESULT MessageStore([out, retval] VARIANT *pVal);
        [propput, id(4), helpstring("property MessageStore")] HRESULT MessageStore([in] VARIANT newVal);
        [propget, id(5), helpstring("property Directory")] HRESULT Directory([out, retval] VARIANT *pVal);
        [propput, id(5), helpstring("property Directory")] HRESULT Directory([in] VARIANT newVal);
    }
私はそれが壊れたID番号シーケンスに関係していると推測しています. その下のすべてを上に移動できれば、うまくいくと思います。しかし、これらすべてを行うための適切な方法に興味があります。
どうもありがとう。