📄 jwawinfax.pas
字号:
FAX_CONFIGURATIONA = _FAX_CONFIGURATIONA;
{$EXTERNALSYM FAX_CONFIGURATIONA}
TFaxConfigurationA = FAX_CONFIGURATIONA;
PFaxConfigurationA = PFAX_CONFIGURATIONA;
PFAX_CONFIGURATIONW = ^FAX_CONFIGURATIONW;
{$EXTERNALSYM PFAX_CONFIGURATIONW}
_FAX_CONFIGURATIONW = record
SizeOfStruct: DWORD; // size of this structure
Retries: DWORD; // number of retries for fax send
RetryDelay: DWORD; // number of minutes between retries
DirtyDays: DWORD; // number of days to keep an unsent job in the queue
Branding: BOOL; // fsp should brand outgoing faxes
UseDeviceTsid: BOOL; // server uses device tsid only
ServerCp: BOOL; // clients must use cover pages on the server
PauseServerQueue: BOOL; // is the server queue paused?
StartCheapTime: FAX_TIME; // start of discount rate period
StopCheapTime: FAX_TIME; // end of discount rate period
ArchiveOutgoingFaxes: BOOL; // whether outgoing faxes should be archived
ArchiveDirectory: LPCWSTR; // archive directory for outgoing faxes
Reserved: LPCWSTR; // Reserved; must be NULL
end;
{$EXTERNALSYM _FAX_CONFIGURATIONW}
FAX_CONFIGURATIONW = _FAX_CONFIGURATIONW;
{$EXTERNALSYM FAX_CONFIGURATIONW}
TFaxConfigurationW = FAX_CONFIGURATIONW;
PFaxConfigurationW = PFAX_CONFIGURATIONW;
{$IFDEF UNICODE}
FAX_CONFIGURATION = FAX_CONFIGURATIONW;
{$EXTERNALSYM FAX_CONFIGURATION}
PFAX_CONFIGURATION = PFAX_CONFIGURATIONW;
{$EXTERNALSYM PFAX_CONFIGURATION}
TFaxConfiguration = TFaxConfigurationW;
PFaxConfiguration = PFaxConfigurationW;
{$ELSE}
FAX_CONFIGURATION = FAX_CONFIGURATIONA;
{$EXTERNALSYM FAX_CONFIGURATION}
PFAX_CONFIGURATION = PFAX_CONFIGURATIONA;
{$EXTERNALSYM PFAX_CONFIGURATION}
TFaxConfiguration = TFaxConfigurationA;
PFaxConfiguration = PFaxConfigurationA;
{$ENDIF}
//
// FaxSetJob() command codes
//
FAX_ENUM_JOB_COMMANDS = (
JC_UNKNOWN,
JC_DELETE,
JC_PAUSE,
JC_RESUME);
{$EXTERNALSYM FAX_ENUM_JOB_COMMANDS}
TFaxEnumJobCommands = FAX_ENUM_JOB_COMMANDS;
const
JC_RESTART = JC_RESUME;
{$EXTERNALSYM JC_RESTART}
//
// job type defines
//
JT_UNKNOWN = 0;
{$EXTERNALSYM JT_UNKNOWN}
JT_SEND = 1;
{$EXTERNALSYM JT_SEND}
JT_RECEIVE = 2;
{$EXTERNALSYM JT_RECEIVE}
JT_ROUTING = 3;
{$EXTERNALSYM JT_ROUTING}
JT_FAIL_RECEIVE = 4;
{$EXTERNALSYM JT_FAIL_RECEIVE}
//
// job status defines
//
JS_PENDING = $00000000;
{$EXTERNALSYM JS_PENDING}
JS_INPROGRESS = $00000001;
{$EXTERNALSYM JS_INPROGRESS}
JS_DELETING = $00000002;
{$EXTERNALSYM JS_DELETING}
JS_FAILED = $00000004;
{$EXTERNALSYM JS_FAILED}
JS_PAUSED = $00000008;
{$EXTERNALSYM JS_PAUSED}
JS_NOLINE = $00000010;
{$EXTERNALSYM JS_NOLINE}
JS_RETRYING = $00000020;
{$EXTERNALSYM JS_RETRYING}
JS_RETRIES_EXCEEDED = $00000040;
{$EXTERNALSYM JS_RETRIES_EXCEEDED}
type
PFAX_DEVICE_STATUSA = ^FAX_DEVICE_STATUSA;
{$EXTERNALSYM PFAX_DEVICE_STATUSA}
_FAX_DEVICE_STATUSA = record
SizeOfStruct: DWORD; // size of this structure
CallerId: LPCSTR; // caller id string
Csid: LPCSTR; // station identifier
CurrentPage: DWORD; // current page
DeviceId: DWORD; // permanent line id
DeviceName: LPCSTR; // device name
DocumentName: LPCSTR; // document name
JobType: DWORD; // send or receive?
PhoneNumber: LPCSTR; // sending phone number
RoutingString: LPCSTR; // routing information
SenderName: LPCSTR; // sender name
RecipientName: LPCSTR; // recipient name
Size: DWORD; // size in bytes of the document
StartTime: FILETIME; // starting time of the fax send/receive
Status: DWORD; // current status of the device, see FPS_??? masks
StatusString: LPCSTR; // status string if the Status field is zero. this may be NULL.
SubmittedTime: FILETIME; // time the document was submitted
TotalPages: DWORD; // total number of pages in this job
Tsid: LPCSTR; // transmitting station identifier
UserName: LPCSTR; // user that submitted the active job
end;
{$EXTERNALSYM _FAX_DEVICE_STATUSA}
FAX_DEVICE_STATUSA = _FAX_DEVICE_STATUSA;
{$EXTERNALSYM FAX_DEVICE_STATUSA}
TFaxDeviceStatusA = FAX_DEVICE_STATUSA;
PFaxDeviceStatusA = PFAX_DEVICE_STATUSA;
PFAX_DEVICE_STATUSW = ^FAX_DEVICE_STATUSW;
{$EXTERNALSYM PFAX_DEVICE_STATUSW}
_FAX_DEVICE_STATUSW = record
SizeOfStruct: DWORD; // size of this structure
CallerId: LPCWSTR; // caller id string
Csid: LPCWSTR; // station identifier
CurrentPage: DWORD; // current page
DeviceId: DWORD; // permanent line id
DeviceName: LPCWSTR; // device name
DocumentName: LPCWSTR; // document name
JobType: DWORD; // send or receive?
PhoneNumber: LPCWSTR; // sending phone number
RoutingString: LPCWSTR; // routing information
SenderName: LPCWSTR; // sender name
RecipientName: LPCWSTR; // recipient name
Size: DWORD; // size in bytes of the document
StartTime: FILETIME; // starting time of the fax send/receive
Status: DWORD; // current status of the device, see FPS_??? masks
StatusString: LPCWSTR; // status string if the Status field is zero. this may be NULL.
SubmittedTime: FILETIME; // time the document was submitted
TotalPages: DWORD; // total number of pages in this job
Tsid: LPCWSTR; // transmitting station identifier
UserName: LPCWSTR; // user that submitted the active job
end;
{$EXTERNALSYM _FAX_DEVICE_STATUSW}
FAX_DEVICE_STATUSW = _FAX_DEVICE_STATUSW;
{$EXTERNALSYM FAX_DEVICE_STATUSW}
TFaxDeviceStatusW = FAX_DEVICE_STATUSW;
PFaxDeviceStatusW = PFAX_DEVICE_STATUSW;
{$IFDEF UNICODE}
FAX_DEVICE_STATUS = FAX_DEVICE_STATUSW;
{$EXTERNALSYM FAX_DEVICE_STATUS}
PFAX_DEVICE_STATUS = PFAX_DEVICE_STATUSW;
{$EXTERNALSYM PFAX_DEVICE_STATUS}
TFaxDeviceStatus = TFaxDeviceStatusW;
PFaxDeviceStatus = PFaxDeviceStatusW;
{$ELSE}
FAX_DEVICE_STATUS = FAX_DEVICE_STATUSA;
{$EXTERNALSYM FAX_DEVICE_STATUS}
PFAX_DEVICE_STATUS = PFAX_DEVICE_STATUSA;
{$EXTERNALSYM PFAX_DEVICE_STATUS}
TFaxDeviceStatus = TFaxDeviceStatusA;
PFaxDeviceStatus = PFaxDeviceStatusA;
{$ENDIF}
PFAX_JOB_ENTRYA = ^FAX_JOB_ENTRYA;
{$EXTERNALSYM PFAX_JOB_ENTRYA}
_FAX_JOB_ENTRYA = record
SizeOfStruct: DWORD; // size of this structure
JobId: DWORD; // fax job id
UserName: LPCSTR; // user who submitted the job
JobType: DWORD; // job type, see JT defines
QueueStatus: DWORD; // job queue status, see JS defines
Status: DWORD; // current status of the device, see FPS_??? masks
Size: DWORD; // size in bytes of the document
PageCount: DWORD; // total page count
RecipientNumber: LPCSTR; // recipient fax number
RecipientName: LPCSTR; // recipient name
Tsid: LPCSTR; // transmitter's id
SenderName: LPCSTR; // sender name
SenderCompany: LPCSTR; // sender company
SenderDept: LPCSTR; // sender department
BillingCode: LPCSTR; // billing code
ScheduleAction: DWORD; // when to schedule the fax, see JSA defines
ScheduleTime: SYSTEMTIME; // time to send the fax when JSA_SPECIFIC_TIME is used (must be local time)
DeliveryReportType: DWORD; // delivery report type, see DRT defines
DeliveryReportAddress: LPCSTR; // email address for delivery report (ndr or dr) thru MAPI / SMTP
DocumentName: LPCSTR; // document name
end;
{$EXTERNALSYM _FAX_JOB_ENTRYA}
FAX_JOB_ENTRYA = _FAX_JOB_ENTRYA;
{$EXTERNALSYM FAX_JOB_ENTRYA}
TFaxJobEntryA = FAX_JOB_ENTRYA;
PFaxJobEntryA = PFAX_JOB_ENTRYA;
PFAX_JOB_ENTRYW = ^FAX_JOB_ENTRYW;
{$EXTERNALSYM PFAX_JOB_ENTRYW}
_FAX_JOB_ENTRYW = record
SizeOfStruct: DWORD; // size of this structure
JobId: DWORD; // fax job id
UserName: LPCWSTR; // user who submitted the job
JobType: DWORD; // job type, see JT defines
QueueStatus: DWORD; // job queue status, see JS defines
Status: DWORD; // current status of the device, see FPS_??? masks
Size: DWORD; // size in bytes of the document
PageCount: DWORD; // total page count
RecipientNumber: LPCWSTR; // recipient fax number
RecipientName: LPCWSTR; // recipient name
Tsid: LPCWSTR; // transmitter's id
SenderName: LPCWSTR; // sender name
SenderCompany: LPCWSTR; // sender company
SenderDept: LPCWSTR; // sender department
BillingCode: LPCWSTR; // billing code
ScheduleAction: DWORD; // when to schedule the fax, see JSA defines
ScheduleTime: SYSTEMTIME; // time to send the fax when JSA_SPECIFIC_TIME is used (must be local time)
DeliveryReportType: DWORD; // delivery report type, see DRT defines
DeliveryReportAddress: LPCWSTR; // email address for delivery report (ndr or dr) thru MAPI / SMTP
DocumentName: LPCWSTR; // document name
end;
{$EXTERNALSYM _FAX_JOB_ENTRYW}
FAX_JOB_ENTRYW = _FAX_JOB_ENTRYW;
{$EXTERNALSYM FAX_JOB_ENTRYW}
TFaxJobEntryW = FAX_JOB_ENTRYW;
PFaxJobEntryW = PFAX_JOB_ENTRYW;
{$IFDEF UNICODE}
FAX_JOB_ENTRY = FAX_JOB_ENTRYW;
{$EXTERNALSYM FAX_JOB_ENTRY}
PFAX_JOB_ENTRY = PFAX_JOB_ENTRYW;
{$EXTERNALSYM PFAX_JOB_ENTRY}
TFaxJobEntry = TFaxJobEntryW;
PFaxJobEntry = PFaxJobEntryW;
{$ELSE}
FAX_JOB_ENTRY = FAX_JOB_ENTRYA;
{$EXTERNALSYM FAX_JOB_ENTRY}
PFAX_JOB_ENTRY = PFAX_JOB_ENTRYA;
{$EXTERNALSYM PFAX_JOB_ENTRY}
TFaxJobEntry = TFaxJobEntryA;
PFaxJobEntry = PFaxJobEntryA;
{$ENDIF}
//
// fax port state masks
//
// if you change these defines the be sure to
// change the resources in the fax service.
//
const
FPS_DIALING = $20000001;
{$EXTERNALSYM FPS_DIALING}
FPS_SENDING = $20000002;
{$EXTERNALSYM FPS_SENDING}
FPS_RECEIVING = $20000004;
{$EXTERNALSYM FPS_RECEIVING}
FPS_COMPLETED = $20000008;
{$EXTERNALSYM FPS_COMPLETED}
FPS_HANDLED = $20000010;
{$EXTERNALSYM FPS_HANDLED}
FPS_UNAVAILABLE = $20000020;
{$EXTERNALSYM FPS_UNAVAILABLE}
FPS_BUSY = $20000040;
{$EXTERNALSYM FPS_BUSY}
FPS_NO_ANSWER = $20000080;
{$EXTERNALSYM FPS_NO_ANSWER}
FPS_BAD_ADDRESS = $20000100;
{$EXTERNALSYM FPS_BAD_ADDRESS}
FPS_NO_DIAL_TONE = $20000200;
{$EXTERNALSYM FPS_NO_DIAL_TONE}
FPS_DISCONNECTED = $20000400;
{$EXTERNALSYM FPS_DISCONNECTED}
FPS_FATAL_ERROR = $20000800;
{$EXTERNALSYM FPS_FATAL_ERROR}
FPS_NOT_FAX_CALL = $20001000;
{$EXTERNALSYM FPS_NOT_FAX_CALL}
FPS_CALL_DELAYED = $20002000;
{$EXTERNALSYM FPS_CALL_DELAYED}
FPS_CALL_BLACKLISTED = $20004000;
{$EXTERNALSYM FPS_CALL_BLACKLISTED}
FPS_INITIALIZING = $20008000;
{$EXTERNALSYM FPS_INITIALIZING}
FPS_OFFLINE = $20010000;
{$EXTERNALSYM FPS_OFFLINE}
FPS_RINGING = $20020000;
{$EXTERNALSYM FPS_RINGING}
FPS_AVAILABLE = $20100000;
{$EXTERNALSYM FPS_AVAILABLE}
FPS_ABORTING = $20200000;
{$EXTERNALSYM FPS_ABORTING}
FPS_ROUTING = $20400000;
{$EXTERNALSYM FPS_ROUTING}
FPS_ANSWERED = $20800000;
{$EXTERNALSYM FPS_ANSWERED}
//
// fax port capability mask
//
FPF_RECEIVE = $00000001; // Automatically receive faxes
{$EXTERNALSYM FPF_RECEIVE}
FPF_SEND = $00000002;
{$EXTERNALSYM FPF_SEND}
FPF_VIRTUAL = $00000004;
{$EXTERNALSYM FPF_VIRTUAL}
type
PFAX_PORT_INFOA = ^FAX_PORT_INFOA;
{$EXTERNALSYM PFAX_PORT_INFOA}
_FAX_PORT_INFOA = record
SizeOfStruct: DWORD; // size of this structure
DeviceId: DWORD; // Device ID
State: DWORD; // State of the device
Flags: DWORD; // Device specific flags
Rings: DWORD; // Number of rings before answer
Priority: DWORD; // Device priority
DeviceName: LPCSTR; // Device name
Tsid: LPCSTR; // Device Tsid
Csid: LPCSTR; // Device Csid
end;
{$EXTERNALSYM _FAX_PORT_INFOA}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -