Lorsque JavaScript appelle COM pour transmettre un tableau, l'interface COM reçoit un objet de type VARIANT, tel qu'un tableau. Le type vt de cet objet est VT_DISPATCH, sa valeur représente donc un pointeur de type IDispatch.
Un pointeur de type IDispatch indique que l'objet tableau est en fait un objet tableau intégré de JavaScript, nous pouvons obtenir la taille du tableau via l'attribut length. Ensuite, ici, nous pouvons obtenir le tableau via GetIDsOfNames. fonction et la fonction Invoke length, afin que le contenu du tableau puisse être dynamiquement variable.
Voici le contenu cité : // Récupère la longueur du tableau } |
À ce stade, nLength obtient la longueur du tableau.
Un tableau en JavaScript est un objet, et le contenu du tableau est les attributs de l'objet, qui sont créés dynamiquement. La méthode de requête de ces attributs est quelque peu similaire à la méthode de requête de longueur. Ce sont également des fonctions GetIDsOfNames et Invoke. La principale différence réside dans la différence de noms.Le nom de l'attribut de l'objet élément dans le tableau est créé dynamiquement, c'est-à-dire qu'il peut être obtenu par indice. Par conséquent, ici, le nom de l'attribut peut également être obtenu par indice, comme. suit :
Voici le contenu cité : pour ( int je = 0 ; je < nLongueur; ++ je) |
Par conséquent, en appelant ces deux méthodes d'attribut, tous les objets tableau JavaScript peuvent être facilités dans l'interface COM.
Quels en sont les avantages ? En consultant de nombreuses ressources en ligne, j'ai constaté que la plupart d'entre elles utilisent SAFEARRAY pour traiter la structure et la transmettre à l'interface COM. Cependant, SAFEARRAY n'est pas pris en charge dans MIDL, et l'objet JavaScript lui-même ne l'est pas. pris en charge. Pour ce contenu, pour fonctionner en mode SAFEARRAY, vous devez basculer entre VBScript et JavaScript, ce qui entraînera des difficultés dans l'écriture du programme et une confusion pour le personnel de maintenance.
Utilisez directement JavaScript pour transmettre le tableau et intégrer le tableau de quelque manière que ce soit. Il n'est pas nécessaire d'intégrer la structure via la méthode SAFEARRAY. Dans le même temps, puisque chaque objet (élément) en JavaScript possède ses propres informations de type, les tableaux en JavaScript constituent la meilleure alternative (méthode de transfert) aux structures en C.