home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1997 December / VPR9712A.ISO / OLS / WIN32 / COMWP380 / comwp380.exe / SAMPLES.EXE / COMWIN.H next >
C/C++ Source or Header  |  1997-08-25  |  5KB  |  141 lines

  1. #if !defined(__COMWIN_H__)
  2. #define      __COMWIN_H__
  3.  
  4. #if defined(__cplusplus)
  5. extern "C" {
  6. #endif
  7.  
  8. #include <windows.h>
  9.  
  10. /* Prototype */
  11.  
  12. LONG  FAR PASCAL Puts(LPSTR lpStr);
  13. LPSTR FAR PASCAL Gets(LPSTR lpStr);
  14. LONG  FAR PASCAL Fputs(LPSTR lpStr, LPSTR lpInfo);
  15. LPSTR FAR PASCAL Fgets(LPSTR lpStr, LONG lSize, LPSTR lpInfo);
  16. LONG  FAR PASCAL System(LPSTR lpCmd);
  17. BOOL  FAR PASCAL CallCommand(FARPROC FAR *lpfnIO, LPSTR lpCmd, LPLONG lpInfo);
  18. LONG  FAR PASCAL Getch(void);
  19. LONG  FAR PASCAL Inkey(void);
  20. LONG  FAR PASCAL Fwrite(LPVOID lpData, LONG lSize, LONG lCnt, LPSTR lpInfo);
  21. LONG  FAR PASCAL Fread(LPVOID lpData, LONG lSize, LONG lCnt, LPSTR lpInfo);
  22.  
  23. LONG  FAR PASCAL GetComWinLong(LONG lID, LONG lValue);
  24. int   FAR PASCAL MakeArgument(HINSTANCE hInstance,
  25.                               LPSTR lpCmdName,
  26.                               LPSTR lpCmdParam,
  27.                               LPINT lpArgv,
  28.                               LPSTR lpArgs,
  29.                               int nSize);
  30. LONG  FAR PASCAL cwPutenv(LPSTR lpEnv);
  31. LPSTR FAR PASCAL cwGetenv(LPSTR lpEnv);
  32. LONG  FAR CDECL  cwFprintf(LPSTR lpInfo, LPSTR lpFormat, ...);
  33.  
  34. LONG  FAR PASCAL cwPuts(LPSTR lpStr);
  35. LPSTR FAR PASCAL cwGets(LPSTR lpStr);
  36. LONG  FAR PASCAL cwFputs(LPSTR lpStr, LPSTR lpInfo);
  37. LPSTR FAR PASCAL cwFgets(LPSTR lpStr, LONG lSize, LPSTR lpInfo);
  38. LONG  FAR PASCAL cwSystem(LPSTR lpCmd);
  39. LONG  FAR PASCAL cwGetch(void);
  40. LONG  FAR PASCAL cwInkey(void);
  41. LONG  FAR PASCAL cwFwrite(LPVOID lpData, LONG lSize, LONG lCnt, LPSTR lpInfo);
  42. LONG  FAR PASCAL cwFread(LPVOID lpData, LONG lSize, LONG lCnt, LPSTR lpInfo);
  43.  
  44. typedef LONG  (FAR PASCAL *PUTS)(LPSTR);
  45. typedef LPSTR (FAR PASCAL *GETS)(LPSTR);
  46. typedef LONG  (FAR PASCAL *FPUTS)(LPSTR, LPSTR);
  47. typedef LPSTR (FAR PASCAL *FGETS)(LPSTR, LONG, LPSTR);
  48. typedef LONG  (FAR PASCAL *SYSTEM)(LPSTR);
  49. typedef BOOL  (FAR PASCAL *CALLCOMMAND)(FARPROC FAR *, LPSTR, LPLONG);
  50. typedef LONG  (FAR PASCAL *GETCH)(void);
  51. typedef LONG  (FAR PASCAL *INKEY)(void);
  52. typedef LONG  (FAR PASCAL *FWRITE)(LPVOID, LONG, LONG, LPSTR);
  53. typedef LONG  (FAR PASCAL *FREAD)(LPVOID, LONG, LONG, LPSTR);
  54.  
  55. #if defined(WIN32)
  56.  
  57. LONG   FAR PASCAL cwFputsW(LPWSTR lpwStr, LPSTR lpInfo);
  58. LPWSTR FAR PASCAL cwFgetsW(LPWSTR lpwStr, LONG lSize, LPSTR lpInfo);
  59.  
  60. typedef LONG   (FAR PASCAL *FPUTSW)(LPWSTR, LPSTR);
  61. typedef LPWSTR (FAR PASCAL *FGETSW)(LPWSTR, LONG, LPSTR);
  62.  
  63. #endif
  64.  
  65. #define CW_GETVER  0
  66. #define CW_GETENV  1
  67. #define CW_GETHWND 2
  68. #define CW_GETMSG  3
  69.  
  70. /* Message */
  71. #define CW_M_EXEC          0xFFFFFFFF
  72. #define CW_M_HELP          0x00000000
  73. #define CW_M_CONSOLE_INFO  0x00010001
  74. #define CW_M_ISATTY        0x00010002
  75. #define CW_M_UNICODE_ENTRY 0x00010003
  76. #define CW_M_USER_FIRST    0x10000000
  77. #define CW_M_USER_LAST     0x7FFFFFFF
  78. /*
  79.     0x00000001 - 0x0000FFFF reserved
  80.     0x00010002 - 0x0FFFFFFF system reserved
  81.     0x10000000 - 0x7FFFFFFF user area
  82.     0x80000000 - 0xFFFFFFFE reserved
  83.  */
  84.  
  85. /* Mode */
  86. #define CW_MODE_CLEAR 0
  87. #define CW_MODE_INIT  1
  88. #define CW_MODE_SET   2
  89. #define CW_MODE_GET   3
  90.  
  91. /* Message Structure */
  92. typedef struct CW_S_CONSOLE_INFO
  93.                CW_S_CONSOLE_INFO,
  94.        FAR *LP_CW_S_CONSOLE_INFO;
  95.  
  96. struct CW_S_CONSOLE_INFO {
  97.     LONG  lMessage;    // Message Number (= CW_M_CONSOLE_INFO)
  98.     LONG  lSize;       // Structure size (= sizeof(CW_S_CONSOLE_INFO))
  99.     LONG  lMode;       // Calling mode (= CW_MODE_XXXX)
  100.     LONG  lFuncMax;    // Max Function Count ( >= 6)
  101.     LONG  lBufMax;     // Max Buffer Size ( for Gets API etc)
  102.     DWORD hwnd;        // Window Handle of Console
  103.     LONG  lColumns;    // Columns of Console
  104.     LONG  lLines;      // Lines of Console
  105.     LONG  lWidth;      // Width of Console
  106.     LONG  lHeight;     // Height of Console
  107. };
  108.  
  109. typedef struct CW_S_ISATTY
  110.                CW_S_ISATTY,
  111.        FAR *LP_CW_S_ISATTY;
  112.  
  113. struct CW_S_ISATTY {
  114.     LONG  lMessage;    // Message Number (= CW_M_ISATTY)
  115.     LONG  lSize;       // Structure Size (= sizeof(CW_S_ISATTY))
  116.     LONG  lMode;       // Calling Mode (= CW_MODE_GET)
  117.     LONG  lStdIn;      // TRUE, if StdIn is atty.
  118.     LONG  lStdOut;     // TRUE, if StdOut is atty.
  119.     LONG  lStdErrIn;   // TRUE, if StdErrIn is atty.
  120.     LONG  lStdErrOut;  // TRUE, if StdErrOut is atty.
  121. };
  122.  
  123. /* Message Structure */
  124. typedef struct CW_S_UNICODE_ENTRY
  125.                CW_S_UNICODE_ENTRY,
  126.        FAR *LP_CW_S_UNICODE_ENTRY;
  127.  
  128. struct CW_S_UNICODE_ENTRY {
  129.     LONG  lMessage;    // Message Number (= CW_M_UNICODE_ENTRY)
  130.     LONG  lSize;       // Structure size (= sizeof(CW_S_UNICODE_ENTRY))
  131.     LONG  lMode;       // Calling mode (= CW_MODE_XXXX)
  132.     LONG  lFuncMax;    // Max Function Count ( >= 6)
  133.     LONG  lBufMax;     // Max Buffer Size ( Not used)
  134. };
  135.  
  136. #if defined(__cplusplus)
  137. }
  138. #endif
  139.  
  140. #endif /* __COMWIN_H__ */
  141.