<div class="content"><p> </p><p>The <b>FAX_GetMessageEx (Opnum 89)</b> method is called by
the client to retrieve a particular message from one of the specified fax
message <span><a href="46aba9c4-ebb1-4b10-86ac-4bb3025657b9#gt_9394bf31-7db9-433c-8d3d-ee6a37bf0848" data-linktype="relative-path">archives</a></span>. The <i>dwlMessageId</i>
parameter specifies a particular message and can be obtained using the <b>FAX_EnumMessages</b> (section
<span><a href="365c2295-c0f9-44bd-a72b-6db0b16c0f8f" data-linktype="relative-path">3.1.4.1.24</a></span>)
method or the <b>FAX_EnumMessagesEx</b> (section <span><a href="43cf8eed-1cf3-4240-80c5-6f8d1d082084" data-linktype="relative-path">3.1.4.1.25</a></span>) method.
The folder value MUST be one of the enumerations that are defined by <b>FAX_ENUM_MESSAGE_FOLDER</b> (section
<span><a href="1c7a6f3f-1e5b-40a2-bc48-0729f3a6cf0d" data-linktype="relative-path">2.2.2</a></span>),
except FAX_MESSAGE_FOLDER_QUEUE. This is an extended version of <b>FAX_GetMessage</b> (section
<span><a href="a083e60d-b9c0-42b8-923a-d246506bd509" data-linktype="relative-path">3.1.4.1.45</a></span>),
because it takes an additional <i>level</i> parameter supporting the extended
structure <b>FAX_MESSAGE_1</b> (section <span><a href="353bdf06-225c-4274-b24b-d7832a196675" data-linktype="relative-path">2.2.37</a></span>).</p><p>Protocol version FAX_API_VERSION_0 (0x00000000),
FAX_API_VERSION_1  (0x00010000), and  FAX_API_VERSION_2 (0x00020000) fax
servers SHOULD NOT implement this call. The fax client MUST NOT call this
method if the protocol version reported by the server is FAX_API_VERSION_0
(0x00000000), FAX_API_VERSION_1 (0x00010000), or FAX_API_VERSION_2
(0x00020000). For more information, see <b>FAX_ConnectFaxServer</b> (section
<span><a href="5cbfd38d-7a14-4560-ad24-9ed78f19a3bb" data-linktype="relative-path">3.1.4.1.10</a></span>).</p><p>In response, the server MUST validate that message ID is for
a valid message. The server MUST validate that the client&#39;s fax user account
has access to read the message. On success, the server MUST return the contents
of the message in <i>lppBuffer</i> and also its size.</p><p>The client SHOULD free the returned buffer.</p><dl>
<dd>
<div><pre> error_status_t FAX_GetMessageEx(
   [in] handle_t hFaxHandle,
   [in] DWORDLONG dwlMessageId,
   [in] FAX_ENUM_MESSAGE_FOLDER Folder,
   [in] DWORD level,
   [out, size_is(,*lpdwBufferSize)] 
     LPBYTE* lppBuffer,
   [out, ref] LPDWORD lpdwBufferSize
 );
