建立 Mailslot
有三個特製化函式支援 Mailslot:CreateMailslot、 GetMailslotInfo和 SetMailslotInfo。 Mailslot 伺服器會使用這些函式。
下列程式碼範例會使用 CreateMailslot 函式來擷取名為 「sample_mailslot」 的郵件集控制碼。 寫入 Mailslot中的程式碼範例會顯示用戶端應用程式如何寫入此 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);
}
若要建立可由子進程繼承的 mailslot,應用程式應該變更傳遞為CreateMailslot最後一個參數的SECURITY_ATTRIBUTES結構。 若要這樣做,應用程式會將此結構的 bInheritHandle 成員設定為 TRUE , (預設設定為 FALSE) 。