[python-win32] killing overlay extensions
Mark Hammond
mhammond at skippinet.com.au
Mon Jul 7 09:14:08 CEST 2008
> I'd like to know what's the 'proper' way to stop a pythonwin's overlay
> shell extension from kicking in. I've not been able find much
> documentation on this, particularly the return values of
> GetOverlayInfo() function. Based on sample that I've found, the
> GetOverlayInfo() function returns a tuple of (icon_path, 0,
> shellcon.ISIOI_ICONFILE), and it's not clear to me what the '0' is
> representing.
>
> So far my way to 'kill' the extension is either to raise an exception
> in, or return None from, GetOverlayInfo(). Though it seemed to work
> fine so far, I am not sure if this will create and ill effect down the
> road. I'd really appreciate if anyone can share some experience on
> this. Thanks.
Tim answered one of your questions, but I don't quite understand the other
one.
The correct way is simply to remove the shell extension and restart any
programs which may have used it. COM doesn't define a way to "stop" an
object or anything similar at all - what will work will depend on the
implementation of the code using the object - in this example, of
explorer.exe.
If you want something specific to your app, then your shell extension code
could check some kind of flag/event/whatever and then refuse to do anything
- but that isn't "killing" it.
BTW, have you been tracking the shell extension code for bzr? It shouldn't
be that far from being VCS agnostic and a first cut has been released and
pushed (I'm assuming you are still playing with shell extensions for
mercurial :)
Cheers,
Mark
More information about the python-win32
mailing list