Aracılığıyla paylaş


Yeni Erişilebilir Nesneler Oluşturma

Bu senaryoda, sunucu her OBJID_CLIENT isteğine yanıt olarak yeni bir erişilebilir nesne oluşturur.

Aşağıdaki örnek kodda, ek pencere verilerinden denetim işaretçisi alınır. Bu ve pencere tutamacı, özel erişilebilirlik sunucusu (AccServer) nesnesinin oluşturucusna geçirilir. Bu nesne, OBJID_CLIENT alındığında oluşturulur.

Nesne oluşturulduğunda, sunucu LresultFromObjectçağrıldıktan sonra serbest bırakılması gereken bir başvuru alır, böylece istemciyle işiniz biter bitmez nesne yok edilir. LresultFromObject başvuru sayısını birkaç kez artırdığını, ancak bu başvuruları yayınlamanın istemci uygulamalarının ve Microsoft Active Accessibility çalışma zamanının sorumluluğunda olduğunu unutmayın.

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