365 lines
10 KiB
C++
Executable File
365 lines
10 KiB
C++
Executable File
//
|
|
// CXL_LIST.CPP
|
|
//
|
|
// Source file for ArchiveLib 2.0
|
|
//
|
|
// Copyright (c) Greenleaf Software, Inc. 1994-1996
|
|
// All Rights Reserved
|
|
//
|
|
// CONTENTS
|
|
//
|
|
// ALEntryListClearError()
|
|
// ALEntryListSetMarks()
|
|
// ALEntryListClearMarks()
|
|
// ALEntryListGetStatusCode()
|
|
// ALEntryListGetStatusString()
|
|
// ALEntryListGetStatusStringVB()
|
|
// ALEntryListGetStatusDetail()
|
|
// ALEntryListGetStatusDetailVB()
|
|
//
|
|
// DESCRIPTION
|
|
//
|
|
// This file contains all the C translation layer routines for the
|
|
// pure virtual member functions in ALEntryList, as well as some
|
|
// member access routines.
|
|
//
|
|
// Functions that simply provide a translation layer for an existing C++
|
|
// function are always located in the same file as the C++ function. The
|
|
// functions in this file don't have any existing C functions to attach
|
|
// to, since they implement either pure virtual functions or member access
|
|
// routines.
|
|
//
|
|
// REVISION HISTORY
|
|
//
|
|
// February 14, 1996 2.0A : New release
|
|
//
|
|
|
|
#include "arclib.h"
|
|
#if !defined( AL_IBM )
|
|
#pragma hdrstop
|
|
#endif
|
|
|
|
#include "_vbutil.h"
|
|
|
|
//
|
|
// NAME
|
|
//
|
|
// ALEntryList::ClearError()
|
|
//
|
|
// See ..\H\ARCLIST.INL for the documentation of this function. The INL
|
|
// file contains the inlined C++ member function. The C version can't
|
|
// be defined as inline, so it resides in this source file.
|
|
//
|
|
|
|
extern "C" AL_LINKAGE void AL_FUNCTION
|
|
ALEntryListClearError( hALEntryList this_object ) /* Tag public function */
|
|
{
|
|
AL_ASSERT_OBJECT( this_object, ALEntryList, "ALEntryListClearError" );
|
|
( (ALEntryList *) this_object )->ClearError();
|
|
}
|
|
|
|
//
|
|
// NAME
|
|
//
|
|
// ALEntryList::SetMarks()
|
|
//
|
|
// See ..\H\ARCLIST.INL for the documentation of this function. The INL
|
|
// file contains the inlined C++ member function. The C version can't
|
|
// be defined as inline, so it resides in this source file.
|
|
//
|
|
|
|
extern "C" AL_LINKAGE int AL_FUNCTION
|
|
ALEntryListSetMarks( hALEntryList this_object, /* Tag public function */
|
|
char AL_DLL_FAR *wild_name )
|
|
{
|
|
AL_ASSERT_OBJECT( this_object, ALEntryList, "ALEntryListSetMarks" );
|
|
return ( (ALEntryList *) this_object )->SetMarks( wild_name );
|
|
}
|
|
|
|
//
|
|
// NAME
|
|
//
|
|
// ALEntryList::ClearMarks()
|
|
//
|
|
// See ..\H\ARCLIST.INL for the documentation of this function. The INL
|
|
// file contains the inlined C++ member function. The C version can't
|
|
// be defined as inline, so it resides in this source file.
|
|
//
|
|
|
|
extern "C" AL_LINKAGE int AL_FUNCTION
|
|
ALEntryListClearMarks( hALEntryList this_object, /* Tag public function */
|
|
char AL_DLL_FAR *wild_name )
|
|
{
|
|
AL_ASSERT_OBJECT( this_object, ALEntryList, "ALEntryListClearMarks" );
|
|
return ( (ALEntryList *) this_object )->ClearMarks( wild_name );
|
|
}
|
|
|
|
//
|
|
// NAME
|
|
//
|
|
// ALEntryListGetStatusCode()
|
|
//
|
|
// PLATFORMS/ENVIRONMENTS
|
|
//
|
|
// Console Windows PM
|
|
// C VB Delphi
|
|
//
|
|
// SHORT DESCRIPTION
|
|
//
|
|
// Get the integer status code for an entry list.
|
|
//
|
|
// C++ SYNOPSIS
|
|
//
|
|
// None. C++ programmers have direct access to the ALEntryList::mStatus
|
|
// member, so they can directly call ALEntryList::mStatus.GetStatusCode().
|
|
//
|
|
// C SYNOPSIS
|
|
//
|
|
// #include "arclib.h"
|
|
//
|
|
// int ALEntryListGetStatusCode( hALEntryList this_object );
|
|
//
|
|
// VB SYNOPSIS
|
|
//
|
|
// Declare Function ALEntryListGetStatusCode Lib "AL20LW"
|
|
// (ByVal this_object&) As Integer
|
|
//
|
|
// DELPHI SYNOPSIS
|
|
//
|
|
// function ALEntryListGetStatusCode( this_object : hALEntryList ) : Integer;
|
|
//
|
|
// ARGUMENTS
|
|
//
|
|
// this_object : A handle for (pointer to) an ALEntryList object.
|
|
//
|
|
// DESCRIPTION
|
|
//
|
|
// This is the C/VB wrapper function for the C++ access function
|
|
// ALEntryList::mStatus::GetStatusCode(). For details on how the member
|
|
// function in ALName works, see ALName::GetStatusCode().
|
|
//
|
|
// All that happens here is that the arguments are checked for correct
|
|
// type (when in debug mode), and a call is made to the appropriate
|
|
// member function, with some casting.
|
|
//
|
|
// RETURNS
|
|
//
|
|
// An integer that contains the current status code for the object.
|
|
// Note that values of < 0 always indicate an error conditions.
|
|
//
|
|
// EXAMPLE
|
|
//
|
|
// SEE ALSO
|
|
//
|
|
// REVISION HISTORY
|
|
//
|
|
// February 14, 1996 2.0A : New release
|
|
//
|
|
|
|
extern "C" AL_LINKAGE int AL_FUNCTION
|
|
ALEntryListGetStatusCode( hALEntryList this_object ) /* Tag public function */
|
|
{
|
|
AL_ASSERT_OBJECT( this_object, ALEntryList, "ALEntryListGetStatusCode" );
|
|
return ( (ALEntryList *) this_object )->mStatus.GetStatusCode();
|
|
}
|
|
|
|
//
|
|
// NAME
|
|
//
|
|
// ALEntryListGetStatusString()
|
|
//
|
|
// PLATFORMS/ENVIRONMENTS
|
|
//
|
|
// Console Windows PM
|
|
// C VB Delphi
|
|
//
|
|
// SHORT DESCRIPTION
|
|
//
|
|
// Return the short status string from the ALEntryList::mStatus member.
|
|
//
|
|
// C++ SYNOPSIS
|
|
//
|
|
// None. C++ programmers have access to the ALEntryList::mStatus member,
|
|
// so they can call ALStatus::GetStatusString() directly, instead of
|
|
// using this translation function.
|
|
//
|
|
// C SYNOPSIS
|
|
//
|
|
// #include "arclib.h"
|
|
//
|
|
// char *ALEntryListGetStatusString( hALEntryList this_object );
|
|
//
|
|
// VB SYNOPSIS
|
|
//
|
|
// Declare Function ALEntryListGetStatusString Lib "AL20LW"
|
|
// Alias "ALEntryListGetStatusStringVB"
|
|
// (ByVal this_object&) As String
|
|
//
|
|
// DELPHI SYNOPSIS
|
|
//
|
|
// function ALEntryListGetStatusString( this_object : hALEntryList ) : PChar;
|
|
//
|
|
// ARGUMENTS
|
|
//
|
|
// this_object : A handle for (pointer to) an ALEntryList object.
|
|
// We want to get the string translation of the error
|
|
// code for this object.
|
|
//
|
|
// DESCRIPTION
|
|
//
|
|
// This is the C wrapper function that provides access to the mStatus
|
|
// member. This routine calls GetStatusString for the member, returning
|
|
// a short descriptive character string.
|
|
//
|
|
// Note that we have a slightly modified function to return strings
|
|
// to VB programmers.
|
|
//
|
|
// RETURNS
|
|
//
|
|
// Always returns a pointer to a short string translation of the
|
|
// current error code.
|
|
//
|
|
// EXAMPLE
|
|
//
|
|
// SEE ALSO
|
|
//
|
|
// REVISION HISTORY
|
|
//
|
|
// February 14, 1996 2.0A : New release
|
|
//
|
|
|
|
extern "C" AL_LINKAGE char AL_DLL_FAR * AL_FUNCTION
|
|
ALEntryListGetStatusString( hALEntryList this_object ) /* Tag public function */
|
|
{
|
|
AL_ASSERT_OBJECT( this_object, ALEntryList, "ALEntryListGetStatusString" );
|
|
const char *status = ( (ALEntryList *) this_object)->mStatus.GetStatusString();
|
|
if ( status == 0 )
|
|
status = "";
|
|
return (char AL_DLL_FAR *) status;
|
|
}
|
|
|
|
#if defined( AL_VB )
|
|
|
|
extern "C" AL_LINKAGE long AL_FUNCTION
|
|
ALEntryListGetStatusStringVB( hALEntryList this_object ) /* Tag public function */
|
|
{
|
|
AL_ASSERT_OBJECT( this_object, ALEntryList, "ALEntryLisGetStatusStringVB" );
|
|
const char _far *status = ( (ALEntryList *) this_object )->mStatus.GetStatusString();
|
|
if ( status == 0 )
|
|
status = "";
|
|
return ALCreateVBString( status, (unsigned short int) _fstrlen( status ) );
|
|
}
|
|
|
|
#elif defined( AL_VB32 )
|
|
|
|
extern "C" AL_LINKAGE BSTR AL_FUNCTION
|
|
ALEntryListGetStatusStringVB( hALEntryList this_object ) /* Tag public function */
|
|
{
|
|
AL_ASSERT_OBJECT( this_object, ALEntryList, "ALEntryLisGetStatusStringVB" );
|
|
const char *status = ( (ALEntryList *) this_object )->mStatus.GetStatusString();
|
|
if ( status == 0 )
|
|
status = "";
|
|
return SysAllocStringByteLen( status, strlen( status ) );
|
|
}
|
|
|
|
#endif
|
|
|
|
//
|
|
// NAME
|
|
//
|
|
// ALEntryListGetStatusDetail()
|
|
//
|
|
// PLATFORMS/ENVIRONMENTS
|
|
//
|
|
// Console Windows PM
|
|
// C VB Delphi
|
|
//
|
|
// SHORT DESCRIPTION
|
|
//
|
|
// Read the status detail message from an ALEntryList mStatus member.
|
|
//
|
|
// C++ SYNOPSIS
|
|
//
|
|
// None. C++ programmers have access to the ALEntryList::mStatus member,
|
|
// so they can call ALStatus::GetStatusDetail() directly, instead of
|
|
// using this translation function.
|
|
//
|
|
// C SYNOPSIS
|
|
//
|
|
// #include "arclib.h"
|
|
//
|
|
// char *ALEntryListGetStatusDetail( hALEntryList this_object );
|
|
//
|
|
// VB SYNOPSIS
|
|
//
|
|
// Declare Function ALEntryListGetStatusDetail Lib "AL20LW"
|
|
// Alias "ALEntryListGetStatusDetailVB"
|
|
// (ByVal this_object&) As String
|
|
//
|
|
// DELPHI SYNOPSIS
|
|
//
|
|
// function ALEntryListGetStatusDetail( this_object : hALEntryList ) : PChar;
|
|
//
|
|
// ARGUMENTS
|
|
//
|
|
// this_object : A handle for (pointer to) an ALEntryList object.
|
|
// We want to get the detailed string describing this
|
|
// object's current status.
|
|
//
|
|
// DESCRIPTION
|
|
//
|
|
// This is the C wrapper function for the C++ function
|
|
// ALName::GetStatusDetail(), as implemented for the mStatus member
|
|
// of class ALEntryList. Note that we need a slightly different function
|
|
// to return strings to VB programmers.
|
|
//
|
|
// RETURNS
|
|
//
|
|
// Always returns a pointer to a status detail message.
|
|
//
|
|
// EXAMPLE
|
|
//
|
|
// SEE ALSO
|
|
//
|
|
// REVISION HISTORY
|
|
//
|
|
// February 14, 1996 2.0A : New release
|
|
//
|
|
|
|
extern "C" AL_LINKAGE char AL_DLL_FAR * AL_FUNCTION
|
|
ALEntryListGetStatusDetail( hALEntryList this_object ) /* Tag public function */
|
|
{
|
|
AL_ASSERT_OBJECT( this_object, ALEntryList, "ALEntryListGetStatusString" );
|
|
const char *status = ( (ALEntryList *) this_object )->mStatus.GetStatusDetail();
|
|
if ( status == 0 )
|
|
status = "";
|
|
return (char AL_DLL_FAR *) status;
|
|
}
|
|
|
|
#if defined( AL_VB )
|
|
|
|
extern "C" AL_LINKAGE long AL_FUNCTION
|
|
ALEntryListGetStatusDetailVB( hALEntryList this_object ) /* Tag public function */
|
|
{
|
|
AL_ASSERT_OBJECT( this_object, ALEntryList, "ALEntryListGetStatusDetailVB" );
|
|
const char _far *status = ( (ALEntryList *) this_object )->mStatus.GetStatusDetail();
|
|
if ( status == 0 )
|
|
status = "";
|
|
return ALCreateVBString( status, (unsigned short int) _fstrlen( status ) );
|
|
}
|
|
|
|
#elif defined( AL_VB32 )
|
|
|
|
extern "C" AL_LINKAGE BSTR AL_FUNCTION
|
|
ALEntryListGetStatusDetailVB( hALEntryList this_object ) /* Tag public function */
|
|
{
|
|
AL_ASSERT_OBJECT( this_object, ALEntryList, "ALEntryListGetStatusDetailVB" );
|
|
const char *status = ( (ALEntryList *) this_object )->mStatus.GetStatusDetail();
|
|
if ( status == 0 )
|
|
status = "";
|
|
return SysAllocStringByteLen( status, strlen( status ) );
|
|
}
|
|
|
|
#endif
|
|
|