Events in Managed C++: Problem with Events, Window

2019-08-20 05:09发布

问题:

Working on a VisStudio 2008 addin, using managed C++ (C++/CLR in the New Project wizard).

In the OnConnection() function, I want to add a handler to the WindowEvents collection.

When I do this:
// Hook up events
EnvDTE::Events ^ events = _applicationObject->Events;
EnvDTE::WindowEvents ^winEvents = events->WindowEvents();

I get an error message:
error C2660: 'EnvDTE::Events::WindowEvents::get' : function does not take 0 arguments

In the Object Browser I find this:
public EnvDTE.WindowEvents WindowEvents(EnvDTE.Window WindowFilter = null) { get; }

Thanks for any hints about what I'm doing wrong...

回答1:

Try

EnvDTE::WindowEvents ^winEvents = events->WindowEvents;

without the (). WindowEvents is a property not a method.



回答2:

Found the answer:

EnvDTE::Events ^ events = _applicationObject->Events;
_winEvents = events->WindowEvents[nullptr];

Note the square brackets...



标签: managed-c++