static void CALLBACK notificationListenerProc(HWINEVENTHOOK, DWORD event, HWND hwnd, LONG idObject, LONG idChild, DWORD, DWORD) { // Get the accessible object for this event. COMPtr<IAccessible> parentObject; _variant_t vChild; HRESULT hr = AccessibleObjectFromEvent(hwnd, idObject, idChild, &parentObject, &vChild.GetVARIANT()); if (FAILED(hr) || !parentObject) return; COMPtr<IDispatch> childDispatch; if (FAILED(parentObject->get_accChild(vChild, &childDispatch))) return; COMPtr<IAccessible> childAccessible(Query, childDispatch); sharedFrameLoadDelegate->accessibilityController()->winNotificationReceived(childAccessible, stringEvent(event)); }