CLIENT.H
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:5k
源码类别:

Windows编程

开发平台:

Visual C++

  1. /*
  2.  -  C L I E N T . H
  3.  -
  4.  *  Purpose:
  5.  *      Header file for the sample mail client based on Simple MAPI.
  6.  *
  7.  *  Copyright 1993-1995 Microsoft Corporation. All Rights Reserved.
  8.  */
  9. #include "smapi.h"
  10. /* Menu Item IDs */
  11. #define IDM_LOGON       100
  12. #define IDM_LOGOFF      101
  13. #define IDM_EXIT        102
  14. #define IDM_COMPOSE     103
  15. #define IDM_READ        104
  16. #define IDM_SEND        105
  17. #define IDM_ADDRBOOK    106
  18. #define IDM_DETAILS     107
  19. #define IDM_ABOUT       108
  20. /* Resource IDs */
  21. #define ICON_NOMAIL     200
  22. #define ICON_MAIL       201
  23. #define IDB_ENVELOPE    300
  24. /* Address Book Control IDs */
  25. #define IDT_ADDRESS     101
  26. #define IDC_ADDRESS     102
  27. #define IDT_LIST        103
  28. #define IDC_LIST        104
  29. #define IDC_ADD         105
  30. #define IDC_REMOVE      106
  31. /* Compose Note Control IDs */
  32. #define IDC_SEND        101
  33. #define IDC_RESOLVE     102
  34. #define IDC_ATTACH      103
  35. #define IDC_OPTIONS     104
  36. #define IDC_ADDRBOOK    105
  37. #define IDT_TO          106
  38. #define IDC_TO          107
  39. #define IDT_CC          108
  40. #define IDC_CC          109
  41. #define IDT_SUBJECT     110
  42. #define IDC_SUBJECT     111
  43. #define IDC_NOTE        112
  44. #define IDC_CATTACHMENT 113
  45. #define IDT_CATTACHMENT 114
  46. #define IDC_LINE1       -1
  47. #define IDC_LINE2       -1
  48. /* InBox Control IDs */
  49. #define IDT_MSG         101
  50. #define IDC_MSG         102
  51. #define IDC_NEW         103
  52. #define IDC_READ        104
  53. #define IDC_DELETE      105
  54. #define IDC_CLOSE       106
  55. /* ReadNote Control IDs */
  56. #define IDC_SAVECHANGES 101
  57. #define IDC_SAVEATTACH  102
  58. #define IDC_REPLY       103
  59. #define IDC_REPLYALL    104
  60. #define IDC_FORWARD     105
  61. #define IDT_RFROM       106
  62. #define IDT_RDATE       107
  63. #define IDT_RTO         108
  64. #define IDT_RCC         109
  65. #define IDT_RSUBJECT    110
  66. #define IDC_RFROM       111
  67. #define IDC_RDATE       112
  68. #define IDC_RTO         113
  69. #define IDC_RCC         114
  70. #define IDC_RSUBJECT    115
  71. #define IDC_READNOTE    116
  72. #define IDT_ATTACHMENT  117
  73. #define IDC_ATTACHMENT  118
  74. /* Options Control IDs */
  75. #define IDC_RETURN      101
  76. /* Details Control IDs */
  77. #define IDT_NAME        100
  78. #define IDC_NAME        101
  79. #define IDT_TYPE        102
  80. #define IDC_TYPE        103
  81. #define IDT_ADDR        104
  82. #define IDC_ADDR        105
  83. /* About Box Control IDs */
  84. #define IDC_VERSION     101
  85. /* String Table IDs */
  86. #define MAPI_ERROR_MAX          30
  87. #define IDS_LOGONFAIL           (MAPI_ERROR_MAX + 1)
  88. #define IDS_ADDRBOOKFAIL        (MAPI_ERROR_MAX + 2)
  89. #define IDS_RESOLVEFAIL         (MAPI_ERROR_MAX + 3)
  90. #define IDS_UNRESOLVEDNAMES     (MAPI_ERROR_MAX + 4)
  91. #define IDS_SENDERROR           (MAPI_ERROR_MAX + 5)
  92. #define IDS_DETAILS_TOO_MANY    (MAPI_ERROR_MAX + 6)
  93. #define IDS_DETAILSFAIL         (MAPI_ERROR_MAX + 7)
  94. #define IDS_NORECIPS            (MAPI_ERROR_MAX + 8)
  95. #define IDS_SAVEATTACHERROR     (MAPI_ERROR_MAX + 9)
  96. #define IDS_READFAIL            (MAPI_ERROR_MAX + 10)
  97. #define IDS_DIALOGACTIVE        (MAPI_ERROR_MAX + 11)
  98. #define IDS_FILTER              (MAPI_ERROR_MAX + 50)
  99. /* Manifest Constants */
  100. #define ADDR_MAX            128
  101. #define MAXUSERS            10
  102. #define TO_EDIT_MAX         512
  103. #define CC_EDIT_MAX         512
  104. #define SUBJECT_EDIT_MAX    128
  105. #define NOTE_LINE_MAX       1024
  106. #define FILE_ATTACH_MAX     32
  107. /* Message Box styles */
  108. #define MBS_ERROR           (MB_ICONSTOP | MB_OK)
  109. #define MBS_INFO            (MB_ICONINFORMATION | MB_OK)
  110. #define MBS_OOPS            (MB_ICONEXCLAMATION | MB_OK)
  111. /* Structure Definitions */
  112. typedef struct _msgid *LPMSGID;
  113. typedef struct _msgid
  114. {
  115.     LPSTR       lpszMsgID;
  116.     BOOL        fHasAttach;
  117.     BOOL        fUnRead;
  118.     LPSTR       lpszFrom;
  119.     LPSTR       lpszSubject;
  120.     LPSTR       lpszDateRec;
  121.     LPMSGID     lpPrev;
  122.     LPMSGID     lpNext;
  123. } MSGID;
  124. /* Function Prototypes */
  125. int  PASCAL WinMain(HINSTANCE, HINSTANCE, LPSTR, int);
  126. BOOL InitApplication(HANDLE);
  127. BOOL InitInstance(HANDLE, int);
  128. void DeinitApplication(void);
  129. long FAR PASCAL MainWndProc(HWND, UINT, UINT, LPARAM);
  130. BOOL FAR PASCAL AboutDlgProc(HWND, UINT, UINT, LONG);
  131. BOOL FAR PASCAL ComposeDlgProc(HWND, UINT, UINT, LONG);
  132. BOOL FAR PASCAL InBoxDlgProc(HWND, UINT, UINT, LONG);
  133. BOOL FAR PASCAL ReadMailDlgProc(HWND, UINT, UINT, LONG);
  134. BOOL FAR PASCAL OptionsDlgProc(HWND, UINT, UINT, LONG);
  135. BOOL FAR PASCAL DetailsDlgProc(HWND, UINT, UINT, LONG);
  136. void    MakeMessageBox(HWND, ULONG, UINT, UINT);
  137. ULONG   ResolveFriendlyNames(HWND, LPSTR, ULONG, ULONG *, lpMapiRecipDesc *);
  138. ULONG   CopyRecipient(lpMapiRecipDesc, lpMapiRecipDesc, lpMapiRecipDesc);
  139. ULONG   GetNextFile(HWND, ULONG, ULONG *, lpMapiFileDesc *);
  140. ULONG   CopyAttachment(lpMapiFileDesc, lpMapiFileDesc, lpMapiFileDesc);
  141. BOOL    FNameInList(LPSTR, ULONG, lpMapiRecipDesc);
  142. LPMSGID MakeMsgNode(lpMapiMessage, LPSTR);
  143. LPMSGID FindNode(LPMSGID, LPSTR);
  144. void    InsertMsgNode(LPMSGID, LPMSGID *);
  145. void    DeleteMsgNode(LPMSGID, LPMSGID *);
  146. void    FreeMsgList(LPMSGID);
  147. void    MakeDisplayNameStr(LPSTR, ULONG, ULONG, lpMapiRecipDesc);
  148. ULONG   SaveMsgChanges(HWND, lpMapiMessage, LPSTR);
  149. ULONG   MakeNewMessage(lpMapiMessage, UINT);
  150. void    LogSendMail(ULONG);
  151. void    SaveFileAttachments(HWND, lpMapiFileDesc);
  152. void    ToggleMenuState(HWND, BOOL);   
  153. BOOL    fSMAPIInstalled(void);
  154. void SecureMenu(HWND hWnd, BOOL fBeforeLogon);