Application.VisioIsIdle Event (Visio)

Occurs after the application empties its message queue.


Private Sub expression _'VisioIsIdle'(ByVal app As [IVAPPLICATION])

expression A variable that represents an Application object.


Name Required/Optional Data type Description
app Required [IVAPPLICATION] The instance of Microsoft Visio that emptied its message queue.


Visio continually processes messages in its message queue. When its message queue is empty:

  1. Visio performs its own idle-time processing.

  2. Visio tells Microsoft Visual Basic for Applications to perform its idle-time processing.

  3. If the message queue is still empty, Visio fires the VisioIsIdle event.

  4. If the message queue is still empty, Visio calls WaitMessage , which is a call to Microsoft Windows that doesn't return until a new message gets added to the Visio message queue.

A client program can use the VisioIsIdle event as a signal to perform its own background processing.

The VisioIsIdle event is not the equivalent of a standard timer event. Client programs that need to be called on a periodic basis should use standard timer techniques, because the duration in which Visio is idle (calls WaitMessage) is unpredictable. For client programs that are only monitoring Visio activity, however, the VisioIsIdle event can be sufficient, because until WaitMessage returns to Visio, there cannot have been any Visio activity since the VisioIsIdle event was last fired.

If you are using Microsoft Visual Basic or Visual Basic for Applications (VBA), the syntax in this topic describes a common, efficient way to handle events.

If you want to create your own Event objects, use the Add or AddAdvise method. To create an Event object that runs an add-on, use the Add method as it applies to the EventList collection. To create an Event object that receives notification, use the AddAdvise method. To find an event code for the event you want to create, see Event codes.