> I don't think that naming local variables as interfaces is a good
> idea...

Why not? As long as there are no local variable collisions (and their usually won't be) the the code is auto-documenting, anyone reading then immediately knows what interface the variable represents. Same when QI'ing the interface.

> (and note that this example assumes you have a URI for the file,
> and that you have the file protocol handler already in a variable
> called nsIFileProtocolHandler)

Exactly, and the naming convention ensures you know exactly what interfaces I was taking about ;-)

Actually, in JS we have now started using the Components.Constructor which enforces a slightly different mechanism with "ns" rather than "nsI":


var nsIProtocolHandler = new
  Components.Constructor("@mozilla.org/network/io-service;1",
   "nsIIOService", "getProtocolHandler");


var nsFileProtocolHandler = new nsIProtocolHandler("file");

Is there some scope collision you think would affect this?


N



Christian Biesinger wrote:
Neil Stansbury wrote:
var nsIFile = nsIFileProtocolHandler.getFileFromURLSpec( uri );
if ( nsIFile.exists() )    {
  nsIFile.QueryInterface(Components.interfaces.nsILocalFile);
  nsIFile.launch();
}

I don't think that naming local variables as interfaces is a good idea... (and note that this example assumes you have a URI for the file, and that you have the file protocol handler already in a variable called nsIFileProtocolHandler)


If you want to pass arguments to the executable, you can use nsIProcess.
_______________________________________________
Mozilla-xpcom mailing list
Mozilla-xpcom@mozilla.org
http://mail.mozilla.org/listinfo/mozilla-xpcom

Reply via email to