This function returns a device identifier for the specified device class associated with the selected line, address, or call.
At a Glance
Header file: | Tapi.h |
Windows CE versions: | 1.0 and later |
Syntax
LONG lineGetID(HLINE hLine, DWORD dwAddressID, HCALL hCall, DWORD dwSelect, LPVARSTRING lpDeviceID, LPCTSTR lpszDeviceClass);
Parameters
hLine
[in] Handle to an open line device.
dwAddressID
[in] Specifies an address on the given open line device.
hCall
[in] Handle to a call.
dwSelect
[in] Specifies whether the requested device identifier is associated with the line, address or a single call. The dwSelect parameter can only have a single flag set. This parameter uses the following LINECALLSELECT_* constants:
Value | Description |
LINECALLSELECT_LINE | Selects the specified line device. The hLine parameter must be a valid line handle; hCall and dwAddressID are ignored. |
LINECALLSELECT_ADDRESS | Selects the specified address on the line. Both hLine and dwAddressID must be valid; hCall is ignored. |
LINECALLSELECT_CALL | Selects the specified call. hCall must be valid; hLine and dwAddressID are both ignored. |
lpDeviceID
[out] Pointer to a memory location of type VARSTRING, where the device identifier is returned. Upon successful completion of the request, this location is filled with the device identifier. The format of the returned data depends on the method used by the device class API for naming devices. Prior to calling lineGetID, the application should set the dwTotalSize member of this structure to indicate the amount of memory available to TAPI for returning data.
lpszDeviceClass
[out] Pointer to a null-terminated string that specifies the device class of the device whose identifier is requested. Valid device class strings are those used in the System.ini section to identify device classes.
Return Values
Zero indicates success. A negative error number indicates that an error occurred. Possible error values are as follows:
LINEERR_INVALLINEHANDLE | LINEERR_INVALCALLSELECT |
LINEERR_NOMEM | LINEERR_RESOURCEUNAVAIL |
LINEERR_INVALADDRESSID | LINEERR_INVALPOINTER |
LINEERR_OPERATIONUNAVAIL | LINEERR_STRUCTURETOOSMALL |
LINEERR_INVALCALLHANDLE | LINEERR_NODEVICE |
LINEERR_OPERATIONFAILED | LINEERR_UNINITIALIZED |
Remarks
The lineGetID function can be used to retrieve a line-device identifier when given a line handle. This function can also be used to obtain the device identifier of a phone device or media device (for device classes such as COM, wave, MIDI, phone, line, or NDIS) associated with a call, address or line. This identifier can then be used with the appropriate API (such as phone, MIDI, wave) to select the corresponding media device associated with the specified call.
The following table shows device class names.
Device class name | Description |
comm * | Communication port |
comm/datamodem * | Modem through a communication port |
comm/datamodem/portname | Name of the device to which a modem is connected |
wave/in | Wave audio device (input only) |
wave/out | Wave audio device (output only) |
midi/in | Midi sequencer (input only) |
midi/out | Midi sequencer (output only) |
tapi/line * | Line device |
tapi/phone | Phone device |
ndis * | Network device |
tapi/terminal | Terminal device |
A vendor that defines a device-specific media mode also needs to define the corresponding device-specific (proprietary) API to manage devices of the media mode. To avoid collisions on device class names assigned independently by different vendors, a vendor should select a name that uniquely identifies both the vendor and, following it, the media type. For example: "intel/video".
See Also