TAPI Calls Return LINEERR_OPERATIONUNAVAILLast reviewed: April 1, 1997Article ID: Q162135 |
The information in this article applies to:
SUMMARYWith the release of TAPI 2.0, the default TAPI version in TAPI.H is set to 2.0. This can cause TAPI APIs called on Windows 95 to fail, and return LINEERR_OPERATIONUNAVAIL. This can be corrected by defining TAPI_CURRENT_VERSION to set the TAPI version to 1.4 before including TAPI.H, as follows:
#define TAPI_CURRENT_VERSION 0x00010004 #include <tapi.h> MORE INFORMATIONThe TAPI 2.0 implementation on Windows NT is fully UNICODE. This means there are A (Ansi) and W (Wide Character) versions of many TAPI APIs. By default, TAPI.H shipped with the Win32 SDK Version 4.0 assumes TAPI_CURRENT_VERSION as 2.0 and resolves TAPI calls to either Ansi versions of the APIs (lineMakeCall -> lineMakeCallA) or Wide character versions (lineMakeCall -> lineMakeCallW), depending on if the UNICODE constant is defined. However, TAPI.DLL on Windows 95 does not export either the Wide or Ansi functions. When you run an application compiled using TAPI_CURRENT_VERSION >= 2.0 on Windows 95, TAPI fails to resolve these function names and reports LINEERR_OPERATIONUNAVAIL. If you set the TAPI_CURRENT_VERSION to < 2.0, it forces the TAPI.H header file to use the non-Unicode version of the APIs. This most commonly occurs when you compile legacy TAPI application with the Win32 SDK shipped for Windows NT version 4.0 or Visual C++ version 4.2b. The only way to compile an application that uses TAPI 2.0 on Windows NT and TAPI 1.4 on Windows 95 is to make all TAPI calls from a DLL and have two versions of the DLL, one for TAPI 2.0 and one for TAPI 1.4. |
Keywords : kbprg kbusage Tapi
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |