📄 winfax.h
字号:
// 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
#define JSA_NOW 0
#define JSA_SPECIFIC_TIME 1
#define JSA_DISCOUNT_PERIOD 2
#define DRT_NONE 0
#define DRT_EMAIL 1
#define DRT_INBOX 2
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)
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)
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 DrProfileName; // Profile name for delivery report <--| mutually exclusive
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 DrProfileName; // Profile name for delivery report <--| mutually exclusive
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
//
// 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)
//
// prototypes
//
WINFAXAPI
BOOL
WINAPI
FaxConnectFaxServerA(
IN LPCSTR MachineName OPTIONAL,
OUT LPHANDLE FaxHandle
);
//
// prototypes
//
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
);
WINFAXAPI
BOOL
WINAPI
FaxAccessCheck(
IN HANDLE FaxHandle,
IN DWORD AccessMask
);
typedef BOOL
(WINAPI *PFAXACCESSCHECK)(
IN HANDLE FaxHandle,
IN DWORD AccessMask
);
#define PORT_OPEN_QUERY 0x00000001
#define PORT_OPEN_MODIFY 0x00000002
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,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -