mIRC recently added a new event, on parseline, it triggers for any line sent and received by/to the IRC server, you are forced to use that since the whisper message are not part of the IRC protocol.
Basic stuff:
on *:parseline:in:* WHISPER *:{
echo -s rcvd: $parseline
}