Forums : XPCom

Aller à la discussion :  Plus récente Plus ancienne

# [Résolu] Tableau dans un composant XPCOM

Envoyé par : ramariavelo

Date : 01/03/2007 18:48

Bonjour à tous,

Je cherche un moyen de mettre un tableau de string dans un composant XPCOM, mais je n'ai pas trouvé de tutoriels compréhensibles là-dessus. L'un de vous pourrait-il m'aider?

Merci d'avance :-)

# Re: Tableau dans un composant XPCOM

Envoyé par : Paul Rouget

Date : 02/03/2007 11:53

Voilà un exemple pour ton idl (un tableau d'objets de type nsIFoobar):

[array, size_is(count)] in nsIFoobar monTableau

Je te conseille aussi de regarder du coté de nsI(Mutable)Array.

# Re: Tableau dans un composant XPCOM

Envoyé par : ramariavelo

Date : 02/03/2007 12:39

Merci pour l'info :-) Je vais voir les 2 possibilités.

# Re: Tableau dans un composant XPCOM

Envoyé par : ramariavelo

Date : 02/03/2007 16:43

J'ai utilisé nsIMutableArray, et j'ai appris que pour accéder aux éléments du tableau, on utilise queryElementAt. Seulement voilà : avec mon instruction

table.queryElementAt(1, Components.interfaces.nsIMutableArray, table)

Celà ne marche pas. D'autant plus que je ne suis pas sure de mettre "table" dans le 3è argument. Voici l'erreur que j'obtiens

[Exception..."Component returned failure code: 0x8000ffff(NS_ERROR_UNEXPECTED) [nsIMutableArray.queryElementAt]"
nsresult: "0x8000ffff (NS_ERROR_UNEXPECTED)" 
location: "JS frame :: chrome://mytoolbar/content/mytoolbar.js :: CallFunction :: line 479" data:no]

Est-ce l'insertion de données qui a échouée ou leur récupération? Quelqu'un aurait une solution à me proposer? Merci

# Re: [Résolu] Tableau dans un composant XPCOM

Envoyé par : ramariavelo

Date : 05/03/2007 18:51

J'ai résolu mon problème :-)

Pour ceux qui ont auront besoin : vaut mieux utiliser nsICollection. C'est plus simple car parmi les méthodes de nsIMutableArray, il y a des in/out paramètres, qui ne sont pas gérés par javascript.

# Re: [Résolu] Tableau dans un composant XPCOM

Envoyé par : Paul Rouget

Date : 05/03/2007 21:04

Comment ça ? Ils sont bien évidement gérés en Javascript.

# Re: [Résolu] Tableau dans un composant XPCOM

Envoyé par : laurentj

Date : 24/04/2007 13:23

il y a des in/out paramètres, qui ne sont pas gérés par javascript.

Bien sûr que si. quand il y a des paramètres out, suffit de donner un objet JS (vide à la limite), et tu récupère le paramètre out dans sa propriété value

 var result = {}
 table.queryElementAt(1, Components.interfaces.nsIMutableArray, result)
 var element = result.value;

Remarque : les élements de ton tableau, ce sont aussi des tableaux ? tu as un tableau de tableau ? parce que si c'est pas le cas, le deuxième paramètre est faux, il faut que tu donne l'interface de l'element que tu veux récupérer, pas nsIMutableArray.

Il n'est plus possible de poster des messages dans ce forum.


Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.