Hi Dmitry,
When the contents of the edit control for that "Conditional compilation
constants" property changes, we end up setting an internal state flag that
ultimately is used to determine if the underlying property needs to be
updated or changed. There is no event processing or change notifications
getting fired on either this flag, or when the property itself gets
modified. Ultimately, all this cumulates in a call to
COleDispatchDriver::PutProperty in ATLCOM.H, and that doesn't fire any
kind sort of event like an IPropertyNotifySink or anything. So I think
we're out of luck there.
One alternative though, that might potentially work would be to listen for
RDT events by implementing IVsRunningDocTableEvents3. You could check the
property for changes when the OnAfterAttributeChange or
OnAfterAttributeChangeEx event is called with
VSRDTATTRIB.RDTA_DocDataIsDirty flag on a particular proj file. When you
change the project properties, the proj file is flagged as being dirty, so
you might be able to use this event to determine when the proj file
settings are modified, and then manually check the property for changes. I
haven't tested this, but I'm guessing that this might actually be a valid
option in this scenario.
Sincerely,
Ed Dore [MSFT]
This post is 'AS IS' with no warranties and confers no rights.
Dmitry Shaporenkov - 30 Sep 2005 12:04 GMT
Hello Ed,
thank you a lot for your help! I've checked, and OnAfterAttributeChange really
seems to be
a viable approach. Bet on I would not find it myself :)
Regards,
Dmitry Shaporenkov
JetBrains, Inc
http://www.jetbrains.com
"Develop with pleasure!"
> Hi Dmitry,
>
[quoted text clipped - 22 lines]
> Ed Dore [MSFT]
> This post is 'AS IS' with no warranties and confers no rights.