lineNegotiateExtVersion
The lineNegotiateExtVersion
function allows an application to negotiate an extension version to use
with the specified line device. This operation need not be called if the
application does not support extensions.
LONG lineNegotiateExtVersion(
|
HLINEAPP hLineApp, |
|
|
DWORD dwDeviceID, |
|
|
DWORD dwAPIVersion, |
|
|
DWORD dwExtLowVersion, |
|
|
DWORD dwExtHighVersion, |
|
|
LPDWORD lpdwExtVersion |
|
|
); |
|
Parameters
hLineApp
The handle to
the application's registration with TAPI.
dwDeviceID
The line
device to be queried.
dwAPIVersion
The API
version number that was negotiated for the specified line device using lineNegotiateAPIVersion.
dwExtLowVersion
The least recent
extension version of the extension ID returned by lineNegotiateAPIVersion
that the application is compliant with. The high-order word is the major
version number; the low-order word is the minor version number.
dwExtHighVersion
The most
recent extension version of the extension ID returned by lineNegotiateAPIVersion
that the application is compliant with. The high-order word is the major
version number; the low-order word is the minor version number.
lpdwExtVersion
A pointer to
a DWORD-sized location that contains the extension version number that was
negotiated. If negotiation is successful, this number will be in the range
between dwExtLowVersion and dwExtHighVersion.
Return Values
Returns zero
if the request is successful or a negative error number if an error has occurred.
Possible return values are:
LINEERR_BADDEVICEID,
LINEERR_NOMEM, LINEERR_INCOMPATIBLEAPIVERSION, LINEERR_NODRIVER,
LINEERR_INCOMPATIBLEEXTVERSION, LINEERR_OPERATIONFAILED,
LINEERR_INVALAPPHANDLE, LINEERR_RESOURCEUNAVAIL, LINEERR_INVALPOINTER,
LINEERR_UNINITIALIZED, LINEERR_NODEVICE, LINEERR_OPERATIONUNAVAIL.
Remarks
Use lineInitializeEx to determine the number of
line devices present in the system. The device ID specified by dwDeviceID
varies from zero to one less than the number of line devices present.
The lineNegotiateAPIVersion function negotiates the API
version number to use. It also retrieves the extension ID supported by the line
device, which is zeros if no extensions are provided. Version numbers should be
incremented by one for each release. Leaving gaps in release version numbering
may cause unexpected results.
If the
application wants to use the extensions defined by the returned extension ID,
it must call lineNegotiateExtVersion to negotiate the extension version
to use.
The extension
version number negotiated is that under which the application and service
provider must both operate. If version ranges do not overlap, the application
and service provider versions are incompatible and an error is returned.
See Also