home *** CD-ROM | disk | FTP | other *** search
/ CD Actual Thematic 25: Programming / pc_actual_25.iso / C_C++ / BisonFlexWizard / data1.cab / Src / Bison / WIN.C < prev   
Encoding:
C/C++ Source or Header  |  2000-01-16  |  685 b   |  48 lines

  1. #include <windows.h>
  2. #include "resource.h"
  3. #include <stdio.h>
  4.  
  5. void done();
  6. extern char* program_name;
  7.  
  8. int
  9. res_getc(char** f)
  10. {
  11.     static char **p = 0;
  12.     int ret;
  13.  
  14.     if (p==0)
  15.         p = f;
  16.  
  17.     ret = (*p)[0];
  18.     if (ret==0)
  19.     {
  20.         ret = EOF;
  21.         return ret;
  22.     }
  23.     (*p)++;
  24.     return ret;
  25. }
  26.  
  27. void res_fclose(char** f)
  28. {
  29.     free(f);
  30. }
  31.  
  32. char**
  33. res_tryopen(DWORD id)
  34. {
  35.  
  36.     HRSRC hr = FindResource(0, MAKEINTRESOURCE(id), "TEMPLATE");
  37.     HGLOBAL hg;
  38.     char **ret;
  39.     if (hr == NULL)
  40.     {
  41.       fprintf(stderr, "%s: Resource not found", program_name);
  42.       done(2);
  43.     }
  44.     hg = LoadResource(0, hr);
  45.     ret = (char**)malloc(sizeof(char*));
  46.     (*ret) = (char*)hg;
  47.     return ret;
  48. }