Source code

Revision control

Copy as Markdown

Other Tools

/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "nsISupports.idl"
/* nsINativeAppSupport
*
* This "pseudo" (in the XPCOM sense) interface provides for
* platform-specific general application support
*
* Due to the nature of the beast, this interface is not a full-blown
* XPCOM component. The primary reason is that objects that implement
* this interface generally must be operational *before* XPCOM (or any
* of the rest of Mozilla) are initialized. As a result, this
* interface is instantiated by somewhat unconventional means.
*
* To create the implementor of this interface, you call the function
* NS_CreateNativeAppSupport. This is done in the startup code
* in nsAppRunner.cpp
*
* The interface provides these functions:
* start - You call this to inform the native app support that the
* application is starting. In addition, it serves as a
* query as to whether the application should continue to
* run.
*
* If the returned boolean result is PR_FALSE, then the
* application should exit without further processing. In
* such cases, the returned nsresult indicates whether the
* reason to exit is due to an error or not.
*
* Win32 Note: In the case of starting a second instance
* of this executable, this function will return
* PR_FALSE and nsresult==NS_OK. This means that
* the command line arguments have been
* successfully passed to the instance of the
* application acting as a remote server.
* quit - Informs the native app support that the application is stopping. The
* app support should disable any functionality enabled by start.
*
* onLastWindowClosing - Called when the last window is closed. Used as a
* "soft" shutdown, passwords are flushed.
*/
[scriptable, uuid(5fdf8480-1f98-11d4-8077-00600811a9c3)]
interface nsINativeAppSupport : nsISupports {
// Startup/shutdown.
boolean start();
void enable();
void onLastWindowClosing();
void ReOpen();
};