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

  1. #pragma option push -b -a8 -pc -A- /*P_O_Push*/
  2. /*++
  3.  
  4. Copyright (c) 1997-1999 Microsoft Corporation
  5.  
  6. Module Name:
  7.  
  8.     faxroute.h
  9.  
  10. Abstract:
  11.  
  12.     This file contains the prototypes, etc for the
  13.     FAX routing extension API.
  14.  
  15.  
  16. --*/
  17.  
  18. #include <commctrl.h>
  19.  
  20. #ifndef _FAXROUTE_
  21. #define _FAXROUTE_
  22.  
  23. #if _MSC_VER > 1000
  24. #pragma once
  25. #endif
  26.  
  27. #ifdef __cplusplus
  28. extern "C" {
  29. #endif
  30.  
  31.  
  32. //
  33. // microsoft routing guids
  34. //
  35.  
  36. #define MS_FAXROUTE_PRINTING_GUID               TEXT("{aec1b37c-9af2-11d0-abf7-00c04fd91a4e}")
  37. #define MS_FAXROUTE_INBOX_GUID                  TEXT("{9d3d0c32-9af2-11d0-abf7-00c04fd91a4e}")
  38. #define MS_FAXROUTE_FOLDER_GUID                 TEXT("{92041a90-9af2-11d0-abf7-00c04fd91a4e}")
  39. #define MS_FAXROUTE_EMAIL_GUID                  TEXT("{6bbf7bfe-9af2-11d0-abf7-00c04fd91a4e}")
  40.  
  41. //
  42. // callback routines
  43. //
  44.  
  45. typedef LONG (WINAPI *PFAXROUTEADDFILE)(IN DWORD JobId,IN LPCWSTR FileName,IN GUID *Guid);
  46. typedef LONG (WINAPI *PFAXROUTEDELETEFILE)(IN DWORD JobId,IN LPCWSTR FileName);
  47. typedef BOOL (WINAPI *PFAXROUTEGETFILE)(IN DWORD JobId,IN DWORD Index,OUT LPWSTR FileNameBuffer,OUT LPDWORD RequiredSize);
  48. typedef BOOL (WINAPI *PFAXROUTEENUMFILE)(IN DWORD JobId,IN GUID *GuidOwner,IN GUID *GuidCaller,IN LPCWSTR FileName,IN OUT PVOID Context);
  49. typedef BOOL (WINAPI *PFAXROUTEENUMFILES)(IN DWORD JobId,IN GUID *Guid,IN PFAXROUTEENUMFILE FileEnumerator,IN OUT PVOID Context);
  50. typedef BOOL (WINAPI *PFAXROUTEMODIFYROUTINGDATA)(IN DWORD JobId,IN LPCWSTR RoutingGuid,IN LPBYTE RoutingData,IN DWORD RoutingDataSize );
  51.  
  52.  
  53. typedef struct _FAX_ROUTE_CALLBACKROUTINES {
  54.     DWORD                       SizeOfStruct;                // size of the struct set by the fax service
  55.     PFAXROUTEADDFILE            FaxRouteAddFile;
  56.     PFAXROUTEDELETEFILE         FaxRouteDeleteFile;
  57.     PFAXROUTEGETFILE            FaxRouteGetFile;
  58.     PFAXROUTEENUMFILES          FaxRouteEnumFiles;
  59.     PFAXROUTEMODIFYROUTINGDATA  FaxRouteModifyRoutingData;
  60. } FAX_ROUTE_CALLBACKROUTINES, *PFAX_ROUTE_CALLBACKROUTINES;
  61.  
  62.  
  63. //
  64. // routing data structure
  65. //
  66.  
  67. typedef struct _FAX_ROUTE {
  68.     DWORD           SizeOfStruct;       // size of the struct set by the fax service
  69.     DWORD           JobId;              // Fax job identifier
  70.     DWORDLONG       ElapsedTime;        // Elapsed time for whole fax job in Coordinated Universal Time (UTC)
  71.     DWORDLONG       ReceiveTime;        // Starting time for fax job in Coordinated Universal Time (UTC)
  72.     DWORD           PageCount;          // Number of pages received
  73.     LPCWSTR         Csid;               // Called station identifier
  74.     LPCWSTR         Tsid;               // Transmitting station identifier
  75.     LPCWSTR         CallerId;           // Caller id
  76.     LPCWSTR         RoutingInfo;        // Routing info such as DID, T.30-subaddress, etc.
  77.     LPCWSTR         ReceiverName;       // Receiver's name
  78.     LPCWSTR         ReceiverNumber;     // Receiver's fax number
  79.     LPCWSTR         DeviceName;         // Device name for the line that received the fax
  80.     DWORD           DeviceId;           // Permenant line identifier for the receiving device
  81.     LPBYTE          RoutingInfoData;    // Routing infor data to override configured info
  82.     DWORD           RoutingInfoDataSize;// Size of routing info data
  83. } FAX_ROUTE, *PFAX_ROUTE;
  84.  
  85. enum FAXROUTE_ENABLE {
  86.     QUERY_STATUS = -1,
  87.     STATUS_DISABLE = 0,
  88.     STATUS_ENABLE = 1
  89. };
  90.  
  91.  
  92. //
  93. // prototypes
  94. //
  95.  
  96. BOOL WINAPI
  97. FaxRouteInitialize(
  98.     IN HANDLE HeapHandle,
  99.     IN PFAX_ROUTE_CALLBACKROUTINES FaxRouteCallbackRoutines
  100.     );
  101.  
  102. BOOL WINAPI
  103. FaxRouteDeviceEnable(
  104.     IN  LPCWSTR RoutingGuid,
  105.     IN  DWORD DeviceId,
  106.     IN  LONG Enabled
  107.     );
  108.  
  109. BOOL WINAPI
  110. FaxRouteDeviceChangeNotification(
  111.     IN  DWORD DeviceId,
  112.     IN  BOOL  NewDevice
  113.     );
  114.  
  115. BOOL WINAPI
  116. FaxRouteGetRoutingInfo(
  117.     IN  LPCWSTR RoutingGuid,
  118.     IN  DWORD DeviceId,
  119.     IN  LPBYTE RoutingInfo,
  120.     OUT LPDWORD RoutingInfoSize
  121.     );
  122.  
  123. BOOL WINAPI
  124. FaxRouteSetRoutingInfo(
  125.     IN  LPCWSTR RoutingGuid,
  126.     IN  DWORD DeviceId,
  127.     IN  const BYTE *RoutingInfo,
  128.     IN  DWORD RoutingInfoSize
  129.     );
  130.  
  131.  
  132. typedef BOOL (WINAPI *PFAXROUTEINITIALIZE)               (IN HANDLE,IN PFAX_ROUTE_CALLBACKROUTINES);
  133. typedef BOOL (WINAPI *PFAXROUTEMETHOD)                   (IN const FAX_ROUTE*,OUT PVOID*,OUT LPDWORD);
  134. typedef BOOL (WINAPI *PFAXROUTEDEVICEENABLE)             (IN LPCWSTR,IN DWORD,IN LONG);
  135. typedef BOOL (WINAPI *PFAXROUTEDEVICECHANGENOTIFICATION) (IN DWORD,IN BOOL);
  136. typedef BOOL (WINAPI *PFAXROUTEGETROUTINGINFO)           (IN LPCWSTR,IN DWORD,OUT LPBYTE,OUT LPDWORD);
  137. typedef BOOL (WINAPI *PFAXROUTESETROUTINGINFO)           (IN LPCWSTR,IN DWORD,IN const BYTE*,IN DWORD);
  138.  
  139.  
  140.  
  141. #ifdef __cplusplus
  142. }
  143. #endif
  144.  
  145. #endif
  146. #pragma option pop /*P_O_Pop*/
  147.