次のような発信インターフェイスを使用して COM に公開されるイベント署名を持つ ac#.NET クラスがあります::
[ComVisible(true)]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IHehServerEvents
{
string EmptyEvent(object sender, CustomEventArgs args);
}
PluginAPI.h>> で私は持っています
class PluginAPI: public IHehServerEvents,public FB::JSAPIAuto//implemented the COM outgoing interface
{
// tlh ファイルに基づいて宣言された EmptyEvent メソッド
HRESULT __stdcall EmptyEvent(VARIANT sender,IUnknown * args, BSTR * pRetVal);
FB_JSAPI_EVENT(CSharpEvent, 2, (FB::variant,IUnknown *));
}
HRESULT ClassCpluss::EmptyEvent(BSTR message, BSTR * pRetVal)
{....}
Firebreathステートメントの私のイベントヘルパーは
FB_JSAPI_EVENT(CSharpEvent, 2, (VARIANT,struct _EventArgs *));
このリンクも見ました。SO boost::vairant はサポートされていますよね?では、VARIANT を boost::variant にキャストする方法は? 上記のステートメントで予想される変更はありますか? VARIANT または struct を使用して C# で上記のイベントを処理する方法は?