home *** CD-ROM | disk | FTP | other *** search
/ Tools / WinSN5.0Ver.iso / NETSCAP.50 / WIN1998.ZIP / ns / cmd / winfe / addrfrm.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-04-08  |  17.8 KB  |  574 lines

  1. /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
  2.  *
  3.  * The contents of this file are subject to the Netscape Public License
  4.  * Version 1.0 (the "NPL"); you may not use this file except in
  5.  * compliance with the NPL.  You may obtain a copy of the NPL at
  6.  * http://www.mozilla.org/NPL/
  7.  *
  8.  * Software distributed under the NPL is distributed on an "AS IS" basis,
  9.  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
  10.  * for the specific language governing rights and limitations under the
  11.  * NPL.
  12.  *
  13.  * The Initial Developer of this code under the NPL is Netscape
  14.  * Communications Corporation.  Portions created by Netscape are
  15.  * Copyright (C) 1998 Netscape Communications Corporation.  All Rights
  16.  * Reserved.
  17.  */
  18.  
  19. #ifndef _addrfrm_h_
  20. #define _addrfrm_h_
  21.  
  22. // ADDRFRM.H
  23. //
  24. // DESCRIPTION:
  25. //        This file contains the declarations of the various address book related
  26. //        classes.
  27. //
  28.  
  29. #include "outliner.h"
  30. #include "apimsg.h"
  31. #include "xp_core.h"
  32. #include "addrbook.h"
  33. #include "abmldlg.h"
  34. #include "mailfrm.h"
  35. #include "mnrccln.h"
  36.  
  37. // above the range for normal EN_ messages
  38. #define PEN_ILLEGALCHAR     0x8000
  39.             // sent to parent when illegal character hit
  40.             // return 0 if you want parsed edit to beep
  41.  
  42. #define NETSCAPE_ADDRESS_FORMAT      "Netscape Address Book Format"
  43. #define ADDRESSBOOK_SOURCETARGET_FORMAT "Netscape Address Book source-target"
  44.  
  45. #define IDW_ADDRESS_SLIDER            AFX_IDW_PANE_FIRST
  46. #define IDW_DIRECTORY_PANE            (AFX_IDW_PANE_FIRST+1)
  47. #define IDW_RESULTS_PANE            (AFX_IDW_PANE_FIRST+2)
  48.  
  49. // Definitions for column headings in the outliner control
  50.  
  51. #define DEF_VISIBLE_COLUMNS            5
  52. #define ID_COLADDR_TYPE                1
  53. #define ID_COLADDR_NAME                2
  54. #define ID_COLADDR_EMAIL            3
  55. #define ID_COLADDR_COMPANY            4
  56. #define ID_COLADDR_PHONE            5
  57. #define ID_COLADDR_LOCALITY            6
  58. #define ID_COLADDR_NICKNAME            7
  59.  
  60. #define DEF_DIRVISIBLE_COLUMNS        2
  61. #define ID_COLDIR_TYPE                1
  62. #define ID_COLDIR_NAME                2
  63.  
  64. // array of indexes for IDB_ADDRESSBOOK bitmap
  65. #define IDX_ADDRESSBOOKPERSON   0
  66. #define IDX_ADDRESSBOOKLIST        1
  67. #define IDX_ADDRESSBOOKPERCARD  2
  68.  
  69. // array of indexes for IDB_DIRLIST bitmap
  70. #define IDX_DIRLDAPAB            0
  71. #define IDX_DIRPERSONALAB        1
  72.  
  73. // call to build a menu of PABs
  74. void WFE_MSGBuildAddressBookPopup( HMENU hmenu, BOOL bInHeaders = FALSE );
  75.  
  76. class CAddrCX: public CStubsCX {
  77.  
  78. public:
  79.     CAddrCX() : CStubsCX (AddressCX, MWContextAddressBook) {}
  80.     void DestroyContext();
  81. };
  82.  
  83. /****************************************************************************
  84. *
  85. *    Class: CAddrBar
  86. *
  87. *    DESCRIPTION:
  88. *        This class is used to process the dialog bar at the top of the address
  89. *        book.  Mainly used for typedown.
  90. *
  91. ****************************************************************************/
  92. class CAddrBar : public CDialogBar
  93. {
  94. public:
  95.     CAddrBar ( );
  96.     virtual ~CAddrBar ( );
  97.     void    UpdateDirectories();
  98.  
  99. // Attributes
  100. public:
  101.     int                m_iWidth;
  102.     UINT            m_uTypedownClock;
  103.     CString            m_save;
  104.     int                m_savedir;
  105.     HFONT            m_pFont;
  106.       XP_Bool            m_bRemoveLDAPDir;
  107.  
  108. #ifdef XP_WIN16
  109.     CSize m_sizeDefault;
  110. #endif
  111.  
  112. protected:
  113.     // ClassWizard generated virtual function overrides
  114.     //{{AFX_VIRTUAL(CAddrBar)
  115. public:
  116.     void SetDirectoryIndex (int directory);
  117. protected:
  118.     virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
  119.     //}}AFX_VIRTUAL
  120.  
  121.     //{{AFX_DATA(CAddrBar)
  122.     CString    m_name;
  123.     int        m_directory;
  124.     //}}AFX_DATA
  125.  
  126. public:    
  127.     BOOL Create( CWnd*, UINT, UINT, UINT );
  128.     // Generated message map functions
  129.     //{{AFX_MSG(CAddrBar)
  130.     afx_msg int OnCreate( LPCREATESTRUCT );
  131.     afx_msg void OnSize( UINT, int, int);
  132.     afx_msg void OnTimer( UINT );
  133.     afx_msg void OnChangeName();
  134.     afx_msg void OnSetFocusName();
  135.     afx_msg void OnChangeDirectory();
  136.     afx_msg void OnExtDirectorySearch();
  137.     afx_msg void OnKillFocus( CWnd* pNewWnd );
  138.     //}}AFX_MSG
  139.     DECLARE_MESSAGE_MAP()
  140. };
  141.  
  142. /****************************************************************************
  143. *
  144. *    Class: CAddrFrame
  145. *
  146. *    DESCRIPTION:
  147. *        This class is used to as the main frame window for the address book.
  148. *
  149. ****************************************************************************/
  150. class COutlinerView;
  151. class CAddrOutliner;
  152. class CAddrOutlinerParent;
  153. class CDirOutliner;
  154. class CDirOutlinerParent;
  155. class CAddrEditProperties;
  156. class CAddrEntryList;
  157.  
  158. class CAddrFrame : public CGenericFrame, public CStubsCX, public IMailFrame {
  159.     DECLARE_DYNCREATE(CAddrFrame)
  160.  
  161. // Attributes
  162. protected:
  163.  
  164.     friend class CAddrEntryList;
  165.  
  166.     CAddrBar    m_barAddr;
  167.     int            m_iWidth;
  168.  
  169.     CMailNewsSplitter    *m_pSplitter;
  170.     CAddrOutliner        *m_pOutliner;
  171.     CAddrOutlinerParent *m_pOutlinerParent;
  172.     CDirOutliner        *m_pDirOutliner;
  173.     CDirOutlinerParent    *m_pDirOutlinerParent;
  174.     CObArray            m_userPropList;            // Contains user property pointers
  175.     CObArray            m_listPropList;            // Contains mailing list property pointers
  176.  
  177.     LPMSGLIST            m_pIAddrList;
  178.     ABPane                *m_addrBookPane;
  179.     int32                m_iProgress;
  180.     BOOL                m_bSearching;
  181.  
  182. //    CAddrFrame(); // protected constructor used by dynamic creation
  183.     virtual ~CAddrFrame();
  184.  
  185.     // IUnknown Interface
  186.     STDMETHODIMP            QueryInterface(REFIID,LPVOID *);
  187.     STDMETHODIMP_(ULONG)    AddRef(void);
  188.     STDMETHODIMP_(ULONG)    Release(void);
  189.  
  190.     // From CStubsCX
  191.     virtual void Progress(MWContext *pContext, const char *pMessage);
  192.     virtual void SetProgressBarPercent(MWContext *pContext, int32 lPercent);
  193.     virtual void AllConnectionsComplete(MWContext *pContext);
  194.     virtual CWnd *GetDialogOwner() const { return (CWnd *) this; }
  195.  
  196.     // Support for IMsgList Interface (Called by CAddrEntryList)
  197.     virtual void ListChangeStarting( MSG_Pane* pane, XP_Bool asynchronous,
  198.                                      MSG_NOTIFY_CODE notify, MSG_ViewIndex where,
  199.                                      int32 num);
  200.     virtual void ListChangeFinished( MSG_Pane* pane, XP_Bool asynchronous,
  201.                                      MSG_NOTIFY_CODE notify, MSG_ViewIndex where,
  202.                                      int32 num);
  203.  
  204. // Operations
  205. public:
  206.     CAddrFrame();
  207.     static CAddrFrame *Open();
  208.     static void UpdateMenu(HMENU hMenu, UINT &nID);
  209.  
  210.     // Support for IMailFrame
  211.     virtual CMailNewsFrame *GetMailNewsFrame();
  212.     virtual MSG_Pane *GetPane();
  213.     virtual void PaneChanged( MSG_Pane *pane, XP_Bool asynchronous, 
  214.                               MSG_PANE_CHANGED_NOTIFY_CODE, int32 value);
  215.     virtual void AttachmentCount(MSG_Pane *messagepane, void* closure,
  216.                                  int32 numattachments, XP_Bool finishedloading) {};
  217.     virtual void UserWantsToSeeAttachments(MSG_Pane *messagepane, void *closure) {};
  218.  
  219.     enum { ToolInvalid = -1, ToolText = 0, ToolPictures = 1, ToolBoth = 2 };
  220.  
  221.     // Callback from LDAP search
  222.     void SetSearchResults(MSG_ViewIndex index, int32 num);
  223.     void CloseUserProperties (CAddrEditProperties* wnd, ABID entryID);
  224.     void CloseListProperties (CABMLDialog* wnd, ABID entryID);
  225.     XP_Bool IsSearching () { return m_bSearching; }
  226.  
  227.     void OnTypedown (char* name);
  228.     void OnChangeDirectory (int dirIndex);
  229.     void OnUpdateDirectorySelection (int dirIndex);
  230.     void OnExtendedDirectorySearch();
  231.     void OnDirectoryList(char* searchString);
  232.     static void HandleErrorReturn(int XPErrorID, CWnd* parent = NULL, int errorID = 0);
  233.     static void Close();
  234.     void UpdateDirectories();
  235.     DIR_Server * GetCurrentDirectoryServer ();
  236.  
  237. #ifndef _WIN32
  238.     CWnd *CreateView(CCreateContext* pContext, UINT nID = AFX_IDW_PANE_FIRST);
  239. #endif
  240.  
  241.     void DoUpdateAddressBook( CCmdUI* pCmdUI, AB_CommandType cmd, BOOL bUseCheck = TRUE );
  242.  
  243. // Overrides
  244.     // ClassWizard generated virtual function overrides
  245.     //{{AFX_VIRTUAL(CAddrFrame)
  246.     public:
  247.     protected:
  248.     virtual BOOL PreTranslateMessage( MSG* pMsg );
  249.     virtual void RecalcLayout( BOOL bNotify = TRUE ) { CFrameWnd::RecalcLayout( bNotify ); }
  250.     virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
  251.     virtual BOOL LoadFrame( UINT nIDResource, DWORD dwDefaultStyle = WS_OVERLAPPEDWINDOW | FWS_ADDTOTITLE, 
  252.         CWnd* pParentWnd = NULL, CCreateContext* pContext = NULL );  
  253.     virtual BOOL OnCreateClient( LPCREATESTRUCT lpcs, CCreateContext* pContext );
  254.     virtual void PostNcDestroy( ) {}; // Overridden to prevent auto-delete on destroy
  255.     //}}AFX_VIRTUAL
  256.  
  257. // Implementation
  258. protected:
  259.     // Generated message map functions
  260.     //{{AFX_MSG(CAddrFrame)
  261.     afx_msg void OnGetMinMaxInfo( MINMAXINFO FAR* lpMMI );
  262.     afx_msg int OnCreate(LPCREATESTRUCT);
  263.     afx_msg void OnUpdateSecureStatus(CCmdUI *pCmdUI);
  264.     afx_msg void OnShowWindow( BOOL bShow, UINT nStatus );
  265.     afx_msg void OnClose();
  266.     afx_msg void OnFileClose();
  267.     afx_msg void OnSize(UINT, int, int);
  268.     afx_msg void OnExtDirectorySearch();
  269.     afx_msg void OnUpdateSearch( CCmdUI *pCmdUI );
  270.     afx_msg void OnImportFile();
  271.     afx_msg void OnUpdateImport( CCmdUI *pCmdUI );
  272.     afx_msg void OnExportFile();
  273.     afx_msg void OnUpdateExport ( CCmdUI *pCmdUI );
  274.     afx_msg void OnStopSearch();
  275.     afx_msg void OnUpdateStopSearch ( CCmdUI *pCmdUI );
  276.     afx_msg void OnViewCommandToolbar();
  277.     afx_msg void OnUpdateViewCommandToolbar(CCmdUI* pCmdUI);
  278.     afx_msg void OnLDAPSearch();
  279.     afx_msg void OnComposeMsg(void);
  280.     afx_msg void OnUpdateComposeMsg(CCmdUI*);
  281.     afx_msg void OnCall(void);
  282.     afx_msg void OnUpdateCall(CCmdUI*);
  283.     afx_msg void OnAddUser(void);
  284.     afx_msg void OnUpdateAddUser(CCmdUI*);
  285.     afx_msg void OnAddAB(void);
  286.     afx_msg void OnUpdateAddAB(CCmdUI*);
  287.     afx_msg void OnAddDir(void);
  288.     afx_msg void OnUpdateAddDir(CCmdUI*);
  289.     afx_msg void OnHTMLDomains(void);
  290.     afx_msg void OnUpdateHTMLDomains(CCmdUI*);
  291.     afx_msg void OnAddList(void);
  292.     afx_msg void OnUpdateAddList(CCmdUI*);
  293.     afx_msg void OnSwitchSortFirstLast(void);
  294.     afx_msg void OnUpdateSwitchSort(CCmdUI*);
  295.     afx_msg void OnDeleteItem(void);
  296.     afx_msg void OnUpdateDeleteItem(CCmdUI*);
  297.     afx_msg void OnUndo(void);
  298.     afx_msg void OnUpdateUndo(CCmdUI*);
  299.     afx_msg void OnRedo(void);
  300.     afx_msg void OnUpdateRedo(CCmdUI*);
  301.     afx_msg    void OnItemProperties(void);
  302.     afx_msg void OnUpdateItemProperties(CCmdUI*);
  303.     afx_msg    void OnSortType(void);
  304.     afx_msg void OnUpdateSortType(CCmdUI*);
  305.     afx_msg    void OnSortName(void);
  306.     afx_msg void OnUpdateSortName(CCmdUI*);
  307.     afx_msg    void OnSortNickName(void);
  308.     afx_msg void OnUpdateSortNickName(CCmdUI*);
  309.     afx_msg    void OnSortEmailAddress(void);
  310.     afx_msg void OnUpdateSortEmailAddress(CCmdUI*); 
  311.     afx_msg    void OnSortCompany(void);
  312.     afx_msg void OnUpdateSortCompany(CCmdUI*);
  313.     afx_msg    void OnSortLocality(void);
  314.     afx_msg void OnUpdateSortLocality(CCmdUI*);
  315.     afx_msg    void OnSortAscending(void);
  316.     afx_msg void OnUpdateSortAscending(CCmdUI*);
  317.     afx_msg    void OnSortDescending(void);
  318.     afx_msg void OnUpdateSortDescending(CCmdUI*);
  319.     afx_msg void OnSave();
  320.     afx_msg void OnDestroy();
  321.     afx_msg void OnHelpMenu();
  322.     afx_msg void OnUpdateShowAddressBookWindow(CCmdUI*);
  323.     afx_msg void OnCreateCard();
  324.     //}}AFX_MSG
  325.  
  326.     DECLARE_MESSAGE_MAP()
  327. }; // END OF CLASS CAddrFrame()
  328.  
  329.  
  330. /****************************************************************************
  331. *
  332. *    Class: CAddrOutliner
  333. *
  334. *    DESCRIPTION:
  335. *        This class is the column/list object in the address book
  336. *
  337. ****************************************************************************/
  338. class CAddrOutliner : public CMSelectOutliner
  339. {
  340. friend class CAddrOutlinerParent;
  341.  
  342. protected:
  343.     int                    m_attribSortBy;
  344.     int                    m_lineindex;
  345.     char*                m_pszExtraText;
  346.     CLIPFORMAT            m_cfAddresses;
  347.     CLIPFORMAT            m_cfSourceTarget;
  348.     ABPane*                m_pane;
  349.     int                    m_iMysticPlane;
  350.     BOOL                m_bSortAscending;
  351.     MWContext*            m_pContext;
  352.     int                    m_dirIndex;
  353.     AB_EntryLine        m_EntryLine;
  354.     HFONT                m_hFont;
  355.     CString                m_psTypedown;
  356.     UINT                m_uTypedownClock;
  357.  
  358. public:
  359.     CAddrOutliner ( );
  360.     virtual ~CAddrOutliner ( );
  361.  
  362.     void    UpdateCount();
  363.     void    OnTypedown (char* name);
  364.     void    OnChangeDirectory(int dirIndex);
  365.     int        GetSortBy() { return m_attribSortBy; }
  366.     void    SetDirectoryIndex (int dirIndex);
  367.     int        GetDirectoryIndex () { return m_dirIndex; }
  368.     BOOL    GetSortAscending() { return m_bSortAscending; }
  369.  
  370.     virtual void OnSelChanged();
  371.     virtual void OnSelDblClk();
  372.  
  373.     virtual HFONT GetLineFont( void *pLineData );
  374.     virtual LPCTSTR GetColumnText ( UINT iColumn, void * pLineData );
  375.     virtual void * AcquireLineData ( int iLine );
  376.     virtual void ReleaseLineData ( void * pLineData );
  377.     virtual void GetTreeInfo ( int iLine, uint32 * pFlags, int * iDepth, 
  378.                                OutlinerAncestorInfo ** pAncestor );
  379.     virtual int TranslateIcon ( void *);
  380.     virtual int TranslateIconFolder ( void *);
  381.  
  382.     void SetPane( ABPane *pane );
  383.     ABPane* GetPane() { return m_pane; }
  384.     DIR_Server * GetCurrentDirectoryServer ();
  385.  
  386.     MWContext *GetContext() { return m_pContext; }
  387.     void SetContext( MWContext *pContext ) { m_pContext = pContext; }
  388.  
  389.     virtual void MysticStuffStarting( XP_Bool asynchronous,
  390.                                      MSG_NOTIFY_CODE notify, 
  391.                                      MSG_ViewIndex where,
  392.                                      int32 num);
  393.     virtual void MysticStuffFinishing( XP_Bool asynchronous,
  394.                                       MSG_NOTIFY_CODE notify, 
  395.                                       MSG_ViewIndex where,
  396.                                       int32 num);
  397.  
  398.     virtual BOOL RenderData ( UINT iColumn, CRect & rect, CDC & pdc, const char * );
  399.     virtual BOOL DeleteItem ( int iLine );
  400.  
  401.     virtual BOOL ColumnCommand ( int iColumn, int iLine );
  402.  
  403.     virtual void InitializeClipFormats(void);
  404.     virtual CLIPFORMAT * GetClipFormatList(void);
  405.     virtual void AcceptDrop(int iLineNo, COleDataObject *object, DROPEFFECT effect);
  406.     virtual COleDataSource * GetDataSource(void);
  407.     virtual void PropertyMenu ( int iSel, UINT flags );
  408.  
  409.     // Implementation
  410. protected:
  411.     // Generated message map functions
  412.     //{{AFX_MSG(CAddrOutliner)
  413.     afx_msg void OnTimer( UINT );
  414.     afx_msg void OnKeyDown ( UINT nChar, UINT nRepCnt, UINT nFlags );
  415.     afx_msg void OnKillFocus( CWnd* pNewWnd );
  416.     //}}AFX_MSG
  417.  
  418.     DECLARE_MESSAGE_MAP()
  419.  
  420. }; // END OF CLASS CAddrOutliner()
  421.  
  422.  
  423. /****************************************************************************
  424. *
  425. *    Class: CAddrOutlinerParent
  426. *
  427. *    DESCRIPTION:
  428. *        This class is the window around the column/list object in the address 
  429. *        book.  It is mainly purpose is to draw the column headings.
  430. *
  431. ****************************************************************************/
  432. class CAddrOutlinerParent : public COutlinerParent 
  433. {
  434. public:
  435.     CAddrOutlinerParent();
  436.     virtual ~CAddrOutlinerParent();
  437.     virtual COutliner * GetOutliner ( );
  438.     virtual void CreateColumns ( );
  439.     virtual BOOL RenderData ( int idColumn, CRect & rect, CDC & dc, const char *);
  440.     virtual BOOL ColumnCommand ( int idColumn );
  441.  
  442. // Implementation
  443. protected:
  444.     // Generated message map functions
  445.     //{{AFX_MSG(CAddrOutlinerParent)
  446.     afx_msg void OnDestroy();
  447.     afx_msg void OnLButtonUp ( UINT nFlags, CPoint point );
  448.  
  449.     //}}AFX_MSG
  450.  
  451.     DECLARE_MESSAGE_MAP()
  452. };
  453.  
  454.  
  455. /****************************************************************************
  456. *
  457. *    Class: CAddrOutliner
  458. *
  459. *    DESCRIPTION:
  460. *        This class is the column/list object in the address book
  461. *
  462. ****************************************************************************/
  463. class CDirOutliner : public CMSelectOutliner
  464. {
  465. friend class CDirOutlinerParent;
  466.  
  467. protected:
  468.     int                    m_attribSortBy;
  469.     int                    m_lineindex;
  470.     char*                m_pszExtraText;
  471.     CLIPFORMAT            m_cfAddresses;
  472.     CLIPFORMAT            m_cfSourceTarget;
  473.     ABPane*                m_pane;
  474.     int                    m_iMysticPlane;
  475.     BOOL                m_bSortAscending;
  476.     MWContext*            m_pContext;
  477.     DIR_Server*            m_pDirLine;
  478.     int                    m_dirIndex;
  479.     HFONT                m_hFont;
  480.  
  481. public:
  482.     CDirOutliner ( );
  483.     virtual ~CDirOutliner ( );
  484.  
  485.     void    UpdateCount();
  486.     void    OnChangeDirectory(int dirIndex);
  487.     int        GetSortBy() { return m_attribSortBy; }
  488.     void    SetDirectoryIndex (int dirIndex);
  489.     int        GetDirectoryIndex () { return m_dirIndex; }
  490.     BOOL    GetSortAscending() { return m_bSortAscending; }
  491.  
  492.     virtual void OnSelChanged();
  493.     virtual void OnSelDblClk();
  494.  
  495.     virtual HFONT GetLineFont( void *pLineData );
  496.     virtual LPCTSTR GetColumnText ( UINT iColumn, void * pLineData );
  497.     virtual void * AcquireLineData ( int iLine );
  498.     virtual void ReleaseLineData ( void * pLineData );
  499.     virtual void GetTreeInfo ( int iLine, uint32 * pFlags, int * iDepth, 
  500.                                OutlinerAncestorInfo ** pAncestor );
  501.     virtual int TranslateIcon ( void *);
  502.     virtual int TranslateIconFolder ( void *);
  503.  
  504.     void SetPane( ABPane *pane );
  505.     ABPane* GetPane() { return m_pane; }
  506.  
  507.     MWContext *GetContext() { return m_pContext; }
  508.     void SetContext( MWContext *pContext ) { m_pContext = pContext; }
  509.  
  510.     virtual void MysticStuffStarting( XP_Bool asynchronous,
  511.                                      MSG_NOTIFY_CODE notify, 
  512.                                      MSG_ViewIndex where,
  513.                                      int32 num);
  514.     virtual void MysticStuffFinishing( XP_Bool asynchronous,
  515.                                       MSG_NOTIFY_CODE notify, 
  516.                                       MSG_ViewIndex where,
  517.                                       int32 num);
  518.  
  519.     virtual BOOL RenderData ( UINT iColumn, CRect & rect, CDC & pdc, const char * );
  520.     virtual BOOL DeleteItem ( int iLine );
  521.  
  522.     virtual BOOL ColumnCommand ( int iColumn, int iLine );
  523.  
  524.     virtual void InitializeClipFormats(void);
  525.     virtual CLIPFORMAT * GetClipFormatList(void);
  526.     virtual void AcceptDrop(int iLineNo, COleDataObject *object, DROPEFFECT effect);
  527.     virtual COleDataSource * GetDataSource(void);
  528.     virtual void PropertyMenu ( int iSel, UINT flags );
  529.  
  530.     // Implementation
  531. protected:
  532.     // Generated message map functions
  533.     //{{AFX_MSG(CAddrOutliner)
  534.     //}}AFX_MSG
  535.  
  536.     DECLARE_MESSAGE_MAP()
  537.  
  538. }; // END OF CLASS CAddrOutliner()
  539.  
  540.  
  541. /****************************************************************************
  542. *
  543. *    Class: CDirOutlinerParent
  544. *
  545. *    DESCRIPTION:
  546. *        This class is the window around the list of directories in the address 
  547. *        book.  It is mainly purpose is to draw the column headings.
  548. *
  549. ****************************************************************************/
  550. class CDirOutlinerParent : public COutlinerParent 
  551. {
  552. public:
  553.     CDirOutlinerParent();
  554.     virtual ~CDirOutlinerParent();
  555.     virtual COutliner * GetOutliner ( );
  556.     virtual void CreateColumns ( );
  557.     virtual BOOL RenderData ( int idColumn, CRect & rect, CDC & dc, const char *);
  558.     virtual BOOL ColumnCommand ( int idColumn );
  559.  
  560. // Implementation
  561. protected:
  562.     // Generated message map functions
  563.     //{{AFX_MSG(CDirOutlinerParent)
  564.     afx_msg void OnDestroy();
  565.     afx_msg void OnLButtonUp ( UINT nFlags, CPoint point );
  566.  
  567.     //}}AFX_MSG
  568.  
  569.     DECLARE_MESSAGE_MAP()
  570. };
  571.  
  572.  
  573. #endif
  574.