/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
 *
 * The contents of this file are subject to the Netscape Public
 * License Version 1.1 (the "License"); you may not use this file
 * except in compliance with the License. You may obtain a copy of
 * the License at http://www.mozilla.org/NPL/
 *
 * Software distributed under the License is distributed on an "AS
 * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
 * implied. See the License for the specific language governing
 * rights and limitations under the License.
 *
 * The Original Code is mozilla.org code.
 *
 * The Initial Developer of the Original Code is Netscape
 * Communications Corporation.  Portions created by Netscape are
 * Copyright (C) 1998 Netscape Communications Corporation. All
 * Rights Reserved.
 *
 * Contributor(s): 
 */

/*

  The import service.  

 */

#include "nsISupports.idl"

interface nsIURI;

/*
	Pretty simple.  Just register your class with the category manager under
	the proper protocol and someday we'll figure out how to tie that in
	to the rest of the mozilla!  The idea is that some one will specify in a preference
	or some other way that the particular protocol be handled via external app.
	When that happens, the external app protocol handler will check the category manager
	to see what external handler is available and use it to launch URI's with that protocol.

	Seems almost too simple, there must be more to this?!
*/

[scriptable, uuid(578cd5d1-f82b-11d3-aa27-00a0cc26da63)]
interface nsIExternalURILauncher : nsISupports
{
		// mailto, http, nntp, etc.
	readonly attribute string protocol;

		// send this URI to an external entity.
	nsresult LaunchURI( in nsIURI uri);
};

