Partager via


Création d’un Maillot

Les mailslots sont pris en charge par trois fonctions spécialisées : CreateMailslot, GetMailslotInfo et SetMailslotInfo. Ces fonctions sont utilisées par le serveur maillot.

L’exemple de code suivant utilise la fonction CreateMailslot pour récupérer le handle dans un maillot nommé « sample_mailslot ». L’exemple de code dans Writing to a Mailslot montre comment l’application cliente peut écrire dans ce maillot.

#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);
}

Pour créer un maillot qui peut être hérité par des processus enfants, une application doit modifier la structure SECURITY_ATTRIBUTES passée en tant que dernier paramètre de CreateMailslot. Pour ce faire, l’application définit le membre bInheritHandle de cette structure sur TRUE (le paramètre par défaut est FALSE).