Ulrich Mierendorff wrote: > > I am doing some win32 programming with python and want to modify a > statusbar of a window. In my code I use > win32gui.SetWindowLong(statusbar_window, win32con.GWL_WNDPROC, > mystatusbarproc) > to set a custom window procedure. > > In "def mystatusbarproc(window, message, wParam, lParam)" I wait for > the commctrl.SB_SETPARTS message: > http://msdn.microsoft.com/en-us/library/bb760757%28VS.85%29.aspx > > The lParam parameter for this message is (according to the > documentation) a "Pointer to an integer array". > I thought, python would automatically dereference the pointer for me, > so that I have a list...
I'm wondering why would you expect that. Python doesn't know anything about specific window messages. A window message consists of a handle, a message number, and two integers. The interpretation of those two integers is entirely dependent on the message number. The wrapper just hands them off to you for interpretation. > ...but > print lParam > returns values like "1236036" (the type is "int"). > That looks like a memory address to me, Yes, that's 0x12DC44, which is in the heap. > but I am not sure. Is there a way to get the array/list? You will have to use a package like ctypes to do that. Something like this: lst = ctypes.cast(lParam, ctypes.POINTER(ctypes.c_int)) print lst[0] print lst[1] -- Tim Roberts, t...@probo.com Providenza & Boekelheide, Inc. _______________________________________________ python-win32 mailing list python-win32@python.org http://mail.python.org/mailman/listinfo/python-win32