邮件槽由三个专门功能支持:CreateMailslot,GetMailslotInfo和SetMailslotInfo.这些功能由邮箱服务器使用。
以下代码示例使用CreateMailslot函数来检索名为sample_mailslot的邮槽的句柄。
BOOL FAR PASCAL Makeslot(HWND hwnd, HDC hdc)
{
LPSTR lpszSlotName = "\\\\.\\mailslot\\sample_mailslot";
/ *邮箱空间句柄“hSlot1”全局声明。*/
hSlot1 = CreateMailslot(lpszSlotName,
0,/ *无最大消息大小* /
MAILSLOT_WAIT_FOREVER,/ *无超时读操作* /
(LPSECURITY_ATTRIBUTES) NULL); /* no security attributes */
if (hSlot1 == INVALID_HANDLE_VALUE) {
ErrorHandler(hwnd, "CreateMailslot"); /* local error handler */
return FALSE;
}
TextOut(hdc, 10, 10, "CreateMailslot successful.", 26);
return TRUE;
}
要创建可以由子进程继承的邮槽,应用程序应该更改作为最后一个参数CreateMailslot传递的SECURITY_ATTRIBUTES结构。为此,应用程序将此结构的bInheritHandle成员设置为TRUE(默认设置为FALSE)。