</pre></div>
</dd></dl><p><b>hFaxHandle: </b>The RPC binding handle for this
call. The client SHOULD reuse the RPC binding handle used as an input <i>hBinding</i>
argument for the <b>FAX_ConnectFaxServer</b> or <b>FAX_ConnectionRefCount</b> (section
<span><a href="a92941ac-bd07-4a71-af85-c2c157c97cf9" data-linktype="relative-path">3.1.4.1.11</a></span>)
method call used to connect to the fax server.</p><p><b>dwlMessageId: </b>A <b>DWORDLONG</b> (<span><a href="../ms-dtyp/cca27429-5689-4a16-b2b4-9325d93e4ba2" data-linktype="relative-path">[MS-DTYP]</a></span>
section <span><a href="../ms-dtyp/c575fb47-166c-48cd-a37c-e44cac05c3d6" data-linktype="relative-path">2.2.13</a></span>)
value that identifies the fax message to retrieve from the archive.</p><p><b>Folder: </b>A <b>FAX_ENUM_MESSAGE_FOLDER</b> that
indicates the type of the archive where the message resides. The
FAX_MESSAGE_FOLDER_QUEUE value is invalid for this parameter.</p><p><b>level: </b>A <b>DWORD</b> ([MS-DTYP] section <span><a href="../ms-dtyp/262627d8-3418-4627-9218-4ffe110850b2" data-linktype="relative-path">2.2.9</a></span>)
value that indicates the type of structure to return in <i>lppBuffer</i>. The
only value currently supported is 1.</p><p><b>lppBuffer: </b>A pointer to an array of <b>FAX_MESSAGE_1</b> structures
that contain the retrieved messages.</p><p><b>lpdwBufferSize: </b>A pointer to a <b>DWORD</b>
value that specifies the size, in bytes, of the buffer that is pointed to by
the <i>lppBuffer</i> parameter.</p><p><b>Return Values: </b>This method MUST return
0x00000000 (ERROR_SUCCESS) for success; otherwise, it MUST return one of the
following error codes, one of the fax-specific errors that are defined in
section <span><a href="cbe6c4fb-4dda-4f6c-9701-0d490ba0d105" data-linktype="relative-path">2.2.52</a></span>, or one of
the other standard errors defined in <span><a href="../ms-erref/1bc92ddf-b79e-413c-bbaa-99a5281a6c90" data-linktype="relative-path">[MS-ERREF]</a></span>
section <span><a href="../ms-erref/18d8fbe8-a967-4f1c-ae50-99ca8e491d2d" data-linktype="relative-path">2.2</a></span>.</p><dl>
<dd>
<table><thead>
  <tr>
   <th>
   <p>Return value/code</p>
   </th>
   <th>
   <p>Description</p>
   </th>
  </tr>
 </thead><tbody><tr>
  <td>
  <p>ERROR_ACCESS_DENIED</p>
  <p>0x00000005</p>
  </td>
  <td>
  <p>Access is denied. The client&#39;s fax user account does
  not have any of the permissions covered by <b>ALL_FAX_USER_ACCESS_RIGHTS</b>
  (section <span><a href="6b6ab8ee-03ec-42de-a4fa-fd0b5703b2c3" data-linktype="relative-path">2.2.83</a></span>).</p>
  </td>
 </tr><tr>
  <td>
  <p>ERROR_INVALID_PARAMETER</p>
  <p>0x00000057</p>
  </td>
  <td>
  <p>The parameter is incorrect.</p>
  <p>This error code results under any of the following
  conditions:</p>
  <p><span>§<span>  
  </span></span>The value of the specified <i>level</i> parameter is not 1.</p>
  <p><span>§<span>  
  </span></span>The pointer specified by the <i>lppBuffer</i> parameter is
  NULL.<a id="Appendix_A_Target_117"></a><a aria-label="Product behavior note 117" href="056171e7-80bc-45ff-8107-66ba3abb2023#Appendix_A_117" data-linktype="relative-path">&lt;117&gt;</a></p>
  <p><span>§<span>  
  </span></span>The pointer specified by the <i>lpdwBufferSize</i> parameter is
  NULL.<a id="Appendix_A_Target_118"></a><a aria-label="Product behavior note 118" href="056171e7-80bc-45ff-8107-66ba3abb2023#Appendix_A_118" data-linktype="relative-path">&lt;118&gt;</a></p>
  <p><span>§<span>  
  </span></span>The value of the <i>dwlMessageId</i> parameter is specified as
  0.</p>
  <p><span>§<span>  
  </span></span>The value of the specified <i>Folder</i> parameter is not
  FAX_MESSAGE_FOLDER_INBOX or FAX_MESSAGE_FOLDER_SENTITEMS.</p>
  </td>
 </tr><tr>
  <td>
  <p>FAX_ERR_SRV_OUTOFMEMORY</p>
  <p>0x00001B59</p>
  </td>
  <td>
  <p>The fax server failed to allocate memory needed for
  internal execution of this operation.</p>
  </td>
 </tr><tr>
  <td>
  <p>FAX_ERR_MESSAGE_NOT_FOUND</p>
  <p>0x00001B61</p>
  </td>
  <td>
  <p>This error code is returned under any of the following
  conditions:</p>
  <p><span>§<span>  
  </span></span>The message identified by the <i>dwlMessageId</i> parameter is
  not found.</p>
  <p><span>§<span>  
  </span></span>The message identified by <i>dwlMessageId</i> is an unassigned
  incoming fax. The incoming faxes are not public (accessible to all users),
  and the user does not have FAX_ACCESS_MANAGE_RECEIVE_FOLDER permission.</p>
  <p><span>§<span>  
  </span></span>The message identified by <i>dwlMessageId</i> is for a
  different user, and this user does not have FAX_ACCESS_QUERY_ARCHIVES
  permission.</p>
  </td>
 </tr></tbody></table>
</dd></dl><p><b>Exceptions Thrown:</b> No exceptions are thrown
except those that are thrown by the underlying <span><a href="46aba9c4-ebb1-4b10-86ac-4bb3025657b9#gt_8a7f6700-8311-45bc-af10-82e10accd331" data-linktype="relative-path">RPC</a></span> protocol, <span><a href="../ms-rpce/290c38b1-92fe-4229-91e6-4fc376610c15" data-linktype="relative-path">[MS-RPCE]</a></span>.</p></div>