|
-
November 29th, 1999, 11:34 AM
#1
Mapping Address Spaces for 32 bit Windows
I have what should be a simple problem, but it may be a bug in Windows. I want to read the text for a SysListView32 window that is not within my application (in a different address space). The problem seems to be that Windows only maps the message level address pointer when accessing Windows routines. This works fine for the older 16 bit window types. However, the messages for the 32-bit ListViews are not flat and contain a pointer for the text string. Requesting text will thereby crash the application that owns the listview. (You address an unmapped address pointer.) I cannot map the address since it is internal to a Windows defined structure required by the ListView access routines. Although Windows documentation states that you should not (can not) use pointers within data structures being passed between applications in 32 bit Windows, the newer 32 bit Windows system functions do just that. This would not be a problem if Windows maps all of its pointer, but it appears to Map only the highest level pointer. (Microsoft designed the 32-bit mapping functions for the older 16-bit environments, which did not require mapping and then deisgn 32-bit windows so that it could not map them.)
Does anybody know a solution?
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|