MSMQ uses a very limited number of events: Arrived and ArrivedError. Both events are fired by the MSMQEvent component in response to a message or error arriving at a queue. The MSMQEvent object is triggered whenever a message or error arrives at a queue and the queue object's EnableNotification method has been called.