home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / msdn_vcb / samples / vc98 / sdk / dbmsg / mapi / remote.srv / admin.h < prev    next >
C/C++ Source or Header  |  1996-04-11  |  11KB  |  306 lines

  1. ///////////////////////////////////////////////////////////////////////////////
  2. //
  3. //  File Name 
  4. //      WINDSADM.H
  5. //
  6. //  Description
  7. //
  8. //  Author
  9. //      Irving De la Cruz
  10. //
  11. //  Revision: 1.7
  12. //
  13. // Written for Microsoft Windows Developer Support
  14. // Copyright (c) 1995-1996 Microsoft Corporation. All rights reserved.
  15. //
  16. #ifndef _WINDSADM_H
  17. #define _WINDSADM_H
  18.  
  19. #define STRICT
  20. #include <WINDOWS.H>
  21. #include <WINDOWSX.H>
  22. #include <COMMDLG.H>
  23. #include <COMMCTRL.H>
  24. #include "WRAP3D.H"
  25.  
  26. #ifdef _DEBUG
  27. #define ENABLE_DEBUG_OUTPUT     1
  28. #endif // _DEBUG
  29. #define TRACES_NO_MAPI          1
  30.  
  31. #include "TRACES.H"
  32. #include "RESOURCE.H"
  33.  
  34. #include <RPC.H>
  35. #include "WDSADM.H"    // Header file generated by the MIDL compiler
  36. #include "WINDSGBL.H"
  37.  
  38. //  CTL3D wrapper
  39. extern "C" LPVOID g_pctl3d;
  40.  
  41. #ifdef UNICODE
  42. #error WINDS Administrator: Not ready for UNICODE yet... IrvingD (9/10/95)
  43. #define RemoteAdmTerminateNotif     RemoteAdmTerminateNotifW
  44. #define RemoteAdmValidateNotif      RemoteAdmValidateNotifW
  45. #define RemoteAdmCreateMailbox      RemoteAdmCreateMailboxW
  46. #define RemoteAdmGetMailboxProps    RemoteAdmGetMailboxPropsW
  47. #define RemoteAdmSetMailboxProps    RemoteAdmSetMailboxPropsW
  48. #define RemoteAdmCreateDistList     RemoteAdmCreateDistListW
  49. #define RemoteAdmGetDLProps         RemoteAdmGetDLPropsW
  50. #define RemoteAdmSetDLProps         RemoteAdmSetDLPropsW
  51. #define ADMIN_DL_MEMBERS            ADMIN_DL_MEMBERS_W
  52. #define DLM_LIST                    DLM_LIST_W
  53. #define DLM_INFO                    DLM_INFO_W
  54. #define ADM_MAILBOX_INFO            ADM_MAILBOX_INFO_W
  55. #else
  56. #define RemoteAdmTerminateNotif     RemoteAdmTerminateNotifA
  57. #define RemoteAdmValidateNotif      RemoteAdmValidateNotifA
  58. #define RemoteAdmCreateMailbox      RemoteAdmCreateMailboxA
  59. #define RemoteAdmGetMailboxProps    RemoteAdmGetMailboxPropsA
  60. #define RemoteAdmSetMailboxProps    RemoteAdmSetMailboxPropsA
  61. #define RemoteAdmCreateDistList     RemoteAdmCreateDistListA
  62. #define RemoteAdmGetDLProps         RemoteAdmGetDLPropsA
  63. #define RemoteAdmSetDLProps         RemoteAdmSetDLPropsA
  64. #define ADMIN_DL_MEMBERS            ADMIN_DL_MEMBERS_A
  65. #define DLM_LIST                    DLM_LIST_A
  66. #define DLM_INFO                    DLM_INFO_A
  67. #define ADM_MAILBOX_INFO            ADM_MAILBOX_INFO_A
  68. #endif // UNICODE
  69.  
  70. enum
  71. {
  72.     IMG_MAILABLE_OBJECTS_CLOSE  = 0,
  73.     IMG_MAILABLE_OBJECTS_OPEN,
  74.     IMG_PUBLIC_FOLDER,
  75.     IMG_USER,
  76.     IMG_FOREIGN_USER,
  77.     IMG_MAIL_GROUP,
  78.     IMG_DIST_LIST,
  79.     IMG_SERVER_PUB_FOLDER,
  80.     IMG_SERVER,
  81.     IMG_SERVER_OBJECTS,
  82.     IMG_SERVER_GATEWAY,
  83.     IMG_GATEWAY,
  84.     IMG_USER_MAILBOX,
  85.     IMG_FOLDER_CLOSE,
  86.     IMG_FOLDER_OPEN,
  87. };
  88.  
  89. enum
  90. {
  91.     ICON_AUTO_REPLY     = 0,
  92.     ICON_CONSTRUCT,
  93.     ICON_DL_MEMBERS,
  94.     ICON_LABELS,
  95.     ICON_LARGE_ENVEL,
  96.     ICON_MAILBOX,
  97.     ICON_PHONE_HAND,
  98.     ICON_KEY,
  99.     ICON_PEOPLE,
  100.     ICON_DL_OWNER,
  101.     ICON_CONNECT,
  102.     ICON_TIMEUP,
  103.     ICON_WORLD,
  104.     ICON_CLIP
  105. };
  106.  
  107. #define WM_WINDS_UPDATEHEADERWIDTH          (WM_USER + 100)
  108. #define WM_WINDS_REMOTE_CALL_IN_PROGRESS    (WM_USER + 101)
  109. #define WM_WINDS_REMOTE_CALL_COMPLETED      (WM_USER + 102)
  110. #define WM_WINDS_RESET_NOTIF_LINK           (WM_USER + 103)
  111. #define WM_WINDS_IMPORT_START               (WM_USER + 104)
  112. #define WM_WINDS_IMPORT_FINISHED            (WM_USER + 105)
  113. #define WM_WINDS_EXPORT_START               (WM_USER + 106)
  114. #define WM_WINDS_EXPORT_FINISHED            (WM_USER + 107)
  115.  
  116. typedef enum _ITEM_TYPE
  117. {
  118.     ITEM_UNDEFINED_TYPE,
  119.     ITEM_SERVER_USER_MAILBOXES,
  120.     ITEM_SERVER_DIST_LISTS,
  121.     ITEM_SERVER_FOREIGN_MAILBOXES,
  122.     ITEM_SERVER_PUBLIC_FOLDERS,
  123.     ITEM_SERVER_GATEWAYS,
  124.     ITEM_REMOTE_SERVER,
  125.     ITEM_OBJECT_DIRECTORY
  126. } ITEM_TYPE;
  127.  
  128. typedef struct _OBJECT_INFO_A
  129. {
  130.     DWORD               dwData;
  131.     WINDS_AB_OBJTYPE    Type;
  132.     MAILBOX_INFO_A      MB;
  133.     DIST_LIST_INFO_A    DL;
  134.     DLM_LIST_A *        pMembers;
  135. } OBJECT_INFO_A, *POBJECT_INFO_A;
  136.  
  137. #ifdef UNICODE
  138. #define OBJECT_INFO     OBJECT_INFO_W
  139. #define POBJECT_INFO    POBJECT_INFO_W
  140. #else
  141. #define OBJECT_INFO     OBJECT_INFO_A
  142. #define POBJECT_INFO    POBJECT_INFO_A
  143. #endif // UNICODE
  144.  
  145. extern "C"
  146. {
  147.     extern ITEM_TYPE g_LVItemsType;
  148.     extern HINSTANCE ghInstance;
  149.     extern HANDLE ghMemHeap;
  150.     extern HANDLE ghCancelEvent;
  151.     extern HWND ghTreeView, ghListView, ghWnd, ghStatusBar, ghToolBar;
  152.     extern BOOL gfCancel, gfRPCinProgress;
  153.     extern HFONT ghBoldFont;
  154.     extern CRITICAL_SECTION csCancel;
  155.     extern CRITICAL_SECTION csRemoteServer;
  156.     extern TCHAR g_szCurrentServer[];
  157.     extern HIMAGELIST g_hImages, g_hIconImgs;
  158.  
  159.     void WINAPI AddServerToList
  160.                         (LPTSTR                     szServer,
  161.                          BOOL                       fExpandRoot);
  162.  
  163.     void WINAPI CreateNewMailbox
  164.                         (HWND                       hOwnerWnd);
  165.     void WINAPI CreateNewDistList
  166.                         (HWND                       hOwnerWnd);
  167.     void WINAPI CreateNewPubFolder
  168.                         (HWND                       hOwnerWnd);
  169.     void WINAPI ShowMailboxProps
  170.                         (HWND                       hOwnerWnd,
  171.                          DWORD                      dwObjID);
  172.     void WINAPI ShowDistListProps
  173.                         (HWND                       hOwnerWnd,
  174.                          DWORD                      dwObjID);
  175.     void WINAPI DeleteServerObject
  176.                         (HWND                       hOwnerWnd,
  177.                          DWORD                      dwObjID);
  178.     void WINAPI PurgeMailboxMessages
  179.                         (HWND                       hOwnerWnd,
  180.                          DWORD                      dwObjID);
  181.     void WINAPI ErrorHandler
  182.                         (HWND                       hOwnerWnd,
  183.                          HRESULT                    hError);
  184.     void WINAPI DrawListViewItem
  185.                         (LPDRAWITEMSTRUCT           pDIS);
  186.     void WINAPI UpdateHeaderWidth
  187.                         (HWND                       hWndHeader,
  188.                          int                        iItem);
  189.  
  190.     BOOL WINAPI CreateListView
  191.                         (HWND                       hOwnerWnd,
  192.                          HIMAGELIST                 hImages);
  193.     BOOL WINAPI CreateTreeView
  194.                         (HWND                       hOwnerWnd,
  195.                          HIMAGELIST                 hImages);
  196.     BOOL WINAPI CreateStatusBar
  197.                         (HWND                       hOwnerWnd);
  198.     BOOL WINAPI CreateToolBar
  199.                         (HWND                       hOwnerWnd);
  200.     BOOL WINAPI IsObjAliasValid
  201.                         (HWND                       hOwnerWnd,
  202.                          LPTSTR                     szObjAlias);
  203.  
  204.     HRESULT WINAPI BindToServer
  205.                         (LPTSTR                     szServer);
  206.     HRESULT WINAPI GetServerMailboxes
  207.                         (HWND                       hOwnerWnd);
  208.     HRESULT WINAPI GetServerDistLists
  209.                         (HWND                       hOwnerWnd);
  210.     HRESULT WINAPI DownloadBulkInfo
  211.                         (HWND                       hOwnerWnd,
  212.                          HWND                       hListView,
  213.                          ITEM_TYPE                  Type);
  214.     
  215.     HCURSOR WINAPI GetAnimatedTimerCursor
  216.                         ();
  217.  
  218.     BOOL WINAPI BrowseFileName
  219.                         (HWND                       hOwnerWnd,
  220.                          LPTSTR                     szFileName,
  221.                          BOOL                       fImport);
  222.     BOOL CALLBACK AboutDlgProc
  223.                         (HWND                       hDlg, 
  224.                          UINT                       message, 
  225.                          WPARAM                     wParam, 
  226.                          LPARAM                     lParam);
  227.     BOOL CALLBACK ServerConnectDlgProc
  228.                         (HWND                       hDlg, 
  229.                          UINT                       message, 
  230.                          WPARAM                     wParam, 
  231.                          LPARAM                     lParam);
  232.     BOOL CALLBACK ExportDlgProc
  233.                         (HWND                       hDlg, 
  234.                          UINT                       message, 
  235.                          WPARAM                     wParam, 
  236.                          LPARAM                     lParam);
  237.     BOOL CALLBACK ImportDlgProc
  238.                         (HWND                       hDlg, 
  239.                          UINT                       message, 
  240.                          WPARAM                     wParam, 
  241.                          LPARAM                     lParam);
  242.     BOOL CALLBACK ImportProgressDlgProc
  243.                         (HWND                       hDlg, 
  244.                          UINT                       message, 
  245.                          WPARAM                     wParam, 
  246.                          LPARAM                     lParam);
  247.     BOOL CALLBACK ExportProgressDlgProc
  248.                         (HWND                       hDlg, 
  249.                          UINT                       message, 
  250.                          WPARAM                     wParam, 
  251.                          LPARAM                     lParam);
  252.     BOOL CALLBACK RemoveServersDlgProc
  253.                         (HWND                       hDlg, 
  254.                          UINT                       message, 
  255.                          WPARAM                     wParam, 
  256.                          LPARAM                     lParam);
  257.     BOOL CALLBACK SelectUserDlgProc
  258.                         (HWND                       hDlg, 
  259.                          UINT                       message, 
  260.                          WPARAM                     wParam, 
  261.                          LPARAM                     lParam);
  262. };
  263.  
  264. inline BOOL WINAPI AbortRemoteCall()
  265. {
  266.     BOOL fState;
  267.     EnterCriticalSection (&csCancel);
  268.     fState = gfCancel;
  269.     if (TRUE == gfCancel)
  270.     {
  271.         gfCancel = FALSE;
  272.     }
  273.     LeaveCriticalSection (&csCancel);
  274.     return fState;
  275. }
  276.  
  277. class CNotifLink;
  278.  
  279. extern CNotifLink * gpLink;
  280.  
  281. DWORD WINAPI MailslotListenThreadProc (CNotifLink * pLink);
  282.  
  283. class CNotifLink
  284. {
  285. public :
  286.     STDMETHODIMP StartNotification
  287.                         ();
  288.     STDMETHODIMP EndNotifications
  289.                         ();
  290.     inline HANDLE WINAPI GetListenMailslot
  291.                         () { return m_hMailSlot; }
  292.  
  293. public :
  294.     CNotifLink();
  295.     ~CNotifLink();
  296.  
  297. private :
  298.     HANDLE      m_hMailSlot;
  299.     ULONG       m_ulConnectionID;
  300.     TCHAR       m_szComputerName[MAX_COMPUTERNAME_LENGTH + 1];
  301. };
  302.  
  303. #endif // _WINDSADM_H
  304.  
  305. // End of file for WINDSADM.H
  306.