HRESULT AddMailW(LPMAPISESSION lpMAPISession, LPMAPIFOLDER lpFolder, LPWSTR szSubject, // PR_SUBJECT_W, PR_CONVERSATION_TOPIC LPWSTR szBody, // PR_BODY_W LPWSTR szRecipientName, // Recipient table BOOL bHighImportance, // PR_IMPORTANCE BOOL bReadReceipt, // PR_READ_RECEIPT_REQUESTED BOOL bSubmit, BOOL bDeleteAfterSubmit) { if (!lpFolder) return MAPI_E_INVALID_PARAMETER; HRESULT hRes = S_OK; LPMESSAGE lpMessage = 0; // Create a message and set its properties hRes = lpFolder->CreateMessage(0, 0, &lpMessage); if (SUCCEEDED(hRes)) { // Since we know in advance which props we'll be setting, we can statically declare most of the structures involved and save expensive MAPIAllocateBuffer calls hRes = SetPropsW(lpMessage, szSubject, szBody, szRecipientName, bHighImportance, bReadReceipt, bSubmit, bDeleteAfterSubmit, KEEP_OPEN_READWRITE, lpMAPISession); } if (lpMessage) { lpMessage->Release(); lpMessage = NULL; } return hRes; }