197 lines
5.3 KiB
C
197 lines
5.3 KiB
C
/*
|
|
- C L I E N T . H
|
|
-
|
|
* Purpose:
|
|
* Header file for the sample mail client based on Simple MAPI.
|
|
*
|
|
* Copyright 1993-1995 Microsoft Corporation. All Rights Reserved.
|
|
*/
|
|
|
|
|
|
#include "smapi.h"
|
|
|
|
/* Menu Item IDs */
|
|
|
|
#define IDM_LOGON 100
|
|
#define IDM_LOGOFF 101
|
|
#define IDM_EXIT 102
|
|
#define IDM_COMPOSE 103
|
|
#define IDM_READ 104
|
|
#define IDM_SEND 105
|
|
#define IDM_ADDRBOOK 106
|
|
#define IDM_DETAILS 107
|
|
#define IDM_ABOUT 108
|
|
|
|
/* Resource IDs */
|
|
|
|
#define ICON_NOMAIL 200
|
|
#define ICON_MAIL 201
|
|
#define IDB_ENVELOPE 300
|
|
|
|
|
|
/* Address Book Control IDs */
|
|
|
|
#define IDT_ADDRESS 101
|
|
#define IDC_ADDRESS 102
|
|
#define IDT_LIST 103
|
|
#define IDC_LIST 104
|
|
#define IDC_ADD 105
|
|
#define IDC_REMOVE 106
|
|
|
|
|
|
/* Compose Note Control IDs */
|
|
|
|
#define IDC_SEND 101
|
|
#define IDC_RESOLVE 102
|
|
#define IDC_ATTACH 103
|
|
#define IDC_OPTIONS 104
|
|
#define IDC_ADDRBOOK 105
|
|
#define IDT_TO 106
|
|
#define IDC_TO 107
|
|
#define IDT_CC 108
|
|
#define IDC_CC 109
|
|
#define IDT_SUBJECT 110
|
|
#define IDC_SUBJECT 111
|
|
#define IDC_NOTE 112
|
|
#define IDC_CATTACHMENT 113
|
|
#define IDT_CATTACHMENT 114
|
|
#define IDC_LINE1 -1
|
|
#define IDC_LINE2 -1
|
|
|
|
|
|
/* InBox Control IDs */
|
|
|
|
#define IDT_MSG 101
|
|
#define IDC_MSG 102
|
|
#define IDC_NEW 103
|
|
#define IDC_READ 104
|
|
#define IDC_DELETE 105
|
|
#define IDC_CLOSE 106
|
|
|
|
|
|
/* ReadNote Control IDs */
|
|
|
|
#define IDC_SAVECHANGES 101
|
|
#define IDC_SAVEATTACH 102
|
|
#define IDC_REPLY 103
|
|
#define IDC_REPLYALL 104
|
|
#define IDC_FORWARD 105
|
|
#define IDT_RFROM 106
|
|
#define IDT_RDATE 107
|
|
#define IDT_RTO 108
|
|
#define IDT_RCC 109
|
|
#define IDT_RSUBJECT 110
|
|
#define IDC_RFROM 111
|
|
#define IDC_RDATE 112
|
|
#define IDC_RTO 113
|
|
#define IDC_RCC 114
|
|
#define IDC_RSUBJECT 115
|
|
#define IDC_READNOTE 116
|
|
#define IDT_ATTACHMENT 117
|
|
#define IDC_ATTACHMENT 118
|
|
|
|
|
|
/* Options Control IDs */
|
|
|
|
#define IDC_RETURN 101
|
|
|
|
|
|
/* Details Control IDs */
|
|
|
|
#define IDT_NAME 100
|
|
#define IDC_NAME 101
|
|
#define IDT_TYPE 102
|
|
#define IDC_TYPE 103
|
|
#define IDT_ADDR 104
|
|
#define IDC_ADDR 105
|
|
|
|
/* About Box Control IDs */
|
|
|
|
#define IDC_VERSION 101
|
|
|
|
|
|
/* String Table IDs */
|
|
|
|
#define MAPI_ERROR_MAX 30
|
|
|
|
#define IDS_LOGONFAIL (MAPI_ERROR_MAX + 1)
|
|
#define IDS_ADDRBOOKFAIL (MAPI_ERROR_MAX + 2)
|
|
#define IDS_RESOLVEFAIL (MAPI_ERROR_MAX + 3)
|
|
#define IDS_UNRESOLVEDNAMES (MAPI_ERROR_MAX + 4)
|
|
#define IDS_SENDERROR (MAPI_ERROR_MAX + 5)
|
|
#define IDS_DETAILS_TOO_MANY (MAPI_ERROR_MAX + 6)
|
|
#define IDS_DETAILSFAIL (MAPI_ERROR_MAX + 7)
|
|
#define IDS_NORECIPS (MAPI_ERROR_MAX + 8)
|
|
#define IDS_SAVEATTACHERROR (MAPI_ERROR_MAX + 9)
|
|
#define IDS_READFAIL (MAPI_ERROR_MAX + 10)
|
|
#define IDS_DIALOGACTIVE (MAPI_ERROR_MAX + 11)
|
|
|
|
#define IDS_FILTER (MAPI_ERROR_MAX + 50)
|
|
|
|
/* Manifest Constants */
|
|
|
|
#define ADDR_MAX 128
|
|
#define MAXUSERS 10
|
|
#define TO_EDIT_MAX 512
|
|
#define CC_EDIT_MAX 512
|
|
#define SUBJECT_EDIT_MAX 128
|
|
#define NOTE_LINE_MAX 1024
|
|
#define FILE_ATTACH_MAX 32
|
|
|
|
/* Message Box styles */
|
|
|
|
#define MBS_ERROR (MB_ICONSTOP | MB_OK)
|
|
#define MBS_INFO (MB_ICONINFORMATION | MB_OK)
|
|
#define MBS_OOPS (MB_ICONEXCLAMATION | MB_OK)
|
|
|
|
/* Structure Definitions */
|
|
|
|
typedef struct _msgid *LPMSGID;
|
|
|
|
typedef struct _msgid
|
|
{
|
|
LPSTR lpszMsgID;
|
|
BOOL fHasAttach;
|
|
BOOL fUnRead;
|
|
LPSTR lpszFrom;
|
|
LPSTR lpszSubject;
|
|
LPSTR lpszDateRec;
|
|
LPMSGID lpPrev;
|
|
LPMSGID lpNext;
|
|
} MSGID;
|
|
|
|
|
|
|
|
/* Function Prototypes */
|
|
|
|
int PASCAL WinMain(HINSTANCE, HINSTANCE, LPSTR, int);
|
|
BOOL InitApplication(HANDLE);
|
|
BOOL InitInstance(HANDLE, int);
|
|
void DeinitApplication(void);
|
|
long FAR PASCAL MainWndProc(HWND, UINT, UINT, LPARAM);
|
|
BOOL FAR PASCAL AboutDlgProc(HWND, UINT, UINT, LONG);
|
|
BOOL FAR PASCAL ComposeDlgProc(HWND, UINT, UINT, LONG);
|
|
BOOL FAR PASCAL InBoxDlgProc(HWND, UINT, UINT, LONG);
|
|
BOOL FAR PASCAL ReadMailDlgProc(HWND, UINT, UINT, LONG);
|
|
BOOL FAR PASCAL OptionsDlgProc(HWND, UINT, UINT, LONG);
|
|
BOOL FAR PASCAL DetailsDlgProc(HWND, UINT, UINT, LONG);
|
|
void MakeMessageBox(HWND, ULONG, UINT, UINT);
|
|
ULONG ResolveFriendlyNames(HWND, LPSTR, ULONG, ULONG *, lpMapiRecipDesc *);
|
|
ULONG CopyRecipient(lpMapiRecipDesc, lpMapiRecipDesc, lpMapiRecipDesc);
|
|
ULONG GetNextFile(HWND, ULONG, ULONG *, lpMapiFileDesc *);
|
|
ULONG CopyAttachment(lpMapiFileDesc, lpMapiFileDesc, lpMapiFileDesc);
|
|
BOOL FNameInList(LPSTR, ULONG, lpMapiRecipDesc);
|
|
LPMSGID MakeMsgNode(lpMapiMessage, LPSTR);
|
|
LPMSGID FindNode(LPMSGID, LPSTR);
|
|
void InsertMsgNode(LPMSGID, LPMSGID *);
|
|
void DeleteMsgNode(LPMSGID, LPMSGID *);
|
|
void FreeMsgList(LPMSGID);
|
|
void MakeDisplayNameStr(LPSTR, ULONG, ULONG, lpMapiRecipDesc);
|
|
ULONG SaveMsgChanges(HWND, lpMapiMessage, LPSTR);
|
|
ULONG MakeNewMessage(lpMapiMessage, UINT);
|
|
void LogSendMail(ULONG);
|
|
void SaveFileAttachments(HWND, lpMapiFileDesc);
|
|
void ToggleMenuState(HWND, BOOL);
|
|
BOOL fSMAPIInstalled(void);
|
|
void SecureMenu(HWND hWnd, BOOL fBeforeLogon);
|