# C1.Util.DX.DXGI.Factory2

## Content

<div class="doc-site-dotnet-api-container">



  <h1 id="C1_Util_DX_DXGI_Factory2" data-uid="C1.Util.DX.DXGI.Factory2" class="text-break">Factory2 Class
</h1>
  <div class="markdown level0 summary"><p>IDXGIFactory2</p>
</div>
  <div class="markdown level0 conceptual"></div>
  <div class="inheritance">
    <h5>Inheritance</h5>
    <div class="level0"><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
    <div class="level1"><a class="xref" href="C1.Util.DX.DisposeBase.html">DisposeBase</a></div>
    <div class="level2"><a class="xref" href="C1.Util.DX.CppObject.html">CppObject</a></div>
    <div class="level3"><a class="xref" href="C1.Util.DX.ComObject.html">ComObject</a></div>
    <div class="level4"><a class="xref" href="C1.Util.DX.DXGI.DXGIObject.html">DXGIObject</a></div>
    <div class="level5"><a class="xref" href="C1.Util.DX.DXGI.Factory.html">Factory</a></div>
    <div class="level6"><a class="xref" href="C1.Util.DX.DXGI.Factory1.html">Factory1</a></div>
    <div class="level7"><span class="xref">Factory2</span></div>
  </div>
  <div class="implements">
    <h5>Implements</h5>
    <div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.idisposable">IDisposable</a></div>
    <div><a class="xref" href="C1.Util.DX.IUnknown.html">IUnknown</a></div>
  </div>
  <h6><strong>Namespace</strong>: <a class="xref" href="C1.Util.DX.DXGI.html">C1.Util.DX.DXGI</a></h6>
  <h6><strong>Assembly</strong>: C1.Win.DX.4.8.dll</h6>
  <h5 id="C1_Util_DX_DXGI_Factory2_syntax">Syntax</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">[Guid(&quot;50c83a1c-e072-4c48-87b0-3630fa36a6d0&quot;)]
public class Factory2 : Factory1, IDisposable, IUnknown</code></pre>
  </div>
  <div class="codewrapper">
    <pre><code class="lang-vbnet hljs">&lt;Guid(&quot;50c83a1c-e072-4c48-87b0-3630fa36a6d0&quot;)&gt;
Public Class Factory2
    Inherits Factory1
    Implements IDisposable, IUnknown</code></pre>
  </div>
  <h3 id="constructors">Constructors
</h3>
  <table class="table table-bordered table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td id="C1_Util_DX_DXGI_Factory2__ctor_System_IntPtr_" data-uid="C1.Util.DX.DXGI.Factory2.#ctor(System.IntPtr)">
          <a class="xref" href="C1.Util.DX.DXGI.Factory2.-ctor.html#C1_Util_DX_DXGI_Factory2__ctor_System_IntPtr_">Factory2(IntPtr)</a>
        </td>
        <td class="markdown level1 summary"><p>Initializes a new instance of the <a class="xref" href="C1.Util.DX.DXGI.Factory2.html">Factory2</a> class.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h3 id="methods">Methods
</h3>
  <table class="table table-bordered table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td id="C1_Util_DX_DXGI_Factory2_Create" data-uid="C1.Util.DX.DXGI.Factory2.Create">
          <a class="xref" href="C1.Util.DX.DXGI.Factory2.Create.html#C1_Util_DX_DXGI_Factory2_Create">Create()</a>
        </td>
        <td class="markdown level1 summary"><p>Creates an <a class="xref" href="C1.Util.DX.DXGI.Factory2.html">Factory2</a> object.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Util_DX_DXGI_Factory2_CreateSwapChain1ForComposition_C1_Util_DX_ComObject_C1_Util_DX_DXGI_SwapChainDescription1__C1_Util_DX_DXGI_Output_" data-uid="C1.Util.DX.DXGI.Factory2.CreateSwapChain1ForComposition(C1.Util.DX.ComObject,C1.Util.DX.DXGI.SwapChainDescription1@,C1.Util.DX.DXGI.Output)">
          <a class="xref" href="C1.Util.DX.DXGI.Factory2.CreateSwapChain1ForComposition.html#C1_Util_DX_DXGI_Factory2_CreateSwapChain1ForComposition_C1_Util_DX_ComObject_C1_Util_DX_DXGI_SwapChainDescription1__C1_Util_DX_DXGI_Output_">CreateSwapChain1ForComposition(ComObject, ref SwapChainDescription1, Output)</a>
        </td>
        <td class="markdown level1 summary"><p>HRESULT IDXGIFactory2::CreateSwapChainForComposition([In] IUnknown* pDevice,[In] const DXGI_SWAP_CHAIN_DESC1* pDesc,[In, Optional] IDXGIOutput* pRestrictToOutput,[Out, Fast] IDXGISwapChain1** ppSwapChain)</p>
