# GetThisMsg

Gets a specific message.

### Synopsis

`Item GetThisMsg( Item message )`

### Description

This procedure gets a specific message and removes it from the message queue that contains it, if any.

A task that is receiving messages can use `GetThisMsg()` to get an incoming message. Unlike `GetMsg()`, which gets the first message in a specific message queue, `GetThisMsg()` can get any message from any of the task's message queues.

A task that has sent a message can use `GetThisMsg()` to get it back. If the receiving task hasn't already taken the message from its message queue, `GetThisMsg()` removes it from the queue. If the message is not on any MsgPort a zero is returned.

### Arguments

message
  The item number of the message to get.

### Return Value

The procedure returns the item number of the message or an error code (a negative value) if an error occurred. Possible error codes include:

BADITEM
  The message argument does not specify a message.

BADPRIV
  The calling task is not allowed to get this message.

### Implementation

SWI implemented in kernel folio V20.

### Associated Files

msgport.h
  ANSI C Prototype

### Caveats

Prior to V21, if the message was not on any message port this procedure still returned the item number of the message. In V21 and beyond, if the message is not on any port, the procedure returns an error.

### See Also

``CreateMsg`(), GetMsg(), ReplyMsg(), ReplySmallMsg(), SendMsg(), SendSmallMsg(), WaitPort()`

#