Créer des objets accessibles
Dans ce scénario, le serveur crée un objet accessible en réponse à chaque requête OBJID_CLIENT .
Dans l’exemple de code suivant, un pointeur vers le contrôle est récupéré à partir des données de fenêtre supplémentaires. Cette propriété et le handle de fenêtre sont passés au constructeur de l’objet serveur d’accessibilité personnalisé (AccServer). Cet objet est créé chaque fois que OBJID_CLIENT est reçu.
Lorsque l’objet est créé, le serveur obtient une référence, qui doit être libérée après l’appel de LresultFromObject, afin que l’objet soit détruit dès que le client en a terminé. Notez que LresultFromObject incrémente le nombre de références plusieurs fois, mais il incombe aux applications clientes et au runtime Microsoft Active Accessibility de publier ces références.
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;
}
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour