Click here to Skip to main content
11,496,146 members (805 online)
Click here to Skip to main content

SeaShell - More Explorer controls

, 3 Oct 2000 180.6K 3.1K 55
A set of shell controls and other useful classes
The site is currently in read-only mode for maintenance. Posting of new items will be available again shortly.
<!-- Link to demo file download -->
  • Download demo project - 277 Kb
  • <!-- Article image -->

    Sample Image - seashell.jpg

    <!-- Add the rest of your HTML here -->

    Introduction

    SeaShell contains a set of classes that provides three main controls

    • CIEShellTreeCtrl
    • CIEShellListCtrl
    • CIEShellComboBox

    They can be used independently or integrated as in Explorer


    Features

    • Full drag and drop support including right button and drag and drop to/from windows explorer
    • Context menu support including Owner Draw,SendTo and the new OpenWith(W2K only) menus
    • Auto refresh from both tree and list controls
    • Filter support using wild cards eg. *.cpp *.htm or based on file type
    • Uses settings from explorer to show compressed files in a different color,double click to open file etc.
    • Complete integration between all three controls


    History

    First version so expect problems

    Usage

    First you must include SeaShellExt.h in your stdafx.h file and you will need all the files included in the sub folder SeaShellExt except for the frame and view files if you intend to use it only in a dialog box. The demo shows you how to use it in a frame window and a dialog box.

    This is what you need to do to add all the controls to a dialog box

    Add this code to the OnInitDIalog function

       // Point the combo box to the tree control(optional)
       m_cbShell.SetTreeCtrlWnd(m_tcShell.GetSafeHwnd());
    
       // Point the tree control to the list control(optional)
       m_tcShell.SetListCtrlWnd(m_lcShell.GetSafeHwnd());
    
       // Point the tree control to the combo box(optional)
       m_tcShell.SetComboBoxWnd(m_cbShell.GetSafeHwnd());
    
       // Populate the tree starting from the desktop
       m_tcShell.LoadFolderItems();
    
       // or populate the tree starting from a system file path
       // m_tcShell.LoadFolderItems(_T("C:\\folder1\\folder2"));
    

    To hook up the controls in CView check out the demo it comes with classes CIEShellTreeView and CIEShellListView that you can use.

    The about box has a demo of the list control without shell support that adds a progress bar to a column in a similar fashion to napster if any one has seen it. Thanks to Chris Maunder for his CTextProgressCtrl which I slightly modified.

    There is limited support for CHtmlView to show the web browser when you click on the Internet Explorer folder. But this won't work in in a dialog.


    Acknowledgments

    It also includes some files form other sources most notably

  • CoolMenu from Paul DiLascia(MSJ)
  • ShellContextMenu from Oz Solomonovich(WndTabs)
  • InPlaceEdit from Zafir Anjum (Codeguru)


  • and some other snippets, but I can't remember from where.

    Thanks guys

    If anyone wants to convert it to an MFC extension DLL there is a macro CTRL_EXT_CLASS that is used in most classes that will help.

    One final note I compiled using the platform SDK for W2K but I have included a file W2KFix.h that defines the COM interfaces that it needs.

    License

    This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

    A list of licenses authors might use can be found here

    Share

    About the Author

    Philip Oldaker

    New Zealand New Zealand
    No Biography provided

    Comments and Discussions

     
    Questioncool, Pin
    XiaoK Lin25-Apr-12 4:55
    memberXiaoK Lin25-Apr-12 4:55 
    GeneralIt's best for me. [modified] Pin
    Racuca24-Apr-11 16:35
    memberRacuca24-Apr-11 16:35 
    QuestionIts release version is fine, but the debug version does not work. Does anybody know how to solve this problem? Pin
    laolonga18-Oct-08 12:29
    memberlaolonga18-Oct-08 12:29 
    GeneralNeed help, please! Pin
    CrocodileBuck26-May-08 7:49
    memberCrocodileBuck26-May-08 7:49 
    GeneralRe: Need help, please! Pin
    CrocodileBuck27-May-08 5:31
    memberCrocodileBuck27-May-08 5:31 
    QuestionAsk for getting folder's IContextMenu2 interface and show it? Pin
    hiker14-Jan-08 0:59
    memberhiker14-Jan-08 0:59 
    GeneralOpening folders in the tree control. Pin
    awinter8-Jan-08 7:04
    memberawinter8-Jan-08 7:04 
    GeneralDoesn't compiles in VS2005! Pin
    a_b_pathak18-Jun-07 0:34
    membera_b_pathak18-Jun-07 0:34 
    GeneralRe: Doesn't compiles in VS2005! Pin
    chenxuan078-Sep-08 21:41
    memberchenxuan078-Sep-08 21:41 
    GeneralRe: Doesn't compiles in VS2005! Pin
    chenxuan079-Sep-08 0:00
    memberchenxuan079-Sep-08 0:00 
    QuestionCan't drag tree items in dialog project Pin
    nanfang20-May-07 9:23
    membernanfang20-May-07 9:23 
    QuestionMay I use it in my commercial applications? Pin
    nanfang7-May-07 4:02
    membernanfang7-May-07 4:02 
    Questiongood project,if you can write a control,it will perfect Pin
    chenjian14-Aug-06 16:52
    memberchenjian14-Aug-06 16:52 
    GeneralThe style of Windows XP Pin
    takayuki san19-Jul-06 21:59
    membertakayuki san19-Jul-06 21:59 
    GeneralWill not compile, needs improvements... Pin
    Fred Ackers23-May-06 8:25
    memberFred Ackers23-May-06 8:25 
    GeneralAutoRefresh Pin
    fabiocannizzo3-Apr-05 11:06
    memberfabiocannizzo3-Apr-05 11:06 
    QuestionNice project, what about the bugs ? Pin
    Gnarf4-Mar-04 8:38
    sussGnarf4-Mar-04 8:38 
    Generalthe classes very good, but have some bugs Pin
    use_id27-Oct-03 4:10
    memberuse_id27-Oct-03 4:10 
    GeneralRe: the classes very good, but have some bugs Pin
    andytork4-Nov-04 17:51
    memberandytork4-Nov-04 17:51 
    GeneralSeaShell: Use and evolution Pin
    Moby19-May-03 2:50
    memberMoby19-May-03 2:50 
    General+ Sign at subfolders Pin
    Ruben_Uniek12-Mar-03 22:16
    memberRuben_Uniek12-Mar-03 22:16 
    GeneralI get an error message when compling Pin
    E312-Dec-02 17:12
    memberE312-Dec-02 17:12 
    GeneralRe: I get an error message when compling Pin
    Naoaki Okazaki18-Jan-03 4:37
    memberNaoaki Okazaki18-Jan-03 4:37 
    AnswerRe: I get an error message when compling Pin
    maxim_violin24-Nov-07 19:54
    membermaxim_violin24-Nov-07 19:54 
    Generalmemory leak Pin
    wlfjck31-Oct-02 23:03
    memberwlfjck31-Oct-02 23:03 
    GeneralUnicode version error! Pin
    Anonymous31-Oct-02 22:37
    sussAnonymous31-Oct-02 22:37 
    QuestionHelp: F5 crash in explorer dialog, any idea? Pin
    Gregoire8-Oct-02 16:25
    memberGregoire8-Oct-02 16:25 
    AnswerRe: Help: F5 crash in explorer dialog, any idea? Pin
    Gregoire8-Nov-02 7:55
    memberGregoire8-Nov-02 7:55 
    GeneralMaking it Open up folders in Itself. Pin
    Jawache9-Aug-02 4:06
    memberJawache9-Aug-02 4:06 
    GeneralOpen a folder programmatically Pin
    Vinicius Pontes27-Jul-02 5:44
    memberVinicius Pontes27-Jul-02 5:44 
    GeneralRe: Open a folder programmatically Pin
    Anonymous6-Oct-02 21:48
    sussAnonymous6-Oct-02 21:48 
    GeneralRe: Open a folder programmatically Pin
    nanfang16-Jun-07 19:53
    membernanfang16-Jun-07 19:53 
    GeneralThumbnails Pin
    Toni Salas27-Jun-02 23:08
    memberToni Salas27-Jun-02 23:08 
    GeneralRefresh fixed Pin
    mad7925-Apr-02 1:25
    membermad7925-Apr-02 1:25 
    GeneralCan't build it in VS.Net. Need help. Pin
    TigerWings10-Apr-02 16:21
    memberTigerWings10-Apr-02 16:21 
    GeneralRe: Can't build it in VS.Net. Need help. Pin
    Abraxas2314-Dec-03 8:39
    memberAbraxas2314-Dec-03 8:39 
    GeneralGetItemText always return text for first item in list Pin
    Anonymous28-Feb-02 4:50
    memberAnonymous28-Feb-02 4:50 
    GeneralRe: GetItemText always return text for first item in list Pin
    Rex Lee5-Jun-03 21:58
    memberRex Lee5-Jun-03 21:58 
    GeneralRe: GetItemText always return text for first item in list Pin
    nanfang16-Jun-07 19:45
    membernanfang16-Jun-07 19:45 
    GeneralRe: GetItemText always return text for first item in list Pin
    nanfang16-Jun-07 19:48
    membernanfang16-Jun-07 19:48 
    GeneralBug Fix for CIEShellListCtrl::Populate(LPCTSTR pszPath, bool bCallBack) Pin
    Dion Loy3-Dec-01 13:16
    memberDion Loy3-Dec-01 13:16 
    GeneralOpens New Window to display Sub folder instead of displaying it in the List View Pin
    Maria Jothi3-Oct-01 23:25
    memberMaria Jothi3-Oct-01 23:25 
    GeneralRe: Opens New Window to display Sub folder instead of displaying it in the List View Pin
    Lawes Lee31-Oct-02 16:56
    sussLawes Lee31-Oct-02 16:56 
    GeneralOpening Window Pin
    Maria Jothi3-Oct-01 23:00
    memberMaria Jothi3-Oct-01 23:00 
    GeneralClicking any item on the List View creates a Window a display the sub folder Pin
    Maria Jothi12-Sep-01 2:26
    memberMaria Jothi12-Sep-01 2:26 
    Generalws_ftp pro folders Pin
    Anonymous9-Aug-01 16:31
    memberAnonymous9-Aug-01 16:31 
    GeneralFix to allow project to work on Win95/NT Pin
    James Martin4-Oct-00 12:32
    sussJames Martin4-Oct-00 12:32 
    GeneralCannot Unzip the file using WinZip 8.0 Pin
    Krishna Prasad T18-Aug-00 1:04
    sussKrishna Prasad T18-Aug-00 1:04 
    GeneralGetLongPathName() not exported from Win95 Kernel32.dll Pin
    Benjamin Ng16-Aug-00 2:14
    sussBenjamin Ng16-Aug-00 2:14 
    GeneralRe: GetLongPathName() not exported from Win95 Kernel32.dll Pin
    Philip Oldaker16-Aug-00 6:34
    sussPhilip Oldaker16-Aug-00 6:34 

    General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

    Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

    | Advertise | Privacy | Terms of Use | Mobile
    Web01 | 2.8.150520.1 | Last Updated 4 Oct 2000
    Article Copyright 2000 by Philip Oldaker
    Everything else Copyright © CodeProject, 1999-2015
    Layout: fixed | fluid