Crear un objeto Mailslot
Mailslots son compatibles con tres funciones especializadas: CreateMailslot, GetMailslotInfo y SetMailslotInfo. El servidor mailslot usa estas funciones.
En el ejemplo de código siguiente se usa la función CreateMailslot para recuperar el identificador de un mailslot denominado "sample_mailslot". El ejemplo de código de Escritura en mailslot muestra cómo la aplicación cliente puede escribir en este mailslot.
#include <windows.h>
#include <stdio.h>
HANDLE hSlot;
LPCTSTR SlotName = TEXT("\\\\.\\mailslot\\sample_mailslot");
BOOL WINAPI MakeSlot(LPCTSTR lpszSlotName)
{
hSlot = CreateMailslot(lpszSlotName,
0, // no maximum message size
MAILSLOT_WAIT_FOREVER, // no time-out for operations
(LPSECURITY_ATTRIBUTES) NULL); // default security
if (hSlot == INVALID_HANDLE_VALUE)
{
printf("CreateMailslot failed with %d\n", GetLastError());
return FALSE;
}
else printf("Mailslot created successfully.\n");
return TRUE;
}
void main()
{
MakeSlot(SlotName);
}
Para crear un mailslot que los procesos secundarios pueden heredar, una aplicación debe cambiar la estructura de SECURITY_ATTRIBUTES pasada como el último parámetro de CreateMailslot. Para ello, la aplicación establece el miembro bInheritHandle de esta estructura en TRUE (el valor predeterminado es FALSE).