<div class="content"><p>The SetButtonInfo packet is transmitted from a TAPI <a href="489de77f-16d8-4c4f-939a-f795e8b42893#gt_60e0e1fa-66fe-41e1-b5e3-ceab97e53506" data-linktype="relative-path">client</a> to a TAPI <a href="489de77f-16d8-4c4f-939a-f795e8b42893#gt_434b0234-e970-4e8c-bdfa-e16a30d96703" data-linktype="relative-path">server</a> in a <a href="489de77f-16d8-4c4f-939a-f795e8b42893#gt_8a7f6700-8311-45bc-af10-82e10accd331" data-linktype="relative-path">remote procedure call</a>.
Sending this packet MUST set information about the specified button on the
specified phone.</p><table>
 <tbody><tr>
  <th><p><br/>0</p></th>
  <th><p><br/>1</p></th>
  <th><p><br/>2</p></th>
  <th><p><br/>3</p></th>
  <th><p><br/>4</p></th>
  <th><p><br/>5</p></th>
  <th><p><br/>6</p></th>
  <th><p><br/>7</p></th>
  <th><p><br/>8</p></th>
  <th><p><br/>9</p></th>
  <th><p>1<br/>0</p></th>
  <th><p><br/>1</p></th>
  <th><p><br/>2</p></th>
  <th><p><br/>3</p></th>
  <th><p><br/>4</p></th>
  <th><p><br/>5</p></th>
  <th><p><br/>6</p></th>
  <th><p><br/>7</p></th>
  <th><p><br/>8</p></th>
  <th><p><br/>9</p></th>
  <th><p>2<br/>0</p></th>
  <th><p><br/>1</p></th>
  <th><p><br/>2</p></th>
  <th><p><br/>3</p></th>
  <th><p><br/>4</p></th>
  <th><p><br/>5</p></th>
  <th><p><br/>6</p></th>
  <th><p><br/>7</p></th>
  <th><p><br/>8</p></th>
  <th><p><br/>9</p></th>
  <th><p>3<br/>0</p></th>
  <th><p><br/>1</p></th>
 </tr>
 <tr>
  <td colspan="32">
  <p align="center">Req_Func</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p align="center">Reserved1</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p align="center">dwRequestID</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p align="center">hPhone</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p align="center">dwButtonLampID</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p align="center">lpButtonInfo</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p align="center">Reserved2</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p align="center">Reserved3</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p align="center">Reserved4</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p align="center">Reserved5</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p align="center">Reserved6</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p align="center">Reserved7</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p align="center">Reserved8</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p align="center">Reserved9</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p align="center">Reserved10</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p align="center">VarData
  (variable)</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p align="center">...</p>
  </td>
 </tr>
</tbody></table><p><b>Req_Func (4 bytes): </b>The identifier of the
function that will be invoked on the remote server. This value MUST be set to
110.</p><dl>
<dd>
<p><b>Return Values</b></p>
</dd>
<dd>
<p>On completion of <a href="c28c36d0-579b-4e20-a100-f4e71012d5f8" data-linktype="relative-path">ClientRequest</a>, this field
MUST contain the result of the encapsulated telephony request. A nonzero
request ID value indicates that the request is in progress and will complete
asynchronously, and a <a href="b1c6fae0-09ca-4f7b-85f6-1324376d231c" data-linktype="relative-path">PHONEERR_Constants</a>
value indicates synchronous failure.</p>
</dd>
<dd>
<p>Returns a positive request identifier if the
function will be completed asynchronously or a negative error number if an
error occurs. The <i>dwParam2</i> parameter of the corresponding <a href="b0508c16-f090-4562-b367-50ea4adf8c35" data-linktype="relative-path">PHONE_REPLY</a> packet is 0 if
the function succeeds, or is a negative error number if an error occurs. If the
client specified a nonzero value in the <b>dwRequestID</b> field of the packet,
the same value MUST be used for the returned positive request identifier. The
following table lists common return values.</p>
</dd>
<dd>
<table><thead>
  <tr>
   <th>
   <p>Name</p>
   </th>
   <th>
   <p>Value</p>
   </th>
  </tr>
 </thead><tbody><tr>
  <td>
  <p>PHONEERR_INVALPHONEHANDLE</p>
  </td>
  <td>
  <p>0x00000013</p>
  </td>
 </tr><tr>
  <td>
  <p>PHONEERR_RESOURCEUNAVAIL</p>
  </td>
  <td>
  <p>0x0000001F</p>
  </td>
 </tr><tr>
  <td>
  <p>PHONEERR_INVALBUTTONLAMPID</p>
  </td>
  <td>
  <p>0x00000009</p>
  </td>
 </tr><tr>
  <td>
  <p>PHONEERR_OPERATIONFAILED</p>
  </td>
  <td>
  <p>0x0000001C</p>
  </td>
 </tr><tr>
  <td>
  <p>PHONEERR_NOMEM</p>
  </td>
  <td>
  <p>0x0000001A</p>
  </td>
 </tr><tr>
  <td>
  <p>PHONEERR_OPERATIONUNAVAIL</p>
  </td>
  <td>
  <p>0x0000001D</p>
  </td>
 </tr></tbody></table>
