2

C++/CX でイベントをサブスクライブすると、次のようになります。

listener::ConnectionReceived +=
ref new TypedEventHandler<StreamSocketListener^, StreamSocketListenerConnectionReceivedEventArgs^>(this, &MyClass::OnConnectionReceived);

WRL でイベントをサブスクライブする方法について私が見つけたすべてのドキュメントには、次のようなラムダ式を使用した例が示されています。

auto connectionReceivedHandler = Callback<ITypedEventHandler<StreamSocketListener*, StreamSocketListenerConnectionReceivedEventArgs*>>
([&] (IStreamSocketListener* cbListener, IStreamSocketListenerConnectionReceivedEventArgs* args)
{
    this->doSomething(); 
});
hr = listener->add_ConnectionReceived(connectionReceivedHandler.Get(), &this->connectionReceivedToken);

しかし、WRL でイベントをサブスクライブし、ラムダの代わりにクラス メソッドを提供するにはどうすればよいでしょうか? このようなもの:

hr = listener->add_ConnectionReceived(&MyClass::OnConnectionReceived, &this->connectionReceivedToken);
4

2 に答える 2