|
Initialization and Shutdown in TAPI
For an application to use any of TAPI's basic or supplementary line functions,
it needs a connection to TAPI through which it can receive messages. The
application establishes this connection, using either the lineInitializeEx or the phoneInitializeEx function. The parameters of these functions allow the application to specify
the message notification mechanism the application desires to use. Following
are specifics about the initialization process:
- The initialization functions are not device-related. When an application calls
an initialization function, TAPI does not act on a line or phone device or an
abstraction thereof.
- The first time an initialization function is called in a telephony session,
TAPI also sets up the telephony environment. Among the tasks it performs are
loading the TAPI dynamic-link library and TAPISRV.EXE, and loading the device
drivers (Telephony service providers and ancillary components) specified in the
registry. In addition, the communication link described above is established
between TAPI and the calling application.
- The INIFILECORRUPT error can be returned if TAPI determines that the registry
contains an invalid entry. When this error occurs (in lineInitializeEx and phoneInitializeEx, or another function), the user should identify and resolve the problem. It
may be necessary to rebuild the registry or a portion of it, which can be done
through the Telephony Control Panel.
For example, the LINEERR_NODRIVER ("the driver was not installed") error
indicates either that a service provider that was previously installed can no longer
be found or that some subsidiary component of a service provider (such as a
VxD) cannot be found. When this error is encountered, the application should
advise the user to correct the problem with the Driver Setup function within the
Telephony Control Panel.
- Although each application needs only one associated with TAPI, it can call an
initialization function more than once to specify other message notification
path.
- Both lineInitializeEx and lineShutdown (and the corresponding phone functions) operate synchronously. That is, these
functions return a success or failure indication, not an asynchronous Request
ID.
Upon completion, the lineInitializeEx function returns two pieces of information to the application: an application
handle and the number of available line devices.
- The application handle represents the application's usage of TAPI. That is, to
TAPI, it represents the application. TAPI functions that use line or call
handles (explained later in this section) do not require the application handle,
because this handle is derived from the specified line, phone, or call handle.
- The lineInitializeEx function also returns the number of line devices available to the application
through TAPI. Line devices are identified by their device identifier (device
ID). Valid device IDs range from zero to one less than the number of line
devices. For example, if lineInitializeEx reports that there are two line devices in a system, the valid line-device
IDs are 0 and 1.
Once an application is finished calling TAPI's line functions, it calls lineShutdown and passes its application handle to terminate its usage of TAPI. This allows
TAPI to free any resources assigned to the application.
Programming books recommended by Amazon.com
More programming books on Amazon.com
|
Share this page
|
|
Follow us
|
| Last news from Greatis Software |
 |
|
Nostalgia .Net |
|
.Net is powerful, but not all-powerful, so sometimes we need to use Win32 API for our .Net applications. It's simple enough with Platform Invoke if you have Win32 skill, but we do not always have time to dig the ancient documentation, declare the special types that are compatible with Win32, find the values of the Win32's constants and so on. Nostalgia .Net offers several simple-to-use classes, and components that will allow you to forget about the headache of Win32 and just use the power of Win32 in your application the same way as you use the native. Net classes. More » |
| Recommended software for developers |
 |
|
Ultimate Pack |
|
Component pack for Delphi and C++ Builder that contains runtime form designer, runtime object inspector, print suite and much more for the very special price. More » |
 |
|
Form Designer .Net |
|
Unique runtime form design solution that allows to edit any form in .Net WinForms application at runtime with full source codes for only 300 euro! More » |
 |
|
Print Suite .Net |
|
Print Suite .Net is a set of components for easy printing texts, images and grids from your WinForms applications. Full C# source codes are available More » |
 |
|
Gradient Controls .Net |
|
Gradient Controls .Net offers controls with gradient background feature. Labels, panels and so on... Full C# source codes are available More » |
 |
|
Greatis iGrid |
|
iGrid plots drawing grid right over your desktop, so you can use it everywhere, with any drawing application without any special plugins for different graphic editors. More » |
All the contacts and projectsDmitry Vasiliev (just.dmitry)
Related LinksSoftware for Visual Studio .NET developers Software for Delphi and C++ Builder developers Software for Visual Basic 6 developers Delphi Tips&Tricks MegaDetailed.NET More Online Helps Win32 Programmer's Reference Win32 Multimedia Programmer's Reference OLE Programmer's Reference Microsoft Windows Pen API Programmer's Reference Microsoft Windows Sockets 2 Reference Microsoft Windows Telephony API (TAPI) Programmer's Reference Unix Manual Pages
|