705 lines
		
	
	
		
			21 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			705 lines
		
	
	
		
			21 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
//
 | 
						|
// CXL_ENTR.CPP
 | 
						|
//
 | 
						|
//  Source file for ArchiveLib 1.0
 | 
						|
//
 | 
						|
//  Copyright (c) Greenleaf Software, Inc. 1994
 | 
						|
//  All Rights Reserved
 | 
						|
//
 | 
						|
// CONTENTS
 | 
						|
//
 | 
						|
//  newALEntry()
 | 
						|
//  deleteALEntry()
 | 
						|
//  ALEntryDuplicate()
 | 
						|
//  ALEntryGetNextEntry()
 | 
						|
//  ALEntrySetMark()
 | 
						|
//  ALEntryClearMark()
 | 
						|
//  ALEntrySetMarkState()
 | 
						|
//  ALEntryGetStorage()
 | 
						|
//  ALEntrySetStorage()
 | 
						|
//  ALEntrySetComment()
 | 
						|
//  ALEntryGetCompressedSize()
 | 
						|
//  ALEntryGetCrc32()
 | 
						|
//  ALEntryGetMark()
 | 
						|
//  ALEntryCompressionRatio()
 | 
						|
//  ALEntryGetComment()
 | 
						|
//  ALEntryGetCommentVB()
 | 
						|
//  ALEntryGetEngine()
 | 
						|
//  ALEntrySetEngine()
 | 
						|
//
 | 
						|
// DESCRIPTION
 | 
						|
//
 | 
						|
//  This file contains the C/VB translation layer for the ALEntry class.
 | 
						|
//  These functions all provide mapping to equivalent member functions
 | 
						|
//  or data members in class ALEntry.  Since there isn't much code
 | 
						|
//  involved in the translation, it is recommended that you look in
 | 
						|
//  ARCENTRY.CPP for details on how the ALEntry class really works.
 | 
						|
//
 | 
						|
// REVISION HISTORY
 | 
						|
//
 | 
						|
//  May 24, 1994  1.0A  : First release
 | 
						|
//
 | 
						|
//
 | 
						|
 | 
						|
#include "arclib.h"
 | 
						|
#pragma hdrstop
 | 
						|
 | 
						|
#include "al.h"
 | 
						|
#include "alcxl.h"
 | 
						|
 | 
						|
//
 | 
						|
// extern "C" hALEntry newALEntry( hALEntryList list,
 | 
						|
//                                 hALStorage storage,
 | 
						|
//                                 hALEngine engine )
 | 
						|
//
 | 
						|
// ARGUMENTS:
 | 
						|
//
 | 
						|
//  list     : A handle for (pointer to) the ALEntryList that is
 | 
						|
//             going get this ALEntry.
 | 
						|
//
 | 
						|
//  storage  : A handle for (pointer to) the storage object that is
 | 
						|
//             being described in this ALEntry object.
 | 
						|
//
 | 
						|
//  engine   : A handle for (pointer to) the compression engine that 
 | 
						|
//             will be/was used to compress/expand the storage object.
 | 
						|
//
 | 
						|
// RETURNS
 | 
						|
//
 | 
						|
//  A handle for (pointer to) a freshly constructed ALEntry object. In the
 | 
						|
//  case of a really horrible error, this might be a 0.
 | 
						|
//
 | 
						|
// DESCRIPTION
 | 
						|
//
 | 
						|
//  This C/VB function provides a translation layer so that those two
 | 
						|
//  languages can access the C++ constructor ALEntry::ALEntry().
 | 
						|
//  For details on what exactly happens in the ALEntry ctor, check out
 | 
						|
//  the source module in ARCENTRY.CPP.
 | 
						|
//
 | 
						|
//  Like most of the translation layer functions, this guy works by simply
 | 
						|
//  performing type checking on the arguments (in debug mode), and calling
 | 
						|
//  the function.  The result is then cast properly and returned to the
 | 
						|
//  calling routine.
 | 
						|
//
 | 
						|
// REVISION HISTORY
 | 
						|
//
 | 
						|
//   May 24, 1994  1.0A  : First release
 | 
						|
//
 | 
						|
 | 
						|
