CLIENT.H
资源名称:MSDN_VC98.zip [点击查看]
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:10k
源码类别:
Windows编程
开发平台:
Visual C++
- /*
- - C L I E N T . H
- -
- * Purpose:
- * Header file for the sample mail client based on Extended MAPI.
- *
- * Copyright 1995, Microsoft Corporation. All Rights Reserved.
- */
- #ifndef __CLIENT_H__
- #define __CLIENT_H__
- /* Menu Item IDs */
- #define IDM_LOGON 100
- #define IDM_LOGOFF 101
- #define IDM_EXIT 102
- #define IDM_READ 103
- #define IDM_SEND 104
- #define IDM_ABOUT 105
- #define IDM_OPEN 106
- #define IDM_HIER 107
- #define IDM_ROUTE 108
- #define IDM_NEWFORM 109
- /* 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_LINE1 -1
- #define IDC_LINE2 -1
- #define IDC_CATTACHMENT 113
- #define IDT_CATTACHMENT -1
- #define IDC_ADDROUTESLIP 115
- //RouteNote control IDs
- #define IDC_RTCC 101
- #define IDT_RTCC -1
- #define IDT_RTSUBJECT -1
- #define IDC_RTSUBJECT 102
- #define IDC_RTNOTE 103
- #define IDC_RTROUTE 104
- #define IDC_RTATTACH 105
- #define IDC_RTEDITROUTESLIP 106
- #define IDC_RTATTACHLIST 107
- #define IDT_RTATTACHLIST 108
- #define IDC_RTSAVEATTACH 109
- #define IDC_RTDELATTACH 110
- /* 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
- #define IDC_DOWN 107 // Hierarchy Table only
- #define IDC_FLUSH 108
- /* 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
- /* Route Box Control IDs*/
- #define IDC_ROUTE 100
- #define IDC_ADDRLISTOLD 101
- #define IDC_ADDRLISTACTIVE 102
- #define IDC_ADDADDR 103
- #define IDC_REMOVEADDR 104
- #define IDC_MOVEUP 105
- #define IDC_MOVEDOWN 106
- #define IDC_STATIC -1
- #define LENGTHOLD 80
- #define LENGTHACTIVE 80
- #define LBLENGTH (LENGTHOLD + LENGTHACTIVE) /*sum of the lengths of the two listboxes in RouteNote DlgBox*/
- #define DELTA 5 /*distance between the bottom of the first LB and the top of the second
- DELATA is not used directly in the .rc file. it has to be calculated manualy*/
- #define LBX 70 /* The x coordinate of the left edges of the listboxes*/
- #define DELTAX 140 /*the width of the listboxes*/
- #define OLDY 5 /*the y coordinate of the top of the first listbox*/
- #define MINY 40 /*the min height of a listbox*/
- /* 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_STORETBLFAIL (MAPI_ERROR_MAX + 11)
- #define IDS_QUERYROWFAIL (MAPI_ERROR_MAX + 12)
- #define IDS_OPENSTOREFAIL (MAPI_ERROR_MAX + 13)
- #define IDS_STATUSTBLFAIL (MAPI_ERROR_MAX + 14)
- #define IDS_OPENFOLDERFAIL (MAPI_ERROR_MAX + 15)
- #define IDS_GETRCVFAIL (MAPI_ERROR_MAX + 16)
- #define IDS_SETRCVFAIL (MAPI_ERROR_MAX + 17)
- #define IDS_SETPROPFAIL (MAPI_ERROR_MAX + 18)
- #define IDS_NOENTRYID (MAPI_ERROR_MAX + 19)
- #define IDS_OPERATION (MAPI_ERROR_MAX + 20)
- #define IDS_NODEFAULTSTORE (MAPI_ERROR_MAX + 21)
- #define IDS_SETCOLFAIL (MAPI_ERROR_MAX + 22)
- #define IDS_CRTOUTMSG (MAPI_ERROR_MAX + 23)
- #define IDS_SHOWFORM (MAPI_ERROR_MAX + 24)
- #define IDS_OPENAB (MAPI_ERROR_MAX + 25)
- #define IDS_INIDIAG (MAPI_ERROR_MAX + 26)
- #define IDS_UNXERR (MAPI_ERROR_MAX + 27)
- #define IDS_OPENOUTF (MAPI_ERROR_MAX + 28)
- #define IDS_MAPIINIF (MAPI_ERROR_MAX + 29)
- #define IDS_OPENSTOREWARN (MAPI_ERROR_MAX + 30)
- #define IDS_OPENABWARN (MAPI_ERROR_MAX + 31)
- #define IDS_LASTRECIP (MAPI_ERROR_MAX + 32)
- #define IDS_IPM (MAPI_ERROR_MAX + 42)
- #define IDS_IPM_COMMENT (MAPI_ERROR_MAX + 43)
- #define IDS_INBOX (MAPI_ERROR_MAX + 44)
- #define IDS_INBOX_COMMENT (MAPI_ERROR_MAX + 45)
- #define IDS_OUTBOX (MAPI_ERROR_MAX + 46)
- #define IDS_OUTBOX_COMMENT (MAPI_ERROR_MAX + 47)
- #define IDS_SENTMAIL (MAPI_ERROR_MAX + 48)
- #define IDS_SENTMAIL_COMMENT (MAPI_ERROR_MAX + 49)
- #define IDS_FILTER (MAPI_ERROR_MAX + 50)
- #define IDS_OPENOUTB (MAPI_ERROR_MAX + 51)
- /* Manifest Constants */
- #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
- {
- ULONG cbEID;
- LPENTRYID lpEID;
- BOOL fHasAttach;
- BOOL fUnRead;
- LPSTR lpszFrom;
- LPSTR lpszSubject;
- LPSTR lpszDateRec;
- LPMSGID lpPrev;
- LPMSGID lpNext;
- } MSGID;
- typedef struct _inboxdata
- {
- LPMSGID lpMsgIdList;
- LPMAPIFOLDER pfld;
- } INBOXDATA, FAR * LPINBOXDATA;
- typedef struct _oar *LPOAR;
- typedef struct _oar
- {
- LPOAR lpNext;
- LPOAR lpPrev;
- ULONG cValues;
- LPSPropValue lpProps;
- } OAR;
- /* Types of MAPI Tables shown by common dialog */
- enum {
- iStores,
- iHierarchy
- };
- /* Data structure used by CommonDlgProc */
- typedef struct {
- int iDlgType; // dialog type. see "enum" above
- LPOAR poarHead; // chain of rows within the dialog
- ULONG cbEntryID;
- LPENTRYID lpEntryID;
- } DIALOGDATA, FAR * LPDIALOGDATA;
- /* Globals */
- extern LPMAPISESSION pses;
- extern LPADRBOOK pabAddrB;
- extern LPMDB pmdb;
- extern HANDLE hInst;
- extern HCURSOR hWaitCur;
- extern LPMAPIFOLDER pfldOutBox;
- extern LPSPropValue pvalSentMailEID;
- /* Function Prototypes */
- int PASCAL WinMain(HINSTANCE, HINSTANCE, LPSTR, int);
- BOOL InitApplication(HANDLE);
- BOOL InitInstance(HANDLE, int);
- void DeinitApplication(void);
- BOOL ClientLogon(HWND);
- VOID ClientLogoff(HWND);
- BOOL InitMAPI (HWND);
- void DeinitMAPI();
- LPMDB OpenDefaultStore(HWND);
- long FAR PASCAL MainWndProc(HWND, UINT, UINT, LPARAM);
- BOOL CALLBACK CommonDlgProc(HWND, UINT, WPARAM, LPARAM);
- BOOL CALLBACK InBoxDlgProc(HWND, UINT, WPARAM, LPARAM);
- BOOL CALLBACK AboutDlgProc(HWND, UINT, WPARAM, LPARAM);
- BOOL CALLBACK ComposeDlgProc(HWND, UINT, WPARAM, LPARAM);
- BOOL CALLBACK ReadMailDlgProc(HWND, UINT, WPARAM, LPARAM);
- BOOL CALLBACK OptionsDlgProc(HWND, UINT, WPARAM, LPARAM);
- BOOL CALLBACK DetailsDlgProc(HWND, UINT, WPARAM, LPARAM);
- void MakeMessageBox(HWND, SCODE, UINT, LPMAPIERROR, UINT);
- HRESULT HrCreateChildFolder (HWND, LPMAPIFOLDER, ULONG, ULONG, LPTSTR, ULONG, LPMAPIFOLDER FAR *);
- VOID PopulateStores ( HWND hDlg, LPOAR FAR * ppoarHead, int idlgType, ULONG cb, LPENTRYID lpeid);
- VOID FreeOarList (LPOAR FAR *ppoarHead);
- VOID DrawOarItem (DRAWITEMSTRUCT FAR * pdis, int idlgType);
- VOID PopulateMessages( HWND hDlg, LPINBOXDATA pibData );
- LPMSGID MakeMsgNode(LPSRow);
- LPMSGID FindNode (LPMSGID lpMsgHead, LPENTRYID pEntryID, ULONG cbEntryID);
- void InsertMsgNode(LPMSGID, LPMSGID *);
- void DeleteMsgNode(LPMSGID, LPMSGID *);
- void FreeMsgList(LPMSGID);
- void LogSendMail(ULONG);
- void ToggleMenuState(HWND, BOOL);
- void FormatMessageID(ULONG, LPBYTE, LPSTR);
- void FormatFILETIME(FILETIME *, LPSTR);
- LPDIALOGDATA CreateDialogData(int iDlgType);
- BOOL READ_OnCommand(HWND hDlg, int id, HWND hwndCtl, UINT codeNotify);
- BOOL READ_OnInitDialog(HWND hDlg, HWND hwndFocus, LPARAM lParam);
- void INBOX_OnCommand(HWND hDlg, int id, HWND hwndCtl, UINT codeNotify);
- LONG MAIN_OnCommand(HWND hWnd, int id, HWND hwndCtl, UINT codeNotify);
- BOOL Common_OnCommand(HWND hDlg, int id, HWND hwndCtl, UINT codeNotify);
- HRESULT DeliverNow(HWND hWnd);
- void SecureMenu(HWND hWnd, BOOL fBeforeLogon);
- #endif