建立郵槽 (Mailslot)
有三個特製化函式支援 Mailslot:CreateMailslot、GetMailslotInfo和 SetMailslotInfo。 mailslot 伺服器會使用這些函式。
下列程式代碼範例會使用 CreateMailslot 函式來取得名為「sample_mailslot」的 mailslot 的控制代碼。 Writing to a 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 )。