Olá LCRamos,
Criar uma DLL separada envolve o uso de uma classe de acesso à DLL e a compilação da DLL em si. As duas coisas são extremamente simples de fazer, basta clicar sobre a janela do projeto e selecionar Add Class e criar uma nova classe. Ela deve ser pública para ser visível fora da DLL. Depois é só acrescentar os métodos e propriedades que desejar. Para criar a DLL, altere o tipo de projeto para ActiveX DLL.
A vantagem desse tipo de abordagem é que o aplicativo principal não fica parado esperando a conclusão da consulta de mensagens, que depedendo do número de usuários pode ser muito grande. Apesar de não ser a mesma coisa que criar vários Threads dentro do programa, como no .net ou no Delphi, isso oferece algumas vantagens em termos de velocidade e praticidade em caso de atualização, pois ao invés de atualizar todo o aplicativo, basta atualizar apenas a DLL externa.
um abraço,
Sandro.