home *** CD-ROM | disk | FTP | other *** search
/ PC Format (South-Africa) 2001 May / PCFMay2001.iso / Xenon / C++ / FreeCommandLineTools.exe / Include / faxdev.h < prev    next >
Encoding:
C/C++ Source or Header  |  2000-01-31  |  4.8 KB  |  205 lines

  1. #pragma option push -b -a8 -pc -A- /*P_O_Push*/
  2. /*++
  3.  
  4. Copyright (c) 1996-1999  Microsoft Corporation
  5.  
  6. Module Name:
  7.  
  8.     faxdev.h
  9.  
  10. Abstract:
  11.  
  12.     This file contains the prototypes, etc for the
  13.     FAX device provider API.
  14.  
  15. --*/
  16.  
  17. #include <commctrl.h>
  18.  
  19. #ifndef _FAXDEV_
  20. #define _FAXDEV_
  21.  
  22. #if _MSC_VER > 1000
  23. #pragma once
  24. #endif
  25.  
  26. #ifdef __cplusplus
  27. extern "C" {
  28. #endif
  29.  
  30. //
  31. // FAX status constants
  32. //
  33.  
  34. #define FS_INITIALIZING         0x20000000
  35. #define FS_DIALING              0x20000001
  36. #define FS_TRANSMITTING         0x20000002
  37. #define FS_RECEIVING            0x20000004
  38. #define FS_COMPLETED            0x20000008
  39. #define FS_HANDLED              0x20000010
  40. #define FS_LINE_UNAVAILABLE     0x20000020
  41. #define FS_BUSY                 0x20000040
  42. #define FS_NO_ANSWER            0x20000080
  43. #define FS_BAD_ADDRESS          0x20000100
  44. #define FS_NO_DIAL_TONE         0x20000200
  45. #define FS_DISCONNECTED         0x20000400
  46. #define FS_FATAL_ERROR          0x20000800  // see the stringid for the real status
  47. #define FS_NOT_FAX_CALL         0x20001000
  48. #define FS_CALL_DELAYED         0x20002000
  49. #define FS_CALL_BLACKLISTED     0x20004000
  50. #define FS_USER_ABORT           0x20200000
  51. #define FS_ANSWERED             0x20800000
  52.  
  53.  
  54. //
  55. // data structures
  56. //
  57.  
  58. typedef struct _FAX_SEND {
  59.     DWORD   SizeOfStruct;
  60.     LPWSTR  FileName;
  61.     LPWSTR  CallerName;
  62.     LPWSTR  CallerNumber;
  63.     LPWSTR  ReceiverName;
  64.     LPWSTR  ReceiverNumber;
  65.     BOOL    Branding;
  66.     HCALL   CallHandle;
  67.     DWORD   Reserved[3];
  68. } FAX_SEND, *PFAX_SEND;
  69.  
  70. typedef struct _FAX_RECEIVE {
  71.     DWORD   SizeOfStruct;
  72.     LPWSTR  FileName;
  73.     LPWSTR  ReceiverName;
  74.     LPWSTR  ReceiverNumber;
  75.     DWORD   Reserved[4];
  76. } FAX_RECEIVE, *PFAX_RECEIVE;
  77.  
  78. typedef struct _FAX_DEV_STATUS {
  79.     DWORD   SizeOfStruct;
  80.     DWORD   StatusId;
  81.     DWORD   StringId;
  82.     DWORD   PageCount;
  83.     LPWSTR  CSI;
  84.     LPWSTR  CallerId;
  85.     LPWSTR  RoutingInfo;
  86.     DWORD   ErrorCode;
  87.     DWORD   Reserved[3];
  88. } FAX_DEV_STATUS, *PFAX_DEV_STATUS;
  89.  
  90.  
  91. typedef BOOL
  92. (CALLBACK *PFAX_SERVICE_CALLBACK)(
  93.     IN HANDLE FaxHandle,
  94.     IN DWORD  DeviceId,
  95.     IN DWORD_PTR  Param1,
  96.     IN DWORD_PTR  Param2,
  97.     IN DWORD_PTR  Param3
  98.     );
  99.  
  100. typedef void
  101. (CALLBACK *PFAX_LINECALLBACK)(
  102.     IN HANDLE FaxHandle,
  103.     IN DWORD hDevice,
  104.     IN DWORD dwMessage,
  105.     IN DWORD_PTR dwInstance,
  106.     IN DWORD_PTR dwParam1,
  107.     IN DWORD_PTR dwParam2,
  108.     IN DWORD_PTR dwParam3
  109.     );
  110.  
  111.  
  112.  
  113. BOOL WINAPI
  114. FaxDevInitialize(
  115.     IN  HLINEAPP LineAppHandle,
  116.     IN  HANDLE HeapHandle,
  117.     OUT PFAX_LINECALLBACK *LineCallbackFunction,
  118.     IN  PFAX_SERVICE_CALLBACK FaxServiceCallback
  119.     );
  120.  
  121. BOOL WINAPI
  122. FaxDevVirtualDeviceCreation(
  123.     OUT LPDWORD DeviceCount,
  124.     OUT LPWSTR DeviceNamePrefix,
  125.     OUT LPDWORD DeviceIdPrefix,
  126.     IN  HANDLE CompletionPort,
  127.     IN  ULONG_PTR CompletionKey
  128.     );
  129.  
  130. BOOL WINAPI
  131. FaxDevStartJob(
  132.     IN  HLINE LineHandle,
  133.     IN  DWORD DeviceId,
  134.     OUT PHANDLE FaxHandle,
  135.     IN  HANDLE CompletionPortHandle,
  136.     IN  ULONG_PTR CompletionKey
  137.     );
  138.  
  139. BOOL WINAPI
  140. FaxDevEndJob(
  141.     IN  HANDLE FaxHandle
  142.     );
  143.  
  144. typedef BOOL
  145. (CALLBACK *PFAX_SEND_CALLBACK)(
  146.     IN HANDLE FaxHandle,
  147.     IN HCALL CallHandle,
  148.     IN DWORD Reserved1,
  149.     IN DWORD Reserved2
  150.     );
  151.  
  152. BOOL WINAPI
  153. FaxDevSend(
  154.     IN  HANDLE FaxHandle,
  155.     IN  PFAX_SEND FaxSend,
  156.     IN  PFAX_SEND_CALLBACK FaxSendCallback
  157.     );
  158.  
  159. #define FAXDEVRECEIVE_SIZE 4096
  160.  
  161. BOOL WINAPI
  162. FaxDevReceive(
  163.     IN  HANDLE FaxHandle,
  164.     IN  HCALL CallHandle,
  165.     IN OUT PFAX_RECEIVE FaxReceive
  166.     );
  167.  
  168. #define FAXDEVREPORTSTATUS_SIZE 4096
  169.  
  170. BOOL WINAPI
  171. FaxDevReportStatus(
  172.     IN  HANDLE FaxHandle OPTIONAL,
  173.     OUT PFAX_DEV_STATUS FaxStatus,
  174.     IN  DWORD FaxStatusSize,
  175.     OUT LPDWORD FaxStatusSizeRequired
  176.     );
  177.  
  178. BOOL WINAPI
  179. FaxDevAbortOperation(
  180.     IN  HANDLE FaxHandle
  181.     );
  182.  
  183. BOOL WINAPI
  184. FaxDevConfigure(
  185.     OUT HPROPSHEETPAGE *PropSheetPage
  186.     );
  187.  
  188.  
  189. typedef BOOL (WINAPI *PFAXDEVINITIALIZE)                (HLINEAPP,HANDLE,PFAX_LINECALLBACK*,PFAX_SERVICE_CALLBACK);
  190. typedef BOOL (WINAPI *PFAXDEVVIRTUALDEVICECREATION)     (LPDWORD,LPWSTR,LPDWORD,HANDLE,ULONG_PTR);
  191. typedef BOOL (WINAPI *PFAXDEVSTARTJOB)                  (HLINE,DWORD,PHANDLE,HANDLE,ULONG_PTR);
  192. typedef BOOL (WINAPI *PFAXDEVENDJOB)                    (HANDLE);
  193. typedef BOOL (WINAPI *PFAXDEVSEND)                      (HANDLE,PFAX_SEND,PFAX_SEND_CALLBACK);
  194. typedef BOOL (WINAPI *PFAXDEVRECEIVE)                   (HANDLE,HCALL,PFAX_RECEIVE);
  195. typedef BOOL (WINAPI *PFAXDEVREPORTSTATUS)              (HANDLE,PFAX_DEV_STATUS,DWORD,LPDWORD);
  196. typedef BOOL (WINAPI *PFAXDEVABORTOPERATION)            (HANDLE);
  197. typedef BOOL (WINAPI *PFAXDEVCONFIGURE)                 (HPROPSHEETPAGE*);
  198.  
  199. #ifdef __cplusplus
  200. }
  201. #endif
  202.  
  203. #endif
  204. #pragma option pop /*P_O_Pop*/
  205.