// // ARCHWIN.CPP // // Source file for ArchiveLib 2.0 // // Copyright (c) Greenleaf Software, Inc. 1994-1996 // All Rights Reserved // // CONTENTS // // ALArchive::FillListBox() // ALArchiveFillListBox() // // DESCRIPTION // // A single function that provides Windows UI support for ALArchive. // // REVISION HISTORY // // February 14, 1996 2.0A : New release #include "arclib.h" #if !defined( AL_IBM ) #pragma hdrstop #endif // // NAME // // ALArchive::FillListBox() // // PLATFORMS/ENVIRONMENTS // // PM // C++ C // // SHORT DESCRIPTION // // Fill a Windows list box control with the file names from an archive. // // C++ SYNOPSIS // // #include "arclib.h" // // int ALArchive::FillListBox( HWND hDlg, // int list_box_id = -1 ); // // C SYNOPSIS // // #include "arclib.h" // // int ALArchiveFillListBox( hALArchive this_object, // HWND hDlg, // int list_box_id ); // // VB SYNOPSIS // // Declare Function ALArchiveFillListBox Lib "AL20LW" // (ByVal this_object&, ByVal hDlg%, ByVal list_box_id%) As Integer // // DELPHI SYNOPSIS // // function ALArchiveFillListBox( this_object : hALArchive; // hDlg : HWnd; // list_box_id : Integer ) : Integer; // // ARGUMENTS // // this_object : A reference or pointer to the ALArchive object that // is going to fill this list box. Note that the C++ member // fn version of this call doesn't have an explicit argument // here, since it has access to 'this' implicitly. // // hDlg : This argument can represent one of two things. // If the value of list_box_id is set to -1, it means that // hWnd refers to an actual list box itself. If the value // of list_box_id is not -1, it means that hWnd referes // to a dialog box, and list_box_id refers the id of a // list box control within that dialog box. // // list_box_d : See the description of hWnd for a full detail of what // this argument does. // // DESCRIPTION // // This is a quicky useful function to read the names of all the // storage objects out of this, then stuffing them all into a list // box. // // RETURNS // // The count of objects in the archive, or an error status < 0. // // EXAMPLE // // SEE ALSO // // REVISION HISTORY // // February 14, 1996 2.0A : New release // int AL_PROTO ALArchive::FillListBox( HWND hDlg, /* Tag public function */ int list_box_id /* = -1 */ ) { ALEntryList list; HWND window; ReadDirectory( list ); if ( list_box_id != -1 ) window = GetDlgItem( hDlg, (short int) list_box_id ); else window = hDlg; int count; if ( ( count = list.FillListBox( window ) ) == 0 ) { if ( mStatus < 0 ) { SendMessage( window, LB_RESETCONTENT, 0, 0 ); SendMessage( window, LB_ADDSTRING, 0, (LPARAM)( (LPSTR) "Error!" ) ); } } return count; } #if !defined( AL_NO_C ) extern "C" AL_LINKAGE int AL_FUNCTION ALArchiveFillListBox( hALArchive this_object, /* Tag public function */ HWND hDlg, int list_box_id ) { AL_ASSERT_OBJECT( this_object, ALArchive, "ALArchiveFillListBox" ); return ((ALArchive *) this_object)->FillListBox( hDlg, list_box_id ); } #endif