extern "C" hALEntry AL_FUNCTION newALEntry( hALEntryList list,
 | 
						|
                                            hALStorage storage,
 | 
						|
                                            hALEngine engine )
 | 
						|
{
 | 
						|
    AL_ASSERT_OBJECT( list, ALEntryList, "newALEntry" );
 | 
						|
    AL_ASSERT_OBJECT( storage, ALStorage, "newALEntry" );
 | 
						|
    AL_ASSERT_OBJECT( engine, ALCompressionEngine, "newALEntry" );
 | 
						|
    return (hALEntry) new ALEntry( *( (ALEntryList *) list ),
 | 
						|
                                   (ALStorage * ) storage,
 | 
						|
                                   (ALCompressionEngine *) engine );
 | 
						|
}
 | 
						|
 | 
						|
//
 | 
						|
// extern "C" void deleteALEntry( hALEntry this_object )
 | 
						|
//
 | 
						|
// ARGUMENTS:
 | 
						|
//
 | 
						|
//  this_object : A handle for (pointer to) a valid ALEntry object.
 | 
						|
//
 | 
						|
// RETURNS
 | 
						|
//
 | 
						|
//  Nothing, this is a destructor.
 | 
						|
//
 | 
						|
// DESCRIPTION
 | 
						|
//
 | 
						|
//  This C/VB function provides a translation layer so that those two
 | 
						|
//  languages can access the C++ destructor ALEntry::~ALEntry().
 | 
						|
//  For details on what exactly happens in the ALEntry dtor, check out
 | 
						|
//  the source module in ARCENTRY.CPP.
 | 
						|
//
 | 
						|
//  Like most of the translation layer functions, this guy works by simply
 | 
						|
//  performing type checking on the arguments (in debug mode), and calling
 | 
						|
//  the function.
 | 
						|
//
 | 
						|
// REVISION HISTORY
 | 
						|
//
 | 
						|
//   May 24, 1994  1.0A  : First release
 | 
						|
//
 | 
						|
 | 
						|
extern "C" void AL_FUNCTION deleteALEntry( hALEntry entry )
 | 
						|
{
 | 
						|
    AL_ASSERT_OBJECT( entry, ALEntry, "deleteALEntry" );
 | 
						|
    delete (ALEntry *) entry;
 | 
						|
}
 | 
						|
 | 
						|
//
 | 
						|
// extern "C" int ALEntryDuplicate( hALEntry this_object, hALEntryList list )
 | 
						|
//
 | 
						|
// ARGUMENTS:
 | 
						|
//
 | 
						|
//  this_object  : A handle for (pointer to) an ALEntry object.
 | 
						|
//
 | 
						|
//  list         : A handle for (pointer to) an ALEntryList object.
 | 
						|
//
 | 
						|
// RETURNS
 | 
						|
//
 | 
						|
//  1 if the entry is duplicated somewhere in the list, 0 if not.
 | 
						|
//
 | 
						|
// DESCRIPTION
 | 
						|
//
 | 
						|
//  This function provides a translation layer for C and VB to access the
 | 
						|
//  C++ member function ALEntry::Duplicate().  For more information on
 | 
						|
//  what this member function actually does, see ARCENTRY.CPP.
 | 
						|
//
 | 
						|
//  Like most of the translation functions, this routine checks the 
 | 
						|
//  arguments for correct type (in debug mode), then casts this_object
 | 
						|
//  to the desired class, and calls the member function.  The return 
 | 
						|
//  from the member function is passed right back to the calling routine.
 | 
						|
//
 | 
						|
// REVISION HISTORY
 | 
						|
//
 | 
						|
//   May 24, 1994  1.0A  : First release
 | 
						|
//
 | 
						|
 | 
						|
extern "C" int AL_FUNCTION 
 | 
						|
