// // CXL_EDIT.CPP // // Source file for ArchiveLib 2.0 // // Copyright (c) Greenleaf Software, Inc. 1994-1996 // All Rights Reserved // // CONTENTS // // EditDisplay() // // DESCRIPTION // // C and VB programmers cant use the iostreams operators, so this // function is used to give them the same capabilities. // // REVISION HISTORY // // May 21, 1994 1.0A : First release // // February 14, 1996 2.0A : New release // #include "arclib.h" #if !defined( AL_IBM ) #pragma hdrstop #endif #include #include // // NAME // // EditDisplay() // // PLATFORMS/ENVIRONMENTS // // Windows // C++ C // // SHORT DESCRIPTION // // printf() to an edit/text control. // // C++ SYNOPSIS // // #include "arclib.h" // #include "winutil.h" // // extern "C" void EditDisplay( HWND hDlg, // int control_id, // char *fmt, // ... ); // // C SYNOPSIS // // #include "arclib.h" // #include "winutil.h" // // void EditDisplay( HWND hDlg, // int control_id, // char *fmt, // ... ); // // VB SYNOPSIS // // None, this function just isn't going to work with Vb. // // DELPHI SYNOPSIS // // None, not a good fit for Delphi. // // ARGUMENTS // // hDlg : This argument is a window handle. If the next parameter, // control_id, is set to -1, it means this is the handle of // the window that will have some new text written to it. // If control_id is some other value, it means this is the // handle of a dialog box, and control_id refers to an edit // control within the dialog box. That edit control is the // destination for the text output. // // control_id : The id of the multiline edit control in a dialog box. If // set to -1, it means the edit control is not in a dialog box, // and the hDlg parameter is the handle of the edit control. // // fmt : The format parameter to be used in wsprintf. // // ... : Any additional arguments that are going to be used by // vsprintf(). // // DESCRIPTION // // This little function lets you use a printf() style command to print // data to a multiline edit control. The internal buffer is only 128 // bytes, so please be careful. // // RETURNS // // Nothing. // // EXAMPLE // // SEE ALSO // // REVISION HISTORY // // February 14, 1996 2.0A : New release // extern "C" AL_LINKAGE void AL_CFUNCTION EditDisplay( HWND hDlg, /* Tag public function */ int id, char AL_DLL_FAR *fmt, ... ) { char buffer[ 128 ]; HWND window; va_list args; va_start( args, fmt ); // // Watcom does this differently than everyone else. It isn't really // part of the ANSI spec, so we can't complain. // #if !defined( AL_WATCOM ) wvsprintf( buffer, fmt, args ); #else wvsprintf( buffer, fmt, *args ); #endif va_end( args ); if ( id == -1 ) window = hDlg; else window = GetDlgItem( hDlg, (short int) id ); SendMessage( window, EM_REPLACESEL, 0, (LPARAM) ( (LPSTR) buffer ) ); }