# C1.Util.DX

## Content

<div class="doc-site-dotnet-api-container">

  <h1 id="C1_Util_DX" data-uid="C1.Util.DX" class="text-break">C1.Util.DX Namespace
</h1>
  <div class="markdown level0 summary"></div>
  <div class="markdown level0 conceptual"></div>
  <div class="markdown level0 remarks"></div>
    <h3 id="classes">
Classes
</h3>
      <h4><a class="xref" href="C1.Util.DX.CallbackBase.html">CallbackBase</a></h4>
      <section><p>Callback base implementation of <a class="xref" href="C1.Util.DX.ICallbackable.html">ICallbackable</a>.</p>
</section>
      <h4><a class="xref" href="C1.Util.DX.ComArrayBase.html">ComArrayBase</a></h4>
      <section><p>A fast method to pass array of <a class="xref" href="C1.Util.DX.ComObject.html">ComObject</a> to C1.Win.DX methods.</p>
</section>
      <h4><a class="xref" href="C1.Util.DX.ComArray-1.html">ComArray&lt;T&gt;</a></h4>
      <section><p>A typed version of <a class="xref" href="C1.Util.DX.ComArrayBase.html">ComArrayBase</a></p>
</section>
      <h4><a class="xref" href="C1.Util.DX.ComObject.html">ComObject</a></h4>
      <section><p>Root IUnknown class to interop with COM object</p>
</section>
      <h4><a class="xref" href="C1.Util.DX.ComObjectCallback.html">ComObjectCallback</a></h4>
      <section><p>Base class for unmanaged callabackable Com object.</p>
</section>
      <h4><a class="xref" href="C1.Util.DX.ComObjectEventArgs.html">ComObjectEventArgs</a></h4>
      <section><p>Event args for <a class="xref" href="C1.Util.DX.ComObject.html">ComObject</a> used by <a class="xref" href="C1.Util.DX.ObjectTracker.html">ObjectTracker</a>.</p>
</section>
      <h4><a class="xref" href="C1.Util.DX.ComObjectShadow.html">ComObjectShadow</a></h4>
      <section><p>A COM Interface Callback</p>
</section>
      <h4><a class="xref" href="C1.Util.DX.Configuration.html">Configuration</a></h4>
      <section><p>Global configuration.</p>
</section>
      <h4><a class="xref" href="C1.Util.DX.CppObject.html">CppObject</a></h4>
      <section><p>Root class for all Cpp interop object.</p>
</section>
      <h4><a class="xref" href="C1.Util.DX.CppObjectShadow.html">CppObjectShadow</a></h4>
      <section><p>An Interface shadow callback</p>
</section>
      <h4><a class="xref" href="C1.Util.DX.DXUtil.html">DXUtil</a></h4>
      <section><p>Utility class.</p>
</section>
      <h4><a class="xref" href="C1.Util.DX.DataStream.html">DataStream</a></h4>
      <section><p>Provides a stream interface to a buffer located in unmanaged memory.</p>
</section>
      <h4><a class="xref" href="C1.Util.DX.DisposeBase.html">DisposeBase</a></h4>
      <section><p>Base class for a <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.idisposable">IDisposable</a> class.</p>
</section>
      <h4><a class="xref" href="C1.Util.DX.EqualityComparer.html">EqualityComparer</a></h4>
      <section><p>Provides <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.iequalitycomparer-1">IEqualityComparer&lt;T&gt;</a> for default value types.</p>
</section>
      <h4><a class="xref" href="C1.Util.DX.FunctionCallback.html">FunctionCallback</a></h4>
      <section><p>Represents a function callback.</p>
</section>
      <h4><a class="xref" href="C1.Util.DX.HResultDescriptor.html">HResultDescriptor</a></h4>
      <section><p>Descriptor used to provide detailed message for a particular <a class="xref" href="C1.Util.DX.HResultDescriptor.Result.html#C1_Util_DX_HResultDescriptor_Result">Result</a>.</p>
</section>
      <h4><a class="xref" href="C1.Util.DX.ObjectReference.html">ObjectReference</a></h4>
      <section><p>Contains information about a tracked COM object.</p>
</section>
      <h4><a class="xref" href="C1.Util.DX.ObjectTracker.html">ObjectTracker</a></h4>
      <section><p>Track all allocated objects.</p>
</section>
      <h4><a class="xref" href="C1.Util.DX.ShadowAttribute.html">ShadowAttribute</a></h4>
      <section><p>Shadow attribute used to associate a COM callbackable interface to its Shadow implementation.</p>
</section>
      <h4><a class="xref" href="C1.Util.DX.TagAttribute.html">TagAttribute</a></h4>
      <section><p>A general purpose tag attribute.</p>
</section>
    <h3 id="structs">
Structs
</h3>
      <h4><a class="xref" href="C1.Util.DX.Bool.html">Bool</a></h4>
      <section><p>A boolean value stored on 4 bytes (instead of 1 in .NET).</p>
</section>
      <h4><a class="xref" href="C1.Util.DX.ColorF.html">ColorF</a></h4>
      <section><p>Represents a color in the form of rgba.</p>
</section>
      <h4><a class="xref" href="C1.Util.DX.DataBox.html">DataBox</a></h4>
      <section><p>Provides access to data organized in 3D.</p>
</section>
      <h4><a class="xref" href="C1.Util.DX.DataPointer.html">DataPointer</a></h4>
      <section><p>Pointer to a native buffer with a specific size.</p>
</section>
      <h4><a class="xref" href="C1.Util.DX.DataRectangle.html">DataRectangle</a></h4>
      <section><p>Provides access to data organized in 2D.</p>
</section>
      <h4><a class="xref" href="C1.Util.DX.HResult.html">HResult</a></h4>
      <section><p>Result structure for COM methods.</p>