ALEntryDuplicate( hALEntry this_object, hALEntryList list )
 | 
						|
{
 | 
						|
    AL_ASSERT_OBJECT( this_object, ALEntry, "ALEntryDuplicate" );
 | 
						|
    AL_ASSERT_OBJECT( list, ALEntryList, "ALEntryDuplicate" );
 | 
						|
    return ( (ALEntry *) this_object )->Duplicate( * (ALEntryList *) list );
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
//
 | 
						|
// extern "C" hALEntry ALEntryGetNextEntry( hALEntry this_object )
 | 
						|
//
 | 
						|
// ARGUMENTS:
 | 
						|
//
 | 
						|
//  this_object  : A handle for (pointer to) an ALEntry object.
 | 
						|
//
 | 
						|
// RETURNS
 | 
						|
//
 | 
						|
//  A valid handle for (pointer to) an ALEntry if there are more
 | 
						|
//  objects in the list.  If not, 0.
 | 
						|
//
 | 
						|
// DESCRIPTION
 | 
						|
//
 | 
						|
//  This function provides a translation layer for C and VB to access the
 | 
						|
//  C++ member function ALEntry::GetNextEntry().  For more information on
 | 
						|
//  what this member function actually does, see ARCENTRY.CPP.
 | 
						|
//
 | 
						|
//  Like most of the translation functions, this routine checks the 
 | 
						|
//  arguments for correct type (in debug mode), then casts this_object
 | 
						|
//  to the desired class, and calls the member function.  The return 
 | 
						|
//  from the member function is passed right back to the calling routine
 | 
						|
//  after being cast to the appropriate C/VB type.
 | 
						|
//
 | 
						|
// REVISION HISTORY
 | 
						|
//
 | 
						|
//   May 24, 1994  1.0A  : First release
 | 
						|
//
 | 
						|
 | 
						|
extern "C" hALEntry AL_FUNCTION ALEntryGetNextEntry( hALEntry this_object )
 | 
						|
{
 | 
						|
    AL_ASSERT_OBJECT( this_object, ALEntry, "ALEntryGetNextEntry" );
 | 
						|
    return (hALEntry) ( ((ALEntry *) this_object )->GetNextEntry() );
 | 
						|
}
 | 
						|
 | 
						|
//
 | 
						|
// extern "C" void ALEntrySetMark( hALEntry this_object )
 | 
						|
//
 | 
						|
// ARGUMENTS:
 | 
						|
//
 | 
						|
//  this_object  : A handle for (pointer to) an ALEntry object.
 | 
						|
//
 | 
						|
// RETURNS
 | 
						|
//
 | 
						|
//  Nothing.
 | 
						|
//
 | 
						|
// DESCRIPTION
 | 
						|
//
 | 
						|
//  This function provides a translation layer for C and VB to access the
 | 
						|
//  C++ member function ALEntry::SetMark().  For more information on
 | 
						|
//  what this member function actually does, see ARCENTRY.CPP.
 | 
						|
//
 | 
						|
//  Like most of the translation functions, this routine checks the 
 | 
						|
//  arguments for correct type (in debug mode), then casts this_object
 | 
						|
//  to the desired class, and calls the member function.  
 | 
						|
//
 | 
						|
// REVISION HISTORY
 | 
						|
//
 | 
						|
//   May 24, 1994  1.0A  : First release
 | 
						|
//
 | 
						|
 | 
						|
extern "C" void AL_FUNCTION ALEntrySetMark( hALEntry this_object )
 | 
						|
{
 | 
						|
    AL_ASSERT_OBJECT( this_object, ALEntry, "ALEntrySetMark" );
 | 
						|
    ((ALEntry *) this_object )->SetMark();
 | 
						|
}
 | 
						|
 | 
						|
//
 | 
						|
// extern "C" void ALEntryClearMark( hALEntry this_object )
 | 
						|
//
 | 
						|
// ARGUMENTS:
 | 
						|
//
 | 
						|
//  this_object  : A handle for (pointer to) an ALEntry object.
 | 
						|
//
 | 
						|
// RETURNS
 | 
						|
//
 | 
						|
//  Nothing.
 | 
						|
//
 | 
						|
// DESCRIPTION
 | 
						|
//
 | 
						|
//  This function provides a translation layer for C and VB to access the
 | 
						|
//  C++ member function ALEntry::ClearMark().  For more information on
 | 
						|
//  what this member function actually does, see ARCENTRY.CPP.
 | 
						|
//
 | 
						|
//  Like most of the translation functions, this routine checks the 
 | 
						|
//  arguments for correct type (in debug mode), then casts this_object
 | 
						|
//  to the desired class, and calls the member function.  
 | 
						|
//
 | 
						|
// REVISION HISTORY
 | 
						|
//
 | 
						|
//   May 24, 1994  1.0A  : First release
 | 
						|
//
 | 
						|
 | 
						|
extern "C" void AL_FUNCTION ALEntryClearMark( hALEntry this_object )
 | 
						|
{
 | 
						|
    AL_ASSERT_OBJECT( this_object, ALEntry, "ALEntryClearMark" );
 | 
						|
    ((ALEntry *) this_object )->ClearMark();
 | 
						|
}
 | 
						|
 | 
						|
//
 | 
						|
// extern "C" void ALEntrySetMarkState( hALEntry this_object )
 | 
						|
//
 | 
						|
// ARGUMENTS:
 | 
						|
//
 | 
						|
//  this_object  : A handle for (pointer to) an ALEntry object.
 | 
						|
//
 | 
						|
// RETURNS
 | 
						|
//
 | 
						|
//  Nothing.
 | 
						|
//
 | 
						|
// DESCRIPTION
 | 
						|
//
 | 
						|
//  This function provides a translation layer for C and VB to access the
 | 
						|
//  C++ member function ALEntry::SetMarkState().  For more information on
 | 
						|
//  what this member function actually does, see ARCENTRY.CPP.
 | 
						|
//
 | 
						|
//  Like most of the translation functions, this routine checks the 
 | 
						|
//  arguments for correct type (in debug mode), then casts this_object
 | 
						|
//  to the desired class, and calls the member function.  
 | 
						|
//
 | 
						|
// REVISION HISTORY
 | 
						|
//
 | 
						|
//   May 24, 1994  1.0A  : First release
 | 
						|
//
 | 
						|
 | 
						|
extern "C" void AL_FUNCTION ALEntrySetMarkState( hALEntry this_object,
 | 
						|
                                                 short int new_state )
 | 
						|
{
 | 
						|
    AL_ASSERT_OBJECT( this_object, ALEntry, "ALEntrySetMarkState" );
 | 
						|
    ((ALEntry *) this_object )->SetMarkState( new_state );
 | 
						|
}
 | 
						|
 | 
						|
//
 | 
						|
// extern "C" hALStorage ALEntryGetStorage( hALEntry this_object )
 | 
						|
//
 | 
						|
// ARGUMENTS:
 | 
						|
//
 | 
						|
//  this_object  : A handle for (pointer to) an ALEntry object.
 | 
						|
//
 | 
						|
// RETURNS
 | 
						|
//
 | 
						|
//  A valid handle for (pointer to) an ALStorage object. It is possible
 | 
						|
//  to get a return value of 0, since an ALEntry is not required to have
 | 
						|
//  a valid ALStorage object attached to it.
 | 
						|
//
 | 
						|
// DESCRIPTION
 | 
						|
//
 | 
						|
//  This function provides a translation layer for C and VB to access the
 | 
						|
//  C++ data member ALEntry::mpStorageObject.  For more information on
 | 
						|
//  what this data member actually does, see ARCENTRY.CPP.
 | 
						|
//
 | 
						|
//  Like most of the translation functions, this routine checks the 
 | 
						|
//  arguments for correct type (in debug mode), then casts this_object
 | 
						|
//  to the desired class, and gets the data member.  The data member
 | 
						|
//  is passed right back to the calling routine after being cast to the 
 | 
						|
//  appropriate C/VB type.
 | 
						|
//
 | 
						|
// REVISION HISTORY
 | 
						|
//
 | 
						|
//   May 24, 1994  1.0A  : First release
 | 
						|
//
 | 
						|
 | 
						|
extern "C" hALStorage AL_FUNCTION ALEntryGetStorage( hALEntry this_object )
 | 
						|
{
 | 
						|
    AL_ASSERT_OBJECT( this_object, ALEntry, "ALEntryGetStorage" );
 | 
						|
    return (hALStorage) ( (ALEntry *) this_object )->mpStorageObject;
 | 
						|
}
 | 
						|
 | 
						|
//
 | 
						|
// extern "C" void ALEntrySetStorage( hALEntry this_object,
 | 
						|
//                                    hALStorage storage )
 | 
						|
//
 | 
						|
// ARGUMENTS:
 | 
						|
//
 | 
						|
//  this_object  : A handle for (pointer to) an ALEntry object.
 | 
						|
//
 | 
						|
//  storage      : A handle for (pointer to) an ALStorage object that
 | 
						|
//                 will now be attached to the ALEntry object.  Note
 | 
						|
//                 that a value of 0 is acceptable.
 | 
						|
//
 | 
						|
// RETURNS
 | 
						|
//
 | 
						|
//  Nothing.
 | 
						|
//
 | 
						|
// DESCRIPTION
 | 
						|
//
 | 
						|
//  This function provides a translation layer for C and VB to access the
 | 
						|
//  C++ data member ALEntry::mpStorageObject.  For more information on
 | 
						|
//  what this data member actually does, see ARCENTRY.CPP.
 | 
						|
//
 | 
						|
//  Like most of the translation functions, this routine checks the 
 | 
						|
//  arguments for correct type (in debug mode), then casts this_object
 | 
						|
//  to the desired class, and accesses the data member.  
 | 
						|
//
 | 
						|
// REVISION HISTORY
 | 
						|
//
 | 
						|
//   May 24, 1994  1.0A  : First release
 | 
						|
//
 | 
						|
 | 
						|
extern "C" void AL_FUNCTION ALEntrySetStorage( hALEntry this_object,
 | 
						|
                                               hALStorage storage )
 | 
						|
{
 | 
						|
    AL_ASSERT_OBJECT( this_object, ALEntry, "ALEntrySetStorage" );
 | 
						|
    if ( storage != 0 )
 | 
						|
        AL_ASSERT_OBJECT( storage, ALStorage, "ALEntrySetStorage" );
 | 
						|
    ( (ALEntry *) this_object )->mpStorageObject = (ALStorage *) storage;
 | 
						|
}
 | 
						|
 | 
						|
//
 | 
						|
// extern "C" int ALEntrySetComment( hALEntry this_object, char *comment )
 | 
						|
//
 | 
						|
// ARGUMENTS:
 | 
						|
//
 | 
						|
//  this_object  : A handle for (pointer to) an ALEntry object.
 | 
						|
//
 | 
						|
//  comment      : A pointer to a character string that is going to be
 | 
						|
//                 copied into the ALEntry object.
 | 
						|
//
 | 
						|
// RETURNS
 | 
						|
//
 | 
						|
//  AL_SUCCESS if things went okay, or a code < AL_SUCCESS if not.
 | 
						|
//
 | 
						|
// DESCRIPTION
 | 
						|
//
 | 
						|
//  This function provides a translation layer for C and VB to access the
 | 
						|
//  C++ data member ALEntry::mpStorageObject.  For more information on
 | 
						|
//  what this data member actually does, see ARCENTRY.CPP.
 | 
						|
//
 | 
						|
//  Like most of the translation functions, this routine checks the 
 | 
						|
//  arguments for correct type (in debug mode), then casts this_object
 | 
						|
//  to the desired class, and accesses the data member.  
 | 
						|
//
 | 
						|
// REVISION HISTORY
 | 
						|
//
 | 
						|
//   May 24, 1994  1.0A  : First release
 | 
						|
//
 | 
						|
 | 
						|
extern "C" int AL_FUNCTION 
 | 
						|
ALEntrySetComment( hALEntry this_object, char *comment )
 | 
						|
{
 | 
						|
    AL_ASSERT_OBJECT( this_object, ALEntry, "ALEntrySetComment" );
 | 
						|
    if ( comment == 0 )
 | 
						|
        comment = "";
 | 
						|
    return ( (ALEntry *) this_object )->SetComment( comment );
 | 
						|
}
 | 
						|
 | 
						|
//
 | 
						|
// extern "C" long ALEntryGetCompressedSize( hALEntry this_object )
 | 
						|
//
 | 
						|
// ARGUMENTS:
 | 
						|
//
 | 
						|
//  this_object  : A handle for (pointer to) an ALEntry object.
 | 
						|
//
 | 
						|
// RETURNS
 | 
						|
//
 | 
						|
//  A long value, indicating the compressed size.  Note that this information
 | 
						|
//  will only be available after reading a directory, or performing an
 | 
						|
//  operation that compresses the file.
 | 
						|
//
 | 
						|
// DESCRIPTION
 | 
						|
//
 | 
						|
//  This function provides a translation layer for C and VB to access the
 | 
						|
//  C++ member ALEntry::GetCompressedSize.  For more information on
 | 
						|
//  what this member function actually does, see ARCENTRY.CPP.
 | 
						|
//
 | 
						|
//  Like most of the translation functions, this routine checks the 
 | 
						|
//  arguments for correct type (in debug mode), then casts this_object
 | 
						|
//  to the desired class, and calls the member function.  The return data
 | 
						|
//  from the member function is passed back directly to the calling module.
 | 
						|
//
 | 
						|
// REVISION HISTORY
 | 
						|
//
 | 
						|
//   May 24, 1994  1.0A  : First release
 | 
						|
//
 | 
						|
 | 
						|
extern "C" long AL_FUNCTION ALEntryGetCompressedSize( hALEntry this_object )
 | 
						|
{
 | 
						|
    AL_ASSERT_OBJECT( this_object, ALEntry, "ALEntryGetCompressedSize" );
 | 
						|
    return ( (ALEntry *) this_object )->GetCompressedSize();
 | 
						|
}
 | 
						|
 | 
						|
//
 | 
						|
// extern "C" long ALEntryGetCrc32( hALEntry this_object )
 | 
						|
//
 | 
						|
// ARGUMENTS:
 | 
						|
//
 | 
						|
//  this_object  : A handle for (pointer to) an ALEntry object.
 | 
						|
//
 | 
						|
// RETURNS
 | 
						|
//
 | 
						|
//  A long value, indicating the object's CRC.  Note that this information
 | 
						|
//  will only be available after reading a directory, or performing an
 | 
						|
//  operation that compresses the file.
 | 
						|
//
 | 
						|
// DESCRIPTION
 | 
						|
//
 | 
						|
//  This function provides a translation layer for C and VB to access the
 | 
						|
//  C++ member function ALEntry::GetCrc32().  For more information on
 | 
						|
//  what this member function actually does, see ARCENTRY.CPP.
 | 
						|
//
 | 
						|
//  Like most of the translation functions, this routine checks the 
 | 
						|
//  arguments for correct type (in debug mode), then casts this_object
 | 
						|
//  to the desired class, and calls the member function.  The return data
 | 
						|
//  from the member function is passed back directly to the calling module.
 | 
						|
//
 | 
						|
// REVISION HISTORY
 | 
						|
//
 | 
						|
//   May 24, 1994  1.0A  : First release
 | 
						|
//
 | 
						|
 | 
						|
extern "C" long AL_FUNCTION ALEntryGetCrc32( hALEntry this_object )
 | 
						|
{
 | 
						|
    AL_ASSERT_OBJECT( this_object, ALEntry, "ALEntryGetCrc32" );
 | 
						|
    return ( (ALEntry *) this_object )->GetCrc32();
 | 
						|
}
 | 
						|
 | 
						|
//
 | 
						|
// extern "C" int ALEntryGetMark( hALEntry this_object )
 | 
						|
//
 | 
						|
// ARGUMENTS:
 | 
						|
//
 | 
						|
//  this_object  : A handle for (pointer to) an ALEntry object.
 | 
						|
//
 | 
						|
// RETURNS
 | 
						|
//
 | 
						|
//  A 1 or 0, indicating the object's mark state.  
 | 
						|
//
 | 
						|
// DESCRIPTION
 | 
						|
//
 | 
						|
//  This function provides a translation layer for C and VB to access the
 | 
						|
//  C++ member function ALEntry::GetMark().  For more information on
 | 
						|
//  what this member function actually does, see ARCENTRY.CPP.
 | 
						|
//
 | 
						|
//  Like most of the translation functions, this routine checks the 
 | 
						|
//  arguments for correct type (in debug mode), then casts this_object
 | 
						|
//  to the desired class, and calls the member function.  The return data
 | 
						|
//  from the member function is passed back directly to the calling module.
 | 
						|
//
 | 
						|
// REVISION HISTORY
 | 
						|
//
 | 
						|
//   May 24, 1994  1.0A  : First release
 | 
						|
//
 | 
						|
 | 
						|
extern "C" int AL_FUNCTION ALEntryGetMark( hALEntry this_object )
 | 
						|
{
 | 
						|
    AL_ASSERT_OBJECT( this_object, ALEntry, "ALEntryGetMark" );
 | 
						|
    return ( (ALEntry *) this_object )->GetMark();
 | 
						|
}
 | 
						|
 | 
						|
//
 | 
						|
// extern "C" int ALEntryCompressionRatio( hALEntry this_object )
 | 
						|
//
 | 
						|
// ARGUMENTS:
 | 
						|
//
 | 
						|
//  this_object  : A handle for (pointer to) an ALEntry object.
 | 
						|
//
 | 
						|
// RETURNS
 | 
						|
//
 | 
						|
//  A number usually ranging from 0 to 100.  Less than 0 indicates
 | 
						|
//  an error.
 | 
						|
//
 | 
						|
// DESCRIPTION
 | 
						|
//
 | 
						|
//  This function provides a translation layer for C and VB to access the
 | 
						|
//  C++ member function ALEntry::CompressionRatio().  For more information on
 | 
						|
//  what this member function actually does, see ARCENTRY.CPP.
 | 
						|
//
 | 
						|
//  Like most of the translation functions, this routine checks the 
 | 
						|
//  arguments for correct type (in debug mode), then casts this_object
 | 
						|
//  to the desired class, and calls the member function.  The return data
 | 
						|
//  from the member function is passed back directly to the calling module.
 | 
						|
//
 | 
						|
// REVISION HISTORY
 | 
						|
//
 | 
						|
//   May 24, 1994  1.0A  : First release
 | 
						|
//
 | 
						|
 | 
						|
extern "C" int AL_FUNCTION ALEntryCompressionRatio( hALEntry this_object )
 | 
						|
{
 | 
						|
    AL_ASSERT_OBJECT( this_object, ALEntry, "ALEntryCompressionRatio" );
 | 
						|
    return ( (ALEntry *) this_object )->CompressionRatio();
 | 
						|
}
 | 
						|
 | 
						|
//
 | 
						|
// extern "C" char *ALEntryGetComment( hALEntry this_object )
 | 
						|
//
 | 
						|
// ARGUMENTS:
 | 
						|
//
 | 
						|
//  this_object  : A handle for (pointer to) an ALEntry object.
 | 
						|
//
 | 
						|
// RETURNS
 | 
						|
//
 | 
						|
//  A pointer to a C character string.  The pointer is the value of the
 | 
						|
//  string pointer embedded in the class object.
 | 
						|
//
 | 
						|
// DESCRIPTION
 | 
						|
//
 | 
						|
//  This function provides a translation layer for C to access the
 | 
						|
//  C++ member function ALEntry::GetComment().  For more information on
 | 
						|
//  what this member function actually does, see ARCENTRY.CPP.
 | 
						|
//
 | 
						|
//  Like most of the translation functions, this routine checks the 
 | 
						|
//  arguments for correct type (in debug mode), then casts this_object
 | 
						|
//  to the desired class, and calls the member function.  The return data
 | 
						|
//  from the member function is passed back directly to the calling module.
 | 
						|
//
 | 
						|
//  C strings aren't happy in VB, so there is a special function just to 
 | 
						|
//  convert strings to vB format.  Don't call this function from
 | 
						|
//  Visual Basic, there is an easier way!
 | 
						|
//
 | 
						|
// REVISION HISTORY
 | 
						|
//
 | 
						|
//   May 24, 1994  1.0A  : First release
 | 
						|
//
 | 
						|
 | 
						|
extern "C" char *AL_FUNCTION ALEntryGetComment( hALEntry this_object )
 | 
						|
{
 | 
						|
    AL_ASSERT_OBJECT( this_object, ALEntry, "ALEntryGetComment" );
 | 
						|
    return (char *) ( (ALEntry *) this_object )->GetComment();
 | 
						|
}
 | 
						|
 | 
						|
//
 | 
						|
// extern "C" long ALEntryGetCommentVB( hALEntry this_object )
 | 
						|
//
 | 
						|
// ARGUMENTS:
 | 
						|
//
 | 
						|
//  this_object  : A handle for (pointer to) an ALEntry object.
 | 
						|
//
 | 
						|
// RETURNS
 | 
						|
//
 | 
						|
//  A Visual Basic character string.  The string is a copy of the
 | 
						|
//  string pointer embedded in the class object.
 | 
						|
//
 | 
						|
// DESCRIPTION
 | 
						|
//
 | 
						|
//  This function provides a translation layer for VB to access the
 | 
						|
//  C++ member function ALEntry::GetComment().  For more information on
 | 
						|
//  what this member function actually does, see ARCENTRY.CPP.
 | 
						|
//
 | 
						|
//  Like most of the translation functions, this routine checks the 
 | 
						|
//  arguments for correct type (in debug mode), then casts this_object
 | 
						|
//  to the desired class, and calls the member function.  The return data
 | 
						|
//  from the member function is passed back directly to the calling module.
 | 
						|
//
 | 
						|
//  C strings aren't happy in VB, so this function converts the C
 | 
						|
//  character pointer to a super-special VB string.
 | 
						|
//
 | 
						|
// REVISION HISTORY
 | 
						|
//
 | 
						|
//   May 24, 1994  1.0A  : First release
 | 
						|
//
 | 
						|
 | 
						|
#if defined( AL_BUILDING_DLL ) && defined( AL_WINDOWS_GUI ) && !defined( AL_FLAT_MODEL )
 | 
						|
extern "C" long AL_FUNCTION ALEntryGetCommentVB( hALEntry this_object )
 | 
						|
{
 | 
						|
    AL_ASSERT_OBJECT( this_object, ALEntry, "ALEntryGetComment" );
 | 
						|
    char _far *p = (char _far *) ( (ALEntry *) this_object )->GetComment();
 | 
						|
    return ALCreateVBString( p, (unsigned short int) _fstrlen( p ) );
 | 
						|
}
 | 
						|
#endif
 | 
						|
 | 
						|
//
 | 
						|
// extern "C" hALEngine ALEntryGetEngine( hALEntry this_object )
 | 
						|
//
 | 
						|
// ARGUMENTS:
 | 
						|
//
 | 
						|
//  this_object  : A handle for (pointer to) an ALEntry object.
 | 
						|
//
 | 
						|
// RETURNS
 | 
						|
//
 | 
						|
//  A valid handle for (pointer to) an ALCompressionEngine object. It is 
 | 
						|
//  possible to get a return value of 0, since an ALEntry is not required to 
 | 
						|
//  have a valid ALCompressionEngine object attached to it.
 | 
						|
//
 | 
						|
// DESCRIPTION
 | 
						|
//
 | 
						|
//  This function provides a translation layer for C and VB to access the
 | 
						|
//  C++ data member ALEntry::mpCompressionEngine.  For more information on
 | 
						|
//  what this data member actually does, see ARCENTRY.CPP.
 | 
						|
//
 | 
						|
//  Like most of the translation functions, this routine checks the 
 | 
						|
//  arguments for correct type (in debug mode), then casts this_object
 | 
						|
//  to the desired class, and gets the data member.  The data member
 | 
						|
//  is passed right back to the calling routine after being cast to the 
 | 
						|
//  appropriate C/VB type.
 | 
						|
//
 | 
						|
// REVISION HISTORY
 | 
						|
//
 | 
						|
//   May 24, 1994  1.0A  : First release
 | 
						|
//
 | 
						|
 | 
						|
extern "C" hALEngine AL_FUNCTION ALEntryGetEngine( hALEntry this_object )
 | 
						|
{
 | 
						|
    AL_ASSERT_OBJECT( this_object, ALEntry, "ALEntryGetEngine" );
 | 
						|
    return (hALEngine) ( (ALEntry *) this_object )->mpCompressionEngine;
 | 
						|
}
 | 
						|
 | 
						|
//
 | 
						|
// extern "C" void ALEntrySetEngine( hALEntry this_object, hALEngine engine )
 | 
						|
//
 | 
						|
// ARGUMENTS:
 | 
						|
//
 | 
						|
//  this_object  : A handle for (pointer to) an ALEntry object.
 | 
						|
//
 | 
						|
//  engine       : A handle for (pointer to) an ALcompressionEngine
 | 
						|
//                 will now be attached to the ALEntry object. Note
 | 
						|
//                 that a value of 0 is acceptable.
 | 
						|
//
 | 
						|
// RETURNS
 | 
						|
//
 | 
						|
//  Nothing.
 | 
						|
//
 | 
						|
// DESCRIPTION
 | 
						|
//
 | 
						|
//  This function provides a translation layer for C and VB to access the
 | 
						|
//  C++ data member ALEntry::mpCompressionEngine.  For more information on
 | 
						|
//  what this data member actually does, see ARCENTRY.CPP.
 | 
						|
//
 | 
						|
//  Like most of the translation functions, this routine checks the 
 | 
						|
//  arguments for correct type (in debug mode), then casts this_object
 | 
						|
//  to the desired class, and accesses the data member.  
 | 
						|
//
 | 
						|
// REVISION HISTORY
 | 
						|
//
 | 
						|
//   May 24, 1994  1.0A  : First release
 | 
						|
//
 | 
						|
 | 
						|
extern "C" void AL_FUNCTION ALEntrySetEngine( hALEntry this_object, hALEngine engine )
 | 
						|
{
 | 
						|
    AL_ASSERT_OBJECT( this_object, ALEntry, "ALEntrySetEngine" );
 | 
						|
    if ( engine != 0 )
 | 
						|
        AL_ASSERT_OBJECT( engine, ALCompressionEngine, "ALEntrySetEngine" );
 | 
						|
    ( (ALEntry *) this_object )->mpCompressionEngine = (ALCompressionEngine *) engine;
 | 
						|
}
 |