Клиент почтового слота должен использоваться функцию CreateFile для открытия слота, но с флагом FILE_SHARE_READ. Потом он может воспользоваться функций WriteFile для записи информации. Смотрим пример:
#include "stdafx.h"
#include "windows.h"
#include "iostream.h"
void main()
{
HANDLE hf=NULL;
hf=CreateFile("\\\\.\\mailslot\\hello",GENERIC_WRITE,
FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
if (hf!=INVALID_HANDLE_VALUE)
{
cout << "Ok Open" << endl;
char buffer[255];
strcpy(buffer,"hello mail slot");
DWORD dwwr;
if (WriteFile(hf,&buffer,strlen(buffer),&dwwr,NULL)!=0)
{
cout << "OK Write" << endl;
}
}
}
Если сервер будет запушен, то он получит сообщение:

Да еще одно но. В MSDN написано, что если клиент открываеи слот прежде чем слот был создан сервером, то он получит INVALID_HANDLE_VALUE:

Как раз этого INVALID_HANDLE_VALUE я и не получаю. Если ошибка в пути, то действительно файл не открывается.
CreateFile("\\\\.\\ailslot\\hello",
А при явном бредовом имени:
CreateFile(\\\\.\\mailslot\\hel23lo
Все происходит успешно кроме записи.
