Erstellen eines Mailslots
Mailslots werden von drei spezialisierten Funktionen unterstützt: CreateMailslot, GetMailslotInfo und SetMailslotInfo. Diese Funktionen werden vom maillot-Server verwendet.
Im folgenden Codebeispiel wird die CreateMailslot-Funktion verwendet, um das Handle für ein Maillot mit dem Namen "sample_mailslot" abzurufen. Das Codebeispiel in Schreiben in ein Mailslot zeigt, wie die Clientanwendung in dieses Maillot schreiben kann.
#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);
}
Um ein Maillot zu erstellen, das von untergeordneten Prozessen geerbt werden kann, sollte eine Anwendung die SECURITY_ATTRIBUTES Struktur ändern, die als letzter Parameter von CreateMailslot übergeben wird. Dazu legt die Anwendung den bInheritHandle-Member dieser Struktur auf TRUE fest (die Standardeinstellung ist FALSE).