COM DLL を含むプロジェクトを継承しました。私は COM の初心者ですが、何かが正しくないようです。IDL で定義されたインターフェイスは、VARIANT
すべてのプロパティとメソッドの戻り値/パラメーターの型のみを使用します。これには正当な理由がありますか?前の開発者は何かに手をつけていたように感じますが、確認したいと思います。
私の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);
[propget, id(6), helpstring("property MessageCount")] HRESULT MessageCount([out, retval] VARIANT *pVal);
};
どうもありがとう。
編集:
明確にするために、これらVARIANT
の s はすべて明示的な型に置き換えることができます。