Patchou,
It is time we are told how this works so that we cannot keep crashing WLM with it
jscript code:
var hWnd = Interop.Call('user32', 'FindWindowExW', Messenger.ContactListWndHandle, 0, 'Main Window Class', '');
hWnd = Interop.Call('user32', 'FindWindowExW', hWnd, 0, 'DirectUIHWND', '');
if (hWnd === 0) return;
var IID_IAccessible = Interop.Allocate(16);
with (IID_IAccessible) { WriteDWORD(0, 0x618736E0); WriteWORD(4, 0x3C3D); WriteWORD(6, 0x11CF); SetAt(8, 0x81); SetAt(9, 0xc); SetAt(10, 0x0); SetAt(11, 0xaa); SetAt(12, 0x0); SetAt(13, 0x38); SetAt(14, 0x9b); SetAt(15, 0x71); }
var IAccessible = Interop.Allocate(4);
Debug.Trace(Interop.Call('oleacc', 'AccessibleObjectFromWindow', hWnd, 0xFFFFFFFC /* OBJID_CLIENT */, IID_IAccessible, IAccessible));
IAccessible.ReadInterfacePtr(0); // crash occurs here!
This requires the main contact list window to be opened.
The last line should provide access to the
IAccessible interface but instead it crashes WLM.
I also emailed this to you but I know you aren't really concerned about it with the beta currently going on however I wonder if there is a bug in Plus! causing this to crash and not work corectly.