Using Sendmessage with LVM_GETITEMPOSITION causes page faults in Explorer.
Using memory-mapped files to do the cross process messaging needed.
The following code is a VB6 project, all the modules can be used in other 32 Bit versions of VB.
If using an earlier version, start a new project and paste the code into the Form1 form. And then add the .bas module.
Includes Source code to:
The code is fully commented.