windows-nt/Source/XPSP1/NT/printscan/fax/provider/t30/headers/awcapapi.h
2020-09-26 16:20:57 +08:00

362 lines
12 KiB
C

/* Copyright Microsoft Corp 1994 */
/* awCapInf.h
*
* definitions for Capabilites Interface for modems
*
*
*/
#ifndef awCapInf_h_include
#define awCapInf_h_include
#include <windows.h>
#ifdef __cplusplus
extern "C" {
#endif
// The convinence of defining bit masks
#define AWCAP_SETBIT(x) 1<<x
// enum enumCapabilities
enum enumCapabilities {
// Standard Capabilities
eCapStd_MessageVer,
eCapStd_fBinaryData,
eCapStd_fInboundRouting,
eCapStd_SecurityVer,
eCapStd_CompressVer,
eCapStd_OperatingSysVer,
eCapStd_PreambleVer,
eCapStd_InteractiveVer,
eCapStd_DataSpeed,
eCapStd_DataLink,
// Image Capabilites
eCapImg_PagePixWid,
eCapImg_RBAver,
eCapImg_CoverAttachVer,
eCapImg_AddressBookAttachVer,
eCapImg_GDIMetaVer,
eCapImg_HighResolutions,
eCapImg_OtherEncoding,
eCapImg_PageSizesSupported,
eCapImg_OtherPageSizesSupported,
// Polling Capability Group
eCapPol_fLowSpeedPoll,
eCapPol_fHighSpeedPoll,
eCapPol_fPollByNameAvail,
eCapPol_fPollByRecipAvail,
eCapPol_fPollByFileName,
eCapPol_fAppCapAvail,
eCapPol_fNoShortTurn,
eCapPol_MsgRelayVer,
eCapPol_ExtCapsCRC,
// General Information Group
eCapInfo_MachineId,
// FAX Capablities
eCapFax_fPublicPoll,
eCapFax_AwRes,
eCapFax_Encoding,
eCapFax_PageWidth,
eCapFax_PageLength
};
// enum enumCapStd_eMessageVer
enum enumCapStd_eMessageVer {
eMessageVer_NoLinearizeMsg = 0,
eMessageVer_LinearizeVer1 = 1,
eMessageVer_MaxValue = 7 // Largest Value in enum
};
// enum enumCapStd_eSecurityVer
enum enumCapStd_eSecurityVer {
eSecurityVer_NoSecurity = 0,
eSecurityVer_SecurityV1 = 1,
eSecurityVer_MaxValue = 7 // Largest Value in enum
};
// enum enumCapStd_eCompressVer
enum enumCapStd_eCompressVer {
eCompressVer_NoCompession = 0,
eCompressVer_CompressV1 = 1,
eCompressVer_MaxValue = 3 // Largest Value in enum
};
// enum enumCapStd_eOperatingSysVer
enum enumCapStd_eOperatingSysVer {
eOperatingSysVer_EFAX = 0,
eOperatingSysVer_IFAX = 1,
eOperatingSysVer_IPRINT = 2,
eOperatingSysVer_IPHONE = 3,
eOperatingSysVer_MaxValue = 7 // Largest Value in enum
};
// enum enumCapStd_eInteractiveVer
enum enumCapStd_eInteractiveVer {
eInteractiveVer_NotSupported = 0,
eInteractiveVer_InteractiveV1 = 1,
eInteractiveVer_MaxValue = 7 // Largest Value in enum
};
// enum enumCapStd_eDataSpeed
enum enumCapStd_eDataSpeed {
eDataSpeed_NoDataModem = 0,
eDataSpeed_V_22bis = 1, // 2400
eDataSpeed_V_32 = 2, // 9600
eDataSpeed_V_32bis = 3, // 14400
eDataSpeed_V_32ter = 4, // 19200
eDataSpeed_Reserved0 = 5, //
eDataSpeed_V_fast = 6, //
eDataSpeed_Reserved1 = 7, //
eDataSpeed_MaxValue = 7 // Largest Value in enum
};
// enum enumCapStd_eDataLink
enum enumCapStd_eDataLink {
eDataLink_NoDataLink = 0,
eDataLink_MNP = 1, // V.42 Annex A
eDataLink_V_42 = 2, // V.42 LAPM & MNP
eDataLink_V_42bis = 3, // V.42bis compression
eDataLink_MaxValue = 3 // Largest Value in enum
};
// enum enumCapImg_eCoverAttachVer
enum enumCapImg_eCoverAttachVer {
eCoverAttachVer_NoSupported = 0,
eCoverAttachVer_Version1 = 1,
eCoverAttachVer_MaxValue = 3 // Largest Value in enum
};
// enum enumCapImg_eGDIMetaVer
enum enumCapImg_eGDIMetaVer {
eGDIMetaVer_NotSupported = 0,
eGDIMetaVer_MaxValue = 3 // Largest Value in enum
};
// enum enumCapImg_eHighResolutions
enum enumCapImg_eHighResolutions {
eHighResolutions_NotSupported = 0,
eHighResolutions_MaxValue = 0 // Largest Value in num
};
// enum enumCapImg_eOtherEncoding
enum enumCapImg_eOtherEncoding {
eOtherEncoding_NotSupported = 0,
eOtherEncoding_MaxValue = 0 // Largest Value in enum
};
enum enumCapFax_eAwres {
eAwres_UNKNOWN = 0,
eAwres_CUSTOM = AWCAP_SETBIT(0),
eAwres_mm080_038 = AWCAP_SETBIT(1),
eAwres_mm080_077 = AWCAP_SETBIT(2),
eAwres_mm080_154 = AWCAP_SETBIT(3),
eAwres_mm160_154 = AWCAP_SETBIT(4),
eAwres_200_100 = AWCAP_SETBIT(5),
eAwres_200_200 = AWCAP_SETBIT(6),
eAwres_200_400 = AWCAP_SETBIT(7),
eAwres_300_300 = AWCAP_SETBIT(8),
eAwres_400_400 = AWCAP_SETBIT(9),
eAwres_600_600 = AWCAP_SETBIT(10),
eAwres_MaxValue = AWCAP_SETBIT(10) // Largest Value in enum
};
// enum enumCapFax_eEncoding
enum enumCapFax_eEncoding { // Bit Values
eEncoding_NotSupported = 0,
eEncoding_MH = AWCAP_SETBIT(0),
eEncoding_MR = AWCAP_SETBIT(1),
eEncoding_MMR = AWCAP_SETBIT(2),
eEncoding_MaxValue = AWCAP_SETBIT(2) // Largest Value in enum
};
// enum enumCapFax_ePageWidth
enum enumCapFax_ePageWidth { // Bit Values
ePageWidth_A4 = 0,
ePageWidth_B4 = AWCAP_SETBIT(0),
ePageWidth_A3 = AWCAP_SETBIT(1),
ePageWidth_A5 = AWCAP_SETBIT(2), /* 1216 pixels */
ePageWidth_A6 = AWCAP_SETBIT(3), /* 864 pixels */
ePageWidth_A5_1728 = AWCAP_SETBIT(4), /* 1216 pixels */
ePageWidth_A6_1728 = AWCAP_SETBIT(5) /* 864 pixels */
};
// enum enumCapFax_ePageLength
enum enumCapFax_ePageLength { // Bit Values
ePageLength_A4 = 0,
ePageLength_B4 = 1,
ePageLength_Unlimited = 2,
ePageLength_MaxValue = 2
};
#define CAP_DEFAULT_MESSAGE_VER eMessageVer_NoLinearizeMsg
#define CAP_DEFAULT_SECURITY_VER eSecurityVer_NoSecurity
#define CAP_DEFAULT_COMPRESS_VER eCompressVer_NoCompession
#define CAP_DEFAULT_OS_VER eOperatingSysVer_EFAX
#define CAP_DEFAULT_INTERACTIVE_VER eInteractiveVer_NotSupported
#define CAP_DEFAULT_DATA_SPEED eDataSpeed_NoDataModem
#define CAP_DEFAULT_DATA_LINK eDataLink_NoDataLink
#define CAP_DEFAULT_COVER_ATTACH_VER eCoverAttachVer_NoSupported
#define CAP_DEFAULT_GDI_META_VER eGDIMetaVer_NotSupported
#define CAP_DEFAULT_HIGH_RESOLUTIONS eHighResolutions_NotSupported
#define CAP_DEFAULT_OTHER_ENCODING eOtherEncoding_NotSupported
#define CAP_DEFAULT_FPUBLICPOL efPublicPoll_NotSupported
#define CAP_DEFAULT_RES eAwres_mm080_038
#define CAP_DEFAULT_ENCODING eEncoding_MH
#define CAP_DEFAULT_PAGEWIDTH ePageWidth_A4
#define CAP_DEFAULT_PAGELENGTH ePageLength_A4
#define CAP_DEFAULT_RAMBO_VER 0 // no enum for these yet...
#define CAP_DEFAULT_MSG_RELAY_VER 0
#define CAP_DEFAULT_POLL_EXT_CAPS_CRC 0
#define CAP_DEFAULT_PAGE_SIZES 0
/* UpdateCapabilitiesEntry()
*Parameters:
* lpPhoneNumber Pointer to Normalized phone number with country and
* city code added to local number. For example
* 1-206-936-8502.
* cbRawFrames Number of bytes contained pointed to by lpRawFrames.
* lpRawFrames Pointer to buffer containing raw bytes by At Work Modem
* Transport for Capabilities exchange.
*Returns:
* 0 = Success entry previously existed
* 1 = Success entry was created
* 1 = Failure lpPhoneNumber contained invalid characters
*/
extern int EXPORT_DLL WINAPI UpdateCapabilitiesEntry(
PSZ lpPhoneNumber,
DWORD cbRawFrames,
PUCHAR lpRawFrames);
/* GetCapabilitiesEntry()
*Parameters:
* lpPhoneNumber Pointer to Normalized phone number with country and city
* code added to local number. For example 1-206-936-8502.
* cbRawFrames Number of bytes contained pointed to by lpRawFrames.
* cbRawFramesRtn Number of bytes returned in lpRawFrames.
* lpRawFrames Pointer to buffer containing raw bytes by At Work Modem
* Transport for Capabilities exchange.
*Returns:
* ERROR_SUCCESS Success entry found and returned.
* ERROR_BAD_ARGUMENTS Failure lpPhoneNumber contained invalid characters
* or lpRawFrames is NULL
* ERROR_MORE_DATA Failure cbRawFrames to small, actual number of bytes
* available in cbRawFramesRtn.
*/
extern int EXPORT_DLL WINAPI GetCapabilitiesEntry(
PSZ lpPhoneNumber,
LPDWORD lpcbRawFrames,
PUCHAR lpRawFrames,
PBOOL pfRtnDefault
);
/* DeleteCapabilitiesEntry()
*Parameters:
* lpPhoneNumber Pointer to Normalized phone number with country and city
* code added to local number. For example 1-206-936-8502.
*Returns:
* 0 = Success entry found and deleted.
* 1 = Failure lpPhoneNumber contained invalid characters
* 2 = Failure lpPhoneNumber was not found.
*/
extern int EXPORT_DLL WINAPI DeleteCapabilitiesEntry(
PSZ lpPhoneNumber
);
/* EnumCapabilitiesOpen
*
* Open a session for enumeration of the Capabilities database
*Parameters:
* lphDataBase LP to handle for subsuquenct calls to the Enum
* API's
*Returns:
* ERROR_SUCCESS -- Call succeded otherwise an error occured
* and the database handle is not valid
* error otherwise
*/
int EXPORT_DLL WINAPI EnumCapabilitiesOpen(
LPDWORD lphDataBase
);
/* EnumCapabilitiesClose
*
* Close a session for enumeratin of the Capabilities database
*Parameters:
* hDataBase handle from call to EnumCapabilitiesOpen
*Returns:
* ERROR_SUCCESS -- always returns
*/
int WINAPI EnumCapabilitiesClose(
DWORD hDataBase
);
/* EnumCapabablitesEntry()
* Used to return a list of phone numbers known by the capabilities
* interface. The caller passes a buffer to store a list of zero
* terminated ASCII strings. If the buffer is too small the buffer
* is filled up to cbPhoneNumberList and lpcbPhoneNumberList is
* returned with the number of bytes required to retrieve the compete
* list. So the ideal calling sequence is to call the function twice
* , once with cbPhoneNumberList with a value of zero and
* lpcbPhoneNumberList is returned with the size of the correct buffer.
* A second call is then made with the proper buffer sized and
* cbPhoneNumberList correctly set. However, the size of the buffer
* necessary may change from the first call to second because of
* parallel activity, so padding the buffer after the first call as
* well as a timely calling sequence will minimize the possibility of
* a failure.
*
*Parameters:
* hDataBase handle from call to EnumCapabilitiesOpen
* lpPhoneNumber Pointer to buffer where list of zero terminated phone
* numbers is stored.
* lpcbPhoneNumber Size of the buffer that lpPhoneNumberList points to.
* lpLastWrite Pointer to FILETIME structure to store last Write Time
*
*Returns:
* ErrorSuccess
* Error otherwise
*/
extern int EXPORT_DLL WINAPI EnumCapabilitiesEntry(
DWORD hDataBase,
PSZ lpPhoneNumber,
LPLONG lpcbPhoneNumber,
PFILETIME lpLastWrite
);
/* GetCapabilitiesValue()
* Returns the integer value of the capability extracted from the
* lpRawFrames.
*
* Parameters:
* eCapabilities Enumeration value of enumCapabilities. One capability
* that caller is attempting to discover.
* lpValue pointer to where parsed capabilities is returned. Only
* valid if function returns success.
* lpcbValue On Call size of lpValue, on return # bytes returned.
* lpRawFrames Pointer to buffer containing raw bytes by At Work Modem
* Transport for Capabilities exchange.
* cbRawFrames Size of lpRawFrames data.
*Returns:
* ERROR_SUCCESS = Capability found and value returned in lpValue.
* != ERROR_SUCCESS= Failure eCapabilities was not found in the raw frames.
*/
int EXPORT_DLL WINAPI GetCapabilitiesValue(
enum enumCapabilities eCapabilities,
PVOID lpValue,
PDWORD lpcbValue,
PVOID lpRawFrames,
DWORD cbRawFrames
);
#ifdef __cplusplus
} // extern "C"
#endif
#endif // awCapInf_h_include