Dela via


Skapa nya tillgängliga objekt

I det här scenariot skapar servern ett nytt tillgängligt objekt som svar på varje OBJID_CLIENT begäran.

I följande exempelkod hämtas en pekare till kontrollen från extra fönsterdata. Detta och fönsterhandtaget skickas till konstruktorn för objektet accserver (custom accessibility server). Det här objektet skapas när OBJID_CLIENT tas emot.

När objektet skapas hämtar servern en referens, som måste släppas efter att LresultFromObject, så att objektet förstörs så snart klienten är klar med det. Observera att LresultFromObject ökar antalet referenser flera gånger, men det är klientprogrammens och Microsoft Active Accessibility-körningens ansvar att släppa dessa referenser.

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