</dd></dl><p><b>Reserved1 (4 bytes): </b>An unsigned 32-bit
integer. MUST be set to zero when sent and MUST be ignored on receipt. </p><p><b>dwRequestID (4 bytes): </b>An unsigned 32-bit
integer. The identifier of the asynchronous request. The service provider MUST
return this value if the function completes asynchronously. </p><p><b>hPhone (4 bytes): </b>An <a href="0c93f481-3429-48c5-a9e6-f0568c4cabd9" data-linktype="relative-path">HPHONE</a>. The handle to the
phone for which button information is to be set. This field MUST have been
obtained by sending the <a href="6b5ee45e-b5c8-4148-a9b2-b16b9b995c3f" data-linktype="relative-path">Open</a>
packet.</p><p><b>dwButtonLampID (4 bytes): </b>An unsigned 32-bit
integer. A button on the phone device. A valid value of dwButtonLampID is in
the range 0 to dwNumButtonLamps –1. The client obtains dwNumButtonLamps from
the <a href="92710f40-6a08-4121-953c-5c3eb19aa59e" data-linktype="relative-path">PHONECAPS</a> obtained
by sending a <a href="81bf0e0b-3fb9-41fb-9c20-6fb8b9e34664" data-linktype="relative-path">GetDevCaps</a>
packet to the remote server.</p><p><b>lpButtonInfo (4 bytes): </b>An unsigned 32-bit
integer. The offset, in bytes, in the VarData field of a <a href="5505bf10-a211-411a-b8ce-6c997e5fe6fa" data-linktype="relative-path">PHONEBUTTONINFO</a> packet
that describes the mode and function, and provides additional descriptive text
about the button.</p><p><b>Reserved2 (4 bytes): </b>An unsigned 32-bit
integer. MUST be set to zero when sent and MUST be ignored on receipt.</p><p><b>Reserved3 (4 bytes): </b>An unsigned 32-bit
integer. MUST be set to zero when sent and MUST be ignored on receipt.</p><p><b>Reserved4 (4 bytes): </b>An unsigned 32-bit
integer. MUST be set to zero when sent and MUST be ignored on receipt.</p><p><b>Reserved5 (4 bytes): </b>An unsigned 32-bit
integer. MUST be set to zero when sent and MUST be ignored on receipt.</p><p><b>Reserved6 (4 bytes): </b>An unsigned 32-bit
integer. MUST be set to zero when sent and MUST be ignored on receipt.</p><p><b>Reserved7 (4 bytes): </b>An unsigned 32-bit
integer. MUST be set to zero when sent and MUST be ignored on receipt.</p><p><b>Reserved8 (4 bytes): </b>An unsigned 32-bit
integer. MUST be set to zero when sent and MUST be ignored on receipt.</p><p><b>Reserved9 (4 bytes): </b>An unsigned 32-bit
integer. MUST be set to zero when sent and MUST be ignored on receipt.</p><p><b>Reserved10 (4 bytes): </b>An unsigned 32-bit
integer. MUST be set to zero when sent and MUST be ignored on receipt.</p><p><b>VarData (variable): </b>MUST contain a
PHONEBUTTONINFO packet.</p><dl>
<dd>
<p>The contents of this field are DWORD-aligned.</p>
</dd></dl></div>