</td>
      </tr>
      <tr>
        <td id="C1_Util_DX_DXGI_Factory2_CreateSwapChain1ForCoreWindow_C1_Util_DX_ComObject_C1_Util_DX_ComObject_C1_Util_DX_DXGI_SwapChainDescription1__C1_Util_DX_DXGI_Output_" data-uid="C1.Util.DX.DXGI.Factory2.CreateSwapChain1ForCoreWindow(C1.Util.DX.ComObject,C1.Util.DX.ComObject,C1.Util.DX.DXGI.SwapChainDescription1@,C1.Util.DX.DXGI.Output)">
          <a class="xref" href="C1.Util.DX.DXGI.Factory2.CreateSwapChain1ForCoreWindow.html#C1_Util_DX_DXGI_Factory2_CreateSwapChain1ForCoreWindow_C1_Util_DX_ComObject_C1_Util_DX_ComObject_C1_Util_DX_DXGI_SwapChainDescription1__C1_Util_DX_DXGI_Output_">CreateSwapChain1ForCoreWindow(ComObject, ComObject, ref SwapChainDescription1, Output)</a>
        </td>
        <td class="markdown level1 summary"><p>HRESULT IDXGIFactory2::CreateSwapChainForCoreWindow([In] IUnknown* pDevice,[In] IUnknown* pWindow,[In] const DXGI_SWAP_CHAIN_DESC1* pDesc,[In, Optional] IDXGIOutput* pRestrictToOutput,[Out, Fast] IDXGISwapChain1** ppSwapChain)</p>
</td>
      </tr>
      <tr>
        <td id="C1_Util_DX_DXGI_Factory2_CreateSwapChain1ForHwnd_C1_Util_DX_ComObject_System_IntPtr_C1_Util_DX_DXGI_SwapChainDescription1__System_Nullable_C1_Util_DX_DXGI_SwapChainFullScreenDescription__C1_Util_DX_DXGI_Output_" data-uid="C1.Util.DX.DXGI.Factory2.CreateSwapChain1ForHwnd(C1.Util.DX.ComObject,System.IntPtr,C1.Util.DX.DXGI.SwapChainDescription1@,System.Nullable{C1.Util.DX.DXGI.SwapChainFullScreenDescription},C1.Util.DX.DXGI.Output)">
          <a class="xref" href="C1.Util.DX.DXGI.Factory2.CreateSwapChain1ForHwnd.html#C1_Util_DX_DXGI_Factory2_CreateSwapChain1ForHwnd_C1_Util_DX_ComObject_System_IntPtr_C1_Util_DX_DXGI_SwapChainDescription1__System_Nullable_C1_Util_DX_DXGI_SwapChainFullScreenDescription__C1_Util_DX_DXGI_Output_">CreateSwapChain1ForHwnd(ComObject, IntPtr, ref SwapChainDescription1, SwapChainFullScreenDescription?, Output)</a>
        </td>
        <td class="markdown level1 summary"><p>HRESULT IDXGIFactory2::CreateSwapChainForHwnd([In] IUnknown* pDevice,[In] HWND hWnd,[In] const DXGI_SWAP_CHAIN_DESC1* pDesc,[In, Optional] const DXGI_SWAP_CHAIN_FULLSCREEN_DESC* pFullscreenDesc,[In, Optional] IDXGIOutput* pRestrictToOutput,[Out, Fast] IDXGISwapChain1** ppSwapChain)</p>
</td>
      </tr>
      <tr>
        <td id="C1_Util_DX_DXGI_Factory2_GetSharedResourceAdapterLuid_System_IntPtr_" data-uid="C1.Util.DX.DXGI.Factory2.GetSharedResourceAdapterLuid(System.IntPtr)">
          <a class="xref" href="C1.Util.DX.DXGI.Factory2.GetSharedResourceAdapterLuid.html#C1_Util_DX_DXGI_Factory2_GetSharedResourceAdapterLuid_System_IntPtr_">GetSharedResourceAdapterLuid(IntPtr)</a>
        </td>
        <td class="markdown level1 summary"><p>HRESULT IDXGIFactory2::GetSharedResourceAdapterLuid([In] void* hResource,[Out] LUID* pLuid)</p>
</td>
      </tr>
      <tr>
        <td id="C1_Util_DX_DXGI_Factory2_IsWindowedStereoEnabled" data-uid="C1.Util.DX.DXGI.Factory2.IsWindowedStereoEnabled">
          <a class="xref" href="C1.Util.DX.DXGI.Factory2.IsWindowedStereoEnabled.html#C1_Util_DX_DXGI_Factory2_IsWindowedStereoEnabled">IsWindowedStereoEnabled()</a>
        </td>
        <td class="markdown level1 summary"><p>BOOL IDXGIFactory2::IsWindowedStereoEnabled()</p>
</td>
      </tr>
      <tr>
        <td id="C1_Util_DX_DXGI_Factory2_RegisterOcclusionStatusEvent_System_IntPtr_" data-uid="C1.Util.DX.DXGI.Factory2.RegisterOcclusionStatusEvent(System.IntPtr)">
          <a class="xref" href="C1.Util.DX.DXGI.Factory2.RegisterOcclusionStatusEvent.html#C1_Util_DX_DXGI_Factory2_RegisterOcclusionStatusEvent_System_IntPtr_">RegisterOcclusionStatusEvent(IntPtr)</a>
        </td>
        <td class="markdown level1 summary"><p>HRESULT IDXGIFactory2::RegisterOcclusionStatusEvent([In] void* hEvent,[Out] unsigned int* pdwCookie)</p>
