Hello all, happy New Year!
I use 64-bit AHK_L unless something forces me not to, and I ran into a COM snag, which was easy to work around thanks to Joe Glines.
Code: Select all
COM_AccessibleObjectFromWindow(hWnd, idObject=-4, IID = "")
{
If DllCall("oleacc\AccessibleObjectFromWindow", "Uint", hWnd, "Uint", idObject, "Uint", COM_GUID4String(IID, IID ? IID : idObject&0xFFFFFFFF==0xFFFFFFF0 ? "{00020400-0000-0000-C000-000000000046}":"{618736E0-3C3D-11CF-810C-00AA00389B71}"), "UintP", pacc)=0
Return pacc
}
However, if I switch back to AHK_L 1.1.30.1 64-bit, I get the following error(s):
Code: Select all
---------------------------
COM Error Notification
---------------------------
Function Name: "ActiveSheet"
ERROR: No COM Dispatch Object!
()
Will Continue?
---------------------------
Yes No
---------------------------
Code: Select all
ObjectFromWindow(hWnd, idObject = -4){
(if Not h)?h:=DllCall("LoadLibrary","Str","oleacc","Ptr")
If DllCall("oleacc\AccessibleObjectFromWindow","Ptr",hWnd,"UInt",idObject&=0xFFFFFFFF,"Ptr",-VarSetCapacity(IID,16)+NumPut(idObject==0xFFFFFFF0?0x46000000000000C0:0x719B3800AA000C81,NumPut(idObject==0xFFFFFFF0?0x0000000000020400:0x11CF3C3D618736E0,IID,"Int64"),"Int64"), "Ptr*", pacc)=0
Return ComObjEnwrap(9,pacc,1)
}
Regards,
burque505