OK. Now, I would like to call xull with the openDialog function and the 2
parameters but and I cannot create them correctly.
How can I create the 2 arguments (nsIPrintSettings object and the container
for return value)? Here is the parameters and a few code
...
// param[0]: nsIPrintSettings object
// param[1]: container for return value (1 = print, 0 = cancel)
var ps = window.arguments[0].QueryInterface(gPrintSetInterface);
if (ps != null) {
gPrintSettings = ps;
paramBlock =
window.arguments[1].QueryInterface(Components.interfaces.nsIDialogParamBlock
);
} else {
var suppsArray =
window.arguments[0].QueryInterface(Components.interfaces.nsISupportsArray);
if (suppsArray) {
var supps = suppsArray.ElementAt(0);
gPrintSettings = supps.QueryInterface(gPrintSetInterface);
if(!gPrintSettings) {
return;
}
supps = suppsArray.ElementAt(1);
paramBlock =
supps.QueryInterface(Components.interfaces.nsIDialogParamBlock);
if(!paramBlock) {
return;
}
} else {
return;
}
}
// default return value is "cancel"
paramBlock.SetInt(0, 0);
....

"Adam Fletcher" <[EMAIL PROTECTED]> wrote in message
[EMAIL PROTECTED]">news:[EMAIL PROTECTED]...
> William,
>
> The error means that the XUL should be opened with a call to
> window.openDialog() - which takes the arguments:
>
> window.openDialog(filename, windowtitle, windowoptions, ...)
>
> where ... is turned into arguments[0], arguments[1], etc. So the XUL
> probably has an onload handler that calls some javascript that expects
> to be able to use arguments[0] as a certian type of interface.... If you
> look at printdailog.js line 366, you should be able to tell what it is
> trying to QI arguments[0] into, and by that you should know what you
> need to pass in window.openDialog as argument 0.
>
> -Adam
>
>
> William JOYE wrote:
> > Hello,
> >
> > I would like to use my own printdialog box. I have found one in the
> > XPtoolkit (printdialog.xul & printdialog.js) but when I launch this xul
file
> > I have the following error :
> > Error window.arguments[0].QueryInterface is not a function (line 366)
> >
> > Someone can help to use the printdialog ?
> >
> >
>



Reply via email to