</td>
      </tr>
      <tr>
        <td id="C1_Util_DX_DXGI_Factory2_RegisterOcclusionStatusWindow_System_IntPtr_System_Int32_" data-uid="C1.Util.DX.DXGI.Factory2.RegisterOcclusionStatusWindow(System.IntPtr,System.Int32)">
          <a class="xref" href="C1.Util.DX.DXGI.Factory2.RegisterOcclusionStatusWindow.html#C1_Util_DX_DXGI_Factory2_RegisterOcclusionStatusWindow_System_IntPtr_System_Int32_">RegisterOcclusionStatusWindow(IntPtr, int)</a>
        </td>
        <td class="markdown level1 summary"><p>HRESULT IDXGIFactory2::RegisterOcclusionStatusWindow([In] HWND WindowHandle,[In] unsigned int wMsg,[Out] unsigned int* pdwCookie)</p>
</td>
      </tr>
      <tr>
        <td id="C1_Util_DX_DXGI_Factory2_RegisterStereoStatusEvent_System_IntPtr_" data-uid="C1.Util.DX.DXGI.Factory2.RegisterStereoStatusEvent(System.IntPtr)">
          <a class="xref" href="C1.Util.DX.DXGI.Factory2.RegisterStereoStatusEvent.html#C1_Util_DX_DXGI_Factory2_RegisterStereoStatusEvent_System_IntPtr_">RegisterStereoStatusEvent(IntPtr)</a>
        </td>
        <td class="markdown level1 summary"><p>HRESULT IDXGIFactory2::RegisterStereoStatusEvent([In] void* hEvent,[Out] unsigned int* pdwCookie)</p>
</td>
      </tr>
      <tr>
        <td id="C1_Util_DX_DXGI_Factory2_RegisterStereoStatusWindow_System_IntPtr_System_Int32_" data-uid="C1.Util.DX.DXGI.Factory2.RegisterStereoStatusWindow(System.IntPtr,System.Int32)">
          <a class="xref" href="C1.Util.DX.DXGI.Factory2.RegisterStereoStatusWindow.html#C1_Util_DX_DXGI_Factory2_RegisterStereoStatusWindow_System_IntPtr_System_Int32_">RegisterStereoStatusWindow(IntPtr, int)</a>
        </td>
        <td class="markdown level1 summary"><p>HRESULT IDXGIFactory2::RegisterStereoStatusWindow([In] HWND WindowHandle,[In] unsigned int wMsg,[Out] unsigned int* pdwCookie)</p>
</td>
      </tr>
      <tr>
        <td id="C1_Util_DX_DXGI_Factory2_UnregisterOcclusionStatus_System_Int32_" data-uid="C1.Util.DX.DXGI.Factory2.UnregisterOcclusionStatus(System.Int32)">
          <a class="xref" href="C1.Util.DX.DXGI.Factory2.UnregisterOcclusionStatus.html#C1_Util_DX_DXGI_Factory2_UnregisterOcclusionStatus_System_Int32_">UnregisterOcclusionStatus(int)</a>
        </td>
        <td class="markdown level1 summary"><p>void IDXGIFactory2::UnregisterOcclusionStatus([In] unsigned int dwCookie)</p>
</td>
      </tr>
      <tr>
        <td id="C1_Util_DX_DXGI_Factory2_UnregisterStereoStatus_System_Int32_" data-uid="C1.Util.DX.DXGI.Factory2.UnregisterStereoStatus(System.Int32)">
          <a class="xref" href="C1.Util.DX.DXGI.Factory2.UnregisterStereoStatus.html#C1_Util_DX_DXGI_Factory2_UnregisterStereoStatus_System_Int32_">UnregisterStereoStatus(int)</a>
        </td>
        <td class="markdown level1 summary"><p>void IDXGIFactory2::UnregisterStereoStatus([In] unsigned int dwCookie)</p>
</td>
      </tr>
    </tbody>
  </table>
  <h3 id="operators">Operators
</h3>
  <table class="table table-bordered table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td id="C1_Util_DX_DXGI_Factory2_op_Explicit_System_IntPtr__C1_Util_DX_DXGI_Factory2" data-uid="C1.Util.DX.DXGI.Factory2.op_Explicit(System.IntPtr)~C1.Util.DX.DXGI.Factory2">
          <a class="xref" href="C1.Util.DX.DXGI.Factory2.op_Explicit.html#C1_Util_DX_DXGI_Factory2_op_Explicit_System_IntPtr__C1_Util_DX_DXGI_Factory2">explicit operator Factory2(IntPtr)</a>
        </td>
        <td class="markdown level1 summary"><p>Performs an explicit conversion from <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.intptr">IntPtr</a> to <a class="xref" href="C1.Util.DX.DXGI.Factory2.html">Factory2</a>.</p>
</td>
      </tr>
    </tbody>
  </table>

</div>
