The PHONEBUTTONINFO structure contains information about a button on a phone device.

typedef struct phonebuttoninfo_tag {

DWORD dwTotalSize;

DWORD dwNeededSize;

DWORD dwUsedSize;

DWORD dwButtonMode;

DWORD dwButtonFunction;

DWORD dwButtonTextSize;

DWORD dwButtonTextOffset;

DWORD dwDevSpecificSize;

DWORD dwDevSpecificOffset;

DWORD dwButtonState;




The total size in bytes allocated to this data structure.


The size in bytes for this data structure that is needed to hold all the returned information.


The size in bytes of the portion of this data structure that contains useful information.


The mode or general usage class of the button. This parameter uses the following PHONEBUTTONMODE_ constants:


This value is used to describe a button/lamp position that has no corresponding button but has only a lamp.


The button is assigned to a call appearance.


The button is assigned to requesting features from the switch, such as hold, conference, and transfer.


The button is one of the twelve keypad buttons, '0' through '9', '*', and '#'.


The button is a local function button, such as mute or volume control.


The button is a "soft" button associated with the phone's display. A phone set can have zero or more display buttons.


The function assigned to the button. This field uses the PHONEBUTTONFUNCTION_ constants.



The size in bytes of the variably sized field containing descriptive text for this button., and the offset in bytes from the beginning of this data structure. The format of this information is as specified in the dwStringFormat field of the phone's device capabilities.



The size in bytes of the variably sized device-specific field, and the offset in bytes from the beginning of this data structure.


For the phoneGetButtonInfo function, this field indicates the current state of the button, using the PHONEBUTTONSTATE_ constants. This field is ignored by the phoneSetButtonInfo function.


Device-specific extensions should use the DevSpecific (dwDevSpecificSize and dwDevSpecificOffset) variably sized area of this data structure.

Older applications will have been compiled without this field in the PHONEBUTTONINFO structure, and using a SIZEOF PHONEBUTTONINFO smaller than the new size. The application passes in a dwAPIVersion parameter with the phoneOpen function, which can be used for guidance by TAPI in handling this situation. If the application passes in a dwTotalSize less than the size of the fixed portion of the structure as defined in the dwAPIVersion specified, PHONEERR_STRUCTURETOOSMALL will be returned. If sufficient memory has been allocated by the application, before calling TSPI_phoneGetButtonInfo, TAPI will set the dwNeededSize and dwUsedSize fields to the fixed size of the structure as it existed in the specified API version.

New service providers (which support the new API version) must examine the API version passed in. If the API version is less than the highest version supported by the provider, the service provider must not fill in fields not supported in older API versions, as these would fall in the variable portion of the older structure.

New applications must be cognizant of the API version negotiated, and not examine the contents of fields in the fixed portion beyond the original end of the fixed portion of the structure for the negotiated API version.

See Also

, phoneOpen

Software for developers
Delphi Components
.Net Components
Software for Android Developers
More information resources
Unix Manual Pages
Delphi Examples
Databases for Amazon shops developers
Amazon Categories Database
Browse Nodes Database