Problem with Events, WindowEvents, managed C++
Hello,
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 argumentsIn 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...
解答
- Solution:_winEvents = events->WindowEvents[nullptr];(Note square brackets.)
- 已標示為解答Number8 2009年7月6日 下午 05:31
所有回覆
- Hello,
Actually, property WindowEvents has no default parameter, not sure why it shows on Object Browser, this is the documentation on MSDN: Events.WindowEvents Property.
Please pass 'null' to use it.
Sincerely,
Wesley
Please mark the replies as answers if they help and unmark them if they provide no help. Welcome to the All-In-One Code Framework! If you have any feedback, please tell us. - Thanks for the reply.Doesn't the Object Browser get its information from metadata in the assembly? It seems to be consistent with the doc you linked to:
Parameters WindowFilter Type: EnvDTE.Window Optional. If supplied, window events occur only for the specified Window.
Reflector reports the same: parameter is optional, default is null.Anyway, trying to pass a parameter:EnvDTE::WindowEvents ^we = events->WindowEvents(0);
1>Compiling...1>Connect.cpp1>.\Connect.cpp(27) : error C2660: 'EnvDTE::Events::WindowEvents::get' : function does not take 0 argumentsEnvDTE::WindowEvents ^we = events->WindowEvents(nullptr);1>Compiling...1>Connect.cpp1>.\Connect.cpp(27) : error C2660: 'EnvDTE::Events::WindowEvents::get' : function does not take 0 argumentsIs there a possible compiler setting problem? - Solution:_winEvents = events->WindowEvents[nullptr];(Note square brackets.)
- 已標示為解答Number8 2009年7月6日 下午 05:31

