Megosztás a következőn keresztül:


Új akadálymentes objektumok létrehozása

Ebben a forgatókönyvben a kiszolgáló egy új akadálymentes objektumot hoz létre az egyes OBJID_CLIENT kérelmekre válaszul.

A következő példakódban a rendszer a vezérlőre mutató mutatót kéri le a további ablakadatokból. Ezt és az ablakfogópontot a rendszer átadja az egyéni akadálymentességi kiszolgáló (AccServer) objektum konstruktorának. Ez az objektum akkor jön létre, amikor OBJID_CLIENT érkeznek.

Az objektum létrehozásakor a kiszolgáló egy referenciát szerez be, amelyet LresultFromObjecthívása után kell kiadni, hogy az objektum azonnal megsemmisüljön, amint az ügyfél befejeződött vele. Vegye figyelembe, hogy LresultFromObject többször növeli a referenciaszámot, de az ügyfélalkalmazások és a Microsoft Active Accessibility futtatókörnyezet feladata ezeknek a hivatkozásoknak a kiadása.

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;
}