This article discusses why Telephony Application Programming Interface (TAPI) is not supported from managed code. An alternative method permits you to call TAPI functionality from managed code.
Because of the complexity of the TAPI 3.x Component Object Model (COM) interface, the managed wrapper that is created by Microsoft Visual Studio .NET does not work. Therefore, you cannot call TAPI functionality from managed code.
Microsoft has no current plans to release a TAPI interoperative component.
Using TAPI from managed code
You can use different versions of TAPI in different programming environments.
TAPI 2.x is an interface that is based on the C programming language.
You can call TAPI functionality from the Managed Extensions for C++ applications in Microsoft Visual Studio .NET by using TAPI 2.x (Tapi32.dll).
All the TAPI 2.x data structures are based on the DWORD data type. TAPI 2.x also requires heavy use of pointers. Therefore, TAPI 2.x functionality is difficult to use from any language other than the Managed Extensions for C++.
TAPI 3.x is an interface that is based on Component Object Model (COM).
You can call TAPI 3.x (Tapi3.dll) functionality from unmanaged code. Create an unmanaged DLL that calls TAPI 3.x functionality, and then call the unmanaged DLL from managed code.
For more information, visit the following Microsoft Developer Network (MSDN) Web sites: