Procedure consigliate per l'uso di matrici sicure

Molti metodi di interfaccia dell'API microsoft Automazione interfaccia utente accettano argomenti denominati matrici sicure, del tipo di dati SAFEARRAY. In questo argomento vengono descritte le procedure consigliate per l'uso di matrici sicure in una Automazione interfaccia utente applicazioni.

Client

Tutte le matrici sicure usate con i metodi api client Automazione interfaccia utente sono matrici unidimensionali basate su zero. Per creare una matrice sicura per un metodo client Automazione interfaccia utente, usare la funzione SafeArrayCreateVector e per leggere e scrivere in una matrice sicura, usare le funzioni SafeArrayGetElement e SafeArrayPutElement. Al termine dell'uso di una matrice sicura, eliminarlo sempre usando la funzione SafeArrayDestroy, indipendentemente dal fatto che sia stata creata o ricevuta da un metodo client di Automazione interfaccia utente.

Diversi metodi Automazione interfaccia utente, inclusi i metodi di recupero delle proprietà, ad esempio GetCurrentPropertyValue, recuperano variantche possono contenere strutture POINT o UiaRect. Un point viene compresso in un valore VARIANT come matrice sicura di double (VT_R8) con il membro x in corrispondenza dell'indice 0 e il membro y in corrispondenza dell'indice 1. Analogamente, un oggetto UiaRect viene compresso in un valore VARIANT come matrice sicura di double con i membri sinistro, superiore, larghezza e altezza rispettivamente in corrispondenza degli indici da 0 a 3. Per una matrice di strutture UiaRect , la matrice sicura contiene una matrice sequenziale di quattro valori double per ogni uiaRect. I membri sinistro, superiore, larghezza e altezza del primo uiaRect occupano l'indice da 0 a 3, i membri del secondo rettangolo occupano l'indice da 4 a 7 e così via.

L'interfaccia IUIAutomation include i metodi seguenti per la conversione tra SAFEARRAY e vari altri tipi di dati.

Metodo Descrizione
IUIAutomation::IntNativeArrayToSafeArray Converte una matrice di numeri interi in safearray.
IUIAutomation::IntSafeArrayToNativeArray Converte un SAFEARRAY di numeri interi in una matrice.
IUIAutomation::SafeArrayToRectNativeArray Converte un oggetto SAFEARRAY che contiene coordinate rettangolo in una matrice di tipo RECT.

 

Provider

Un provider deve implementare diversi metodi di interfaccia che Automazione interfaccia utente chiamate per recuperare informazioni dal provider. Molte volte, queste informazioni sono costituite da una matrice di valori. Per restituire una matrice a Automazione interfaccia utente, il provider deve comprimere la matrice in una struttura SAFEARRAY. Gli elementi della matrice devono essere del tipo di dati previsto e devono essere visualizzati nell'ordine previsto.

Informazioni concettuali

Cenni preliminari sulle proprietà di automazione interfaccia utente

Nozioni fondamentali sull'automazione interfaccia utente