зеркало из https://github.com/mozilla/pjs.git
Moving Event loop interfaces to it's new home from xpcom/apps. Implementation will start here. Also renamed msg to be event to be less windows-ish.
This commit is contained in:
Родитель
e233855677
Коммит
061fe901dd
|
@ -0,0 +1,30 @@
|
|||
#!gmake
|
||||
#
|
||||
# The contents of this file are subject to the Netscape Public License
|
||||
# Version 1.0 (the "NPL"); you may not use this file except in
|
||||
# compliance with the NPL. You may obtain a copy of the NPL at
|
||||
# http://www.mozilla.org/NPL/
|
||||
#
|
||||
# Software distributed under the NPL is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
|
||||
# for the specific language governing rights and limitations under the
|
||||
# NPL.
|
||||
#
|
||||
# The Initial Developer of this code under the NPL is Netscape
|
||||
# Communications Corporation. Portions created by Netscape are
|
||||
# Copyright (C) 1998 Netscape Communications Corporation. All Rights
|
||||
# Reserved.
|
||||
|
||||
DEPTH = ../..
|
||||
topsrcdir = @top_srcdir@
|
||||
VPATH = @srcdir@
|
||||
srcdir = @srcdir@
|
||||
|
||||
include $(DEPTH)/config/autoconf.mk
|
||||
|
||||
DIRS = eventloop nativeApp
|
||||
|
||||
include $(topsrcdir)/config/config.mk
|
||||
|
||||
include $(topsrcdir)/config/rules.mk
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
#!nmake
|
||||
#
|
||||
# The contents of this file are subject to the Netscape Public License
|
||||
# Version 1.0 (the "NPL"); you may not use this file except in
|
||||
# compliance with the NPL. You may obtain a copy of the NPL at
|
||||
# http://www.mozilla.org/NPL/
|
||||
#
|
||||
# Software distributed under the NPL is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
|
||||
# for the specific language governing rights and limitations under the
|
||||
# NPL.
|
||||
#
|
||||
# The Initial Developer of this code under the NPL is Netscape
|
||||
# Communications Corporation. Portions created by Netscape are
|
||||
# Copyright (C) 1998 Netscape Communications Corporation. All Rights
|
||||
# Reserved.
|
||||
|
||||
DEPTH=..\..\..
|
||||
|
||||
DIRS=xp windows
|
||||
|
||||
include <$(DEPTH)\config\rules.mak>
|
||||
include <$(DEPTH)\config\config.mak>
|
|
@ -0,0 +1,27 @@
|
|||
#!nmake
|
||||
#
|
||||
# The contents of this file are subject to the Netscape Public License
|
||||
# Version 1.0 (the "NPL"); you may not use this file except in
|
||||
# compliance with the NPL. You may obtain a copy of the NPL at
|
||||
# http://www.mozilla.org/NPL/
|
||||
#
|
||||
# Software distributed under the NPL is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
|
||||
# for the specific language governing rights and limitations under the
|
||||
# NPL.
|
||||
#
|
||||
# The Initial Developer of this code under the NPL is Netscape
|
||||
# Communications Corporation. Portions created by Netscape are
|
||||
# Copyright (C) 1998 Netscape Communications Corporation. All Rights
|
||||
# Reserved.
|
||||
|
||||
DEPTH=..\..\..\..
|
||||
MODULE=xpcom_eventloop_windows
|
||||
|
||||
XPIDLSRCS= \
|
||||
.\nsIWinEvent.idl \
|
||||
.\nsIWinEventFilter.idl \
|
||||
$(NULL)
|
||||
|
||||
include <$(DEPTH)\config\rules.mak>
|
||||
include <$(DEPTH)\config\config.mak>
|
|
@ -0,0 +1,12 @@
|
|||
#include "nsISupports.idl"
|
||||
#include "nsIEvent.idl"
|
||||
|
||||
/**
|
||||
* The nsIWinEvent defines what a message looks like on the Windows Platform.
|
||||
*/
|
||||
|
||||
[scriptable, uuid(2EFB5005-4508-11d3-AEDA-00A024FFC08C)]
|
||||
interface nsIWinEvent : nsIEvent
|
||||
{
|
||||
//XXX Place the contents of a Windows MSG struct here.
|
||||
};
|
|
@ -0,0 +1,14 @@
|
|||
#include "nsISupports.idl"
|
||||
#include "nsIEventFilter.idl"
|
||||
|
||||
/**
|
||||
* The nsIWinEventFilter defines what a message filter looks like on the Windows
|
||||
* Platform.
|
||||
*/
|
||||
|
||||
[scriptable, uuid(2EFB5006-4508-11d3-AEDA-00A024FFC08C)]
|
||||
interface nsIWinEventFilter : nsIEventFilter
|
||||
{
|
||||
//XXX Place the contents of a Windows MSG struct here.
|
||||
//As well as other needed filtering criteria.
|
||||
};
|
|
@ -0,0 +1,30 @@
|
|||
#!nmake
|
||||
#
|
||||
# The contents of this file are subject to the Netscape Public License
|
||||
# Version 1.0 (the "NPL"); you may not use this file except in
|
||||
# compliance with the NPL. You may obtain a copy of the NPL at
|
||||
# http://www.mozilla.org/NPL/
|
||||
#
|
||||
# Software distributed under the NPL is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
|
||||
# for the specific language governing rights and limitations under the
|
||||
# NPL.
|
||||
#
|
||||
# The Initial Developer of this code under the NPL is Netscape
|
||||
# Communications Corporation. Portions created by Netscape are
|
||||
# Copyright (C) 1998 Netscape Communications Corporation. All Rights
|
||||
# Reserved.
|
||||
|
||||
DEPTH=..\..\..\..
|
||||
MODULE=xpcom_eventloop_xp
|
||||
|
||||
XPIDLSRCS= \
|
||||
.\nsIDispatchListener.idl \
|
||||
.\nsIEventLoop.idl \
|
||||
.\nsIEventFilter.idl \
|
||||
.\nsIEvent.idl \
|
||||
.\nsITranslateListener.idl \
|
||||
$(NULL)
|
||||
|
||||
include <$(DEPTH)\config\rules.mak>
|
||||
include <$(DEPTH)\config\config.mak>
|
|
@ -0,0 +1,44 @@
|
|||
#include "nsISupports.idl"
|
||||
#include "nsIEvent.idl"
|
||||
|
||||
/**
|
||||
* The nsIDispatchListener defines the callback listener interface that
|
||||
* can be passed to the Run routine on and event loop. This allows
|
||||
* application override or additions to the default dispatching event mechanism.
|
||||
*/
|
||||
|
||||
[scriptable, uuid(2EFB5007-4508-11d3-AEDA-00A024FFC08C)]
|
||||
interface nsIDispatchListener : nsISupports
|
||||
{
|
||||
/* Called just before the nsIEventLoop::DispatchMessage() is called.
|
||||
This allows a listener first crack at dispatching Messages. The
|
||||
listener can then control if DispatchMessage() is called via the
|
||||
return.
|
||||
|
||||
@param msg This is the native message that has been retrieved from the Queue
|
||||
and awaiting dispatching.
|
||||
|
||||
@return NS_OK - Indicates nsIEventLoop::DispatchMessage() should be called
|
||||
following the return from this function.
|
||||
NS_FALSE - Processing went successfully, but
|
||||
nsIEventLoop::DispatchMessage() should not be called.
|
||||
NS_ERROR_FAILURE - Catastrophic processing failure. Event loop should
|
||||
die immediately.
|
||||
*/
|
||||
void PreDispatch(in nsIEvent msg);
|
||||
|
||||
/*
|
||||
Called just after the nsIEventLoop::DispatchMessage() has been called.
|
||||
|
||||
@param msg This is the native message that has been retrieved from the Queue
|
||||
and awaiting dispatching.
|
||||
|
||||
@param fDispatchHandled Indicates if nsIEventLoop::DispatchMessage() handled
|
||||
the message being passed in.
|
||||
|
||||
@return NS_OK - Processing completed fine.
|
||||
NS_ERROR_FAILURE - Catastrophic processing failure. Event loop
|
||||
should die immediately.
|
||||
*/
|
||||
void PostDispatch(in nsIEvent msg, in boolean fDispatchHandled);
|
||||
};
|
|
@ -0,0 +1,11 @@
|
|||
#include "nsISupports.idl"
|
||||
|
||||
/**
|
||||
* The nsIEvent serves as a base interface for the platform specific
|
||||
* interfaces that define what an event looks like.
|
||||
*/
|
||||
|
||||
[scriptable, uuid(2EFB5004-4508-11d3-AEDA-00A024FFC08C)]
|
||||
interface nsIEvent : nsISupports
|
||||
{
|
||||
};
|
|
@ -0,0 +1,11 @@
|
|||
#include "nsISupports.idl"
|
||||
|
||||
/**
|
||||
* The nsIEventFilter serves as a base interface for the platform specific
|
||||
* interfaces that define what a filter message looks like.
|
||||
*/
|
||||
|
||||
[scriptable, uuid(2EFB5003-4508-11d3-AEDA-00A024FFC08C)]
|
||||
interface nsIEventFilter : nsISupports
|
||||
{
|
||||
};
|
|
@ -0,0 +1,200 @@
|
|||
#include "nsISupports.idl"
|
||||
#include "nsIEventFilter.idl"
|
||||
#include "nsIEvent.idl"
|
||||
#include "nsIDispatchListener.idl"
|
||||
#include "nsITranslateListener.idl"
|
||||
|
||||
|
||||
typedef long nsEventLoopType;
|
||||
|
||||
/*
|
||||
There are three basic types of Event Loops that can exist in a system.
|
||||
1.) There is the Main Event loop that services the application. This
|
||||
is typically what would be found at the bottom of a main(). Event loops
|
||||
of this type are specified with the 'MainAppLoop' type. There can only
|
||||
be one of these per Application. It is also important to note that
|
||||
Run() called on a Loop of this type blocks until the loop exits.
|
||||
2.) User-interface threads are distinct from worker threads in that they
|
||||
provide an event loop that services native system events. This is the loop
|
||||
that that is found at the bottom of the ThreadMain often looking very
|
||||
similar to the one found in main(). Event loops of this type are specified
|
||||
with the 'ThreadLoop' type. There can only be one of these per thread.It is
|
||||
also important to note that Run() called on a Loop of this type blocks
|
||||
until the loop exits.
|
||||
3.) The third type of loop that exists is one that is done to allow the
|
||||
application and sytem to "breathe". This loop is often invoked from various
|
||||
places on the stack virtually always with the main thread loop living down
|
||||
the stack in some fashion. Great care should be taken in using loops of
|
||||
this kind. Event loops of this type are specified with the 'AppBreathLoop'
|
||||
type. There can be as many of these per application as the application
|
||||
wishes to create. This loop is different than others with respect to the
|
||||
way Run() works on events of this type. Run() will return once the app
|
||||
has had suffiecient breathe time. This may be once the event queue is
|
||||
empty or may be after a specified yield time. As loops of this type aren't
|
||||
tied to the life of a thread or app, the return from Run() does not
|
||||
indicate the desire to end a thread or app either.
|
||||
|
||||
|
||||
******* Talk about life of a loop of these types ******
|
||||
|
||||
*/
|
||||
|
||||
[scriptable, uuid(2EFB5002-4508-11d3-AEDA-00A024FFC08C)]
|
||||
interface nsEventLoopTypes
|
||||
{
|
||||
const long MainAppLoop = 1;
|
||||
const long ThreadLoop = 2;
|
||||
const long AppBreathLoop = 3;
|
||||
};
|
||||
|
||||
/**
|
||||
* The nsIEventLoop provides the facilities to interfact with a native
|
||||
* application event queue.
|
||||
*/
|
||||
|
||||
[scriptable, uuid(2EFB5001-4508-11d3-AEDA-00A024FFC08C)]
|
||||
interface nsIEventLoop : nsISupports
|
||||
{
|
||||
/******** High Level App Usage *******/
|
||||
|
||||
/* Runs the Event Loop. This is a blocking call, it will return when the
|
||||
application or OS has indicated the loop should quit. This is a convience
|
||||
function that can be recreated by a client of this interface using the
|
||||
low-level methods. Unless the application truly needs to handle events
|
||||
on it's own, it is suggested that this method be used rather than manually
|
||||
creating the event loop. To end an event loop one can call the Exit()
|
||||
method on the nsIEventLoop interface.
|
||||
|
||||
In the case of a AppBreathLoop this blocks the app has had suffiecient
|
||||
"breathe" time. This may be once the event queue is empty or may be after
|
||||
a specified yield time. As loops of this type aren't tied to the life of
|
||||
a thread or app, the return from Run() does not indicate the desire to end
|
||||
a thread or app either.
|
||||
|
||||
@param filter Message Filter for handling of events in this loop. If the
|
||||
application wishes to select ranges for message
|
||||
it can pass in a filter. This may be null.
|
||||
@param translateListener Callback called for application specific tranlation
|
||||
of events. This should be null unless the calling
|
||||
application really needs to override the default translation.
|
||||
@param dispatchListener Callback called for application specific dispatching
|
||||
of events. This should be null unless the calling application
|
||||
really needs to override the default processing.
|
||||
*/
|
||||
// Bool for nested PL_Events.
|
||||
|
||||
void Run(in nsIEventFilter filter, in nsITranslateListener translateListener,
|
||||
in nsIDispatchListener dispatchListener);
|
||||
|
||||
/* Exits the Event loop referred to by the instantiation of this interface
|
||||
*/
|
||||
void Exit();
|
||||
|
||||
/******* Low Level Loop Management *****/
|
||||
|
||||
/* This retrieves the next message in the queue for this event loop.
|
||||
If there are no messages in the queue, GetNextMessage will wait for
|
||||
messages to be placed in the queue offering control up to other applications
|
||||
while waiting. When an event to exit the queue is retrieved, GetNextMessage
|
||||
will return NS_FALSE to indicate the loop should finish.
|
||||
|
||||
@param filter Message Filter for handling of events in this loop. If the
|
||||
application wishes to select ranges for message
|
||||
it can pass in a filter. This may be null.
|
||||
@param msg This is the message returned from the queue. Each platform can
|
||||
QI on this returned interface to get the platform specific
|
||||
message contents. This interface is addrefd and must be
|
||||
released when processing is complete.
|
||||
@return NS_OK - msg has been retrieved and ready to be processed.
|
||||
NS_FALSE - An exit event has been signalled. msg will be null.
|
||||
NS_ERROR_FAILURE - Internal failure, ignore all results and
|
||||
cease use of loop.
|
||||
*/
|
||||
void GetNextMessage(in nsIEventFilter filter, out nsIEvent msg);
|
||||
|
||||
/* This retrieves the next message in the queue for this event loop.
|
||||
If there are no messages in the queue, unlike GetNextMessage,
|
||||
PeekNextMessage will return immediately with NS_FALSE.
|
||||
messages to be placed in the queue offering control up to other applications
|
||||
while waiting. When an event to exit the queue is retrieved, GetNextMessage
|
||||
will return NS_FALSE to indicate the loop should finish.
|
||||
|
||||
@param filter Message Filter for handling of events in this loop. If the
|
||||
application wishes to select ranges for message
|
||||
it can pass in a filter. This may be null.
|
||||
@param msg This is the message returned from the queue. Each platform can
|
||||
QI on this returned interface to get the platform specific
|
||||
message contents. This interface is addrefd and must be
|
||||
released when processing is complete.
|
||||
@return NS_OK - msg has been retrieved and ready to be processed.
|
||||
NS_FALSE - There are no more messages to retrieve. msg will be null.
|
||||
NS_ERROR_FAILURE - Internal failure, ignore all results and
|
||||
cease use of loop.
|
||||
*/
|
||||
void PeekNextMessage(in nsIEventFilter filter, out nsIEvent msg);
|
||||
|
||||
/* This does any pre-processing of the message that may be needed.
|
||||
@param msg This is the message returned from the queue. Each platform can
|
||||
QI on this returned interface to get the platform specific
|
||||
message contents. This interface is addrefd and must be
|
||||
released when processing is complete.
|
||||
@return NS_OK - Translated Message.
|
||||
NS_FALSE - Was unable to Translate Message, but this is normal.
|
||||
NS_ERROR_FAILURE - Catastrophic processing failure. Event loop
|
||||
should die immediately.
|
||||
*/
|
||||
void TranslateMessage(in nsIEvent msg);
|
||||
|
||||
/* This does any pre-processing of the message that may be needed.
|
||||
@param msg This is the message returned from the queue. Each platform can
|
||||
QI on this returned interface to get the platform specific
|
||||
message contents. This interface is addrefd and must be
|
||||
released when processing is complete.
|
||||
@return NS_OK - Processed and Dispatched Message.
|
||||
NS_FALSE - Was unable to Dispatch Message, but this is normal.
|
||||
NS_ERROR_FAILURE - Catastrophic processing failure. Event loop
|
||||
should die immediately.
|
||||
*/
|
||||
|
||||
void DispatchMessage(in nsIEvent msg);
|
||||
|
||||
/******* Loop Manipulation ******/
|
||||
|
||||
/* Puts a Message on the event loop referred to by the interface pointer
|
||||
and waits for the message to be processed.
|
||||
|
||||
@param msg This is the message returned from the queue. Each platform can
|
||||
QI on this returned interface to get the platform specific
|
||||
message contents. This interface is addrefd and must be
|
||||
released when processing is complete.
|
||||
@return NS_OK - Message Sent and Processed.
|
||||
NS_FALSE - Message was Sent but was unable to wait for event
|
||||
processing.
|
||||
NS_ERROR_INVALID_ARG - Message passed in was mal-formed.
|
||||
NS_ERROR_FAILURE - Catastrophic processing failure.
|
||||
|
||||
*/
|
||||
void SendLoopMessage(in nsIEvent msg);
|
||||
|
||||
/* Puts a Message on the event loop referred to by the interface pointer
|
||||
and then returns immediately not waiting for the message to be processed.
|
||||
|
||||
@param msg This is the message returned from the queue. Each platform can
|
||||
QI on this returned interface to get the platform specific
|
||||
message contents. This interface is addrefd and must be
|
||||
released when processing is complete.
|
||||
@return NS_OK - Message was placed on the event queue.
|
||||
NS_ERROR_INVALID_ARG - Message passed in was mal-formed.
|
||||
NS_ERROR_FAILURE - Catastrophic processing failure.
|
||||
|
||||
*/
|
||||
void PostLoopMessage(in nsIEvent msg);
|
||||
|
||||
/******* Event Loop Information ******/
|
||||
|
||||
/* Specifies the type of the event loop. This was set upon creation. */
|
||||
readonly attribute nsEventLoopType EventLoopType;
|
||||
|
||||
/* Specifies the name of the event loop. This was set upon creation. */
|
||||
readonly attribute wstring EventLoopName;
|
||||
};
|
|
@ -0,0 +1,45 @@
|
|||
#include "nsISupports.idl"
|
||||
#include "nsIEvent.idl"
|
||||
|
||||
/**
|
||||
* The nsITranslateListener defines the callback listener interface that
|
||||
* can be passed to the Run routine on and event loop. This allows
|
||||
* application overriding or additions to the default event translation
|
||||
* mechanism.
|
||||
*/
|
||||
|
||||
[scriptable, uuid(2EFB5008-4508-11d3-AEDA-00A024FFC08C)]
|
||||
interface nsITranslateListener : nsISupports
|
||||
{
|
||||
/* Called just before the nsIEventLoop::TranslateMessage() is called.
|
||||
This allows a listener first crack at translating Messages. The
|
||||
listener can then control if TranslateMessage() is called via the
|
||||
return.
|
||||
|
||||
@param msg This is the native message that has been retrieved from the Queue
|
||||
and awaiting dispatching.
|
||||
|
||||
@return NS_OK - Indicates nsIEventLoop::TranslateMessage() should be called
|
||||
following the return from this function.
|
||||
NS_FALSE - Translating went successfully, but
|
||||
nsIEventLoop::TranlateMessage() should not be called.
|
||||
NS_ERROR_FAILURE - Catastrophic processing failure. Event loop should
|
||||
die immediately.
|
||||
*/
|
||||
void PreTranslate(in nsIEvent msg);
|
||||
|
||||
/*
|
||||
Called just after the nsIEventLoop::TranslateMessage() has been called.
|
||||
|
||||
@param msg This is the native message that has been retrieved from the Queue
|
||||
and awaiting dispatching.
|
||||
|
||||
@param fTranslateHandled Indicates if nsIEventLoop::TranslateMessage() handled
|
||||
the message being passed in.
|
||||
|
||||
@return NS_OK - Processing completed fine.
|
||||
NS_ERROR_FAILURE - Catastrophic processing failure. Event loop
|
||||
should die immediately.
|
||||
*/
|
||||
void PostTranslate(in nsIEvent msg, in boolean fTranslateHandled);
|
||||
};
|
|
@ -0,0 +1,22 @@
|
|||
#!nmake
|
||||
#
|
||||
# The contents of this file are subject to the Netscape Public License
|
||||
# Version 1.0 (the "NPL"); you may not use this file except in
|
||||
# compliance with the NPL. You may obtain a copy of the NPL at
|
||||
# http://www.mozilla.org/NPL/
|
||||
#
|
||||
# Software distributed under the NPL is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
|
||||
# for the specific language governing rights and limitations under the
|
||||
# NPL.
|
||||
#
|
||||
# The Initial Developer of this code under the NPL is Netscape
|
||||
# Communications Corporation. Portions created by Netscape are
|
||||
# Copyright (C) 1998 Netscape Communications Corporation. All Rights
|
||||
# Reserved.
|
||||
|
||||
DEPTH=..\..
|
||||
|
||||
DIRS=eventloop nativeApp
|
||||
|
||||
include <$(DEPTH)\config\rules.mak>
|
|
@ -0,0 +1,26 @@
|
|||
#!nmake
|
||||
#
|
||||
# The contents of this file are subject to the Netscape Public License
|
||||
# Version 1.0 (the "NPL"); you may not use this file except in
|
||||
# compliance with the NPL. You may obtain a copy of the NPL at
|
||||
# http://www.mozilla.org/NPL/
|
||||
#
|
||||
# Software distributed under the NPL is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
|
||||
# for the specific language governing rights and limitations under the
|
||||
# NPL.
|
||||
#
|
||||
# The Initial Developer of this code under the NPL is Netscape
|
||||
# Communications Corporation. Portions created by Netscape are
|
||||
# Copyright (C) 1998 Netscape Communications Corporation. All Rights
|
||||
# Reserved.
|
||||
|
||||
DEPTH=..\..\..
|
||||
MODULE=xpcom_nativeapp
|
||||
|
||||
XPIDLSRCS= \
|
||||
.\nsINativeApp.idl \
|
||||
$(NULL)
|
||||
|
||||
include <$(DEPTH)\config\rules.mak>
|
||||
include <$(DEPTH)\config\config.mak>
|
|
@ -0,0 +1,59 @@
|
|||
#include "nsISupports.idl"
|
||||
#include "nsIEventLoop.idl"
|
||||
|
||||
/**
|
||||
* The nsINativeAppService provides necessary services to build a native
|
||||
* application.
|
||||
*/
|
||||
|
||||
/*
|
||||
{2EFB5000-4508-11d3-AEDA-00A024FFC08C} -
|
||||
{2EFB5100-4508-11d3-AEDA-00A024FFC08C} have been reserved for Native App
|
||||
Service Interfaces.
|
||||
|
||||
Currently Used:
|
||||
{2EFB5000-4508-11d3-AEDA-00A024FFC08C} - nsINativeApp
|
||||
{2EFB5001-4508-11d3-AEDA-00A024FFC08C} - nsIEventLoop
|
||||
{2EFB5002-4508-11d3-AEDA-00A024FFC08C} - nsEventLoopTypes
|
||||
{2EFB5003-4508-11d3-AEDA-00A024FFC08C} - nsIEventFilter
|
||||
{2EFB5004-4508-11d3-AEDA-00A024FFC08C} - nsIEvent
|
||||
{2EFB5005-4508-11d3-AEDA-00A024FFC08C} - nsIWinEvent
|
||||
{2EFB5006-4508-11d3-AEDA-00A024FFC08C} - nsIWinEventFilter
|
||||
{2EFB5007-4508-11d3-AEDA-00A024FFC08C} - nsIDispatchListener
|
||||
{2EFB5008-4508-11d3-AEDA-00A024FFC08C} - nsITranslateListener
|
||||
|
||||
*/
|
||||
|
||||
[scriptable, uuid(2EFB5000-4508-11d3-AEDA-00A024FFC08C)]
|
||||
interface nsINativeApp : nsISupports
|
||||
{
|
||||
/* Used to Create an Event Loop of a specified Event Loop type.
|
||||
There can only be one event loop per App of the MainAppLoop type.
|
||||
There can only be one event loop per thread of the ThreadLoop type.
|
||||
There can be any number of AppBreathLoop type threads.
|
||||
|
||||
@param EventLoopName This is the name to associate with an event loop.
|
||||
This allows you to later find the event loop using the FineEventLoop
|
||||
mechanism. This may be null, but is usually helpful to associate a
|
||||
name with the loop.
|
||||
|
||||
@param type This is the event Loop type. Look at the various types
|
||||
described in nsEventLoopType const definitions.
|
||||
|
||||
@param eventLoop This is the return created event loop.
|
||||
|
||||
@return NS_OK - Event Loop was created successfully.
|
||||
NS_ERROR_INVALID_ARG - There is already an event loop for the
|
||||
requested type and there can not be more than one.
|
||||
NS_ERROR_INVALID_POINTER - eventLoop was null.
|
||||
NS_ERROR_FAILURE - Internal error and event loop couldn't be
|
||||
created.
|
||||
*/
|
||||
void CreateEventLoop(in wstring EventLoopName, in nsEventLoopType type,
|
||||
out nsIEventLoop eventLoop);
|
||||
|
||||
/* Used to find a previously created event loop.
|
||||
|
||||
*/
|
||||
void FindEventLoop(in wstring EventLoopName, out nsIEventLoop eventLoop);
|
||||
};
|
Загрузка…
Ссылка в новой задаче