/* * winfax.h * * FAX API Support * * THIS SOFTWARE IS NOT COPYRIGHTED * * This source code is offered for use in the public domain. You may * use, modify or distribute it freely. * * This code is distributed in the hope that it will be useful but * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY * DISCLAIMED. This includes but is not limited to warranties of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * */ #ifndef __WINFAX_H #define __WINFAX_H #ifdef __cplusplus extern "C" { #endif typedef DWORD HCALL; typedef struct _FAX_TIME { WORD Hour; WORD Minute; } FAX_TIME, *PFAX_TIME; typedef enum { JSA_NOW = 0, JSA_SPECIFIC_TIME, JSA_DISCOUNT_PERIOD } FAX_ENUM_JOB_SEND_ATTRIBUTES; typedef enum { DRT_NONE = 0, DRT_EMAIL, DRT_INBOX } FAX_ENUM_DELIVERY_REPORT_TYPES; typedef enum { FAXLOG_CATEGORY_INIT = 1, FAXLOG_CATEGORY_OUTBOUND, FAXLOG_CATEGORY_INBOUND, FAXLOG_CATEGORY_UNKNOWN } FAX_ENUM_LOG_CATEGORIES; typedef enum { FAXLOG_LEVEL_NONE = 0, FAXLOG_LEVEL_MIN, FAXLOG_LEVEL_MED, FAXLOG_LEVEL_MAX } FAX_ENUM_LOG_LEVELS; typedef enum { PORT_OPEN_QUERY = 1, PORT_OPEN_MODIFY } FAX_ENUM_PORT_OPEN_TYPE; typedef enum { JC_UNKNOWN = 0, JC_DELETE, JC_PAUSE, JC_RESUME } FAX_ENUM_JOB_COMMANDS; #define JT_UNKNOWN 0 #define JT_SEND 1 #define JT_RECEIVE 2 #define JT_ROUTING 3 #define JT_FAIL_RECEIVE 4 #define JS_PENDING 0x0 #define JS_INPROGRESS 0x1 #define JS_DELETING 0x2 #define JS_FAILED 0x4 #define JS_PAUSED 0x8 #define JS_NOLINE 0x10 #define JS_RETRYING 0x20 #define JS_RETRIES_EXCEEDED 0x40 #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 #define FPF_RECEIVE 0x1 #define FPF_SEND 0x2 #define FPF_VIRTUAL 0x4 typedef struct _FAX_JOB_PARAMA { DWORD SizeOfStruct; LPCSTR RecipientNumber; LPCSTR RecipientName; LPCSTR Tsid; LPCSTR SenderName; LPCSTR SenderCompany; LPCSTR SenderDept; LPCSTR BillingCode; DWORD ScheduleAction; SYSTEMTIME ScheduleTime; DWORD DeliveryReportType; LPCSTR DeliveryReportAddress; LPCSTR DocumentName; HCALL CallHandle; DWORD_PTR Reserved[3]; } FAX_JOB_PARAMA, *PFAX_JOB_PARAMA; typedef struct _FAX_JOB_PARAMW { DWORD SizeOfStruct; LPCWSTR RecipientNumber; LPCWSTR RecipientName; LPCWSTR Tsid; LPCWSTR SenderName; LPCWSTR SenderCompany; LPCWSTR SenderDept; LPCWSTR BillingCode; DWORD ScheduleAction; SYSTEMTIME ScheduleTime; DWORD DeliveryReportType; LPCWSTR DeliveryReportAddress; LPCWSTR DocumentName; HCALL CallHandle; DWORD_PTR Reserved[3]; } FAX_JOB_PARAMW, *PFAX_JOB_PARAMW; typedef struct _FAX_COVERAGE_INFOA { DWORD SizeOfStruct; LPCSTR CoverPageName; BOOL UseServerCoverPage; 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; LPCSTR SdrName; LPCSTR SdrFaxNumber; LPCSTR SdrCompany; LPCSTR SdrAddress; LPCSTR SdrTitle; LPCSTR SdrDepartment; LPCSTR SdrOfficeLocation; LPCSTR SdrHomePhone; LPCSTR SdrOfficePhone; LPCSTR Node; LPCSTR Subject; SYSTEMTIME TimeSent; DWORD PageCount; } FAX_COVERAGE_INFOA, *PFAX_COVERAGE_INFOA; typedef struct _FAX_COVERAGE_INFOW { DWORD SizeOfStruct; LPCWSTR CoverPageName; BOOL UseServerCoverPage; 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; LPCWSTR SdrName; LPCWSTR SdrFaxNumber; LPCWSTR SdrCompany; LPCWSTR SdrAddress; LPCWSTR SdrTitle; LPCWSTR SdrDepartment; LPCWSTR SdrOfficeLocation; LPCWSTR SdrHomePhone; LPCWSTR SdrOfficePhone; LPCWSTR Node; LPCWSTR Subject; SYSTEMTIME TimeSent; DWORD PageCount; } FAX_COVERAGE_INFOW, *PFAX_COVERAGE_INFOW; typedef struct _FAX_GLOBAL_ROUTING_INFOA { DWORD SizeOfStruct; DWORD Priority; LPCSTR Guid; LPCSTR FriendlyName; LPCSTR FunctionName; LPCSTR ExtensionImageName; LPCSTR ExtensionFriendlyName; } FAX_GLOBAL_ROUTING_INFOA, *PFAX_GLOBAL_ROUTING_INFOA; typedef struct _FAX_GLOBAL_ROUTING_INFOW { DWORD SizeOfStruct; DWORD Priority; LPCWSTR Guid; LPCWSTR FriendlyName; LPCWSTR FunctionName; LPCWSTR ExtensionImageName; LPCWSTR ExtensionFriendlyName; } FAX_GLOBAL_ROUTING_INFOW, *PFAX_GLOBAL_ROUTING_INFOW; typedef struct _FAX_JOB_ENTRYA { DWORD SizeOfStruct; DWORD JobId; LPCSTR UserName; DWORD JobType; DWORD QueueStatus; DWORD Status; DWORD Size; DWORD PageCount; LPCSTR RecipientNumber; LPCSTR RecipientName; LPCSTR Tsid; LPCSTR SenderName; LPCSTR SenderCompany; LPCSTR SenderDept; LPCSTR BillingCode; DWORD ScheduleAction; SYSTEMTIME ScheduleTime; DWORD DeliveryReportType; LPCSTR DeliveryReportAddress; LPCSTR DocumentName; } FAX_JOB_ENTRYA, *PFAX_JOB_ENTRYA; typedef struct _FAX_JOB_ENTRYW { DWORD SizeOfStruct; DWORD JobId; LPCWSTR UserName; DWORD JobType; DWORD QueueStatus; DWORD Status; DWORD Size; DWORD PageCount; LPCWSTR RecipientNumber; LPCWSTR RecipientName; LPCWSTR Tsid; LPCWSTR SenderName; LPCWSTR SenderCompany; LPCWSTR SenderDept; LPCWSTR BillingCode; DWORD ScheduleAction; SYSTEMTIME ScheduleTime; DWORD DeliveryReportType; LPCWSTR DeliveryReportAddress; LPCWSTR DocumentName; } FAX_JOB_ENTRYW, *PFAX_JOB_ENTRYW; typedef struct _FAX_PORT_INFOA { DWORD SizeOfStruct; DWORD DeviceId; DWORD State; DWORD Flags; DWORD Rings; DWORD Priority; LPCSTR DeviceName; LPCSTR Tsid; LPCSTR Csid; } FAX_PORT_INFOA, *PFAX_PORT_INFOA; typedef struct _FAX_PORT_INFOW { DWORD SizeOfStruct; DWORD DeviceId; DWORD State; DWORD Flags; DWORD Rings; DWORD Priority; LPCWSTR DeviceName; LPCWSTR Tsid; LPCWSTR Csid; } FAX_PORT_INFOW, *PFAX_PORT_INFOW; typedef struct _FAX_ROUTING_METHODA { DWORD SizeOfStruct; DWORD DeviceId; BOOL Enabled; LPCSTR DeviceName; LPCSTR Guid; LPCSTR FriendlyName; LPCSTR FunctionName; LPCSTR ExtensionImageName; LPCSTR ExtensionFriendlyName; } FAX_ROUTING_METHODA, *PFAX_ROUTING_METHODA; typedef struct _FAX_ROUTING_METHODW { DWORD SizeOfStruct; DWORD DeviceId; BOOL Enabled; LPCWSTR DeviceName; LPCWSTR Guid; LPCWSTR FriendlyName; LPCWSTR FunctionName; LPCWSTR ExtensionImageName; LPCWSTR ExtensionFriendlyName; } FAX_ROUTING_METHODW, *PFAX_ROUTING_METHODW; typedef struct _FAX_CONFIGURATIONA { DWORD SizeOfStruct; DWORD Retries; DWORD RetryDelay; BOOL Branding; DWORD DirtyDays; BOOL UseDeviceTsid; BOOL ServerCp; BOOL PauseServerQueue; FAX_TIME StartCheapTime; FAX_TIME StopCheapTime; BOOL ArchiveOutgoingFaxes; LPCSTR ArchiveDirectory; LPCSTR InboundProfile; } FAX_CONFIGURATIONA, *PFAX_CONFIGURATIONA; typedef struct _FAX_CONFIGURATIONW { DWORD SizeOfStruct; DWORD Retries; DWORD RetryDelay; BOOL Branding; DWORD DirtyDays; BOOL UseDeviceTsid; BOOL ServerCp; BOOL PauseServerQueue; FAX_TIME StartCheapTime; FAX_TIME StopCheapTime; BOOL ArchiveOutgoingFaxes; LPCWSTR ArchiveDirectory; LPCWSTR InboundProfile; } FAX_CONFIGURATIONW, *PFAX_CONFIGURATIONW; typedef struct _FAX_DEVICE_STATUSA { DWORD SizeOfStruct; LPCSTR CallerId; LPCSTR Csid; DWORD CurrentPage; DWORD DeviceId; LPCSTR DeviceName; LPCSTR DocumentName; DWORD JobType; LPCSTR PhoneNumber; LPCSTR RoutingString; LPCSTR SenderName; LPCSTR RecipientName; DWORD Size; FILETIME StartTime; DWORD Status; LPCSTR StatusString; FILETIME SubmittedTime; DWORD TotalPages; LPCSTR Tsid; LPCSTR UserName; } FAX_DEVICE_STATUSA, *PFAX_DEVICE_STATUSA; typedef struct _FAX_DEVICE_STATUSW { DWORD SizeOfStruct; LPCWSTR CallerId; LPCWSTR Csid; DWORD CurrentPage; DWORD DeviceId; LPCWSTR DeviceName; LPCWSTR DocumentName; DWORD JobType; LPCWSTR PhoneNumber; LPCWSTR RoutingString; LPCWSTR SenderName; LPCWSTR RecipientName; DWORD Size; FILETIME StartTime; DWORD Status; LPCWSTR StatusString; FILETIME SubmittedTime; DWORD TotalPages; LPCWSTR Tsid; LPCWSTR UserName; } FAX_DEVICE_STATUSW, *PFAX_DEVICE_STATUSW; typedef struct _FAX_LOG_CATEGORYA { LPCSTR Name; DWORD Category; DWORD Level; } FAX_LOG_CATEGORYA, *PFAX_LOG_CATEGORYA; typedef struct _FAX_LOG_CATEGORYW { LPCWSTR Name; DWORD Category; DWORD Level; } FAX_LOG_CATEGORYW, *PFAX_LOG_CATEGORYW; typedef struct _FAX_CONTEXT_INFOA { DWORD SizeOfStruct; HDC hDC; CHAR ServerName[MAX_COMPUTERNAME_LENGTH + 1]; } FAX_CONTEXT_INFOA, *PFAX_CONTEXT_INFOA; typedef struct _FAX_CONTEXT_INFOW { DWORD SizeOfStruct; HDC hDC; WCHAR ServerName[MAX_COMPUTERNAME_LENGTH + 1]; } FAX_CONTEXT_INFOW, *PFAX_CONTEXT_INFOW; typedef struct _FAX_PRINT_INFOA { DWORD SizeOfStruct; LPCSTR DocName; LPCSTR RecipientName; LPCSTR RecipientNumber; LPCSTR SenderName; LPCSTR SenderCompany; LPCSTR SenderDept; LPCSTR SenderBillingCode; LPCSTR Reserved; LPCSTR DrEmailAddress; LPCSTR OutputFileName; } FAX_PRINT_INFOA, *PFAX_PRINT_INFOA; typedef struct _FAX_PRINT_INFOW { DWORD SizeOfStruct; LPCWSTR DocName; LPCWSTR RecipientName; LPCWSTR RecipientNumber; LPCWSTR SenderName; LPCWSTR SenderCompany; LPCWSTR SenderDept; LPCWSTR SenderBillingCode; LPCWSTR Reserved; LPCWSTR DrEmailAddress; LPCWSTR OutputFileName; } FAX_PRINT_INFOW, *PFAX_PRINT_INFOW; typedef BOOL (CALLBACK *PFAX_RECIPIENT_CALLBACKA)(HANDLE FaxHandle, DWORD RecipientNumber, LPVOID Context, PFAX_JOB_PARAMA JobParams, PFAX_COVERAGE_INFOA CoverpageInfo); typedef BOOL (CALLBACK *PFAX_RECIPIENT_CALLBACKW)(HANDLE FaxHandle, DWORD RecipientNumber, LPVOID Context, PFAX_JOB_PARAMW JobParams, PFAX_COVERAGE_INFOW CoverpageInfo); #ifdef UNICODE typedef FAX_JOB_PARAMW FAX_JOB_PARAM; typedef PFAX_JOB_PARAMW PFAX_JOB_PARAM; typedef FAX_COVERAGE_INFOW FAX_COVERAGE_INFO; typedef PFAX_COVERAGE_INFOW PFAX_COVERAGE_INFO; typedef FAX_GLOBAL_ROUTING_INFOW FAX_GLOBAL_ROUTING_INFO; typedef PFAX_GLOBAL_ROUTING_INFOW PFAX_GLOBAL_ROUTING_INFO; typedef FAX_JOB_ENTRYW FAX_JOB_ENTRY; typedef PFAX_JOB_ENTRYW PFAX_JOB_ENTRY; typedef FAX_PORT_INFOW FAX_PORT_INFO; typedef PFAX_PORT_INFOW PFAX_PORT_INFO; typedef FAX_ROUTING_METHODW FAX_ROUTING_METHOD; typedef PFAX_ROUTING_METHODW PFAX_ROUTING_METHOD; typedef FAX_CONFIGURATIONW FAX_CONFIGURATION; typedef PFAX_CONFIGURATIONW PFAX_CONFIGURATION; typedef FAX_DEVICE_STATUSW FAX_DEVICE_STATUS; typedef PFAX_DEVICE_STATUSW PFAX_DEVICE_STATUS; typedef FAX_LOG_CATEGORYW FAX_LOG_CATEGORY; typedef PFAX_LOG_CATEGORYW PFAX_LOG_CATEGORY; typedef FAX_CONTEXT_INFOW FAX_CONTEXT_INFO; typedef PFAX_CONTEXT_INFOW PFAX_CONTEXT_INFO; typedef FAX_PRINT_INFOW FAX_PRINT_INFO; typedef PFAX_PRINT_INFOW PFAX_PRINT_INFO; typedef PFAX_RECIPIENT_CALLBACKA PFAX_RECIPIENT_CALLBACK; #define FaxCompleteJobParams FaxCompleteJobParamsW #define FaxConnectFaxServer FaxConnectFaxServerW #define FaxEnableRoutingMethod FaxEnableRoutingMethodW #define FaxEnumGlobalRoutingInfo FaxEnumGlobalRoutingInfoW #define FaxEnumJobs FaxEnumJobsW #define FaxEnumPorts FaxEnumPortsW #define FaxEnumRoutingMethods FaxEnumRoutingMethodsW #define FaxGetConfiguration FaxGetConfigurationW #define FaxGetDeviceStatus FaxGetDeviceStatusW #define FaxGetJob FaxGetJobW #define FaxGetLoggingCategories FaxGetLoggingCategoriesW #define FaxGetPort FaxGetPortW #define FaxGetRoutingInfo FaxGetRoutingInfoW #define FaxSendDocument FaxSendDocumentW #define FaxSendDocumentForBroadcast FaxSendDocumentForBroadcastW #define FaxSetConfiguration FaxSetConfigurationW #define FaxSetGlobalRoutingInfo FaxSetGlobalRoutingInfoW #define FaxSetJob FaxSetJobW #define FaxSetLoggingCategories FaxSetLoggingCategoriesW #define FaxSetPort FaxSetPortW #define FaxSetRoutingInfo FaxSetRoutingInfoW #define FaxStartPrintJob FaxStartPrintJobW #else /* !UNICODE */ typedef FAX_JOB_PARAMA FAX_JOB_PARAM; typedef PFAX_JOB_PARAMA PFAX_JOB_PARAM; typedef FAX_COVERAGE_INFOA FAX_COVERAGE_INFO; typedef PFAX_COVERAGE_INFOA PFAX_COVERAGE_INFO; typedef FAX_GLOBAL_ROUTING_INFOA FAX_GLOBAL_ROUTING_INFO; typedef PFAX_GLOBAL_ROUTING_INFOA PFAX_GLOBAL_ROUTING_INFO; typedef FAX_JOB_ENTRYA FAX_JOB_ENTRY; typedef PFAX_JOB_ENTRYA PFAX_JOB_ENTRY; typedef FAX_PORT_INFOA FAX_PORT_INFO; typedef PFAX_PORT_INFOA PFAX_PORT_INFO; typedef FAX_ROUTING_METHODA FAX_ROUTING_METHOD; typedef PFAX_ROUTING_METHODA PFAX_ROUTING_METHOD; typedef FAX_CONFIGURATIONA FAX_CONFIGURATION; typedef PFAX_CONFIGURATIONA PFAX_CONFIGURATION; typedef FAX_DEVICE_STATUSA FAX_DEVICE_STATUS; typedef PFAX_DEVICE_STATUSA PFAX_DEVICE_STATUS; typedef FAX_LOG_CATEGORYA FAX_LOG_CATEGORY; typedef PFAX_LOG_CATEGORYA PFAX_LOG_CATEGORY; typedef FAX_CONTEXT_INFOA FAX_CONTEXT_INFO; typedef PFAX_CONTEXT_INFOA PFAX_CONTEXT_INFO; typedef FAX_PRINT_INFOA FAX_PRINT_INFO; typedef PFAX_PRINT_INFOA PFAX_PRINT_INFO; typedef PFAX_RECIPIENT_CALLBACKW PFAX_RECIPIENT_CALLBACK; #define FaxCompleteJobParams FaxCompleteJobParamsA #define FaxConnectFaxServer FaxConnectFaxServerA #define FaxEnableRoutingMethod FaxEnableRoutingMethodA #define FaxEnumGlobalRoutingInfo FaxEnumGlobalRoutingInfoA #define FaxEnumJobs FaxEnumJobsA #define FaxEnumPorts FaxEnumPortsA #define FaxEnumRoutingMethods FaxEnumRoutingMethodsA #define FaxGetConfiguration FaxGetConfigurationA #define FaxGetDeviceStatus FaxGetDeviceStatusA #define FaxGetJob FaxGetJobA #define FaxGetLoggingCategories FaxGetLoggingCategoriesA #define FaxGetPort FaxGetPortA #define FaxGetRoutingInfo FaxGetRoutingInfoA #define FaxSendDocument FaxSendDocumentA #define FaxSendDocumentForBroadcast FaxSendDocumentForBroadcastA #define FaxSetConfiguration FaxSetConfigurationA #define FaxSetGlobalRoutingInfo FaxSetGlobalRoutingInfoA #define FaxSetJob FaxSetJobA #define FaxSetLoggingCategories FaxSetLoggingCategoriesA #define FaxSetPort FaxSetPortA #define FaxSetRoutingInfo FaxSetRoutingInfoA #define FaxStartPrintJob FaxStartPrintJobA #endif /* UNICODE */ typedef BOOL (CALLBACK *PFAX_ROUTING_INSTALLATION_CALLBACKW)(HANDLE FaxHandle, LPVOID Context, LPWSTR MethodName, LPWSTR FriendlyName, LPWSTR FunctionName, LPWSTR Guid); #define PFAX_ROUTING_INSTALLATION_CALLBACK PFAX_ROUTING_INSTALLATION_CALLBACKW #define FaxRegisterRoutingExtension FaxRegisterRoutingExtensionW #define FaxRegisterServiceProvider FaxRegisterServiceProviderW BOOL WINAPI FaxAbort(HANDLE FaxHandle, DWORD JobId); BOOL WINAPI FaxAccessCheck(HANDLE FaxHandle, DWORD AccessMask); BOOL WINAPI FaxClose(HANDLE FaxHandle); BOOL WINAPI FaxCompleteJobParamsA(PFAX_JOB_PARAMA *JobParams, PFAX_COVERAGE_INFOA *CoverageInfo); BOOL WINAPI FaxCompleteJobParamsW(PFAX_JOB_PARAMW *JobParams, PFAX_COVERAGE_INFOW *CoverageInfo); BOOL WINAPI FaxConnectFaxServerA(LPCSTR MachineName, LPHANDLE FaxHandle); BOOL WINAPI FaxConnectFaxServerW(LPCWSTR MachineName, LPHANDLE FaxHandle); BOOL WINAPI FaxEnableRoutingMethodA(HANDLE FaxPortHandle, LPCSTR RoutingGuid, BOOL Enabled); BOOL WINAPI FaxEnableRoutingMethodW(HANDLE FaxPortHandle, LPCWSTR RoutingGuid, BOOL Enabled); BOOL WINAPI FaxEnumGlobalRoutingInfoA(HANDLE FaxHandle, PFAX_GLOBAL_ROUTING_INFOA *RoutingInfo, LPDWORD MethodsReturned); BOOL WINAPI FaxEnumGlobalRoutingInfoW(HANDLE FaxHandle, PFAX_GLOBAL_ROUTING_INFOW *RoutingInfo, LPDWORD MethodsReturned); BOOL WINAPI FaxEnumJobsA(HANDLE FaxHandle, PFAX_JOB_ENTRYA *JobEntry, LPDWORD JobsReturned); BOOL WINAPI FaxEnumJobsW(HANDLE FaxHandle, PFAX_JOB_ENTRYW *JobEntry, LPDWORD JobsReturned); BOOL WINAPI FaxEnumPortsA(HANDLE FaxHandle, PFAX_PORT_INFOA *PortInfo, LPDWORD PortsReturned); BOOL WINAPI FaxEnumPortsW(HANDLE FaxHandle, PFAX_PORT_INFOW *PortInfo, LPDWORD PortsReturned); BOOL WINAPI FaxEnumRoutingMethodsA(HANDLE FaxPortHandle, PFAX_ROUTING_METHODA *RoutingMethod, LPDWORD MethodsReturned); BOOL WINAPI FaxEnumRoutingMethodsW(HANDLE FaxPortHandle, PFAX_ROUTING_METHODW *RoutingMethod, LPDWORD MethodsReturned); VOID WINAPI FaxFreeBuffer(LPVOID Buffer); BOOL WINAPI FaxGetConfigurationA(HANDLE FaxHandle, PFAX_CONFIGURATIONA *FaxConfig); BOOL WINAPI FaxGetConfigurationW(HANDLE FaxHandle, PFAX_CONFIGURATIONW *FaxConfig); BOOL WINAPI FaxGetDeviceStatusA(HANDLE FaxPortHandle, PFAX_DEVICE_STATUSA *DeviceStatus); BOOL WINAPI FaxGetDeviceStatusW(HANDLE FaxPortHandle, PFAX_DEVICE_STATUSW *DeviceStatus); BOOL WINAPI FaxGetJobA(HANDLE FaxHandle, DWORD JobId, PFAX_JOB_ENTRYA *JobEntry); BOOL WINAPI FaxGetJobW(HANDLE FaxHandle, DWORD JobId, PFAX_JOB_ENTRYW *JobEntry); BOOL WINAPI FaxGetLoggingCategoriesA(HANDLE FaxHandle, PFAX_LOG_CATEGORYA *Categories, LPDWORD NumberCategories); BOOL WINAPI FaxGetLoggingCategoriesW(HANDLE FaxHandle, PFAX_LOG_CATEGORYW *Categories, LPDWORD NumberCategories); BOOL WINAPI FaxGetPageData(HANDLE FaxHandle, DWORD JobId, LPBYTE *Buffer, LPDWORD BufferSize, LPDWORD ImageWidth, LPDWORD ImageHeight); BOOL WINAPI FaxGetPortA(HANDLE FaxPortHandle, PFAX_PORT_INFOA *PortInfo); BOOL WINAPI FaxGetPortW(HANDLE FaxPortHandle, PFAX_PORT_INFOW *PortInfo); BOOL WINAPI FaxGetRoutingInfoA(HANDLE FaxPortHandle, LPCSTR RoutingGuid, LPBYTE *RoutingInfoBuffer, LPDWORD RoutingInfoBufferSize); BOOL WINAPI FaxGetRoutingInfoW(HANDLE FaxPortHandle, LPCWSTR RoutingGuid, LPBYTE *RoutingInfoBuffer, LPDWORD RoutingInfoBufferSize); BOOL WINAPI FaxInitializeEventQueue(HANDLE FaxHandle, HANDLE CompletionPort, ULONG_PTR CompletionKey, HWND hWnd, UINT MessageStart); BOOL WINAPI FaxOpenPort(HANDLE FaxHandle, DWORD DeviceId, DWORD Flags, LPHANDLE FaxPortHandle); BOOL WINAPI FaxPrintCoverPageA(CONST FAX_CONTEXT_INFOA *FaxContextInfo, CONST FAX_COVERAGE_INFOA *CoverPageInfo); BOOL WINAPI FaxPrintCoverPageW(CONST FAX_CONTEXT_INFOW *FaxContextInfo, CONST FAX_COVERAGE_INFOW *CoverPageInfo); BOOL WINAPI FaxRegisterRoutingExtensionW(HANDLE FaxHandle, LPCWSTR ExtensionName, LPCWSTR FriendlyName, LPCWSTR ImageName, PFAX_ROUTING_INSTALLATION_CALLBACK CallBack, LPVOID Context); BOOL WINAPI FaxRegisterServiceProviderW(LPCWSTR DeviceProvider, LPCWSTR FriendlyName, LPCWSTR ImageName, LPCWSTR TspName); BOOL WINAPI FaxSendDocumentA(HANDLE FaxHandle, LPCSTR FileName, PFAX_JOB_PARAMA JobParams, CONST FAX_COVERAGE_INFOA *CoverpageInfo, LPDWORD FaxJobId); BOOL WINAPI FaxSendDocumentForBroadcastA(HANDLE FaxHandle, LPCSTR FileName, LPDWORD FaxJobId, PFAX_RECIPIENT_CALLBACKA FaxRecipientCallback, LPVOID Context); BOOL WINAPI FaxSendDocumentForBroadcastW(HANDLE FaxHandle, LPCWSTR FileName, LPDWORD FaxJobId, PFAX_RECIPIENT_CALLBACKW FaxRecipientCallback, LPVOID Context); BOOL WINAPI FaxSendDocumentW(HANDLE FaxHandle, LPCWSTR FileName, PFAX_JOB_PARAMW JobParams, CONST FAX_COVERAGE_INFOW *CoverpageInfo, LPDWORD FaxJobId); BOOL WINAPI FaxSetConfigurationA(HANDLE FaxHandle, CONST FAX_CONFIGURATIONA *FaxConfig); BOOL WINAPI FaxSetConfigurationW(HANDLE FaxHandle, CONST FAX_CONFIGURATIONW *FaxConfig); BOOL WINAPI FaxSetGlobalRoutingInfoA(HANDLE FaxHandle, CONST FAX_GLOBAL_ROUTING_INFOA *RoutingInfo); BOOL WINAPI FaxSetGlobalRoutingInfoW(HANDLE FaxHandle, CONST FAX_GLOBAL_ROUTING_INFOW *RoutingInfo); BOOL WINAPI FaxSetJobA(HANDLE FaxHandle, DWORD JobId, DWORD Command, CONST FAX_JOB_ENTRYA *JobEntry); BOOL WINAPI FaxSetJobW(HANDLE FaxHandle, DWORD JobId, DWORD Command, CONST FAX_JOB_ENTRYW *JobEntry); BOOL WINAPI FaxSetLoggingCategoriesA(HANDLE FaxHandle, CONST FAX_LOG_CATEGORYA *Categories, DWORD NumberCategories); BOOL WINAPI FaxSetLoggingCategoriesW(HANDLE FaxHandle, CONST FAX_LOG_CATEGORYW *Categories, DWORD NumberCategories); BOOL WINAPI FaxSetPortA(HANDLE FaxPortHandle, CONST FAX_PORT_INFOA *PortInfo); BOOL WINAPI FaxSetPortW(HANDLE FaxPortHandle, CONST FAX_PORT_INFOW *PortInfo); BOOL WINAPI FaxSetRoutingInfoA(HANDLE FaxPortHandle, LPCSTR RoutingGuid, CONST BYTE *RoutingInfoBuffer, DWORD RoutingInfoBufferSize); BOOL WINAPI FaxSetRoutingInfoW(HANDLE FaxPortHandle, LPCWSTR RoutingGuid, CONST BYTE *RoutingInfoBuffer, DWORD RoutingInfoBufferSize); BOOL WINAPI FaxStartPrintJobA(LPCSTR PrinterName, CONST FAX_PRINT_INFOA *PrintInfo, LPDWORD FaxJobId, PFAX_CONTEXT_INFOA FaxContextInfo); BOOL WINAPI FaxStartPrintJobW(LPCWSTR PrinterName, CONST FAX_PRINT_INFOW *PrintInfo, LPDWORD FaxJobId, PFAX_CONTEXT_INFOW FaxContextInfo); #ifdef __cplusplus } #endif #endif /* __WINFAX_H */ /* EOF */