我最近继承了一个在 DLL 中创建和实现 COM coclass/interface 的项目。该 COM DLL 由应用程序使用,该应用程序将 GUI 应用于 COM 类的接口。这是唯一使用 COM DLL 的应用程序。我是处理 COM 的新手,很难找到好的文档。
我的部分任务涉及向接口添加一些方法/属性(以及删除一些不再需要的)。我了解到我需要修改 IDL 才能完成此操作。现在我只是简单地将我的新方法和属性添加到接口的末尾,一切似乎都很好。但是,当我删除其中一个属性(例如)时,当我运行应用程序时,事情很快就会变糟。
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);
}
我猜这与分解的身份证号码序列有关。我想我可以把它下面的所有东西都移上来,一切都会奏效。但我很好奇做这一切的正确方法。
非常感谢。