</section>
      <h4><a class="xref" href="C1.Util.DX.Matrix3x2.html">Matrix3x2</a></h4>
      <section><p>Direct2D Matrix3x2 3x2.</p>
</section>
      <h4><a class="xref" href="C1.Util.DX.Matrix4x4.html">Matrix4x4</a></h4>
      <section><p>Represents a 4x4 mathematical matrix.</p>
</section>
      <h4><a class="xref" href="C1.Util.DX.Matrix5x4.html">Matrix5x4</a></h4>
      <section><p>Represents a 5x4 matrix for the built-in ColorMatrix effect.</p>
</section>
      <h4><a class="xref" href="C1.Util.DX.Point2D.html">Point2D</a></h4>
      <section><p>Structure specifing a point with double X and Y coordinates.</p>
</section>
      <h4><a class="xref" href="C1.Util.DX.Point2F.html">Point2F</a></h4>
      <section><p>Structure specifing a point with float X and Y coordinates.</p>
</section>
      <h4><a class="xref" href="C1.Util.DX.Point2L.html">Point2L</a></h4>
      <section><p>Structure specifing a point with integer X and Y coordinates.</p>
</section>
      <h4><a class="xref" href="C1.Util.DX.PointerSize.html">PointerSize</a></h4>
      <section><p>The maximum number of bytes to which a pointer can point. Use for a count that must span the full range of a pointer.
Equivalent to Windows type SIZE_T.</p>
</section>
      <h4><a class="xref" href="C1.Util.DX.RectD.html">RectD</a></h4>
      <section><p>Structure specifing a rectangle with double Left, Top, Right, Bottom coordinates.</p>
</section>
      <h4><a class="xref" href="C1.Util.DX.RectF.html">RectF</a></h4>
      <section><p>Defines a RectF. This structure is slightly different from System.Drawing.RectangleF as<br>
it is internally storing Left, Top, Right, Bottom instead of Left, Top, Width, Height.</p>
</section>
      <h4><a class="xref" href="C1.Util.DX.RectL.html">RectL</a></h4>
      <section><p>Defines a RectL. This structure is slightly different from System.Drawing.Rectangle as<br>
it is internally storing Left, Top, Right, Bottom instead of Left, Top, Width, Height.</p>
</section>
      <h4><a class="xref" href="C1.Util.DX.Size2D.html">Size2D</a></h4>
      <section><p>Structure specifing a size with double Width and Height.</p>
</section>
      <h4><a class="xref" href="C1.Util.DX.Size2F.html">Size2F</a></h4>
      <section><p>Structure specifing a size with float Width and Height.</p>
</section>
      <h4><a class="xref" href="C1.Util.DX.Size2L.html">Size2L</a></h4>
      <section><p>Structure specifing a size with integer Width and Height.</p>
</section>
      <h4><a class="xref" href="C1.Util.DX.Vector2.html">Vector2</a></h4>
      <section><p>Represents a two dimensional mathematical vector.</p>
</section>
      <h4><a class="xref" href="C1.Util.DX.Vector3.html">Vector3</a></h4>
      <section><p>Represents a three dimensional mathematical vector.</p>
</section>
      <h4><a class="xref" href="C1.Util.DX.Vector4.html">Vector4</a></h4>
      <section><p>Represents a four dimensional mathematical vector.</p>
</section>
      <h4><a class="xref" href="C1.Util.DX.ViewportF.html">ViewportF</a></h4>
      <section><p>Defines the viewport dimensions using float coordinates for (X, Y, Width, Height, MinDepth, MaxDepth).</p>
</section>
    <h3 id="interfaces">
Interfaces
</h3>
      <h4><a class="xref" href="C1.Util.DX.ICallbackable.html">ICallbackable</a></h4>
      <section><p>Use this interface to tag a class that is called by an unmanaged
object. A <a class="xref" href="C1.Util.DX.ICallbackable.html">ICallbackable</a> class must dispose the <a class="xref" href="C1.Util.DX.ICallbackable.Shadow.html#C1_Util_DX_ICallbackable_Shadow">Shadow</a>
on dispose.</p>
</section>
      <h4><a class="xref" href="C1.Util.DX.IUnknown.html">IUnknown</a></h4>
      <section><p>Base interface for Component Object Model (COM).</p>
</section>
    <h3 id="delegates">
Delegates
</h3>
      <h4><a class="xref" href="C1.Util.DX.Action-2.html">Action&lt;T1, T2&gt;</a></h4>
      <section><p>Encapsulates a method that has two parameters and does not return a value.</p>
</section>
      <h4><a class="xref" href="C1.Util.DX.Func-1.html">Func&lt;TResult&gt;</a></h4>
      <section><p>Encapsulates a method that has no parameters and returns a value of the type specified by the TResult parameter.</p>
</section>
      <h4><a class="xref" href="C1.Util.DX.Func-2.html">Func&lt;T1, TResult&gt;</a></h4>
      <section><p>Encapsulates a method that has one parameter and returns a value of the type specified by the TResult parameter.</p>
</section>
      <h4><a class="xref" href="C1.Util.DX.Func-3.html">Func&lt;T1, T2, TResult&gt;</a></h4>
      <section><p>Encapsulates a method that has two parameters and returns a value of the type specified by the TResult parameter.</p>
</section>
      <h4><a class="xref" href="C1.Util.DX.GetValueFastDelegate-1.html">GetValueFastDelegate&lt;T&gt;</a></h4>
      <section><p>A Delegate to get a property value from an object.</p>
</section>
      <h4><a class="xref" href="C1.Util.DX.SetValueFastDelegate-1.html">SetValueFastDelegate&lt;T&gt;</a></h4>
      <section><p>A Delegate to set a property value to an object.</p>
</section>


</div>
