362 lines
12 KiB
C
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
|
||
|
|
||
|
|