140 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			140 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
//
 | 
						|
// 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
 | 
						|
 |