<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.14"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Crashpad: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="crashpad_doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Crashpad
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.14 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="namespacecrashpad.html">crashpad</a></li><li class="navelem"><a class="el" href="namespacecrashpad_1_1test.html">test</a></li><li class="navelem"><a class="el" href="classcrashpad_1_1test_1_1ScopedModuleHandle.html">ScopedModuleHandle</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">crashpad::test::ScopedModuleHandle Member List</div>  </div>
</div><!--header-->
<div class="contents">

<p>This is the complete list of members for <a class="el" href="classcrashpad_1_1test_1_1ScopedModuleHandle.html">crashpad::test::ScopedModuleHandle</a>, including all inherited members.</p>
<table class="directory">
  <tr class="even"><td class="entry"><a class="el" href="classcrashpad_1_1test_1_1ScopedModuleHandle.html#a920847281a9c89aa156cc2e4e549c737">get</a>() const</td><td class="entry"><a class="el" href="classcrashpad_1_1test_1_1ScopedModuleHandle.html">crashpad::test::ScopedModuleHandle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
  <tr><td class="entry"><a class="el" href="classcrashpad_1_1test_1_1ScopedModuleHandle.html#a6771dd2f9f6b1553f3fd6df80225af32">LookUpSymbol</a>(const char *symbol_name) const</td><td class="entry"><a class="el" href="classcrashpad_1_1test_1_1ScopedModuleHandle.html">crashpad::test::ScopedModuleHandle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>ModuleHandle</b> typedef (defined in <a class="el" href="classcrashpad_1_1test_1_1ScopedModuleHandle.html">crashpad::test::ScopedModuleHandle</a>)</td><td class="entry"><a class="el" href="classcrashpad_1_1test_1_1ScopedModuleHandle.html">crashpad::test::ScopedModuleHandle</a></td><td class="entry"></td></tr>
  <tr bgcolor="#f0f0f0"><td class="entry"><b>ScopedModuleHandle</b>(ModuleHandle handle) (defined in <a class="el" href="classcrashpad_1_1test_1_1ScopedModuleHandle.html">crashpad::test::ScopedModuleHandle</a>)</td><td class="entry"><a class="el" href="classcrashpad_1_1test_1_1ScopedModuleHandle.html">crashpad::test::ScopedModuleHandle</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>ScopedModuleHandle</b>(ScopedModuleHandle &amp;&amp;handle) (defined in <a class="el" href="classcrashpad_1_1test_1_1ScopedModuleHandle.html">crashpad::test::ScopedModuleHandle</a>)</td><td class="entry"><a class="el" href="classcrashpad_1_1test_1_1ScopedModuleHandle.html">crashpad::test::ScopedModuleHandle</a></td><td class="entry"></td></tr>
  <tr><td class="entry"><a class="el" href="classcrashpad_1_1test_1_1ScopedModuleHandle.html#a567afead7e56a5cc10d2ab9535372110">valid</a>() const</td><td class="entry"><a class="el" href="classcrashpad_1_1test_1_1ScopedModuleHandle.html">crashpad::test::ScopedModuleHandle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~ScopedModuleHandle</b>() (defined in <a class="el" href="classcrashpad_1_1test_1_1ScopedModuleHandle.html">crashpad::test::ScopedModuleHandle</a>)</td><td class="entry"><a class="el" href="classcrashpad_1_1test_1_1ScopedModuleHandle.html">crashpad::test::ScopedModuleHandle</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.14
</small></address>
</body>
</html>
