home *** CD-ROM | disk | FTP | other *** search
/ Power GUI Programming with VisualAge C++ / powergui.iso / trialva / ibmcppw / sdk / mapi / win16 / dev / abview / abview.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-07-11  |  13.1 KB  |  602 lines

  1. /*
  2.  -  A B V I E W . H
  3.  -  Copyright (C) 1995 Microsoft Corporation
  4.  *
  5.  */
  6.  
  7. #ifndef __ABVIEW_H__
  8. #define __ABVIEW_H__
  9.  
  10. #include "resource.h"
  11.  
  12. /* --------------------------------------------- */
  13. /* Properties Dialog defines                     */
  14. /* --------------------------------------------- */
  15.  
  16. #define fmProperty              ((ULONG) 0x00000001)
  17. #define fmPropType              ((ULONG) 0x00000002)
  18. #define fmPropValue             ((ULONG) 0x00000004)
  19. #define fmAProperty             ((ULONG) 0xffffffff)
  20.  
  21. #define VALUES_LB_HOR_SIZE      2000
  22. #define VALUES_LB_TAB1          140
  23. #define VALUES_LB_TAB2          40
  24.                                                                  
  25. /*
  26.  -  CMainWindow
  27.  -
  28.  *  Purpose:
  29.  *      Defines an Object that holds all the info needed for the CLNT's
  30.  *      main window.  
  31.  *
  32.  */
  33.  
  34. class CMainWindow : public CFrameWnd
  35. {
  36. protected:
  37.     virtual void PostNcDestroy();
  38.     afx_msg void OnSysColorChange();
  39.  
  40. public:
  41.             void SetupOnStart();
  42.             void CreateDisplayFonts();
  43.             void DeleteDisplayFonts();
  44.             void LoadDlls();
  45.             void UnloadDlls();
  46.  
  47.     afx_msg void OnAbout();
  48.     afx_msg void OnConfig();
  49.     afx_msg void OnExit();
  50.     afx_msg void OnClose();
  51.  
  52.     afx_msg void OnLogon();
  53.     afx_msg void OnLogoff();
  54.     afx_msg void OnRootContainer();
  55.     afx_msg void OnAddress0();
  56.     afx_msg void OnAddress1();
  57.     afx_msg void OnAddress2();
  58.     afx_msg void OnAddress3();
  59.     afx_msg void OnResolveName();
  60.     afx_msg void OnCreateOneOff();
  61.     afx_msg void OnNewEntry();
  62.  
  63.     DECLARE_MESSAGE_MAP()
  64. };
  65.  
  66. BEGIN_MESSAGE_MAP( CMainWindow, CFrameWnd )
  67.  
  68.     ON_COMMAND( IDM_ABOUT,          OnAbout )
  69.     ON_COMMAND( IDM_CONFIG,         OnConfig )
  70.     ON_COMMAND( IDM_EXIT,           OnExit )
  71.     ON_WM_CLOSE()
  72.  
  73.     ON_COMMAND( IDM_LOGON,          OnLogon )
  74.     ON_COMMAND( IDM_LOGOFF,         OnLogoff )
  75.     ON_COMMAND( IDM_ROOTCONTAINER,  OnRootContainer )
  76.     ON_COMMAND( IDM_ADDRESS0,       OnAddress0 )
  77.     ON_COMMAND( IDM_ADDRESS1,       OnAddress1 )
  78.     ON_COMMAND( IDM_ADDRESS2,       OnAddress2 )
  79.     ON_COMMAND( IDM_ADDRESS3,       OnAddress3 )
  80.     ON_COMMAND( IDM_RESOLVENAME,    OnResolveName )
  81.     ON_COMMAND( IDM_CREATEONEOFF,   OnCreateOneOff )
  82.     ON_COMMAND( IDM_NEWENTRY,       OnNewEntry )
  83.  
  84. END_MESSAGE_MAP()
  85.  
  86.  
  87. /*
  88.  -  CTheApp
  89.  -
  90.  *  Purpose:
  91.  *      Defines an Object that holds all the info needed for the ABCLIENT
  92.  *      Application.  See abclient.cpp for the code to the member functions
  93.  *      and the message map.
  94.  *
  95.  */
  96.  
  97. class CTheApp : public CWinApp
  98. {
  99. protected:
  100.     CMainWindow m_MainWnd;
  101.  
  102. public:
  103.     BOOL InitInstance();
  104.     int  ExitInstance();
  105.     BOOL PreTranslateMessage( MSG*);
  106. };
  107.  
  108.  
  109. /*
  110.  -  CConfigureDlg
  111.  -
  112.  *  Purpose:
  113.  *      Defines the controls for the CConfigureDlg Dialog
  114.  *
  115.  *
  116.  */
  117.  
  118. class CConfigureDlg : public CModalDialog
  119. {
  120. public:
  121.      CConfigureDlg() 
  122.         : CModalDialog( IDD_CONFIG )
  123.     {
  124.         DoModal();
  125.     }
  126.  
  127.     BOOL OnInitDialog();
  128.     void OnOK();
  129.     void OnCancel();
  130.     DECLARE_MESSAGE_MAP();
  131. };
  132.  
  133. BEGIN_MESSAGE_MAP(CConfigureDlg, CModalDialog)
  134. END_MESSAGE_MAP()
  135.  
  136.  
  137.  
  138. /*
  139.  -  CMAPIPropDlg
  140.  -
  141.  *  Purpose:
  142.  *      Defines the controls for the CMAPIPropDlg Dialog
  143.  *
  144.  *
  145.  */
  146.  
  147. class CMAPIPropDlg : public CModalDialog
  148. {
  149. protected:
  150.     LPMAPIPROP      m_lpEntry;
  151.  
  152. public:
  153.     CMAPIPropDlg() { };
  154.  
  155.     CMAPIPropDlg( LPMAILUSER lp )
  156.         : CModalDialog( IDD_MAILUSER )
  157.     {
  158.         m_lpEntry = (LPMAPIPROP)lp;
  159.     }
  160.  
  161.     CMAPIPropDlg( LPABCONT lp )
  162.         : CModalDialog( IDD_CONTAINER )
  163.     {
  164.         m_lpEntry = (LPMAPIPROP)lp;
  165.     }
  166.  
  167.     ~CMAPIPropDlg();
  168.  
  169.     void OnGetPropsThis();
  170.     void OnGetPropListThis();
  171.     void OnPropertyDLL();
  172.     void OnDetails();
  173.     void OnAddToPAB();
  174.     void OnGetIDsFromNames();
  175.     void OnGetNamesFromIDs();
  176.     void OnDetailsTbl();
  177.     DECLARE_MESSAGE_MAP();
  178. };
  179.  
  180. BEGIN_MESSAGE_MAP(CMAPIPropDlg, CModalDialog)
  181.     ON_COMMAND( IDC_GETPROPSTHIS,        OnGetPropsThis )
  182.     ON_COMMAND( IDC_GETPROPLISTTHIS,     OnGetPropListThis )
  183.     ON_COMMAND( IDC_PROPERTYDLL,         OnPropertyDLL )
  184.     ON_COMMAND( IDC_DETAILSTHIS,         OnDetails )
  185.     ON_COMMAND( IDC_ADDTOPAB,            OnAddToPAB )
  186.     ON_COMMAND( IDC_IDSFROMNAMES,        OnGetIDsFromNames )
  187.     ON_COMMAND( IDC_NAMESFROMIDS,        OnGetNamesFromIDs )
  188.     ON_COMMAND( IDC_PR_DETAILS_TABLE,    OnDetailsTbl )
  189. END_MESSAGE_MAP()
  190.  
  191.  
  192.  
  193. /*
  194.  -  CMAPIContainerDlg
  195.  -
  196.  *  Purpose:
  197.  *      Defines the controls for the CMAPIContainerDlg Dialog
  198.  *
  199.  *
  200.  */
  201.  
  202. class CMAPIContainerDlg : public CMAPIPropDlg
  203. {
  204. protected:
  205.     LPMAPITABLE     m_lpMAPITable;
  206.     CString         m_Caption;
  207.     CListBox        m_TableListBox;
  208.     ULONG           m_ulObjType;
  209.     ULONG           m_ulTableTypeFrom;
  210.     ULONG           m_ulCurrentTableType;
  211.     BOOL            m_fCONVENIENT_DEPTH;
  212.  
  213.     CTblList *      m_lpTblList;
  214.  
  215. public:
  216.     CMAPIContainerDlg( LPABCONT lp, ULONG ulObjType, ULONG ulTableTypeFrom, BOOL fCONVENIENT_DEPTH )
  217.         : CMAPIPropDlg( lp )
  218.     {
  219.         m_ulObjType          = ulObjType;
  220.         m_ulTableTypeFrom    = ulTableTypeFrom;
  221.         m_ulCurrentTableType = 0;
  222.         m_lpMAPITable        = NULL;
  223.         m_fCONVENIENT_DEPTH  = fCONVENIENT_DEPTH;
  224.         DoModal();
  225.     }
  226.  
  227.     ~CMAPIContainerDlg();
  228.  
  229.     BOOL OnInitDialog();
  230.     void OnOK();
  231.     void OnCancel();
  232.     
  233.     void OnProperties();
  234.     void OnGetProps();
  235.     void OnGetPropList();
  236.     
  237.     void OnTableDLL();
  238.     void OnPerformance();
  239.     void OnDetailsSel();
  240.     void OnTestThis();
  241.     void OnTestSel();
  242.     void OnAddToPABSel();
  243.     void OnSetAsTargetThis();
  244.     void OnSetAsTargetSel();
  245.     void OnResolveNames();
  246.     void OnOneOffTbl();
  247.  
  248.     DECLARE_MESSAGE_MAP();
  249. };
  250.  
  251. BEGIN_MESSAGE_MAP(CMAPIContainerDlg, CMAPIPropDlg)
  252.     ON_LBN_DBLCLK(IDC_CONTAINERLIST,     OnOK)
  253.     ON_COMMAND( IDC_SHOWTABLEPROPS,      OnProperties )
  254.     ON_COMMAND( IDC_GETPROPS,            OnGetProps )
  255.     ON_COMMAND( IDC_GETPROPLIST,         OnGetPropList )
  256.     ON_COMMAND( IDC_TABLEDLL,            OnTableDLL )
  257.     ON_COMMAND( IDC_PERFORMANCE,         OnPerformance )
  258.     ON_COMMAND( IDC_DETAILS,             OnDetailsSel )
  259.     ON_COMMAND( IDC_ADDTOPABSEL,         OnAddToPABSel )
  260.     ON_COMMAND( IDC_TESTSELDLL,          OnTestSel )
  261.     ON_COMMAND( IDC_TESTTHISDLL,         OnTestThis )
  262.     ON_COMMAND( IDC_SETASTARGETTHIS,     OnSetAsTargetThis )
  263.     ON_COMMAND( IDC_SETASTARGETSEL,      OnSetAsTargetSel )
  264.     ON_COMMAND( IDC_RESOLVENAMES,        OnResolveNames )
  265.     ON_COMMAND( IDC_PR_CREATE_TEMPLATES, OnOneOffTbl )
  266. END_MESSAGE_MAP()
  267.  
  268.  
  269.  
  270.  
  271. /*
  272.  -  CABMailUserDlg
  273.  -
  274.  *  Purpose:
  275.  *      Defines the controls for the CABMailUserDlg Dialog
  276.  *
  277.  *
  278.  */
  279.  
  280. class CABMailUserDlg : public CMAPIPropDlg
  281. {
  282. public:
  283.      CABMailUserDlg( LPMAILUSER lp ) 
  284.         : CMAPIPropDlg(lp)
  285.     {
  286.         DoModal();
  287.     }
  288.  
  289.     BOOL OnInitDialog();
  290.     void OnOK();
  291.     void OnCancel();
  292.     void OnTestThis();
  293.     void OnSetAsTargetThis();
  294.     void OnGetPropListThis();
  295.     DECLARE_MESSAGE_MAP();
  296. };
  297.  
  298. BEGIN_MESSAGE_MAP(CABMailUserDlg, CMAPIPropDlg)
  299.     ON_COMMAND( IDC_TESTTHISDLL,            OnTestThis )
  300.     ON_COMMAND( IDC_SETASTARGETTHIS,        OnSetAsTargetThis )
  301.     ON_COMMAND( IDC_GETPROPLIST,            OnGetPropListThis )
  302. END_MESSAGE_MAP()
  303.  
  304.  
  305. /*
  306.  -  COneOffDlg
  307.  -
  308.  *  Purpose:
  309.  *      Defines the controls for the COneOffDlg Dialog
  310.  *
  311.  *
  312.  */
  313.  
  314. class COneOffDlg : public CModalDialog
  315. {
  316. public:
  317.      COneOffDlg() 
  318.         : CModalDialog( IDD_ONEOFF )
  319.     {
  320.         DoModal();
  321.     }
  322.  
  323.     BOOL OnInitDialog();
  324.     void OnOK();
  325.     void OnCancel();
  326.     DECLARE_MESSAGE_MAP();
  327. };
  328.  
  329. BEGIN_MESSAGE_MAP(COneOffDlg, CModalDialog)
  330. END_MESSAGE_MAP()
  331.  
  332.  
  333. /*
  334.  -  CAdrListDlg
  335.  -
  336.  *  Purpose:
  337.  *      Defines the controls for displaying an Address List
  338.  *
  339.  */
  340.  
  341. class CAdrListDlg : public CModalDialog
  342. {
  343. protected:
  344.     LPADRLIST   m_lpAdrList;
  345.     CString     m_Caption;
  346.     CListBox    m_AdrListBox;
  347.  
  348. public:
  349.     CAdrListDlg( LPADRLIST lp )
  350.         : CModalDialog(IDD_ADRLIST)
  351.     {
  352.         m_lpAdrList = lp;
  353.         m_Caption = "Address List";
  354.         DoModal();
  355.     }
  356.  
  357.     ~CAdrListDlg();
  358.     
  359.     BOOL OnInitDialog();
  360.     void OnOK();
  361.     void OnCancel();
  362.     void OnRecipOptions();
  363.     void OnOpenEntry();
  364.     void OnPrepareRecips();
  365.     DECLARE_MESSAGE_MAP();
  366. };
  367.  
  368. BEGIN_MESSAGE_MAP(CAdrListDlg, CModalDialog)
  369.     ON_LBN_DBLCLK( IDC_ADRLIST,     OnOpenEntry )      // double click for OK
  370.     ON_COMMAND( IDC_RECIPOPTIONS,   OnRecipOptions )
  371.     ON_COMMAND( IDC_OPENENTRY,      OnOpenEntry )
  372.     ON_COMMAND( IDC_PREPARERECIPS,  OnPrepareRecips )
  373. END_MESSAGE_MAP()
  374.  
  375.  
  376. /*
  377.  -  CPropertiesDlg
  378.  -
  379.  *  Purpose:
  380.  *      Defines the controls for the CPropertiesDlg class.
  381.  *      Displays properties given for a single row of an
  382.  *      SRowSet structure.
  383.  *
  384.  */
  385.  
  386. class CPropertiesDlg : public CDialog
  387. {
  388. protected:
  389.     ULONG           m_cValues;
  390.     LPSPropValue    m_lpProps;
  391.     CString         m_Caption;
  392.     ULONG           m_fmDisplay;
  393.     CListBox        m_ListBox;
  394.  
  395.     void RenderProperties( ULONG, LPSPropValue, ULONG );
  396.  
  397. public:
  398.     CPropertiesDlg( ULONG cValues, LPSPropValue lpProps, LPSTR szCaption, ULONG fmDisplay )
  399.     {
  400.         m_cValues   = cValues;
  401.         m_lpProps   = lpProps;
  402.         m_Caption   = szCaption;
  403.         m_fmDisplay = fmDisplay;
  404.         Create(IDD_PROPERTIES);
  405.     }
  406.     
  407.     BOOL OnInitDialog();
  408.     void OnCancel();
  409.     DECLARE_MESSAGE_MAP();
  410. };
  411.  
  412. BEGIN_MESSAGE_MAP(CPropertiesDlg, CDialog)
  413.     ON_LBN_DBLCLK(IDC_PROPLIST,     OnCancel)      // double click for Cancel
  414. END_MESSAGE_MAP()
  415.  
  416.  
  417. /*
  418.  -  CNamedIDsDlg
  419.  -
  420.  *  Purpose:
  421.  *      Defines the controls for the CNamedIDsDlg class.
  422.  *      Displays an array of Named IDs.
  423.  *
  424.  */
  425.  
  426. class CNamedIDsDlg : public CDialog
  427. {
  428. protected:
  429.     ULONG               m_cPropNames;
  430.     LPMAPINAMEID  FAR * m_lppPropNames;
  431.     CString             m_Caption;
  432.     CListBox            m_ListBox;
  433.  
  434.     void RenderNamedIDs( ULONG, LPMAPINAMEID FAR * );
  435.  
  436. public:
  437.     CNamedIDsDlg( ULONG cPropNames, LPMAPINAMEID FAR * lppPropNames, LPSTR szCaption )
  438.     {
  439.         m_cPropNames    = cPropNames;
  440.         m_lppPropNames  = lppPropNames;
  441.         m_Caption       = szCaption;
  442.         Create(IDD_PROPERTIES);
  443.     }
  444.     
  445.     BOOL OnInitDialog();
  446.     void OnCancel();
  447.     DECLARE_MESSAGE_MAP();
  448. };
  449.  
  450. BEGIN_MESSAGE_MAP(CNamedIDsDlg, CDialog)
  451.     ON_LBN_DBLCLK(IDC_PROPLIST,     OnCancel)      // double click for Cancel
  452. END_MESSAGE_MAP()
  453.  
  454.  
  455.  
  456. /*
  457.  -  CGetError
  458.  -
  459.  *  Purpose:
  460.  *      Defines the methods to Get Error Strings.
  461.  *
  462.  *
  463.  */
  464.  
  465. class CGetError
  466. {
  467.     private:
  468.         char    m_szMessage[80];
  469.         char    m_szResult[80];
  470.         char    m_szBuffer[80];
  471.  
  472.     public:
  473.         CGetError()
  474.         {
  475.             m_szMessage[0]  = '\0';
  476.             m_szResult[0]   = '\0';
  477.         };
  478.  
  479.         ~CGetError() { };
  480.  
  481.         LPSTR SzError( LPSTR, SCODE );
  482. #ifdef WIN16
  483.         LPSTR SzError( LPSTR, HRESULT );
  484. #endif
  485. };
  486.  
  487.  
  488. /*
  489.  -  CResolveNameDlg
  490.  -
  491.  *  Purpose:
  492.  *      Prompt user for Name to call ResolveName with.
  493.  *
  494.  */
  495.  
  496. class CResolveNameDlg : public CModalDialog
  497. {
  498. private:
  499.     char            m_szPartialName[256];
  500.     BOOL            m_fCallResolveNames;
  501.     LPABCONT        m_lpABContainer;
  502.     
  503. public:
  504.     CResolveNameDlg()
  505.         : CModalDialog( IDD_RESOLVENAME )
  506.     {
  507.         m_fCallResolveNames = FALSE;
  508.         DoModal();
  509.     }
  510.  
  511.     CResolveNameDlg( LPABCONT lp)
  512.         : CModalDialog( IDD_RESOLVENAME )
  513.     {
  514.         m_fCallResolveNames = TRUE;
  515.         m_lpABContainer     = lp;
  516.         DoModal();
  517.     }
  518.  
  519.     virtual BOOL OnInitDialog();
  520.     virtual void OnOK();
  521.     virtual void OnCancel();
  522.     DECLARE_MESSAGE_MAP();
  523.  
  524.     char* GetName()     { return m_szPartialName; }
  525. };
  526.  
  527. BEGIN_MESSAGE_MAP(CResolveNameDlg, CModalDialog)
  528.     ON_COMMAND( IDOK,             OnOK )
  529.     ON_COMMAND( IDCANCEL,         OnCancel )
  530. END_MESSAGE_MAP()
  531.  
  532.  
  533. /*
  534.  * TABLEVU functions
  535.  */
  536.  
  537. extern HINSTANCE    hlibTBLVU;
  538.  
  539. typedef BOOL (*LPFNVIEWMAPITABLE)(
  540.     LPMAPITABLE FAR *lppMAPITable,
  541.     HWND hWnd
  542. );    
  543.  
  544. extern LPFNVIEWMAPITABLE lpfnViewMapiTable;
  545.  
  546. #define TBLVUViewMapiTable (*lpfnViewMapiTable)
  547.  
  548.  
  549. /*
  550.  * PROPVU functions
  551.  */
  552.  
  553. extern HINSTANCE    hlibPROPVU;
  554.  
  555. typedef BOOL (*LPFNVIEWMAPIPROP)(
  556.     LPSTR       lpszName,
  557.     LPMAPIPROP  FAR *lppMAPIProp,
  558.     LPVOID      lpvDest,
  559.     HWND hWnd
  560. );    
  561.  
  562. extern LPFNVIEWMAPIPROP lpfnViewMapiProp;
  563.  
  564. #define PROPVUViewMapiProp (*lpfnViewMapiProp)
  565.  
  566.  
  567. /*
  568.  * ABPERF functions
  569.  */
  570.  
  571. extern HINSTANCE    hlibPERF;
  572.  
  573. typedef BOOL (*LPFNPERFORMANCE)(
  574.     LPADRBOOK   FAR *lppab,
  575.     LPMAPITABLE FAR *lppMAPITable,
  576.     HWND hWnd
  577. );    
  578.  
  579. extern LPFNPERFORMANCE lpfnPerformance;
  580.  
  581. #define ABPERFormance (*lpfnPerformance)
  582.  
  583.  
  584. /*
  585.  * ABTEST functions
  586.  */
  587.  
  588. extern HINSTANCE    hlibTEST;
  589.  
  590. typedef BOOL (*LPFNTEST)(
  591.     LPADRBOOK     FAR *lppab,
  592.     ULONG              ulObjType,
  593.     LPMAPIPROP    FAR *lppMAPIProp,
  594.     HWND hWnd
  595. );    
  596.  
  597. extern LPFNTEST lpfnTest;
  598.  
  599. #define ABTest (*lpfnTest)
  600.  
  601. #endif  /* __ABVIEW_H__ */
  602.