Bagikan melalui


Buat Objek Baru yang Dapat Diakses

Dalam skenario ini, server membuat objek baru yang dapat diakses sebagai respons terhadap setiap permintaan OBJID_CLIENT .

Dalam contoh kode berikut, penunjuk ke kontrol diambil dari data jendela tambahan. Ini dan handel jendela diteruskan ke konstruktor objek server aksesibilitas kustom (AccServer). Objek ini dibuat setiap kali OBJID_CLIENT diterima.

Ketika objek dibuat, server mendapatkan referensi, yang harus dirilis setelah memanggil LresultFromObject, sehingga objek dihancurkan segera setelah klien selesai dengannya. Perhatikan bahwa LresultFromObject menaikkan jumlah referensi beberapa kali, tetapi merupakan tanggung jawab aplikasi klien, dan runtime Aksesibilitas Aktif Microsoft, untuk merilis referensi ini.

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