home *** CD-ROM | disk | FTP | other *** search
/ Programming Win32 Under the API / ProgrammingWin32UnderTheApiPatVillani.iso / Chapter9 / cmd32 / TYPE.C < prev    next >
C/C++ Source or Header  |  2000-04-27  |  2KB  |  72 lines

  1. /****************************************************************/
  2. /*                                */
  3. /*                 type.c                */
  4. /*                                */
  5. /*              command.com type command            */
  6. /*                                */
  7. /*            Copyright (c) 2000            */
  8. /*            Pasquale J. Villani            */
  9. /*            All Rights Reserved            */
  10. /*                                */
  11. /* This file is part of CMD32.                    */
  12. /*                                */
  13. /* CMD32 is free software; you can redistribute it and/or    */
  14. /* modify it under the terms of the GNU General Public License    */
  15. /* as published by the Free Software Foundation; either version    */
  16. /* 2, or (at your option) any later version.            */
  17. /*                                */
  18. /* CMD32 is distributed in the hope that it will be useful, but    */
  19. /* WITHOUT ANY WARRANTY; without even the implied warranty of    */
  20. /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See    */
  21. /* the GNU General Public License for more details.        */
  22. /*                                */
  23. /* You should have received a copy of the GNU General Public    */
  24. /* License along with CMD32; see the file COPYING.  If not,    */
  25. /* write to the Free Software Foundation, 675 Mass Ave,        */
  26. /* Cambridge, MA 02139, USA.                    */
  27. /****************************************************************/
  28.  
  29. /* $Logfile$ */
  30.  
  31. /* $Log$ 
  32.  * $EndLog$ */
  33.  
  34. #ifdef VERSION_STRINGS
  35. static char *RcsId = "$Header$";
  36. #endif
  37.  
  38. #include <windows.h>
  39. #include "globals.h"
  40. #include "proto.h"
  41.  
  42. #define CTL_Z 0x1a
  43.  
  44. BOOL type(INT argc, BYTE *argv[])
  45. {
  46.     HANDLE hFile;
  47.     DWORD nRead;
  48.     BYTE c;
  49.  
  50.     if(argc != 2)
  51.         return FALSE;
  52.  
  53.     if((hFile = CreateFile((LPCTSTR)argv[1], GENERIC_READ, FILE_SHARE_READ,
  54.        NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0)) == INVALID_HANDLE_VALUE)
  55.     {
  56.         error_mess_str=argv[1];
  57.         error_message(FILE_NOT_FOUND);
  58.         return FALSE;
  59.     }
  60.     while(ReadFile(hFile, (LPVOID)&c, (DWORD)1, &nRead, 0) && (nRead == 1))
  61.     {
  62.         if(c == CTL_Z)
  63.             break;
  64.         printf("%c", c);
  65.     }
  66.     CloseHandle(hFile);
  67.     printf("\n");
  68.     return TRUE;
  69. }
  70.  
  71.  
  72.