BCX Console Demonstration Program s71.bas

' -------------------------------------------------------- 
'              Clip by Kevin Diggins (C) 2000 
'        Copies a text file to the Windows clipboard 
' -------------------------------------------------------- 

DIM OrigCodePage%
OrigCodePage% = GetConsoleOutputCP()
SetConsoleOutputCP(437)

DIM Fsize AS LONGLONG      'Size of file in bytes 
DIM Test                   'Test if the filename EXIST's 
DIM FilName$
CLS

IF COMMAND$ = "" THEN
  PRINT "������������������������������������������������������?
  PRINT "?Clip!   A Win32 command line clipboard utility      ?
  PRINT "?Usage:  Clip!  Filename  ( LongFileNames Allowed)   ?
  PRINT "?Copy any text file to the Windows clipboard FAST!   ?
  PRINT "?Freeware by Kevin Diggins -- created using BCX!     ?
  PRINT "?            BCX - The free BASIC to C               ?
  PRINT "������������������������������������������������������?
  END
END IF

FilName$ = COMMAND$
Test = EXIST(FilName$)           ' Does it exist? 
IF Test = 0 THEN                  ' Nope ... 
  PRINT "File Not Found"
  END                             ' Exit stage left 
END IF
Fsize = LOF(FilName$)            'How big is the file? 

DIM Buffer$ * Fsize + 10         'Create a buffer at least that big 

Buffer$ = ""                     'initialize it 
GetFile(FilName$, Buffer$, Fsize)
SetClipBoard(Buffer$)            'Place it on the clipboard 
FREE Buffer$                      'release allocated memory back to Windows 

PRINT "������������������������������������������������������?
PRINT "?Clip!   A Win32 command line clipboard utility      ?
PRINT "?Usage:  Clip!  Filename  ( LongFileNames Allowed)   ?
PRINT "?Copy any text file to the Windows clipboard FAST!   ?
PRINT "?Freeware by Kevin Diggins -- created using BCX!     ?
PRINT "?            BCX - The free BASIC to C               ?
PRINT "������������������������������������������������������?
COLOR 4, 0
PRINT "        ", Fsize, " bytes sent to the clipboard!"
COLOR 7, 0

PAUSE
SetConsoleOutputCP(OrigCodePage)
'--------------------------------------------------------------------------- 

SUB SetClipBoard (Text$)
  LOCAL nd  AS HANDLE
  LOCAL ns$ AS LPSTR
  nd  = GlobalAlloc(GHND, LEN(Text$) + 1)
  ns  = (LPSTR)GlobalLock(nd)
  ns$ = Text$
  GlobalUnlock(nd)
  OpenClipboard(0)
  EmptyClipboard()
  SetClipboardData(CF_TEXT, nd)
  CloseClipboard()
END SUB

SUB GetFile (Fname$, Buffer$, Count)
  ' ------------------------------------------------------ 
  '   Assumes a valid Filename to a file that exists 
  '   and a Buffer large enough to hold Count bytes 
  ' ------------------------------------------------------- 
  DIM dwRead AS DWORD
  DIM H    AS HANDLE
  H = CreateFile(Fname, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, 0);
  ReadFile(H, Buffer$, Count, &dwRead, NULL)
  CloseHandle(H)
END SUB

Result:

Result not displayed for this example.