Condividi tramite


Creazione di un oggetto Mailslot

I mailslot sono supportati da tre funzioni specializzate: CreateMailslot, GetMailslotInfo e SetMailslotInfo. Queste funzioni vengono usate dal server mailslot.

Nell'esempio di codice seguente viene utilizzata la funzione CreateMailslot per recuperare l'handle in un oggetto mailslot denominato "sample_mailslot". L'esempio di codice in Scrittura in un oggetto Mailslot mostra come l'applicazione client può scrivere in questo 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);
}

Per creare un oggetto mailslot che può essere ereditato dai processi figlio, un'applicazione deve modificare la struttura SECURITY_ATTRIBUTES passata come ultimo parametro di CreateMailslot. A tale scopo, l'applicazione imposta il membro bInheritHandle di questa struttura su TRUE (l'impostazione predefinita è FALSE).