1997 lines
60 KiB
C
1997 lines
60 KiB
C
|
|
/*++
|
|
|
|
Copyright (c) Microsoft Corporation. All rights reserved.
|
|
|
|
Module Name:
|
|
|
|
winfax.h
|
|
|
|
Abstract:
|
|
|
|
This module contains the WIN32 FAX APIs.
|
|
|
|
--*/
|
|
|
|
|
|
|
|
#ifndef _FAXAPI_
|
|
#define _FAXAPI_
|
|
|
|
|
|
#ifndef MIDL_PASS
|
|
#include <tapi.h>
|
|
#endif
|
|
|
|
#if !defined(_WINFAX_)
|
|
#define WINFAXAPI DECLSPEC_IMPORT
|
|
#else
|
|
#define WINFAXAPI
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
//
|
|
// FAX ERROR CODES
|
|
//
|
|
|
|
#define FAX_ERR_START 7001L // First fax specific error code
|
|
|
|
#define FAX_ERR_SRV_OUTOFMEMORY 7001L
|
|
#define FAX_ERR_GROUP_NOT_FOUND 7002L
|
|
#define FAX_ERR_BAD_GROUP_CONFIGURATION 7003L
|
|
#define FAX_ERR_GROUP_IN_USE 7004L
|
|
#define FAX_ERR_RULE_NOT_FOUND 7005L
|
|
#define FAX_ERR_NOT_NTFS 7006L
|
|
#define FAX_ERR_DIRECTORY_IN_USE 7007L
|
|
#define FAX_ERR_FILE_ACCESS_DENIED 7008L
|
|
#define FAX_ERR_MESSAGE_NOT_FOUND 7009L
|
|
#define FAX_ERR_DEVICE_NUM_LIMIT_EXCEEDED 7010L
|
|
#define FAX_ERR_NOT_SUPPORTED_ON_THIS_SKU 7011L
|
|
#define FAX_ERR_VERSION_MISMATCH 7012L // Fax client/server versions mismtach
|
|
|
|
#define FAX_ERR_END 7012L // Last fax specific error code
|
|
|
|
|
|
//
|
|
// MessageId: FAX_E_SRV_OUTOFMEMORY
|
|
//
|
|
// MessageText:
|
|
//
|
|
// The fax server failed to allocate memory.
|
|
//
|
|
#define FAX_E_SRV_OUTOFMEMORY MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, FAX_ERR_SRV_OUTOFMEMORY)
|
|
|
|
//
|
|
// MessageId: FAX_E_GROUP_NOT_FOUND
|
|
//
|
|
// MessageText:
|
|
//
|
|
// The fax server failed to locate an outbound routing group by name.
|
|
//
|
|
#define FAX_E_GROUP_NOT_FOUND MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, FAX_ERR_GROUP_NOT_FOUND)
|
|
|
|
//
|
|
// MessageId: FAX_E_BAD_GROUP_CONFIGURATION
|
|
//
|
|
// MessageText:
|
|
//
|
|
// The fax server encountered an outbound routing group with bad configuration.
|
|
//
|
|
#define FAX_E_BAD_GROUP_CONFIGURATION MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, FAX_ERR_BAD_GROUP_CONFIGURATION)
|
|
|
|
//
|
|
// MessageId: FAX_E_GROUP_IN_USE
|
|
//
|
|
// MessageText:
|
|
//
|
|
// The fax server cannot remove an outbound routing group because it is in use by one or more outbound routing rules.
|
|
//
|
|
#define FAX_E_GROUP_IN_USE MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, FAX_ERR_GROUP_IN_USE)
|
|
|
|
//
|
|
// MessageId: FAX_E_RULE_NOT_FOUND
|
|
//
|
|
// MessageText:
|
|
//
|
|
// The fax server failed to locate an outbound routing rule by country code and area code.
|
|
//
|
|
#define FAX_E_RULE_NOT_FOUND MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, FAX_ERR_RULE_NOT_FOUND)
|
|
|
|
//
|
|
// MessageId: FAX_E_NOT_NTFS
|
|
//
|
|
// MessageText:
|
|
//
|
|
// The fax server cannot set an archive folder to a non-NTFS partition.
|
|
//
|
|
#define FAX_E_NOT_NTFS MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, FAX_ERR_NOT_NTFS)
|
|
|
|
//
|
|
// MessageId: FAX_E_DIRECTORY_IN_USE
|
|
//
|
|
// MessageText:
|
|
//
|
|
// The fax server cannot use the same folder for both the inbox and the sent-items archives.
|
|
//
|
|
#define FAX_E_DIRECTORY_IN_USE MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, FAX_ERR_DIRECTORY_IN_USE)
|
|
|
|
//
|
|
// MessageId: FAX_E_FILE_ACCESS_DENIED
|
|
//
|
|
// MessageText:
|
|
//
|
|
// The fax server cannot access the specified file or folder.
|
|
//
|
|
#define FAX_E_FILE_ACCESS_DENIED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, FAX_ERR_FILE_ACCESS_DENIED)
|
|
|
|
//
|
|
// MessageId: FAX_E_MESSAGE_NOT_FOUND
|
|
//
|
|
// MessageText:
|
|
//
|
|
// The fax server cannot find the job or message by its ID.
|
|
//
|
|
#define FAX_E_MESSAGE_NOT_FOUND MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, FAX_ERR_MESSAGE_NOT_FOUND)
|
|
|
|
//
|
|
// MessageId: FAX_E_DEVICE_NUM_LIMIT_EXCEEDED
|
|
//
|
|
// MessageText:
|
|
//
|
|
// The fax server cannot complete the operation because the number of active fax devices allowed for this version of Windows was exceeded.
|
|
//
|
|
#define FAX_E_DEVICE_NUM_LIMIT_EXCEEDED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, FAX_ERR_DEVICE_NUM_LIMIT_EXCEEDED)
|
|
|
|
//
|
|
// MessageId: FAX_E_NOT_SUPPORTED_ON_THIS_SKU
|
|
//
|
|
// MessageText:
|
|
//
|
|
// The fax server cannot complete the operation because it is not supported for this version of Windows.
|
|
//
|
|
#define FAX_E_NOT_SUPPORTED_ON_THIS_SKU MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, FAX_ERR_NOT_SUPPORTED_ON_THIS_SKU)
|
|
|
|
//
|
|
// MessageId: FAX_E_VERSION_MISMATCH
|
|
//
|
|
// MessageText:
|
|
//
|
|
// The fax server API version does not support the requested operation.
|
|
//
|
|
#define FAX_E_VERSION_MISMATCH MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, FAX_ERR_VERSION_MISMATCH)
|
|
|
|
typedef enum
|
|
{
|
|
FAXLOG_LEVEL_NONE = 0,
|
|
FAXLOG_LEVEL_MIN,
|
|
FAXLOG_LEVEL_MED,
|
|
FAXLOG_LEVEL_MAX
|
|
} FAX_ENUM_LOG_LEVELS;
|
|
|
|
typedef enum
|
|
{
|
|
FAXLOG_CATEGORY_INIT = 1, // Initialization / shutdown
|
|
FAXLOG_CATEGORY_OUTBOUND, // Outbound messages
|
|
FAXLOG_CATEGORY_INBOUND, // Inbound messages
|
|
FAXLOG_CATEGORY_UNKNOWN // Unknown category (all others)
|
|
} FAX_ENUM_LOG_CATEGORIES;
|
|
|
|
typedef struct _FAX_LOG_CATEGORYA
|
|
{
|
|
LPCSTR Name; // logging category name
|
|
DWORD Category; // logging category number
|
|
DWORD Level; // logging level for the category
|
|
} FAX_LOG_CATEGORYA, *PFAX_LOG_CATEGORYA;
|
|
typedef struct _FAX_LOG_CATEGORYW
|
|
{
|
|
LPCWSTR Name; // logging category name
|
|
DWORD Category; // logging category number
|
|
DWORD Level; // logging level for the category
|
|
} FAX_LOG_CATEGORYW, *PFAX_LOG_CATEGORYW;
|
|
#ifdef UNICODE
|
|
typedef FAX_LOG_CATEGORYW FAX_LOG_CATEGORY;
|
|
typedef PFAX_LOG_CATEGORYW PFAX_LOG_CATEGORY;
|
|
#else
|
|
typedef FAX_LOG_CATEGORYA FAX_LOG_CATEGORY;
|
|
typedef PFAX_LOG_CATEGORYA PFAX_LOG_CATEGORY;
|
|
#endif // UNICODE
|
|
|
|
typedef struct _FAX_TIME
|
|
{
|
|
WORD Hour;
|
|
WORD Minute;
|
|
} FAX_TIME, *PFAX_TIME;
|
|
|
|
typedef struct _FAX_CONFIGURATIONA
|
|
{
|
|
DWORD SizeOfStruct; // size of this structure
|
|
DWORD Retries; // number of retries for fax send
|
|
DWORD RetryDelay; // number of minutes between retries
|
|
DWORD DirtyDays; // number of days to keep an unsent job in the queue
|
|
BOOL Branding; // fsp should brand outgoing faxes
|
|
BOOL UseDeviceTsid; // server uses device tsid only
|
|
BOOL ServerCp; // clients must use cover pages on the server
|
|
BOOL PauseServerQueue; // is the server queue paused?
|
|
FAX_TIME StartCheapTime; // start of discount rate period
|
|
FAX_TIME StopCheapTime; // end of discount rate period
|
|
BOOL ArchiveOutgoingFaxes; // whether outgoing faxes should be archived
|
|
LPCSTR ArchiveDirectory; // archive directory for outgoing faxes
|
|
LPCSTR Reserved; // Reserved; must be NULL
|
|
} FAX_CONFIGURATIONA, *PFAX_CONFIGURATIONA;
|
|
typedef struct _FAX_CONFIGURATIONW
|
|
{
|
|
DWORD SizeOfStruct; // size of this structure
|
|
DWORD Retries; // number of retries for fax send
|
|
DWORD RetryDelay; // number of minutes between retries
|
|
DWORD DirtyDays; // number of days to keep an unsent job in the queue
|
|
BOOL Branding; // fsp should brand outgoing faxes
|
|
BOOL UseDeviceTsid; // server uses device tsid only
|
|
BOOL ServerCp; // clients must use cover pages on the server
|
|
BOOL PauseServerQueue; // is the server queue paused?
|
|
FAX_TIME StartCheapTime; // start of discount rate period
|
|
FAX_TIME StopCheapTime; // end of discount rate period
|
|
BOOL ArchiveOutgoingFaxes; // whether outgoing faxes should be archived
|
|
LPCWSTR ArchiveDirectory; // archive directory for outgoing faxes
|
|
LPCWSTR Reserved; // Reserved; must be NULL
|
|
} FAX_CONFIGURATIONW, *PFAX_CONFIGURATIONW;
|
|
#ifdef UNICODE
|
|
typedef FAX_CONFIGURATIONW FAX_CONFIGURATION;
|
|
typedef PFAX_CONFIGURATIONW PFAX_CONFIGURATION;
|
|
#else
|
|
typedef FAX_CONFIGURATIONA FAX_CONFIGURATION;
|
|
typedef PFAX_CONFIGURATIONA PFAX_CONFIGURATION;
|
|
#endif // UNICODE
|
|
|
|
|
|
//
|
|
// FaxSetJob() command codes
|
|
//
|
|
|
|
typedef enum
|
|
{
|
|
JC_UNKNOWN = 0,
|
|
JC_DELETE,
|
|
JC_PAUSE,
|
|
JC_RESUME
|
|
} FAX_ENUM_JOB_COMMANDS;
|
|
|
|
#define JC_RESTART JC_RESUME
|
|
|
|
|
|
//
|
|
// job type defines
|
|
//
|
|
|
|
#define JT_UNKNOWN 0
|
|
#define JT_SEND 1
|
|
#define JT_RECEIVE 2
|
|
#define JT_ROUTING 3
|
|
#define JT_FAIL_RECEIVE 4
|
|
|
|
//
|
|
// job status defines
|
|
//
|
|
#define JS_PENDING 0x00000000
|
|
#define JS_INPROGRESS 0x00000001
|
|
#define JS_DELETING 0x00000002
|
|
#define JS_FAILED 0x00000004
|
|
#define JS_PAUSED 0x00000008
|
|
#define JS_NOLINE 0x00000010
|
|
#define JS_RETRYING 0x00000020
|
|
#define JS_RETRIES_EXCEEDED 0x00000040
|
|
|
|
|
|
|
|
typedef struct _FAX_DEVICE_STATUSA
|
|
{
|
|
DWORD SizeOfStruct; // size of this structure
|
|
LPCSTR CallerId; // caller id string
|
|
LPCSTR Csid; // station identifier
|
|
DWORD CurrentPage; // current page
|
|
DWORD DeviceId; // permanent line id
|
|
LPCSTR DeviceName; // device name
|
|
LPCSTR DocumentName; // document name
|
|
DWORD JobType; // send or receive?
|
|
LPCSTR PhoneNumber; // sending phone number
|
|
LPCSTR RoutingString; // routing information
|
|
LPCSTR SenderName; // sender name
|
|
LPCSTR RecipientName; // recipient name
|
|
DWORD Size; // size in bytes of the document
|
|
FILETIME StartTime; // starting time of the fax send/receive
|
|
DWORD Status; // current status of the device, see FPS_??? masks
|
|
LPCSTR StatusString; // status string if the Status field is zero. this may be NULL.
|
|
FILETIME SubmittedTime; // time the document was submitted
|
|
DWORD TotalPages; // total number of pages in this job
|
|
LPCSTR Tsid; // transmitting station identifier
|
|
LPCSTR UserName; // user that submitted the active job
|
|
} FAX_DEVICE_STATUSA, *PFAX_DEVICE_STATUSA;
|
|
typedef struct _FAX_DEVICE_STATUSW
|
|
{
|
|
DWORD SizeOfStruct; // size of this structure
|
|
LPCWSTR CallerId; // caller id string
|
|
LPCWSTR Csid; // station identifier
|
|
DWORD CurrentPage; // current page
|
|
DWORD DeviceId; // permanent line id
|
|
LPCWSTR DeviceName; // device name
|
|
LPCWSTR DocumentName; // document name
|
|
DWORD JobType; // send or receive?
|
|
LPCWSTR PhoneNumber; // sending phone number
|
|
LPCWSTR RoutingString; // routing information
|
|
LPCWSTR SenderName; // sender name
|
|
LPCWSTR RecipientName; // recipient name
|
|
DWORD Size; // size in bytes of the document
|
|
FILETIME StartTime; // starting time of the fax send/receive
|
|
DWORD Status; // current status of the device, see FPS_??? masks
|
|
LPCWSTR StatusString; // status string if the Status field is zero. this may be NULL.
|
|
FILETIME SubmittedTime; // time the document was submitted
|
|
DWORD TotalPages; // total number of pages in this job
|
|
LPCWSTR Tsid; // transmitting station identifier
|
|
LPCWSTR UserName; // user that submitted the active job
|
|
} FAX_DEVICE_STATUSW, *PFAX_DEVICE_STATUSW;
|
|
#ifdef UNICODE
|
|
typedef FAX_DEVICE_STATUSW FAX_DEVICE_STATUS;
|
|
typedef PFAX_DEVICE_STATUSW PFAX_DEVICE_STATUS;
|
|
#else
|
|
typedef FAX_DEVICE_STATUSA FAX_DEVICE_STATUS;
|
|
typedef PFAX_DEVICE_STATUSA PFAX_DEVICE_STATUS;
|
|
#endif // UNICODE
|
|
|
|
typedef struct _FAX_JOB_ENTRYA
|
|
{
|
|
DWORD SizeOfStruct; // size of this structure
|
|
DWORD JobId; // fax job id
|
|
LPCSTR UserName; // user who submitted the job
|
|
DWORD JobType; // job type, see JT defines
|
|
DWORD QueueStatus; // job queue status, see JS defines
|
|
DWORD Status; // current status of the device, see FPS_??? masks
|
|
DWORD Size; // size in bytes of the document
|
|
DWORD PageCount; // total page count
|
|
LPCSTR RecipientNumber; // recipient fax number
|
|
LPCSTR RecipientName; // recipient name
|
|
LPCSTR Tsid; // transmitter's id
|
|
LPCSTR SenderName; // sender name
|
|
LPCSTR SenderCompany; // sender company
|
|
LPCSTR SenderDept; // sender department
|
|
LPCSTR BillingCode; // billing code
|
|
DWORD ScheduleAction; // when to schedule the fax, see JSA defines
|
|
SYSTEMTIME ScheduleTime; // time to send the fax when JSA_SPECIFIC_TIME is used (must be local time)
|
|
DWORD DeliveryReportType; // delivery report type, see DRT defines
|
|
LPCSTR DeliveryReportAddress; // email address for delivery report (ndr or dr) thru MAPI / SMTP
|
|
LPCSTR DocumentName; // document name
|
|
} FAX_JOB_ENTRYA, *PFAX_JOB_ENTRYA;
|
|
typedef struct _FAX_JOB_ENTRYW
|
|
{
|
|
DWORD SizeOfStruct; // size of this structure
|
|
DWORD JobId; // fax job id
|
|
LPCWSTR UserName; // user who submitted the job
|
|
DWORD JobType; // job type, see JT defines
|
|
DWORD QueueStatus; // job queue status, see JS defines
|
|
DWORD Status; // current status of the device, see FPS_??? masks
|
|
DWORD Size; // size in bytes of the document
|
|
DWORD PageCount; // total page count
|
|
LPCWSTR RecipientNumber; // recipient fax number
|
|
LPCWSTR RecipientName; // recipient name
|
|
LPCWSTR Tsid; // transmitter's id
|
|
LPCWSTR SenderName; // sender name
|
|
LPCWSTR SenderCompany; // sender company
|
|
LPCWSTR SenderDept; // sender department
|
|
LPCWSTR BillingCode; // billing code
|
|
DWORD ScheduleAction; // when to schedule the fax, see JSA defines
|
|
SYSTEMTIME ScheduleTime; // time to send the fax when JSA_SPECIFIC_TIME is used (must be local time)
|
|
DWORD DeliveryReportType; // delivery report type, see DRT defines
|
|
LPCWSTR DeliveryReportAddress; // email address for delivery report (ndr or dr) thru MAPI / SMTP
|
|
LPCWSTR DocumentName; // document name
|
|
} FAX_JOB_ENTRYW, *PFAX_JOB_ENTRYW;
|
|
#ifdef UNICODE
|
|
typedef FAX_JOB_ENTRYW FAX_JOB_ENTRY;
|
|
typedef PFAX_JOB_ENTRYW PFAX_JOB_ENTRY;
|
|
#else
|
|
typedef FAX_JOB_ENTRYA FAX_JOB_ENTRY;
|
|
typedef PFAX_JOB_ENTRYA PFAX_JOB_ENTRY;
|
|
#endif // UNICODE
|
|
|
|
//
|
|
// fax port state masks
|
|
//
|
|
// if you change these defines the be sure to
|
|
// change the resources in the fax service.
|
|
//
|
|
|
|
#define FPS_DIALING 0x20000001
|
|
#define FPS_SENDING 0x20000002
|
|
#define FPS_RECEIVING 0x20000004
|
|
#define FPS_COMPLETED 0x20000008
|
|
#define FPS_HANDLED 0x20000010
|
|
#define FPS_UNAVAILABLE 0x20000020
|
|
#define FPS_BUSY 0x20000040
|
|
#define FPS_NO_ANSWER 0x20000080
|
|
#define FPS_BAD_ADDRESS 0x20000100
|
|
#define FPS_NO_DIAL_TONE 0x20000200
|
|
#define FPS_DISCONNECTED 0x20000400
|
|
#define FPS_FATAL_ERROR 0x20000800
|
|
#define FPS_NOT_FAX_CALL 0x20001000
|
|
#define FPS_CALL_DELAYED 0x20002000
|
|
#define FPS_CALL_BLACKLISTED 0x20004000
|
|
#define FPS_INITIALIZING 0x20008000
|
|
#define FPS_OFFLINE 0x20010000
|
|
#define FPS_RINGING 0x20020000
|
|
|
|
#define FPS_AVAILABLE 0x20100000
|
|
#define FPS_ABORTING 0x20200000
|
|
#define FPS_ROUTING 0x20400000
|
|
#define FPS_ANSWERED 0x20800000
|
|
|
|
//
|
|
// fax port capability mask
|
|
//
|
|
|
|
#define FPF_RECEIVE 0x00000001 // Automatically receive faxes
|
|
#define FPF_SEND 0x00000002
|
|
#define FPF_VIRTUAL 0x00000004
|
|
|
|
typedef struct _FAX_PORT_INFOA
|
|
{
|
|
DWORD SizeOfStruct; // size of this structure
|
|
DWORD DeviceId; // Device ID
|
|
DWORD State; // State of the device
|
|
DWORD Flags; // Device specific flags
|
|
DWORD Rings; // Number of rings before answer
|
|
DWORD Priority; // Device priority
|
|
LPCSTR DeviceName; // Device name
|
|
LPCSTR Tsid; // Device Tsid
|
|
LPCSTR Csid; // Device Csid
|
|
} FAX_PORT_INFOA, *PFAX_PORT_INFOA;
|
|
typedef struct _FAX_PORT_INFOW
|
|
{
|
|
DWORD SizeOfStruct; // size of this structure
|
|
DWORD DeviceId; // Device ID
|
|
DWORD State; // State of the device
|
|
DWORD Flags; // Device specific flags
|
|
DWORD Rings; // Number of rings before answer
|
|
DWORD Priority; // Device priority
|
|
LPCWSTR DeviceName; // Device name
|
|
LPCWSTR Tsid; // Device Tsid
|
|
LPCWSTR Csid; // Device Csid
|
|
} FAX_PORT_INFOW, *PFAX_PORT_INFOW;
|
|
#ifdef UNICODE
|
|
typedef FAX_PORT_INFOW FAX_PORT_INFO;
|
|
typedef PFAX_PORT_INFOW PFAX_PORT_INFO;
|
|
#else
|
|
typedef FAX_PORT_INFOA FAX_PORT_INFO;
|
|
typedef PFAX_PORT_INFOA PFAX_PORT_INFO;
|
|
#endif // UNICODE
|
|
|
|
|
|
typedef struct _FAX_ROUTING_METHODA
|
|
{
|
|
DWORD SizeOfStruct; // size of this structure
|
|
DWORD DeviceId; // device identifier
|
|
BOOL Enabled; // is this method enabled for this device?
|
|
LPCSTR DeviceName; // device name
|
|
LPCSTR Guid; // guid that identifies this routing method
|
|
LPCSTR FriendlyName; // friendly name for this method
|
|
LPCSTR FunctionName; // exported function name that identifies this method
|
|
LPCSTR ExtensionImageName; // module (dll) name that implements this method
|
|
LPCSTR ExtensionFriendlyName; // displayable string that identifies the extension
|
|
} FAX_ROUTING_METHODA, *PFAX_ROUTING_METHODA;
|
|
typedef struct _FAX_ROUTING_METHODW
|
|
{
|
|
DWORD SizeOfStruct; // size of this structure
|
|
DWORD DeviceId; // device identifier
|
|
BOOL Enabled; // is this method enabled for this device?
|
|
LPCWSTR DeviceName; // device name
|
|
LPCWSTR Guid; // guid that identifies this routing method
|
|
LPCWSTR FriendlyName; // friendly name for this method
|
|
LPCWSTR FunctionName; // exported function name that identifies this method
|
|
LPCWSTR ExtensionImageName; // module (dll) name that implements this method
|
|
LPCWSTR ExtensionFriendlyName; // displayable string that identifies the extension
|
|
} FAX_ROUTING_METHODW, *PFAX_ROUTING_METHODW;
|
|
#ifdef UNICODE
|
|
typedef FAX_ROUTING_METHODW FAX_ROUTING_METHOD;
|
|
typedef PFAX_ROUTING_METHODW PFAX_ROUTING_METHOD;
|
|
#else
|
|
typedef FAX_ROUTING_METHODA FAX_ROUTING_METHOD;
|
|
typedef PFAX_ROUTING_METHODA PFAX_ROUTING_METHOD;
|
|
#endif // UNICODE
|
|
|
|
|
|
typedef struct _FAX_GLOBAL_ROUTING_INFOA
|
|
{
|
|
DWORD SizeOfStruct; // size of this structure
|
|
DWORD Priority; // priority of this device
|
|
LPCSTR Guid; // guid that identifies this routing method
|
|
LPCSTR FriendlyName; // friendly name for this method
|
|
LPCSTR FunctionName; // exported function name that identifies this method
|
|
LPCSTR ExtensionImageName; // module (dll) name that implements this method
|
|
LPCSTR ExtensionFriendlyName; // displayable string that identifies the extension
|
|
} FAX_GLOBAL_ROUTING_INFOA, *PFAX_GLOBAL_ROUTING_INFOA;
|
|
typedef struct _FAX_GLOBAL_ROUTING_INFOW
|
|
{
|
|
DWORD SizeOfStruct; // size of this structure
|
|
DWORD Priority; // priority of this device
|
|
LPCWSTR Guid; // guid that identifies this routing method
|
|
LPCWSTR FriendlyName; // friendly name for this method
|
|
LPCWSTR FunctionName; // exported function name that identifies this method
|
|
LPCWSTR ExtensionImageName; // module (dll) name that implements this method
|
|
LPCWSTR ExtensionFriendlyName; // displayable string that identifies the extension
|
|
} FAX_GLOBAL_ROUTING_INFOW, *PFAX_GLOBAL_ROUTING_INFOW;
|
|
#ifdef UNICODE
|
|
typedef FAX_GLOBAL_ROUTING_INFOW FAX_GLOBAL_ROUTING_INFO;
|
|
typedef PFAX_GLOBAL_ROUTING_INFOW PFAX_GLOBAL_ROUTING_INFO;
|
|
#else
|
|
typedef FAX_GLOBAL_ROUTING_INFOA FAX_GLOBAL_ROUTING_INFO;
|
|
typedef PFAX_GLOBAL_ROUTING_INFOA PFAX_GLOBAL_ROUTING_INFO;
|
|
#endif // UNICODE
|
|
|
|
|
|
typedef struct _FAX_COVERPAGE_INFOA
|
|
{
|
|
DWORD SizeOfStruct; // Size of this structure
|
|
//
|
|
// general
|
|
//
|
|
LPCSTR CoverPageName; // coverpage document name
|
|
BOOL UseServerCoverPage; // coverpage exists on the fax server
|
|
//
|
|
// Recipient information
|
|
//
|
|
LPCSTR RecName; //
|
|
LPCSTR RecFaxNumber; //
|
|
LPCSTR RecCompany; //
|
|
LPCSTR RecStreetAddress; //
|
|
LPCSTR RecCity; //
|
|
LPCSTR RecState; //
|
|
LPCSTR RecZip; //
|
|
LPCSTR RecCountry; //
|
|
LPCSTR RecTitle; //
|
|
LPCSTR RecDepartment; //
|
|
LPCSTR RecOfficeLocation; //
|
|
LPCSTR RecHomePhone; //
|
|
LPCSTR RecOfficePhone; //
|
|
//
|
|
// Sender information
|
|
//
|
|
LPCSTR SdrName; //
|
|
LPCSTR SdrFaxNumber; //
|
|
LPCSTR SdrCompany; //
|
|
LPCSTR SdrAddress; //
|
|
LPCSTR SdrTitle; //
|
|
LPCSTR SdrDepartment; //
|
|
LPCSTR SdrOfficeLocation; //
|
|
LPCSTR SdrHomePhone; //
|
|
LPCSTR SdrOfficePhone; //
|
|
//
|
|
// Misc information
|
|
//
|
|
LPCSTR Note; //
|
|
LPCSTR Subject; //
|
|
SYSTEMTIME TimeSent; // Time the fax was sent
|
|
DWORD PageCount; // Number of pages
|
|
} FAX_COVERPAGE_INFOA, *PFAX_COVERPAGE_INFOA;
|
|
typedef struct _FAX_COVERPAGE_INFOW
|
|
{
|
|
DWORD SizeOfStruct; // Size of this structure
|
|
//
|
|
// general
|
|
//
|
|
LPCWSTR CoverPageName; // coverpage document name
|
|
BOOL UseServerCoverPage; // coverpage exists on the fax server
|
|
//
|
|
// Recipient information
|
|
//
|
|
LPCWSTR RecName; //
|
|
LPCWSTR RecFaxNumber; //
|
|
LPCWSTR RecCompany; //
|
|
LPCWSTR RecStreetAddress; //
|
|
LPCWSTR RecCity; //
|
|
LPCWSTR RecState; //
|
|
LPCWSTR RecZip; //
|
|
LPCWSTR RecCountry; //
|
|
LPCWSTR RecTitle; //
|
|
LPCWSTR RecDepartment; //
|
|
LPCWSTR RecOfficeLocation; //
|
|
LPCWSTR RecHomePhone; //
|
|
LPCWSTR RecOfficePhone; //
|
|
//
|
|
// Sender information
|
|
//
|
|
LPCWSTR SdrName; //
|
|
LPCWSTR SdrFaxNumber; //
|
|
LPCWSTR SdrCompany; //
|
|
LPCWSTR SdrAddress; //
|
|
LPCWSTR SdrTitle; //
|
|
LPCWSTR SdrDepartment; //
|
|
LPCWSTR SdrOfficeLocation; //
|
|
LPCWSTR SdrHomePhone; //
|
|
LPCWSTR SdrOfficePhone; //
|
|
//
|
|
// Misc information
|
|
//
|
|
LPCWSTR Note; //
|
|
LPCWSTR Subject; //
|
|
SYSTEMTIME TimeSent; // Time the fax was sent
|
|
DWORD PageCount; // Number of pages
|
|
} FAX_COVERPAGE_INFOW, *PFAX_COVERPAGE_INFOW;
|
|
#ifdef UNICODE
|
|
typedef FAX_COVERPAGE_INFOW FAX_COVERPAGE_INFO;
|
|
typedef PFAX_COVERPAGE_INFOW PFAX_COVERPAGE_INFO;
|
|
#else
|
|
typedef FAX_COVERPAGE_INFOA FAX_COVERPAGE_INFO;
|
|
typedef PFAX_COVERPAGE_INFOA PFAX_COVERPAGE_INFO;
|
|
#endif // UNICODE
|
|
|
|
typedef enum
|
|
{
|
|
JSA_NOW = 0, // Send now
|
|
JSA_SPECIFIC_TIME, // Send at specific time
|
|
JSA_DISCOUNT_PERIOD // Send at server configured discount period
|
|
} FAX_ENUM_JOB_SEND_ATTRIBUTES;
|
|
|
|
typedef enum
|
|
{
|
|
DRT_NONE = 0x0000, // Do not send receipt
|
|
DRT_EMAIL = 0x0001, // Send receipt by email
|
|
DRT_INBOX = 0x0002 // send receipt to local inbox
|
|
} FAX_ENUM_DELIVERY_REPORT_TYPES;
|
|
|
|
typedef struct _FAX_JOB_PARAMA
|
|
{
|
|
DWORD SizeOfStruct; // size of this structure
|
|
LPCSTR RecipientNumber; // recipient fax number
|
|
LPCSTR RecipientName; // recipient name
|
|
LPCSTR Tsid; // transmitter's id
|
|
LPCSTR SenderName; // sender name
|
|
LPCSTR SenderCompany; // sender company
|
|
LPCSTR SenderDept; // sender department
|
|
LPCSTR BillingCode; // billing code
|
|
DWORD ScheduleAction; // when to schedule the fax, see JSA defines
|
|
SYSTEMTIME ScheduleTime; // time to send the fax when JSA_SPECIFIC_TIME is used (must be local time)
|
|
DWORD DeliveryReportType; // delivery report type, see DRT defines
|
|
LPCSTR DeliveryReportAddress; // email address for delivery report (ndr or dr) thru MAPI / SMTP
|
|
LPCSTR DocumentName; // document name (optional)
|
|
HCALL CallHandle; // optional call handle
|
|
DWORD_PTR Reserved[3]; // reserved for ms use only
|
|
} FAX_JOB_PARAMA, *PFAX_JOB_PARAMA;
|
|
typedef struct _FAX_JOB_PARAMW
|
|
{
|
|
DWORD SizeOfStruct; // size of this structure
|
|
LPCWSTR RecipientNumber; // recipient fax number
|
|
LPCWSTR RecipientName; // recipient name
|
|
LPCWSTR Tsid; // transmitter's id
|
|
LPCWSTR SenderName; // sender name
|
|
LPCWSTR SenderCompany; // sender company
|
|
LPCWSTR SenderDept; // sender department
|
|
LPCWSTR BillingCode; // billing code
|
|
DWORD ScheduleAction; // when to schedule the fax, see JSA defines
|
|
SYSTEMTIME ScheduleTime; // time to send the fax when JSA_SPECIFIC_TIME is used (must be local time)
|
|
DWORD DeliveryReportType; // delivery report type, see DRT defines
|
|
LPCWSTR DeliveryReportAddress; // email address for delivery report (ndr or dr) thru MAPI / SMTP
|
|
LPCWSTR DocumentName; // document name (optional)
|
|
HCALL CallHandle; // optional call handle
|
|
DWORD_PTR Reserved[3]; // reserved for ms use only
|
|
} FAX_JOB_PARAMW, *PFAX_JOB_PARAMW;
|
|
#ifdef UNICODE
|
|
typedef FAX_JOB_PARAMW FAX_JOB_PARAM;
|
|
typedef PFAX_JOB_PARAMW PFAX_JOB_PARAM;
|
|
#else
|
|
typedef FAX_JOB_PARAMA FAX_JOB_PARAM;
|
|
typedef PFAX_JOB_PARAMA PFAX_JOB_PARAM;
|
|
#endif // UNICODE
|
|
|
|
//
|
|
// Event Ids
|
|
//
|
|
// FEI_NEVENTS is the number of events
|
|
//
|
|
|
|
#define FEI_DIALING 0x00000001
|
|
#define FEI_SENDING 0x00000002
|
|
#define FEI_RECEIVING 0x00000003
|
|
#define FEI_COMPLETED 0x00000004
|
|
#define FEI_BUSY 0x00000005
|
|
#define FEI_NO_ANSWER 0x00000006
|
|
#define FEI_BAD_ADDRESS 0x00000007
|
|
#define FEI_NO_DIAL_TONE 0x00000008
|
|
#define FEI_DISCONNECTED 0x00000009
|
|
#define FEI_FATAL_ERROR 0x0000000a
|
|
#define FEI_NOT_FAX_CALL 0x0000000b
|
|
#define FEI_CALL_DELAYED 0x0000000c
|
|
#define FEI_CALL_BLACKLISTED 0x0000000d
|
|
#define FEI_RINGING 0x0000000e
|
|
#define FEI_ABORTING 0x0000000f
|
|
#define FEI_ROUTING 0x00000010
|
|
#define FEI_MODEM_POWERED_ON 0x00000011
|
|
#define FEI_MODEM_POWERED_OFF 0x00000012
|
|
#define FEI_IDLE 0x00000013
|
|
#define FEI_FAXSVC_ENDED 0x00000014
|
|
#define FEI_ANSWERED 0x00000015
|
|
#define FEI_JOB_QUEUED 0x00000016
|
|
#define FEI_DELETED 0x00000017
|
|
#define FEI_INITIALIZING 0x00000018
|
|
#define FEI_LINE_UNAVAILABLE 0x00000019
|
|
#define FEI_HANDLED 0x0000001a
|
|
#define FEI_FAXSVC_STARTED 0x0000001b
|
|
|
|
#define FEI_NEVENTS FEI_FAXSVC_STARTED
|
|
|
|
typedef struct _FAX_EVENTA
|
|
{
|
|
DWORD SizeOfStruct; // Size of this structure
|
|
FILETIME TimeStamp; // Timestamp for when the event was generated
|
|
DWORD DeviceId; // Permanent line id
|
|
DWORD EventId; // Current event id
|
|
DWORD JobId; // Fax Job Id, 0xffffffff indicates inactive job
|
|
} FAX_EVENTA, *PFAX_EVENTA;
|
|
typedef struct _FAX_EVENTW
|
|
{
|
|
DWORD SizeOfStruct; // Size of this structure
|
|
FILETIME TimeStamp; // Timestamp for when the event was generated
|
|
DWORD DeviceId; // Permanent line id
|
|
DWORD EventId; // Current event id
|
|
DWORD JobId; // Fax Job Id, 0xffffffff indicates inactive job
|
|
} FAX_EVENTW, *PFAX_EVENTW;
|
|
#ifdef UNICODE
|
|
typedef FAX_EVENTW FAX_EVENT;
|
|
typedef PFAX_EVENTW PFAX_EVENT;
|
|
#else
|
|
typedef FAX_EVENTA FAX_EVENT;
|
|
typedef PFAX_EVENTA PFAX_EVENT;
|
|
#endif // UNICODE
|
|
|
|
|
|
typedef struct _FAX_PRINT_INFOA
|
|
{
|
|
DWORD SizeOfStruct; // Size of this structure
|
|
LPCSTR DocName; // Document name that appears in the spooler
|
|
LPCSTR RecipientName; // Recipient name
|
|
LPCSTR RecipientNumber; // Recipient fax number (non-canonical number)
|
|
LPCSTR SenderName; // Sender name
|
|
LPCSTR SenderCompany; // Sender company (optional)
|
|
LPCSTR SenderDept; // Sender department
|
|
LPCSTR SenderBillingCode; // Billing code
|
|
LPCSTR Reserved; // Reserved; must be NULL
|
|
LPCSTR DrEmailAddress; // E.Mail address for delivery report
|
|
LPCSTR OutputFileName; // for print to file, resulting file name
|
|
} FAX_PRINT_INFOA, *PFAX_PRINT_INFOA;
|
|
typedef struct _FAX_PRINT_INFOW
|
|
{
|
|
DWORD SizeOfStruct; // Size of this structure
|
|
LPCWSTR DocName; // Document name that appears in the spooler
|
|
LPCWSTR RecipientName; // Recipient name
|
|
LPCWSTR RecipientNumber; // Recipient fax number (non-canonical number)
|
|
LPCWSTR SenderName; // Sender name
|
|
LPCWSTR SenderCompany; // Sender company (optional)
|
|
LPCWSTR SenderDept; // Sender department
|
|
LPCWSTR SenderBillingCode; // Billing code
|
|
LPCWSTR Reserved; // Reserved; must be NULL
|
|
LPCWSTR DrEmailAddress; // E.Mail address for delivery report
|
|
LPCWSTR OutputFileName; // for print to file, resulting file name
|
|
} FAX_PRINT_INFOW, *PFAX_PRINT_INFOW;
|
|
#ifdef UNICODE
|
|
typedef FAX_PRINT_INFOW FAX_PRINT_INFO;
|
|
typedef PFAX_PRINT_INFOW PFAX_PRINT_INFO;
|
|
#else
|
|
typedef FAX_PRINT_INFOA FAX_PRINT_INFO;
|
|
typedef PFAX_PRINT_INFOA PFAX_PRINT_INFO;
|
|
#endif // UNICODE
|
|
|
|
|
|
typedef struct _FAX_CONTEXT_INFOA
|
|
{
|
|
DWORD SizeOfStruct; // Size of this structure
|
|
HDC hDC; // Device Context
|
|
CHAR ServerName[MAX_COMPUTERNAME_LENGTH+1]; // Server name
|
|
} FAX_CONTEXT_INFOA, *PFAX_CONTEXT_INFOA;
|
|
typedef struct _FAX_CONTEXT_INFOW
|
|
{
|
|
DWORD SizeOfStruct; // Size of this structure
|
|
HDC hDC; // Device Context
|
|
WCHAR ServerName[MAX_COMPUTERNAME_LENGTH+1]; // Server name
|
|
} FAX_CONTEXT_INFOW, *PFAX_CONTEXT_INFOW;
|
|
#ifdef UNICODE
|
|
typedef FAX_CONTEXT_INFOW FAX_CONTEXT_INFO;
|
|
typedef PFAX_CONTEXT_INFOW PFAX_CONTEXT_INFO;
|
|
#else
|
|
typedef FAX_CONTEXT_INFOA FAX_CONTEXT_INFO;
|
|
typedef PFAX_CONTEXT_INFOA PFAX_CONTEXT_INFO;
|
|
#endif // UNICODE
|
|
|
|
|
|
//
|
|
// prototypes
|
|
//
|
|
|
|
WINFAXAPI
|
|
BOOL
|
|
WINAPI
|
|
FaxConnectFaxServerA(
|
|
IN LPCSTR MachineName OPTIONAL,
|
|
OUT LPHANDLE FaxHandle
|
|
);
|
|
WINFAXAPI
|
|
BOOL
|
|
WINAPI
|
|
FaxConnectFaxServerW(
|
|
IN LPCWSTR MachineName OPTIONAL,
|
|
OUT LPHANDLE FaxHandle
|
|
);
|
|
#ifdef UNICODE
|
|
#define FaxConnectFaxServer FaxConnectFaxServerW
|
|
#else
|
|
#define FaxConnectFaxServer FaxConnectFaxServerA
|
|
#endif // !UNICODE
|
|
|
|
typedef BOOL
|
|
(WINAPI *PFAXCONNECTFAXSERVERA)(
|
|
IN LPCSTR MachineName OPTIONAL,
|
|
OUT LPHANDLE FaxHandle
|
|
);
|
|
typedef BOOL
|
|
(WINAPI *PFAXCONNECTFAXSERVERW)(
|
|
IN LPCWSTR MachineName OPTIONAL,
|
|
OUT LPHANDLE FaxHandle
|
|
);
|
|
#ifdef UNICODE
|
|
#define PFAXCONNECTFAXSERVER PFAXCONNECTFAXSERVERW
|
|
#else
|
|
#define PFAXCONNECTFAXSERVER PFAXCONNECTFAXSERVERA
|
|
#endif // !UNICODE
|
|
|
|
WINFAXAPI
|
|
BOOL
|
|
WINAPI
|
|
FaxClose(
|
|
IN HANDLE FaxHandle
|
|
);
|
|
|
|
typedef BOOL
|
|
(WINAPI *PFAXCLOSE)(
|
|
IN HANDLE FaxHandle
|
|
);
|
|
|
|
typedef enum
|
|
{
|
|
PORT_OPEN_QUERY = 1,
|
|
PORT_OPEN_MODIFY
|
|
} FAX_ENUM_PORT_OPEN_TYPE;
|
|
|
|
WINFAXAPI
|
|
BOOL
|
|
WINAPI
|
|
FaxOpenPort(
|
|
IN HANDLE FaxHandle,
|
|
IN DWORD DeviceId,
|
|
IN DWORD Flags,
|
|
OUT LPHANDLE FaxPortHandle
|
|
);
|
|
|
|
typedef BOOL
|
|
(WINAPI *PFAXOPENPORT)(
|
|
IN HANDLE FaxHandle,
|
|
IN DWORD DeviceId,
|
|
IN DWORD Flags,
|
|
OUT LPHANDLE FaxPortHandle
|
|
);
|
|
|
|
WINFAXAPI
|
|
BOOL
|
|
WINAPI
|
|
FaxCompleteJobParamsA(
|
|
IN OUT PFAX_JOB_PARAMA *JobParams,
|
|
IN OUT PFAX_COVERPAGE_INFOA *CoverpageInfo
|
|
);
|
|
WINFAXAPI
|
|
BOOL
|
|
WINAPI
|
|
FaxCompleteJobParamsW(
|
|
IN OUT PFAX_JOB_PARAMW *JobParams,
|
|
IN OUT PFAX_COVERPAGE_INFOW *CoverpageInfo
|
|
);
|
|
#ifdef UNICODE
|
|
#define FaxCompleteJobParams FaxCompleteJobParamsW
|
|
#else
|
|
#define FaxCompleteJobParams FaxCompleteJobParamsA
|
|
#endif // !UNICODE
|
|
|
|
typedef BOOL
|
|
(WINAPI *PFAXCOMPLETEJOBPARAMSA)(
|
|
IN OUT PFAX_JOB_PARAMA *JobParams,
|
|
IN OUT PFAX_COVERPAGE_INFOA *CoverpageInfo
|
|
);
|
|
typedef BOOL
|
|
(WINAPI *PFAXCOMPLETEJOBPARAMSW)(
|
|
IN OUT PFAX_JOB_PARAMW *JobParams,
|
|
IN OUT PFAX_COVERPAGE_INFOW *CoverpageInfo
|
|
);
|
|
#ifdef UNICODE
|
|
#define PFAXCOMPLETEJOBPARAMS PFAXCOMPLETEJOBPARAMSW
|
|
#else
|
|
#define PFAXCOMPLETEJOBPARAMS PFAXCOMPLETEJOBPARAMSA
|
|
#endif // !UNICODE
|
|
|
|
|
|
|
|
WINFAXAPI
|
|
BOOL
|
|
WINAPI
|
|
FaxSendDocumentA(
|
|
IN HANDLE FaxHandle,
|
|
IN LPCSTR FileName,
|
|
IN PFAX_JOB_PARAMA JobParams,
|
|
IN const FAX_COVERPAGE_INFOA *CoverpageInfo, OPTIONAL
|
|
OUT LPDWORD FaxJobId OPTIONAL
|
|
);
|
|
WINFAXAPI
|
|
BOOL
|
|
WINAPI
|
|
FaxSendDocumentW(
|
|
IN HANDLE FaxHandle,
|
|
IN LPCWSTR FileName,
|
|
IN PFAX_JOB_PARAMW JobParams,
|
|
IN const FAX_COVERPAGE_INFOW *CoverpageInfo, OPTIONAL
|
|
OUT LPDWORD FaxJobId OPTIONAL
|
|
);
|
|
#ifdef UNICODE
|
|
#define FaxSendDocument FaxSendDocumentW
|
|
#else
|
|
#define FaxSendDocument FaxSendDocumentA
|
|
#endif // !UNICODE
|
|
|
|
typedef BOOL
|
|
(WINAPI *PFAXSENDDOCUMENTA)(
|
|
IN HANDLE FaxHandle,
|
|
IN LPCSTR FileName,
|
|
IN PFAX_JOB_PARAMA JobParams,
|
|
IN const FAX_COVERPAGE_INFOA *CoverpageInfo, OPTIONAL
|
|
OUT LPDWORD FaxJobId OPTIONAL
|
|
);
|
|
typedef BOOL
|
|
(WINAPI *PFAXSENDDOCUMENTW)(
|
|
IN HANDLE FaxHandle,
|
|
IN LPCWSTR FileName,
|
|
IN PFAX_JOB_PARAMW JobParams,
|
|
IN const FAX_COVERPAGE_INFOW *CoverpageInfo, OPTIONAL
|
|
OUT LPDWORD FaxJobId OPTIONAL
|
|
);
|
|
#ifdef UNICODE
|
|
#define PFAXSENDDOCUMENT PFAXSENDDOCUMENTW
|
|
#else
|
|
#define PFAXSENDDOCUMENT PFAXSENDDOCUMENTA
|
|
#endif // !UNICODE
|
|
|
|
typedef BOOL
|
|
(CALLBACK *PFAX_RECIPIENT_CALLBACKA)(
|
|
IN HANDLE FaxHandle,
|
|
IN DWORD RecipientNumber,
|
|
IN LPVOID Context,
|
|
IN OUT PFAX_JOB_PARAMA JobParams,
|
|
IN OUT PFAX_COVERPAGE_INFOA CoverpageInfo OPTIONAL
|
|
);
|
|
typedef BOOL
|
|
(CALLBACK *PFAX_RECIPIENT_CALLBACKW)(
|
|
IN HANDLE FaxHandle,
|
|
IN DWORD RecipientNumber,
|
|
IN LPVOID Context,
|
|
IN OUT PFAX_JOB_PARAMW JobParams,
|
|
IN OUT PFAX_COVERPAGE_INFOW CoverpageInfo OPTIONAL
|
|
);
|
|
#ifdef UNICODE
|
|
#define PFAX_RECIPIENT_CALLBACK PFAX_RECIPIENT_CALLBACKW
|
|
#else
|
|
#define PFAX_RECIPIENT_CALLBACK PFAX_RECIPIENT_CALLBACKA
|
|
#endif // !UNICODE
|
|
|
|
WINFAXAPI
|
|
BOOL
|
|
WINAPI
|
|
FaxSendDocumentForBroadcastA(
|
|
IN HANDLE FaxHandle,
|
|
IN LPCSTR FileName,
|
|
OUT LPDWORD FaxJobId,
|
|
IN PFAX_RECIPIENT_CALLBACKA FaxRecipientCallback,
|
|
IN LPVOID Context
|
|
);
|
|
WINFAXAPI
|
|
BOOL
|
|
WINAPI
|
|
FaxSendDocumentForBroadcastW(
|
|
IN HANDLE FaxHandle,
|
|
IN LPCWSTR FileName,
|
|
OUT LPDWORD FaxJobId,
|
|
IN PFAX_RECIPIENT_CALLBACKW FaxRecipientCallback,
|
|
IN LPVOID Context
|
|
);
|
|
#ifdef UNICODE
|
|
#define FaxSendDocumentForBroadcast FaxSendDocumentForBroadcastW
|
|
#else
|
|
#define FaxSendDocumentForBroadcast FaxSendDocumentForBroadcastA
|
|
#endif // !UNICODE
|
|
|
|
typedef BOOL
|
|
(WINAPI *PFAXSENDDOCUMENTFORBROADCASTA)(
|
|
IN HANDLE FaxHandle,
|
|
IN LPCSTR FileName,
|
|
OUT LPDWORD FaxJobId,
|
|
IN PFAX_RECIPIENT_CALLBACKA FaxRecipientCallback,
|
|
IN LPVOID Context
|
|
);
|
|
typedef BOOL
|
|
(WINAPI *PFAXSENDDOCUMENTFORBROADCASTW)(
|
|
IN HANDLE FaxHandle,
|
|
IN LPCWSTR FileName,
|
|
OUT LPDWORD FaxJobId,
|
|
IN PFAX_RECIPIENT_CALLBACKW FaxRecipientCallback,
|
|
IN LPVOID Context
|
|
);
|
|
#ifdef UNICODE
|
|
#define PFAXSENDDOCUMENTFORBROADCAST PFAXSENDDOCUMENTFORBROADCASTW
|
|
#else
|
|
#define PFAXSENDDOCUMENTFORBROADCAST PFAXSENDDOCUMENTFORBROADCASTA
|
|
#endif // !UNICODE
|
|
|
|
|
|
WINFAXAPI
|
|
BOOL
|
|
WINAPI
|
|
FaxEnumJobsA(
|
|
IN HANDLE FaxHandle,
|
|
OUT PFAX_JOB_ENTRYA *JobEntry,
|
|
OUT LPDWORD JobsReturned
|
|
);
|
|
WINFAXAPI
|
|
BOOL
|
|
WINAPI
|
|
FaxEnumJobsW(
|
|
IN HANDLE FaxHandle,
|
|
OUT PFAX_JOB_ENTRYW *JobEntry,
|
|
OUT LPDWORD JobsReturned
|
|
);
|
|
#ifdef UNICODE
|
|
#define FaxEnumJobs FaxEnumJobsW
|
|
#else
|
|
#define FaxEnumJobs FaxEnumJobsA
|
|
#endif // !UNICODE
|
|
|
|
typedef BOOL
|
|
(WINAPI *PFAXENUMJOBSA)(
|
|
IN HANDLE FaxHandle,
|
|
OUT PFAX_JOB_ENTRYA *JobEntry,
|
|
OUT LPDWORD JobsReturned
|
|
);
|
|
typedef BOOL
|
|
(WINAPI *PFAXENUMJOBSW)(
|
|
IN HANDLE FaxHandle,
|
|
OUT PFAX_JOB_ENTRYW *JobEntry,
|
|
OUT LPDWORD JobsReturned
|
|
);
|
|
#ifdef UNICODE
|
|
#define PFAXENUMJOBS PFAXENUMJOBSW
|
|
#else
|
|
#define PFAXENUMJOBS PFAXENUMJOBSA
|
|
#endif // !UNICODE
|
|
|
|
|
|
WINFAXAPI
|
|
BOOL
|
|
WINAPI
|
|
FaxGetJobA(
|
|
IN HANDLE FaxHandle,
|
|
IN DWORD JobId,
|
|
OUT PFAX_JOB_ENTRYA *JobEntry
|
|
);
|
|
WINFAXAPI
|
|
BOOL
|
|
WINAPI
|
|
FaxGetJobW(
|
|
IN HANDLE FaxHandle,
|
|
IN DWORD JobId,
|
|
OUT PFAX_JOB_ENTRYW *JobEntry
|
|
);
|
|
#ifdef UNICODE
|
|
#define FaxGetJob FaxGetJobW
|
|
#else
|
|
#define FaxGetJob FaxGetJobA
|
|
#endif // !UNICODE
|
|
|
|
typedef BOOL
|
|
(WINAPI *PFAXGETJOBA)(
|
|
IN HANDLE FaxHandle,
|
|
IN DWORD JobId,
|
|
OUT PFAX_JOB_ENTRYA *JobEntry
|
|
);
|
|
typedef BOOL
|
|
(WINAPI *PFAXGETJOBW)(
|
|
IN HANDLE FaxHandle,
|
|
IN DWORD JobId,
|
|
OUT PFAX_JOB_ENTRYW *JobEntry
|
|
);
|
|
#ifdef UNICODE
|
|
#define PFAXGETJOB PFAXGETJOBW
|
|
#else
|
|
#define PFAXGETJOB PFAXGETJOBA
|
|
#endif // !UNICODE
|
|
|
|
|
|
WINFAXAPI
|
|
BOOL
|
|
WINAPI
|
|
FaxSetJobA(
|
|
IN HANDLE FaxHandle,
|
|
IN DWORD JobId,
|
|
IN DWORD Command,
|
|
IN const FAX_JOB_ENTRYA *JobEntry
|
|
);
|
|
WINFAXAPI
|
|
BOOL
|
|
WINAPI
|
|
FaxSetJobW(
|
|
IN HANDLE FaxHandle,
|
|
IN DWORD JobId,
|
|
IN DWORD Command,
|
|
IN const FAX_JOB_ENTRYW *JobEntry
|
|
);
|
|
#ifdef UNICODE
|
|
#define FaxSetJob FaxSetJobW
|
|
#else
|
|
#define FaxSetJob FaxSetJobA
|
|
#endif // !UNICODE
|
|
|
|
typedef BOOL
|
|
(WINAPI *PFAXSETJOBA)(
|
|
IN HANDLE FaxHandle,
|
|
IN DWORD JobId,
|
|
IN DWORD Command,
|
|
IN const FAX_JOB_ENTRYA *JobEntry
|
|
);
|
|
typedef BOOL
|
|
(WINAPI *PFAXSETJOBW)(
|
|
IN HANDLE FaxHandle,
|
|
IN DWORD JobId,
|
|
IN DWORD Command,
|
|
IN const FAX_JOB_ENTRYW *JobEntry
|
|
);
|
|
#ifdef UNICODE
|
|
#define PFAXSETJOB PFAXSETJOBW
|
|
#else
|
|
#define PFAXSETJOB PFAXSETJOBA
|
|
#endif // !UNICODE
|
|
|
|
WINFAXAPI
|
|
BOOL
|
|
WINAPI
|
|
FaxGetPageData(
|
|
IN HANDLE FaxHandle,
|
|
IN DWORD JobId,
|
|
OUT LPBYTE *Buffer,
|
|
OUT LPDWORD BufferSize,
|
|
OUT LPDWORD ImageWidth,
|
|
OUT LPDWORD ImageHeight
|
|
);
|
|
|
|
typedef BOOL
|
|
(WINAPI *PFAXGETPAGEDATA)(
|
|
IN HANDLE FaxHandle,
|
|
IN DWORD JobId,
|
|
OUT LPBYTE *Buffer,
|
|
OUT LPDWORD BufferSize,
|
|
OUT LPDWORD ImageWidth,
|
|
OUT LPDWORD ImageHeight
|
|
);
|
|
|
|
WINFAXAPI
|
|
BOOL
|
|
WINAPI
|
|
FaxGetDeviceStatusA(
|
|
IN HANDLE FaxPortHandle,
|
|
OUT PFAX_DEVICE_STATUSA *DeviceStatus
|
|
);
|
|
WINFAXAPI
|
|
BOOL
|
|
WINAPI
|
|
FaxGetDeviceStatusW(
|
|
IN HANDLE FaxPortHandle,
|
|
OUT PFAX_DEVICE_STATUSW *DeviceStatus
|
|
);
|
|
#ifdef UNICODE
|
|
#define FaxGetDeviceStatus FaxGetDeviceStatusW
|
|
#else
|
|
#define FaxGetDeviceStatus FaxGetDeviceStatusA
|
|
#endif // !UNICODE
|
|
|
|
typedef BOOL
|
|
(WINAPI *PFAXGETDEVICESTATUSA)(
|
|
IN HANDLE FaxPortHandle,
|
|
OUT PFAX_DEVICE_STATUSA *DeviceStatus
|
|
);
|
|
typedef BOOL
|
|
(WINAPI *PFAXGETDEVICESTATUSW)(
|
|
IN HANDLE FaxPortHandle,
|
|
OUT PFAX_DEVICE_STATUSW *DeviceStatus
|
|
);
|
|
#ifdef UNICODE
|
|
#define PFAXGETDEVICESTATUS PFAXGETDEVICESTATUSW
|
|
#else
|
|
#define PFAXGETDEVICESTATUS PFAXGETDEVICESTATUSA
|
|
#endif // !UNICODE
|
|
|
|
|
|
WINFAXAPI
|
|
BOOL
|
|
WINAPI
|
|
FaxAbort(
|
|
IN HANDLE FaxHandle,
|
|
IN DWORD JobId
|
|
);
|
|
|
|
typedef BOOL
|
|
(WINAPI *PFAXABORT)(
|
|
IN HANDLE FaxHandle,
|
|
IN DWORD JobId
|
|
);
|
|
|
|
WINFAXAPI
|
|
BOOL
|
|
WINAPI
|
|
FaxGetConfigurationA(
|
|
IN HANDLE FaxHandle,
|
|
OUT PFAX_CONFIGURATIONA *FaxConfig
|
|
);
|
|
WINFAXAPI
|
|
BOOL
|
|
WINAPI
|
|
FaxGetConfigurationW(
|
|
IN HANDLE FaxHandle,
|
|
OUT PFAX_CONFIGURATIONW *FaxConfig
|
|
);
|
|
#ifdef UNICODE
|
|
#define FaxGetConfiguration FaxGetConfigurationW
|
|
#else
|
|
#define FaxGetConfiguration FaxGetConfigurationA
|
|
#endif // !UNICODE
|
|
|
|
typedef BOOL
|
|
(WINAPI *PFAXGETCONFIGURATIONA)(
|
|
IN HANDLE FaxHandle,
|
|
OUT PFAX_CONFIGURATIONA *FaxConfig
|
|
);
|
|
typedef BOOL
|
|
(WINAPI *PFAXGETCONFIGURATIONW)(
|
|
IN HANDLE FaxHandle,
|
|
OUT PFAX_CONFIGURATIONW *FaxConfig
|
|
);
|
|
#ifdef UNICODE
|
|
#define PFAXGETCONFIGURATION PFAXGETCONFIGURATIONW
|
|
#else
|
|
#define PFAXGETCONFIGURATION PFAXGETCONFIGURATIONA
|
|
#endif // !UNICODE
|
|
|
|
WINFAXAPI
|
|
BOOL
|
|
WINAPI
|
|
FaxSetConfigurationA(
|
|
IN HANDLE FaxHandle,
|
|
IN const FAX_CONFIGURATIONA *FaxConfig
|
|
);
|
|
WINFAXAPI
|
|
BOOL
|
|
WINAPI
|
|
FaxSetConfigurationW(
|
|
IN HANDLE FaxHandle,
|
|
IN const FAX_CONFIGURATIONW *FaxConfig
|
|
);
|
|
#ifdef UNICODE
|
|
#define FaxSetConfiguration FaxSetConfigurationW
|
|
#else
|
|
#define FaxSetConfiguration FaxSetConfigurationA
|
|
#endif // !UNICODE
|
|
|
|
typedef BOOL
|
|
(WINAPI *PFAXSETCONFIGURATIONA)(
|
|
IN HANDLE FaxHandle,
|
|
IN const FAX_CONFIGURATIONA *FaxConfig
|
|
);
|
|
typedef BOOL
|
|
(WINAPI *PFAXSETCONFIGURATIONW)(
|
|
IN HANDLE FaxHandle,
|
|
IN const FAX_CONFIGURATIONW *FaxConfig
|
|
);
|
|
#ifdef UNICODE
|
|
#define PFAXSETCONFIGURATION PFAXSETCONFIGURATIONW
|
|
#else
|
|
#define PFAXSETCONFIGURATION PFAXSETCONFIGURATIONA
|
|
#endif // !UNICODE
|
|
|
|
WINFAXAPI
|
|
BOOL
|
|
WINAPI
|
|
FaxGetLoggingCategoriesA(
|
|
IN HANDLE FaxHandle,
|
|
OUT PFAX_LOG_CATEGORYA *Categories,
|
|
OUT LPDWORD NumberCategories
|
|
);
|
|
WINFAXAPI
|
|
BOOL
|
|
WINAPI
|
|
FaxGetLoggingCategoriesW(
|
|
IN HANDLE FaxHandle,
|
|
OUT PFAX_LOG_CATEGORYW *Categories,
|
|
OUT LPDWORD NumberCategories
|
|
);
|
|
#ifdef UNICODE
|
|
#define FaxGetLoggingCategories FaxGetLoggingCategoriesW
|
|
#else
|
|
#define FaxGetLoggingCategories FaxGetLoggingCategoriesA
|
|
#endif // !UNICODE
|
|
|
|
typedef BOOL
|
|
(WINAPI *PFAXGETLOGGINGCATEGORIESA)(
|
|
IN HANDLE FaxHandle,
|
|
OUT PFAX_LOG_CATEGORYA *Categories,
|
|
OUT LPDWORD NumberCategories
|
|
);
|
|
typedef BOOL
|
|
(WINAPI *PFAXGETLOGGINGCATEGORIESW)(
|
|
IN HANDLE FaxHandle,
|
|
OUT PFAX_LOG_CATEGORYW *Categories,
|
|
OUT LPDWORD NumberCategories
|
|
);
|
|
#ifdef UNICODE
|
|
#define PFAXGETLOGGINGCATEGORIES PFAXGETLOGGINGCATEGORIESW
|
|
#else
|
|
#define PFAXGETLOGGINGCATEGORIES PFAXGETLOGGINGCATEGORIESA
|
|
#endif // !UNICODE
|
|
|
|
WINFAXAPI
|
|
BOOL
|
|
WINAPI
|
|
FaxSetLoggingCategoriesA(
|
|
IN HANDLE FaxHandle,
|
|
IN const FAX_LOG_CATEGORYA *Categories,
|
|
IN DWORD NumberCategories
|
|
);
|
|
WINFAXAPI
|
|
BOOL
|
|
WINAPI
|
|
FaxSetLoggingCategoriesW(
|
|
IN HANDLE FaxHandle,
|
|
IN const FAX_LOG_CATEGORYW *Categories,
|
|
IN DWORD NumberCategories
|
|
);
|
|
#ifdef UNICODE
|
|
#define FaxSetLoggingCategories FaxSetLoggingCategoriesW
|
|
#else
|
|
#define FaxSetLoggingCategories FaxSetLoggingCategoriesA
|
|
#endif // !UNICODE
|
|
|
|
typedef BOOL
|
|
(WINAPI *PFAXSETLOGGINGCATEGORIESA)(
|
|
IN HANDLE FaxHandle,
|
|
IN const FAX_LOG_CATEGORYA *Categories,
|
|
IN DWORD NumberCategories
|
|
);
|
|
typedef BOOL
|
|
(WINAPI *PFAXSETLOGGINGCATEGORIESW)(
|
|
IN HANDLE FaxHandle,
|
|
IN const FAX_LOG_CATEGORYW *Categories,
|
|
IN DWORD NumberCategories
|
|
);
|
|
#ifdef UNICODE
|
|
#define PFAXSETLOGGINGCATEGORIES PFAXSETLOGGINGCATEGORIESW
|
|
#else
|
|
#define PFAXSETLOGGINGCATEGORIES PFAXSETLOGGINGCATEGORIESA
|
|
#endif // !UNICODE
|
|
|
|
WINFAXAPI
|
|
BOOL
|
|
WINAPI
|
|
FaxEnumPortsA(
|
|
IN HANDLE FaxHandle,
|
|
OUT PFAX_PORT_INFOA *PortInfo,
|
|
OUT LPDWORD PortsReturned
|
|
);
|
|
WINFAXAPI
|
|
BOOL
|
|
WINAPI
|
|
FaxEnumPortsW(
|
|
IN HANDLE FaxHandle,
|
|
OUT PFAX_PORT_INFOW *PortInfo,
|
|
OUT LPDWORD PortsReturned
|
|
);
|
|
#ifdef UNICODE
|
|
#define FaxEnumPorts FaxEnumPortsW
|
|
#else
|
|
#define FaxEnumPorts FaxEnumPortsA
|
|
#endif // !UNICODE
|
|
|
|
typedef BOOL
|
|
(WINAPI *PFAXENUMPORTSA)(
|
|
IN HANDLE FaxHandle,
|
|
OUT PFAX_PORT_INFOA *PortInfo,
|
|
OUT LPDWORD PortsReturned
|
|
);
|
|
typedef BOOL
|
|
(WINAPI *PFAXENUMPORTSW)(
|
|
IN HANDLE FaxHandle,
|
|
OUT PFAX_PORT_INFOW *PortInfo,
|
|
OUT LPDWORD PortsReturned
|
|
);
|
|
#ifdef UNICODE
|
|
#define PFAXENUMPORTS PFAXENUMPORTSW
|
|
#else
|
|
#define PFAXENUMPORTS PFAXENUMPORTSA
|
|
#endif // !UNICODE
|
|
|
|
WINFAXAPI
|
|
BOOL
|
|
WINAPI
|
|
FaxGetPortA(
|
|
IN HANDLE FaxPortHandle,
|
|
OUT PFAX_PORT_INFOA *PortInfo
|
|
);
|
|
WINFAXAPI
|
|
BOOL
|
|
WINAPI
|
|
FaxGetPortW(
|
|
IN HANDLE FaxPortHandle,
|
|
OUT PFAX_PORT_INFOW *PortInfo
|
|
);
|
|
#ifdef UNICODE
|
|
#define FaxGetPort FaxGetPortW
|
|
#else
|
|
#define FaxGetPort FaxGetPortA
|
|
#endif // !UNICODE
|
|
|
|
typedef BOOL
|
|
(WINAPI *PFAXGETPORTA)(
|
|
IN HANDLE FaxPortHandle,
|
|
OUT PFAX_PORT_INFOA *PortInfo
|
|
);
|
|
typedef BOOL
|
|
(WINAPI *PFAXGETPORTW)(
|
|
IN HANDLE FaxPortHandle,
|
|
OUT PFAX_PORT_INFOW *PortInfo
|
|
);
|
|
#ifdef UNICODE
|
|
#define PFAXGETPORT PFAXGETPORTW
|
|
#else
|
|
#define PFAXGETPORT PFAXGETPORTA
|
|
#endif // !UNICODE
|
|
|
|
WINFAXAPI
|
|
BOOL
|
|
WINAPI
|
|
FaxSetPortA(
|
|
IN HANDLE FaxPortHandle,
|
|
IN const FAX_PORT_INFOA *PortInfo
|
|
);
|
|
WINFAXAPI
|
|
BOOL
|
|
WINAPI
|
|
FaxSetPortW(
|
|
IN HANDLE FaxPortHandle,
|
|
IN const FAX_PORT_INFOW *PortInfo
|
|
);
|
|
#ifdef UNICODE
|
|
#define FaxSetPort FaxSetPortW
|
|
#else
|
|
#define FaxSetPort FaxSetPortA
|
|
#endif // !UNICODE
|
|
|
|
typedef BOOL
|
|
(WINAPI *PFAXSETPORTA)(
|
|
IN HANDLE FaxPortHandle,
|
|
IN const FAX_PORT_INFOA *PortInfo
|
|
);
|
|
typedef BOOL
|
|
(WINAPI *PFAXSETPORTW)(
|
|
IN HANDLE FaxPortHandle,
|
|
IN const FAX_PORT_INFOW *PortInfo
|
|
);
|
|
#ifdef UNICODE
|
|
#define PFAXSETPORT PFAXSETPORTW
|
|
#else
|
|
#define PFAXSETPORT PFAXSETPORTA
|
|
#endif // !UNICODE
|
|
|
|
WINFAXAPI
|
|
BOOL
|
|
WINAPI
|
|
FaxEnumRoutingMethodsA(
|
|
IN HANDLE FaxPortHandle,
|
|
OUT PFAX_ROUTING_METHODA *RoutingMethod,
|
|
OUT LPDWORD MethodsReturned
|
|
);
|
|
WINFAXAPI
|
|
BOOL
|
|
WINAPI
|
|
FaxEnumRoutingMethodsW(
|
|
IN HANDLE FaxPortHandle,
|
|
OUT PFAX_ROUTING_METHODW *RoutingMethod,
|
|
OUT LPDWORD MethodsReturned
|
|
);
|
|
#ifdef UNICODE
|
|
#define FaxEnumRoutingMethods FaxEnumRoutingMethodsW
|
|
#else
|
|
#define FaxEnumRoutingMethods FaxEnumRoutingMethodsA
|
|
#endif // !UNICODE
|
|
|
|
typedef BOOL
|
|
(WINAPI *PFAXENUMROUTINGMETHODSA)(
|
|
IN HANDLE FaxPortHandle,
|
|
OUT PFAX_ROUTING_METHODA *RoutingMethod,
|
|
OUT LPDWORD MethodsReturned
|
|
);
|
|
typedef BOOL
|
|
(WINAPI *PFAXENUMROUTINGMETHODSW)(
|
|
IN HANDLE FaxPortHandle,
|
|
OUT PFAX_ROUTING_METHODW *RoutingMethod,
|
|
OUT LPDWORD MethodsReturned
|
|
);
|
|
#ifdef UNICODE
|
|
#define PFAXENUMROUTINGMETHODS PFAXENUMROUTINGMETHODSW
|
|
#else
|
|
#define PFAXENUMROUTINGMETHODS PFAXENUMROUTINGMETHODSA
|
|
#endif // !UNICODE
|
|
|
|
WINFAXAPI
|
|
BOOL
|
|
WINAPI
|
|
FaxEnableRoutingMethodA(
|
|
IN HANDLE FaxPortHandle,
|
|
IN LPCSTR RoutingGuid,
|
|
IN BOOL Enabled
|
|
);
|
|
WINFAXAPI
|
|
BOOL
|
|
WINAPI
|
|
FaxEnableRoutingMethodW(
|
|
IN HANDLE FaxPortHandle,
|
|
IN LPCWSTR RoutingGuid,
|
|
IN BOOL Enabled
|
|
);
|
|
#ifdef UNICODE
|
|
#define FaxEnableRoutingMethod FaxEnableRoutingMethodW
|
|
#else
|
|
#define FaxEnableRoutingMethod FaxEnableRoutingMethodA
|
|
#endif // !UNICODE
|
|
|
|
typedef BOOL
|
|
(WINAPI *PFAXENABLEROUTINGMETHODA)(
|
|
IN HANDLE FaxPortHandle,
|
|
IN LPCSTR RoutingGuid,
|
|
IN BOOL Enabled
|
|
);
|
|
typedef BOOL
|
|
(WINAPI *PFAXENABLEROUTINGMETHODW)(
|
|
IN HANDLE FaxPortHandle,
|
|
IN LPCWSTR RoutingGuid,
|
|
IN BOOL Enabled
|
|
);
|
|
#ifdef UNICODE
|
|
#define PFAXENABLEROUTINGMETHOD PFAXENABLEROUTINGMETHODW
|
|
#else
|
|
#define PFAXENABLEROUTINGMETHOD PFAXENABLEROUTINGMETHODA
|
|
#endif // !UNICODE
|
|
|
|
|
|
WINFAXAPI
|
|
BOOL
|
|
WINAPI
|
|
FaxEnumGlobalRoutingInfoA(
|
|
IN HANDLE FaxHandle,
|
|
OUT PFAX_GLOBAL_ROUTING_INFOA *RoutingInfo,
|
|
OUT LPDWORD MethodsReturned
|
|
);
|
|
WINFAXAPI
|
|
BOOL
|
|
WINAPI
|
|
FaxEnumGlobalRoutingInfoW(
|
|
IN HANDLE FaxHandle,
|
|
OUT PFAX_GLOBAL_ROUTING_INFOW *RoutingInfo,
|
|
OUT LPDWORD MethodsReturned
|
|
);
|
|
#ifdef UNICODE
|
|
#define FaxEnumGlobalRoutingInfo FaxEnumGlobalRoutingInfoW
|
|
#else
|
|
#define FaxEnumGlobalRoutingInfo FaxEnumGlobalRoutingInfoA
|
|
#endif // !UNICODE
|
|
|
|
typedef BOOL
|
|
(WINAPI *PFAXENUMGLOBALROUTINGINFOA)(
|
|
IN HANDLE FaxHandle,
|
|
OUT PFAX_GLOBAL_ROUTING_INFOA *RoutingInfo,
|
|
OUT LPDWORD MethodsReturned
|
|
);
|
|
typedef BOOL
|
|
(WINAPI *PFAXENUMGLOBALROUTINGINFOW)(
|
|
IN HANDLE FaxHandle,
|
|
OUT PFAX_GLOBAL_ROUTING_INFOW *RoutingInfo,
|
|
OUT LPDWORD MethodsReturned
|
|
);
|
|
#ifdef UNICODE
|
|
#define PFAXENUMGLOBALROUTINGINFO PFAXENUMGLOBALROUTINGINFOW
|
|
#else
|
|
#define PFAXENUMGLOBALROUTINGINFO PFAXENUMGLOBALROUTINGINFOA
|
|
#endif // !UNICODE
|
|
|
|
WINFAXAPI
|
|
BOOL
|
|
WINAPI
|
|
FaxSetGlobalRoutingInfoA(
|
|
IN HANDLE FaxHandle,
|
|
IN const FAX_GLOBAL_ROUTING_INFOA *RoutingInfo
|
|
);
|
|
WINFAXAPI
|
|
BOOL
|
|
WINAPI
|
|
FaxSetGlobalRoutingInfoW(
|
|
IN HANDLE FaxHandle,
|
|
IN const FAX_GLOBAL_ROUTING_INFOW *RoutingInfo
|
|
);
|
|
#ifdef UNICODE
|
|
#define FaxSetGlobalRoutingInfo FaxSetGlobalRoutingInfoW
|
|
#else
|
|
#define FaxSetGlobalRoutingInfo FaxSetGlobalRoutingInfoA
|
|
#endif // !UNICODE
|
|
|
|
typedef BOOL
|
|
(WINAPI *PFAXSETGLOBALROUTINGINFOA)(
|
|
IN HANDLE FaxPortHandle,
|
|
IN const FAX_GLOBAL_ROUTING_INFOA *RoutingInfo
|
|
);
|
|
typedef BOOL
|
|
(WINAPI *PFAXSETGLOBALROUTINGINFOW)(
|
|
IN HANDLE FaxPortHandle,
|
|
IN const FAX_GLOBAL_ROUTING_INFOW *RoutingInfo
|
|
);
|
|
#ifdef UNICODE
|
|
#define PFAXSETGLOBALROUTINGINFO PFAXSETGLOBALROUTINGINFOW
|
|
#else
|
|
#define PFAXSETGLOBALROUTINGINFO PFAXSETGLOBALROUTINGINFOA
|
|
#endif // !UNICODE
|
|
|
|
WINFAXAPI
|
|
BOOL
|
|
WINAPI
|
|
FaxGetRoutingInfoA(
|
|
IN HANDLE FaxPortHandle,
|
|
IN LPCSTR RoutingGuid,
|
|
OUT LPBYTE *RoutingInfoBuffer,
|
|
OUT LPDWORD RoutingInfoBufferSize
|
|
);
|
|
WINFAXAPI
|
|
BOOL
|
|
WINAPI
|
|
FaxGetRoutingInfoW(
|
|
IN HANDLE FaxPortHandle,
|
|
IN LPCWSTR RoutingGuid,
|
|
OUT LPBYTE *RoutingInfoBuffer,
|
|
OUT LPDWORD RoutingInfoBufferSize
|
|
);
|
|
#ifdef UNICODE
|
|
#define FaxGetRoutingInfo FaxGetRoutingInfoW
|
|
#else
|
|
#define FaxGetRoutingInfo FaxGetRoutingInfoA
|
|
#endif // !UNICODE
|
|
|
|
typedef BOOL
|
|
(WINAPI *PFAXGETROUTINGINFOA)(
|
|
IN HANDLE FaxPortHandle,
|
|
IN LPCSTR RoutingGuid,
|
|
OUT LPBYTE *RoutingInfoBuffer,
|
|
OUT LPDWORD RoutingInfoBufferSize
|
|
);
|
|
typedef BOOL
|
|
(WINAPI *PFAXGETROUTINGINFOW)(
|
|
IN HANDLE FaxPortHandle,
|
|
IN LPCWSTR RoutingGuid,
|
|
OUT LPBYTE *RoutingInfoBuffer,
|
|
OUT LPDWORD RoutingInfoBufferSize
|
|
);
|
|
#ifdef UNICODE
|
|
#define PFAXGETROUTINGINFO PFAXGETROUTINGINFOW
|
|
#else
|
|
#define PFAXGETROUTINGINFO PFAXGETROUTINGINFOA
|
|
#endif // !UNICODE
|
|
|
|
|
|
WINFAXAPI
|
|
BOOL
|
|
WINAPI
|
|
FaxSetRoutingInfoA(
|
|
IN HANDLE FaxPortHandle,
|
|
IN LPCSTR RoutingGuid,
|
|
IN const BYTE *RoutingInfoBuffer,
|
|
IN DWORD RoutingInfoBufferSize
|
|
);
|
|
WINFAXAPI
|
|
BOOL
|
|
WINAPI
|
|
FaxSetRoutingInfoW(
|
|
IN HANDLE FaxPortHandle,
|
|
IN LPCWSTR RoutingGuid,
|
|
IN const BYTE *RoutingInfoBuffer,
|
|
IN DWORD RoutingInfoBufferSize
|
|
);
|
|
#ifdef UNICODE
|
|
#define FaxSetRoutingInfo FaxSetRoutingInfoW
|
|
#else
|
|
#define FaxSetRoutingInfo FaxSetRoutingInfoA
|
|
#endif // !UNICODE
|
|
|
|
typedef BOOL
|
|
(WINAPI *PFAXSETROUTINGINFOA)(
|
|
IN HANDLE FaxPortHandle,
|
|
IN LPCSTR RoutingGuid,
|
|
IN const BYTE *RoutingInfoBuffer,
|
|
IN DWORD RoutingInfoBufferSize
|
|
);
|
|
typedef BOOL
|
|
(WINAPI *PFAXSETROUTINGINFOW)(
|
|
IN HANDLE FaxPortHandle,
|
|
IN LPCWSTR RoutingGuid,
|
|
IN const BYTE *RoutingInfoBuffer,
|
|
IN DWORD RoutingInfoBufferSize
|
|
);
|
|
#ifdef UNICODE
|
|
#define PFAXSETROUTINGINFO PFAXSETROUTINGINFOW
|
|
#else
|
|
#define PFAXSETROUTINGINFO PFAXSETROUTINGINFOA
|
|
#endif // !UNICODE
|
|
|
|
WINFAXAPI
|
|
BOOL
|
|
WINAPI
|
|
FaxInitializeEventQueue(
|
|
IN HANDLE FaxHandle,
|
|
IN HANDLE CompletionPort,
|
|
IN ULONG_PTR CompletionKey,
|
|
IN HWND hWnd,
|
|
IN UINT MessageStart
|
|
);
|
|
|
|
typedef BOOL
|
|
(WINAPI *PFAXINITIALIZEEVENTQUEUE)(
|
|
IN HANDLE FaxHandle,
|
|
IN HANDLE CompletionPort,
|
|
IN ULONG_PTR CompletionKey,
|
|
IN HWND hWnd,
|
|
IN UINT MessageStart
|
|
);
|
|
|
|
WINFAXAPI
|
|
VOID
|
|
WINAPI
|
|
FaxFreeBuffer(
|
|
LPVOID Buffer
|
|
);
|
|
|
|
typedef VOID
|
|
(WINAPI *PFAXFREEBUFFER)(
|
|
LPVOID Buffer
|
|
);
|
|
|
|
WINFAXAPI
|
|
BOOL
|
|
WINAPI
|
|
FaxStartPrintJobA(
|
|
IN LPCSTR PrinterName,
|
|
IN const FAX_PRINT_INFOA *PrintInfo,
|
|
OUT LPDWORD FaxJobId,
|
|
OUT PFAX_CONTEXT_INFOA FaxContextInfo
|
|
);
|
|
WINFAXAPI
|
|
BOOL
|
|
WINAPI
|
|
FaxStartPrintJobW(
|
|
IN LPCWSTR PrinterName,
|
|
IN const FAX_PRINT_INFOW *PrintInfo,
|
|
OUT LPDWORD FaxJobId,
|
|
OUT PFAX_CONTEXT_INFOW FaxContextInfo
|
|
);
|
|
#ifdef UNICODE
|
|
#define FaxStartPrintJob FaxStartPrintJobW
|
|
#else
|
|
#define FaxStartPrintJob FaxStartPrintJobA
|
|
#endif // !UNICODE
|
|
|
|
typedef BOOL
|
|
(WINAPI *PFAXSTARTPRINTJOBA)(
|
|
IN LPCSTR PrinterName,
|
|
IN const FAX_PRINT_INFOA *PrintInfo,
|
|
OUT LPDWORD FaxJobId,
|
|
OUT PFAX_CONTEXT_INFOA FaxContextInfo
|
|
);
|
|
typedef BOOL
|
|
(WINAPI *PFAXSTARTPRINTJOBW)(
|
|
IN LPCWSTR PrinterName,
|
|
IN const FAX_PRINT_INFOW *PrintInfo,
|
|
OUT LPDWORD FaxJobId,
|
|
OUT PFAX_CONTEXT_INFOW FaxContextInfo
|
|
);
|
|
#ifdef UNICODE
|
|
#define PFAXSTARTPRINTJOB PFAXSTARTPRINTJOBW
|
|
#else
|
|
#define PFAXSTARTPRINTJOB PFAXSTARTPRINTJOBA
|
|
#endif // !UNICODE
|
|
|
|
WINFAXAPI
|
|
BOOL
|
|
WINAPI
|
|
FaxPrintCoverPageA(
|
|
IN const FAX_CONTEXT_INFOA *FaxContextInfo,
|
|
IN const FAX_COVERPAGE_INFOA *CoverPageInfo
|
|
);
|
|
WINFAXAPI
|
|
BOOL
|
|
WINAPI
|
|
FaxPrintCoverPageW(
|
|
IN const FAX_CONTEXT_INFOW *FaxContextInfo,
|
|
IN const FAX_COVERPAGE_INFOW *CoverPageInfo
|
|
);
|
|
#ifdef UNICODE
|
|
#define FaxPrintCoverPage FaxPrintCoverPageW
|
|
#else
|
|
#define FaxPrintCoverPage FaxPrintCoverPageA
|
|
#endif // !UNICODE
|
|
|
|
typedef BOOL
|
|
(WINAPI *PFAXPRINTCOVERPAGEA)(
|
|
IN const FAX_CONTEXT_INFOA *FaxContextInfo,
|
|
IN const FAX_COVERPAGE_INFOA *CoverPageInfo
|
|
);
|
|
typedef BOOL
|
|
(WINAPI *PFAXPRINTCOVERPAGEW)(
|
|
IN const FAX_CONTEXT_INFOW *FaxContextInfo,
|
|
IN const FAX_COVERPAGE_INFOW *CoverPageInfo
|
|
);
|
|
#ifdef UNICODE
|
|
#define PFAXPRINTCOVERPAGE PFAXPRINTCOVERPAGEW
|
|
#else
|
|
#define PFAXPRINTCOVERPAGE PFAXPRINTCOVERPAGEA
|
|
#endif // !UNICODE
|
|
|
|
|
|
WINFAXAPI
|
|
BOOL
|
|
WINAPI
|
|
FaxRegisterServiceProviderW(
|
|
IN LPCWSTR DeviceProvider,
|
|
IN LPCWSTR FriendlyName,
|
|
IN LPCWSTR ImageName,
|
|
IN LPCWSTR TspName
|
|
);
|
|
|
|
#define FaxRegisterServiceProvider FaxRegisterServiceProviderW
|
|
|
|
typedef BOOL
|
|
(WINAPI *PFAXREGISTERSERVICEPROVIDERW)(
|
|
IN LPCWSTR DeviceProvider,
|
|
IN LPCWSTR FriendlyName,
|
|
IN LPCWSTR ImageName,
|
|
IN LPCWSTR TspName
|
|
);
|
|
|
|
#define PFAXREGISTERSERVICEPROVIDER PFAXREGISTERSERVICEPROVIDERW
|
|
|
|
typedef BOOL
|
|
(CALLBACK *PFAX_ROUTING_INSTALLATION_CALLBACKW)(
|
|
IN HANDLE FaxHandle,
|
|
IN LPVOID Context,
|
|
IN OUT LPWSTR MethodName,
|
|
IN OUT LPWSTR FriendlyName,
|
|
IN OUT LPWSTR FunctionName,
|
|
IN OUT LPWSTR Guid
|
|
);
|
|
|
|
#define PFAX_ROUTING_INSTALLATION_CALLBACK PFAX_ROUTING_INSTALLATION_CALLBACKW
|
|
|
|
|
|
WINFAXAPI
|
|
BOOL
|
|
WINAPI
|
|
FaxRegisterRoutingExtensionW(
|
|
IN HANDLE FaxHandle,
|
|
IN LPCWSTR ExtensionName,
|
|
IN LPCWSTR FriendlyName,
|
|
IN LPCWSTR ImageName,
|
|
IN PFAX_ROUTING_INSTALLATION_CALLBACKW CallBack,
|
|
IN LPVOID Context
|
|
);
|
|
|
|
#define FaxRegisterRoutingExtension FaxRegisterRoutingExtensionW
|
|
|
|
|
|
typedef BOOL
|
|
(WINAPI *PFAXREGISTERROUTINGEXTENSIONW)(
|
|
IN HANDLE FaxHandle,
|
|
IN LPCWSTR ExtensionName,
|
|
IN LPCWSTR FriendlyName,
|
|
IN LPCWSTR ImageName,
|
|
IN PFAX_ROUTING_INSTALLATION_CALLBACKW CallBack,
|
|
IN LPVOID Context
|
|
);
|
|
|
|
#define PFAXREGISTERROUTINGEXTENSION PFAXREGISTERROUTINGEXTENSIONW
|
|
|
|
WINFAXAPI
|
|
BOOL
|
|
WINAPI
|
|
FaxUnregisterRoutingExtensionA(
|
|
IN HANDLE hFaxHandle,
|
|
IN LPCSTR lpctstrExtensionName
|
|
);
|
|
WINFAXAPI
|
|
BOOL
|
|
WINAPI
|
|
FaxUnregisterRoutingExtensionW(
|
|
IN HANDLE hFaxHandle,
|
|
IN LPCWSTR lpctstrExtensionName
|
|
);
|
|
#ifdef UNICODE
|
|
#define FaxUnregisterRoutingExtension FaxUnregisterRoutingExtensionW
|
|
#else
|
|
#define FaxUnregisterRoutingExtension FaxUnregisterRoutingExtensionA
|
|
#endif // !UNICODE
|
|
|
|
|
|
|
|
|
|
WINFAXAPI
|
|
BOOL
|
|
WINAPI
|
|
FaxAccessCheck(
|
|
IN HANDLE FaxHandle,
|
|
IN DWORD AccessMask
|
|
);
|
|
|
|
typedef BOOL
|
|
(WINAPI *PFAXACCESSCHECK)(
|
|
IN HANDLE FaxHandle,
|
|
IN DWORD AccessMask
|
|
);
|
|
|
|
//
|
|
// Fax Specific Access Rights
|
|
//
|
|
|
|
#define FAX_JOB_SUBMIT (0x0001)
|
|
#define FAX_JOB_QUERY (0x0002)
|
|
#define FAX_CONFIG_QUERY (0x0004)
|
|
#define FAX_CONFIG_SET (0x0008)
|
|
#define FAX_PORT_QUERY (0x0010)
|
|
#define FAX_PORT_SET (0x0020)
|
|
#define FAX_JOB_MANAGE (0x0040)
|
|
|
|
#define FAX_READ (STANDARD_RIGHTS_READ |\
|
|
FAX_JOB_QUERY |\
|
|
FAX_CONFIG_QUERY |\
|
|
FAX_PORT_QUERY)
|
|
|
|
#define FAX_WRITE (STANDARD_RIGHTS_WRITE |\
|
|
FAX_JOB_SUBMIT )
|
|
|
|
#define FAX_ALL_ACCESS (STANDARD_RIGHTS_ALL |\
|
|
FAX_JOB_SUBMIT |\
|
|
FAX_JOB_QUERY |\
|
|
FAX_CONFIG_QUERY |\
|
|
FAX_CONFIG_SET |\
|
|
FAX_PORT_QUERY |\
|
|
FAX_PORT_SET |\
|
|
FAX_JOB_MANAGE)
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|