Creazione di un oggetto Mailslot
I mailslot sono supportati da tre funzioni specializzate: CreateMailslot, GetMailslotInfo e SetMailslotInfo. Queste funzioni vengono usate dal server mailslot.
Nell'esempio di codice seguente viene utilizzata la funzione CreateMailslot per recuperare l'handle in un oggetto mailslot denominato "sample_mailslot". L'esempio di codice in Scrittura in un oggetto Mailslot mostra come l'applicazione client può scrivere in questo 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);
}
Per creare un oggetto mailslot che può essere ereditato dai processi figlio, un'applicazione deve modificare la struttura SECURITY_ATTRIBUTES passata come ultimo parametro di CreateMailslot. A tale scopo, l'applicazione imposta il membro bInheritHandle di questa struttura su TRUE (l'impostazione predefinita è FALSE).