Delen via


Nieuwe toegankelijke objecten maken

In dit scenario maakt de server een nieuw toegankelijk object als reactie op elke OBJID_CLIENT aanvraag.

In de volgende voorbeeldcode wordt een aanwijzer naar het besturingselement opgehaald uit de extra venstergegevens. Deze en de venstergreep worden doorgegeven aan de constructor van het object aangepaste toegankelijkheidsserver (AccServer). Dit object wordt gemaakt wanneer OBJID_CLIENT wordt ontvangen.

Wanneer het object wordt gemaakt, verkrijgt de server een verwijzing, die moet worden vrijgegeven na het aanroepen van LresultFromObject, zodat het object wordt vernietigd zodra de client ermee klaar is. Houd er rekening mee dat LresultFromObject het aantal verwijzingen meerdere keren verhogen, maar het is de verantwoordelijkheid van clienttoepassingen en de Microsoft Active Accessibility Runtime om deze verwijzingen vrij te geven.

case WM_GETOBJECT:
{
    // Return the IAccessible object. 
    if ((DWORD)lParam == OBJID_CLIENT)
    {
        // Get the control.  
        CustomListControl* pCustomList = (CustomListControl*)(LONG_PTR)GetWindowLongPtr(hwnd, 0);
        AccServer* pAccServer = new AccServer(hwnd, pCustomList);
        if (pAccServer != NULL)  // NULL if out of memory. 
        {
            LRESULT Lresult = LresultFromObject(IID_IAccessible, wParam, pAccServer);
            pAccServer->Release();
            return Lresult;
        }
        else return 0;
    }
    break;
}