Legacy Documentclose button

Important: The information in this document is obsolete and should not be used for new development.

Previous Book Contents Book Index Next

Inside Macintosh: Macintosh Toolbox Essentials /
Chapter 2 - Event Manager / Event Manager Reference
Data Structures


The Event Queue

The event queue is a standard Macintosh Operating System queue that the Operating System Event Manager maintains. Only mouse-up, mouse-down, key-up, key-down, auto-key, and disk-inserted events are stored in the Operating System event queue. In most cases, your application should not access the event queue directly. Instead you usually use the WaitNextEvent function, which can retrieve events from this queue as well as from other sources.

The event queue consists of a header followed by the actual entries in the queue. The event queue has the same header as all standard Macintosh Operating System queues. The Qhdr data type defines the queue header.

TYPE  QHdr = 
      RECORD
         qFlags:  Integer;    {queue flags}
         qHead:   QElemPtr;   {first queue entry}
         qTail:   QElemPtr;   {last queue entry}
      END;
The EvQEl data type defines an entry in the Operating System event queue.

TYPE  EvQEl = 
      RECORD
         qLink:         QElemPtr;   {next queue entry}
         qType:         Integer;    {queue type (ORD(evType))}
         evtQWhat:      Integer;    {event code}
         evtQMessage:   LongInt;    {event message}
         evtQWhen:      LongInt;    {ticks since startup}
         evtQWhere:     Point;      {mouse location}
         evtQModifiers: Integer;    {modifier flags}
      END;
Each entry in the event queue begins with 4 bytes of flags followed by a pointer to the next queue entry. The flags are maintained by and internal to the Operating System Event Manager. The queue entries are linked by pointers, and the first field of the EvQEl data type, which represents the structure of a queue entry, begins with a pointer to the next queue entry. Thus you cannot directly access the flags using the EvQEl data type.


Previous Book Contents Book Index Next

© Apple Computer, Inc.
11 JUL 1996