windows-nt/Source/XPSP1/NT/printscan/fax/test/faxvrfy/faxvrfy.h
2020-09-26 16:20:57 +08:00

218 lines
10 KiB
C

/*++
Copyright (c) 1997 Microsoft Corporation
Module Name:
faxvrfy.h
Abstract:
This module contains the global definitions
Author:
Steven Kehrli (steveke) 11/15/1997
--*/
#ifndef _FAXVRFY_H
#define _FAXVRFY_H
#include "ntlog.h"
#include <ras.h>
// FAXVRFY_NAME is the name of the FaxVrfy application
#define FAXVRFY_NAME L"FaxVrfy"
// FAXVRFY_HLP is the name of the FaxVrfy help file
#define FAXVRFY_HLP L"faxvrfy.hlp"
// FAXRCV_DLL is the name of the FaxRcv dll
#define FAXRCV_DLL L"faxrcv.dll"
// FAXVRFY_LOG is the name of the FaxVrfy log file
#define FAXVRFY_LOG L"faxvrfy.log"
// FAXVRFY_TXT is the name of the FaxVrfy text file
#define FAXVRFY_TXT L"faxvrfy.txt"
// FAXVRFY_INI is the name of the FaxVrfy ini
#define FAXVRFY_INI L"faxvrfy.ini"
// FAXBVT_TIF is the name of the tif file for the BVT test
#define FAXBVT_TIF L"faxbvt.tif"
// FAXWHQL_TIF is the name of the tif file for the WHQL test
#define FAXWHQL_TIF L"faxwhql.tif"
// FAXVRFY_CMD_HELP is the help command line parameter
#define FAXVRFY_CMD_HELP_1 L"/?"
#define FAXVRFY_CMD_HELP_2 L"/h"
#define FAXVRFY_CMD_HELP_3 L"-?"
#define FAXVRFY_CMD_HELP_4 L"-h"
// FAXVRFY_CMD_BVT is the BVT command line parameter
#define FAXVRFY_CMD_BVT_1 L"/bvt"
#define FAXVRFY_CMD_BVT_2 L"-bvt"
// FAXVRFY_CMD_SEND is the send command line parameter
#define FAXVRFY_CMD_SEND_1 L"/s"
#define FAXVRFY_CMD_SEND_2 L"-s"
// FAXVRFY_CMD_RECEIVE is the receive command line parameter
#define FAXVRFY_CMD_RECEIVE_1 L"/r"
#define FAXVRFY_CMD_RECEIVE_2 L"-r"
// FAXVRFY_CMD_GO is the go command line parameter
#define FAXVRFY_CMD_GO_1 L"/g"
#define FAXVRFY_CMD_GO_2 L"-g"
// FAXVRFY_CMD_NO_CHECK is the no check command line parameter
#define FAXVRFY_CMD_NO_CHECK_1 L"/x"
#define FAXVRFY_CMD_NO_CHECK_2 L"-x"
// ENCODE_CHAR_LEN is the text length limit of the encoding character.
#define ENCODE_CHAR_LEN 1
// CONTROL_CHAR_LEN is the text length limit of the control characters.
#define CONTROL_CHAR_LEN 2
// PHONE_NUM_LEN is the text length limit of phone number edit controls. The length of 17 corresponds to the TSID limit for the fax service (20) minus 3 characters for encoding
#define PHONE_NUM_LEN 17
// TX_CONTROL_CHARS are the control characters when sending
#define TX_CONTROL_CHARS L"TX"
// RX_CONTROL_CHARS are the control characters when receiving
#define RX_CONTROL_CHARS L"RX"
// FAXSVC_RETRIES is the number of retries
#define FAXSVC_RETRIES 2
// FAXSVC_RETRYDELAY is the retry delay
#define FAXSVC_RETRYDELAY 3
// FAXBVT_PAGES is the number of pages in the BVT fax
#define FAXBVT_PAGES 1
// FAXWHQL_PAGES is the number of pages in the WHQL fax
#define FAXWHQL_PAGES 5
// FAXBVT_NUM_FAXES is the number of faxes to send for BVT
#define FAXBVT_NUM_FAXES 1
// FAXWHQL_NUM_FAXES is the number of faxes to send for WHQL
#define FAXWHQL_NUM_FAXES 2
// UM_FAXVRFY_INITIALIZE is the message to initialize the application window
#define UM_FAXVRFY_INITIALIZE (WM_USER + 1)
// UM_FAXVRFY_UPDATE is the message to update the test
#define UM_FAXVRFY_UPDATE (WM_USER + 2)
// UM_FAXVRFY_RESET is the message to reset the test
#define UM_FAXVRFY_RESET (WM_USER + 3)
// UM_TIMEOUT_ENDED is the message to indicate the timeout ended
#define UM_TIMEOUT_ENDED (WM_USER + 4)
// UM_FAXSVC_ENDED is the message to indicate the fax service stopped
#define UM_FAXSVC_ENDED (WM_USER + 5)
// UM_ITERATION_STOPPED is the message to indicate the iteration stopped
#define UM_ITERATION_STOPPED (WM_USER + 6)
// UM_ITERATION_PASSED is the message to indicate the iteration passed
#define UM_ITERATION_PASSED (WM_USER + 7)
// UM_ITERATION_FAILED is the message to indicate the iteration failed
#define UM_ITERATION_FAILED (WM_USER + 8)
// UM_UPDATE_STATUS is a message to update the Status List
#define UM_UPDATE_STATUS (WM_USER + 11)
HWND g_hWndDlg; // g_hWndDlg is the handle to the Setup Dialog
HANDLE g_hLogFile = NULL; // g_hLogFile is the handle to the log file
HANDLE g_hTxtFile = INVALID_HANDLE_VALUE; // g_hLogFile is the handle to the text file
BOOL g_bBVT = FALSE; // g_bBVT indicates BVT command line parameter
BOOL g_bSend = FALSE; // g_bSend indicates send command line parameter
BOOL g_bGo = FALSE; // g_bGo indicates go command line parameter
BOOL g_bNoCheck = FALSE; // g_bNoCheck indicates no check command line parameter
HANDLE g_hStartEvent; // g_hStartEvent is the handle to the Start event
HANDLE g_hStopEvent; // g_hStopEvent is the handle to the Stop event
HANDLE g_hFaxEvent; // g_hFaxEvent is the handle to the event to indicate the Fax Service stopped
HANDLE g_hExitEvent; // g_hExitEvent is the handle to the Exit event
HANDLE g_hRasPassedEvent; // g_hRasPassedEvent is the handle to the RAS Passed event
HANDLE g_hRasFailedEvent; // g_hRasFailedEvent is the handle to the RAS Failed event
HANDLE g_hSendPassedEvent; // g_hSendPassedEvent is the handle to the Send Passed event
HANDLE g_hSendFailedEvent; // g_hSendFailedEvent is the handle to the Send Failed event
HANDLE g_hFaxSvcHandle; // g_hFaxSvcHandle is the handle to the Fax Service
PFAX_PORT_INFO g_pFaxPortsConfig; // g_pFaxPorts is the pointer to the Fax Ports Configuration
DWORD g_dwNumPorts; // g_dwNumPorts is the number of Ports
DWORD g_dwNumAvailPorts; // g_dwNumAvailPorts is the number of Available Ports
PFAX_CONFIGURATION g_pFaxSvcConfig; // g_pFaxConfig is the pointer to the Fax Service Configuration
BOOL g_bFaxSndInProgress = FALSE; // g_bFaxSndInProgress indicates if a fax send is in progress
DWORD g_dwFaxId = 0; // g_dwFaxId is the fax job id of the fax
DWORD g_dwAttempt = 0; // g_dwAttempt is the attempt number of the fax
BOOL g_bFaxRcvInProgress = FALSE; // g_bFaxRcvInProgress indicates if a fax receive is in progress
HANDLE g_hCompletionPort; // g_hCompletionPort is the handle to the completion port
BOOL g_bTestFailed = FALSE; // g_bTestFailed indicates the test failed
DWORD g_dwNumPassed = 0; // g_dwNumPassed is the number of passed iterations
DWORD g_dwNumFailed = 0; // g_dwNumFailed is the number of failed iterations
DWORD g_dwNumTotal = 0; // g_dwNumTotal is the number of total iterations
WCHAR g_szSndNumber[PHONE_NUM_LEN + 1]; // g_szSndNumber is the send phone number
WCHAR g_szRcvNumber[PHONE_NUM_LEN + 1]; // g_szRcvNumber is the receive phone number
WCHAR g_szRasUserName[UNLEN + 1]; // g_szRasUserName is the RAS user name
WCHAR g_szRasPassword[PWLEN + 1]; // g_szRasPassword is the RAS password
WCHAR g_szRasDomain[DNLEN + 1]; // g_szRasDomain is the RAS domain
BOOL g_bNTLogAvailable = FALSE; // g_bNTLogAvailable indicates if NTLog is available
BOOL g_bRasAvailable = FALSE; // g_bRasAvailable indicates if RAS is available
BOOL g_bRasEnabled = FALSE; // g_bRasEnables indicates if RAS is enabled
#define FAXDEVICES_REGKEY L"Software\\Microsoft\\Fax\\Devices"
#define MODEM_REGKEY L"\\Modem"
#define FIXMODEMCLASS_REGVALUE L"FixModemClass"
// FAX_DIALING_INFO is a structure that is the fax dialing info
typedef struct _FAX_DIALING_INFO {
DWORD dwAttempt; // Attempt number
DWORD dwDeviceId; // Device id
} FAX_DIALING_INFO, *PFAX_DIALING_INFO;
// FAX_RECEIVE_INFO is a structure that is the fax receive info
typedef struct _FAX_RECEIVE_INFO {
LPWSTR szCopyTiffName; // Attempt number
DWORD dwDeviceId; // Device id
} FAX_RECEIVE_INFO, *PFAX_RECEIVE_INFO;
// NTLOG_DLL is the name of the dll that contains all of the NTLOG API's
#define NTLOG_DLL L"ntlog.dll"
// NTLOG_API is a structure that points to the NTLOG API's
typedef struct _NTLOG_API {
HINSTANCE hInstance; // Handle to the instance of the dll
PTLCREATELOG ptlCreateLog; // tlCreateLog
PTLDESTROYLOG ptlDestroyLog; // tlDestroyLog
PTLADDPARTICIPANT ptlAddParticipant; // tlAddParticipant
PTLREMOVEPARTICIPANT ptlRemoveParticipant; // tlRemoveParticipant
PTLLOG ptlLog; // tlLog
} NTLOG_API, *PNTLOG_API;
// g_NTLogApi is the global NTLOG_API object
NTLOG_API g_NTLogApi;
// RASAPI32_DLL is the name of the dll that contains all of the RAS API's
#define RASAPI32_DLL L"\\rasapi32.dll"
// RAS_API is a structure that points to the RAS API's
typedef struct _RAS_API {
HINSTANCE hInstance; // Handle to the instance of the dll
FARPROC RasDial; // RasDial
FARPROC RasGetErrorString; // RasGetErrorString
FARPROC RasGetConnectStatus; // RasGetConnectStatus
FARPROC RasGetConnectionStatistics; // RasGetConnectionStatistics
FARPROC RasHangUp; // RasHangUp
} RAS_API, *PRAS_API;
// g_RasApi is the global RAS_API object
RAS_API g_RasApi;
// RAS_INFO is a structure that is the RAS connection info
typedef struct _RAS_INFO {
DWORD dwBps; // Connection speed
LPWSTR szDeviceName; // Device name
} RAS_INFO, *PRAS_INFO;
#endif