共用方式為


建立 Mailslot

有三個特製化函式支援 Mailslot:CreateMailslotGetMailslotInfoSetMailslotInfo。 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) 。