TAPI models a phone's buttons and lamps as button-lamp pairs. A button with no lamp next to it or a lamp with no button is specified using a "dummy" indicator for the missing lamp or button. A button with multiple lamps is modeled by using multiple button-lamp pairs.
Information associated with a phone button can be set and retrieved. When a button is pressed, a PHONE_BUTTON message is sent to the application function. The parameters of this message are a handle to the phone device and the button-lamp identifier of the button that was pressed. The keypad buttons '0' through '9', '*', and '#' are assigned the fixed button-lamp identifiers 0 through 11.
The functions associated with buttons are phoneSetButtonInfo, which sets the information associated with a button on a phone device, and phoneGetButtonInfo, which returns information associated with a button on a phone device. The PHONE_BUTTON message is sent to an application when a button on the phone is pressed.
The information associated with a button does not carry any semantic meaning as far as TAPI is concerned. It is useful for device-specific applications that understand the meaning of this information for a given phone device, or for display to the user, such as online help.