[python-win32] Extending Vista/Windows7 with Python

Stormy StormDragoness at stormweyr.dk
Thu Nov 5 10:35:20 CET 2009


Hello.

I am trying to implement IPropertyStore in a python component, and run 
into a few problems.

HRESULT GetValue(
    REFPROPERTYKEY /key/,
    PROPVARIANT */pv/
);

The GetValue method passes a pointer in the form of an integer to python 
instead of a key.
And secondly the return value never makes it back to windows either.

I am wondering what I have to do to make this work properly, which 
changes to make and where.

Excerpt from my component being called by windows:
"""
__init__
Initialize
GetValue: <type 'long'>, 134344568
__del__
"""

IPropertyStore: 
http://msdn.microsoft.com/en-us/library/bb761474(VS.85).aspx 
<http://msdn.microsoft.com/en-us/library/bb761474%28VS.85%29.aspx>

=============================================================

A little history.

I decided to expand my knowledge of python and windows programming alike 
by starting to construct a shell plugin for explorer on a Windows Vista 
64 system. After a while however I found that parts of pywin32 are not 
very accomodating for this task.

The first problem I ran into was that code did not get called at all 
with a 64 bit explorer, so I built pywin32 from source to try and debug 
this.

Turns out that a vital part was missing from pywin32, the make_method 
for 64 bit systems in univgw.cpp to be exact.
After a short while of trying other things I returned to this and 
compiled the mockup function only to have the compiler complain about
the function definition, va_start and so on, after adding the elipsis to 
the function arguments the mockup compiled, I proceeded to read back the 
bytes
from the compiled function, and construct a 64 bit version of the 
make_method.
It may well need checking, but it does seem to work, as windows calls my 
code, and no noticable errors occur.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-win32/attachments/20091105/cb33d88f/attachment-0001.htm>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: univgw.cpp.patch
URL: <http://mail.python.org/pipermail/python-win32/attachments/20091105/cb33d88f/attachment-0001.txt>


More information about the python-win32 mailing list