<?xml version="1.0"?>
<doc>
    <assembly>
        "RevitAPIIFC"
    </assembly>
    <members>
        <member name="M:Autodesk.Revit.DB.IFC.ImporterIFCUtils.GetLocalFileName(Autodesk.Revit.DB.Document,System.String)">
            <summary>
   Get the local file name, including the path, corresponding to a linked IFC file.
   This will create a local copy of the IFC file if necessary.
</summary>
            <param name="aDoc">
   The document that will contain the IFC link.
</param>
            <param name="fileName">
   The original file name and path.
</param>
            <returns>
   The local file name and path corresponding to the input file name.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentException">
   Can't process file name.
</exception>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2018
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ImporterIFCUtils.CreateEmptyFamily(Autodesk.Revit.DB.IFC.ImporterIFC,Autodesk.Revit.DB.Document,Autodesk.Revit.DB.ElementId,System.String)">
            <summary>
   Creates an empty family of a given category.
</summary>
            <param name="importerIFC">
   The importer.
</param>
            <param name="aDoc">
   The document to create the family.
</param>
            <param name="catId">
   The category id.
</param>
            <param name="familyName">
   The family name.
</param>
            <returns>
   The created family id.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2014
</since>
        </member>
        <member name="T:Autodesk.Revit.DB.IFC.ImporterIFCUtils">
            <summary>
   A class that contains utilities needed to implement Revit's version of the IFC import client application.
</summary>
            <remarks>
   This class contains special API utilities needed to enable the implementation of the client application
   for IFC import.  Some of these utilities will be needed temporarily while the code for IFC import is
   migrated into the export client.  These temporary interfaces are likely to change in upcoming Revit
   releases.
</remarks>
            <since>
   2014
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCGeometryInfo.GetRepresentations">
            <summary>
   Gets the representation handles created representing the processed geometry and stored in this object.
</summary>
            <returns>
   The collection of representation handles.
</returns>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCGeometryInfo.GetFaces">
            <summary>
   Gets the IfcFace handles created representing the processed geometry and stored in this object.
</summary>
            <returns>
   The collection of face handles.
</returns>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCGeometryInfo.GetSurfaces">
            <summary>
   Gets the IfcSurface handles created representing the processed geometry and stored in this object.
</summary>
            <returns>
   The collection of surface handles.
</returns>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCGeometryInfo.GetCurves">
            <summary>
   Gets the IfcCurve handles created representing the processed geometry and stored in this object.
</summary>
            <returns>
   The collection of curve handles.
</returns>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCGeometryInfo.CreateFaceGeometryInfo(Autodesk.Revit.DB.IFC.ExporterIFC,Autodesk.Revit.DB.Plane,Autodesk.Revit.DB.XYZ,System.Double,System.Boolean)">
            <summary>
   Creates a new container object which holds IfcFace handles processed from a Revit geometry object.
</summary>
            <param name="ExporterIFC">
   The exporter.
</param>
            <param name="Plane">
   The plane in which the face handles must lie.
</param>
            <param name="ProjDir">
   The normal vector to the input plane.
</param>
            <param name="epsilon">
   The epsilon value used to process surfaces.
</param>
            <param name="createRepresentations">
   Indicates if this should also create geometry representation handles.
</param>
            <returns>
   The new geometry info container.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCGeometryInfo.CreateFaceGeometryInfo(System.Double,System.Boolean)">
            <summary>
   Creates a new container object which holds IfcFace handles processed from a Revit geometry object.
</summary>
            <param name="epsilon">
   The epsilon value used to process surfaces.
</param>
            <param name="isCoarse">
   Indicates whether we should use a coarse representation.
</param>
            <returns>
   The new geometry info container.
</returns>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCGeometryInfo.CreateFaceGeometryInfo(System.Double)">
            <summary>
   Creates a new container object which holds IfcFace handles processed from a Revit geometry object.
</summary>
            <param name="epsilon">
   The epsilon value used to process surfaces.
</param>
            <returns>
   The new geometry info container.
</returns>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCGeometryInfo.CreateSurfaceGeometryInfo(System.Double)">
            <summary>
   Creates a new container object which holds IfcSurface handles processed from a Revit geometry object.
</summary>
            <param name="epsilon">
   The epsilon value used to process surfaces.
</param>
            <returns>
   The new geometry info container.
</returns>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCGeometryInfo.CreateCurveGeometryInfo(Autodesk.Revit.DB.IFC.ExporterIFC,Autodesk.Revit.DB.Transform,Autodesk.Revit.DB.XYZ,System.Boolean)">
            <summary>
   Creates a new container object which holds IfcCurve handles processed from a Revit geometry object.
</summary>
            <param name="ExporterIFC">
   The exporter.
</param>
            <param name="lcs">
   The local coordinate system that defines the plane in which the curve handles must lie.
</param>
            <param name="projectionDir">
   The normal vector to the input plane.
</param>
            <param name="planViewOnly">
   True to match curves with plan view visibility only, false to match curves regardless of their plan view visibility.
</param>
            <returns>
   The new geometry info container.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2017
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCGeometryInfo.IsValidObject">
            <summary>
   Specifies whether the .NET object represents a valid Revit entity.
</summary>
            <remarks>
   If the corresponding Revit native object is destroyed, or creation of the corresponding object is undone,
   a managed API object containing it is no longer valid. API methods cannot be called on invalidated wrapper objects.
</remarks>
            <returns>
   True if the API object holds a valid Revit native object, false otherwise.
</returns>
            <since>
   2014
</since>
        </member>
        <member name="T:Autodesk.Revit.DB.IFC.IFCGeometryInfo">
            <summary>
   A container class for Revit geometry extracted from an element.
</summary>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFCUtils.AddValueString(Autodesk.Revit.DB.Element,Autodesk.Revit.DB.ElementId,System.String)">
            <summary>
   Adds a string value to a built-in parameter.
</summary>
            <param name="element">
   The element.
</param>
            <param name="builtInParameter">
   The built-in parameter id.
</param>
            <param name="propertyValue">
   The new value.
</param>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFCUtils.SetGlobal2DDirectionHandles(System.Boolean,Autodesk.Revit.DB.IFC.IFCAnyHandle,Autodesk.Revit.DB.IFC.IFCAnyHandle)">
            <summary>
   Sets the handles representing the cardinal directions in 2D.
</summary>
            <param name="positive">
   True if the handles returned should be in the positive direction, false
   if the handles should be in the negative direction.
</param>
            <param name="xDir">
   The X direction handle.
</param>
            <param name="yDir">
   The Y direction handle.
</param>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFCUtils.SetGlobal3DDirectionHandles(System.Boolean,Autodesk.Revit.DB.IFC.IFCAnyHandle,Autodesk.Revit.DB.IFC.IFCAnyHandle,Autodesk.Revit.DB.IFC.IFCAnyHandle)">
            <summary>
   Sets the handles representing the cardinal directions in 3D.
</summary>
            <param name="positive">
   True if the handles returned should be in the positive direction, false
   if the handles should be in the negative direction.
</param>
            <param name="xDir">
   The X direction handle.
</param>
            <param name="yDir">
   The Y direction handle.
</param>
            <param name="zDir">
   The Z direction handle.
</param>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFCUtils.GetGlobal2DDirectionHandles(System.Boolean)">
            <summary>
   Obtains the handles representing the cardinal directions in 2D.
</summary>
            <param name="positive">
   True if the handles returned should be in the positive direction, false
   if the handles should be in the negative direction.
</param>
            <returns>
   The collection of handles.
</returns>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFCUtils.GetGlobal3DDirectionHandles(System.Boolean)">
            <summary>
   Obtains the handles representing the cardinal directions in 3D.
</summary>
            <param name="positive">
   True if the handles returned should be in the positive direction, false
   if the handles should be in the negative direction.
</param>
            <returns>
   The collection of handles.
</returns>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFCUtils.SetGlobal2DOriginHandle(Autodesk.Revit.DB.IFC.IFCAnyHandle)">
            <summary>
   Sets the handle representing the 2D origin.
</summary>
            <param name="origin">
   The origin handle.
</param>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFCUtils.SetGlobal3DOriginHandle(Autodesk.Revit.DB.IFC.IFCAnyHandle)">
            <summary>
   Sets the handle representing the 3D origin.
</summary>
            <param name="origin">
   The origin handle.
</param>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFCUtils.GetGlobal2DOriginHandle">
            <summary>
   Obtains the handle representing the 2D origin.
</summary>
            <returns>
   The handle.
</returns>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFCUtils.GetGlobal3DOriginHandle">
            <summary>
   Obtains the handle representing the 3D origin.
</summary>
            <returns>
   The handle.
</returns>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFCUtils.GetRelativeLocalPlacementOffsetTransform(Autodesk.Revit.DB.IFC.IFCAnyHandle,Autodesk.Revit.DB.IFC.IFCAnyHandle)">
            <summary>
   Obtains the relative transform between two IfcLocalPlacement handles.
</summary>
            <param name="originalPlacement">
   The original placement from which the result transforms coordinates and directions.
</param>
            <param name="relativePlacement">
   The relative placement to which the result transforms coordinates and directions.
</param>
            <returns>
   The transform from the original placement to the new placement.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFCUtils.IsCurveFromOtherElementSketch(Autodesk.Revit.DB.CurveElement)">
            <summary>
   Identifies if the given curve element is generated by another element's
   sketch, or if it represents an independent curve element accessible directly
   by the user.
</summary>
            <param name="curveElement">
   The curve element.
</param>
            <returns>
   True if the curve element was generated by a sketch, false if it is
   independent.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFCUtils.GetLegacyCurtainSubElements(Autodesk.Revit.DB.Element)">
            <summary>
   Gets the sub elements from a legacy curtain element.
</summary>
            <param name="element">
   The legacy curtain element.
</param>
            <returns>
   The element array.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFCUtils.GetAttachedColumns(Autodesk.Revit.DB.Wall)">
            <summary>
   Obtains a list of columns known to Revit as intersecting with this wall.
</summary>
            <param name="pWallElem">
   The wall.
</param>
            <returns>
   The columns found.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFCUtils.GetConnectedWalls(Autodesk.Revit.DB.Wall,Autodesk.Revit.DB.IFC.IFCConnectedWallDataLocation)">
            <summary>
   Obtains the IFC-specific information regarding the connections between this wall and other elements.
</summary>
            <param name="pWallElem">
   The wall.
</param>
            <param name="locaction">
   The location on the wall from where the connections should be obtained.  This should be either
   IFCConnectedWallDataLocation.Start or IFCConnectedWallDataLocation.End.
</param>
            <returns>
   The connection information.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentOutOfRangeException">
   A value passed for an enumeration argument is not a member of that enumeration
</exception>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFCUtils.GetLegacyStairsProperties(Autodesk.Revit.DB.IFC.ExporterIFC,Autodesk.Revit.DB.Element,System.Int32@,System.Int32@,System.Double@,System.Double@,System.Double@,System.Double@,System.Double@)">
            <summary>
   Returns one or more properties for legacy (created in R2012 or before) Stairs.
</summary>
            <param name="exporterIFC">
   The exporter.
</param>
            <param name="pElement">
   the legacy stair.
</param>
            <param name="pNumRisers">
   Number of Risers in the Stair.
</param>
            <param name="pNumTreads">
   Number of Treads in the Stair.
</param>
            <param name="pRiserHeight">
   Riser Height of the risers in the Stair.
</param>
            <param name="pTreadLength">
   Tread length of the treads in the Stair.
</param>
            <param name="pMinTreadLength">
   Minimum Tread length of the treads in the Stair.
</param>
            <param name="pNosingLength">
   Nosing length of the treads in the Stair.
</param>
            <param name="pWaistThickness">
   Waist thickness of the flight of stair.
</param>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFCUtils.GetUnscaledTransform(Autodesk.Revit.DB.IFC.ExporterIFC,Autodesk.Revit.DB.IFC.IFCAnyHandle)">
            <summary>
   Obtains the unscaled transform from an IfcLocalPlacement handle.
</summary>
            <param name="exporterIFC">
   The exporter.
</param>
            <param name="placement">
   The placement handle.
</param>
            <returns>
   The transform.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFCUtils.GetRoomBoundaryAsCurveLoopArray(Autodesk.Revit.DB.SpatialElement,Autodesk.Revit.DB.SpatialElementBoundaryOptions,System.Boolean)">
            <summary>
   Obtains the spatial element boundary curves as an array of CurveLoops, needed for processing into IFC-specific elements later.
</summary>
            <param name="spatialElement">
   The spatial element.
</param>
            <param name="options">
   The options for extraction of the boundaries.
</param>
            <param name="cleanCurves">
   If true, curves will be trimmed to meet their neighbors.  If false, no trimming will take place.
</param>
            <returns>
   The list of CurveLoops.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <exception cref="T:Autodesk.Revit.Exceptions.InvalidOperationException">
   Unable to get boundary curve loops for the spatial element.
</exception>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFCUtils.ExportExtrudedSlabOpenings(Autodesk.Revit.DB.IFC.ExporterIFC,Autodesk.Revit.DB.Element,Autodesk.Revit.DB.IFC.IFCLevelInfo,Autodesk.Revit.DB.IFC.IFCAnyHandle,System.Collections.Generic.IList`1{Autodesk.Revit.DB.IFC.IFCAnyHandle},System.Collections.Generic.IList`1{System.Collections.Generic.IList`1{Autodesk.Revit.DB.CurveLoop}},Autodesk.Revit.DB.Plane,Autodesk.Revit.DB.IFC.IFCProductWrapper)">
            <summary>
   Exports the openings associated to an IfcSlab exported as an extrusion.
</summary>
            <param name="exporterIFC">
   The ExporterIFC class.
</param>
            <param name="pElem">
   The base slab element.
</param>
            <param name="levelInfo">
   The base level information.
</param>
            <param name="localPlacementAny">
   The local placement of the slab.
</param>
            <param name="elementSlabAnyArr">
   The list of IfcSlabs created from the initial element.
</param>
            <param name="extrusionLoops">
   The profile curves for the extrusions, including the opening curves.
</param>
            <param name="plane">
   The plane of the profile curves.
</param>
            <param name="pWrapper">
   The product wrapper.
</param>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2014
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFCUtils.ExportSlabAsExtrusion(Autodesk.Revit.DB.IFC.ExporterIFC,Autodesk.Revit.DB.Element,Autodesk.Revit.DB.GeometryElement,Autodesk.Revit.DB.IFC.IFCTransformSetter,Autodesk.Revit.DB.IFC.IFCAnyHandle,System.Collections.Generic.IList`1{Autodesk.Revit.DB.IFC.IFCAnyHandle}@,System.Collections.Generic.IList`1{Autodesk.Revit.DB.IFC.IFCAnyHandle}@,System.Collections.Generic.IList`1{System.Collections.Generic.IList`1{Autodesk.Revit.DB.CurveLoop}}@,System.Collections.Generic.IList`1{Autodesk.Revit.DB.IFC.IFCExtrusionCreationData}@,Autodesk.Revit.DB.Plane)">
            <summary>
   Attempts to export an IfcSlab using extrusions, clippings and openings by analyzing the geometry of the element.
   Used for more advanced cases than the ExtrusionAnalyzer.
</summary>
            <param name="exporterIFC">
   The ExporterIFC class.
</param>
            <param name="pCeilingAndFloor">
   The element to be exported.
</param>
            <param name="pGRep">
   The model geometry of the element.
</param>
            <param name="pTmpTrfSetter">
   The transform setter.
</param>
            <param name="localPlacement">
   The initial local placement based on the base level.
</param>
            <param name="localPlacementAnyArr">
   The local placement, potentially modified by this function.
</param>
            <param name="reps">
   The entity handles corresponding to the slab representations.
</param>
            <param name="extrusionLoops">
   The curve loops representing the profile of the extrusion.
</param>
            <param name="loopExtraParams">
   Extra calculated information for each of the profile loops.
</param>
            <param name="plane">
   The plane of the profile curves.
</param>
            <returns>
   Returns true if successful, false otherwise.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFCUtils.ComputeRoofProjectedArea(Autodesk.Revit.DB.Element)">
            <summary>
   Returns the projected area of the room, unscaled.
</summary>
            <param name="pElem">
   The roof.
</param>
            <returns>
   The projected area.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFCUtils.GetIFCType(Autodesk.Revit.DB.Element,Autodesk.Revit.DB.IFC.ExporterIFC)">
            <summary>
   Obtains the IFC type associated to the given element for the current export.
</summary>
            <remarks>
   IFC type names are affected by the user's entries in the mapping file set for a
   given export operation.
</remarks>
            <param name="element">
   The element.
</param>
            <param name="exporterIFC">
   The exporter.
</param>
            <returns>
   The IFC type.  This is an empty string if the element should not be exported because it is not
   found in the mapping file.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFCUtils.GetIFCClassName(Autodesk.Revit.DB.Element,Autodesk.Revit.DB.IFC.ExporterIFC)">
            <summary>
   Obtains the IFC class name associated to the given element for the current export.
</summary>
            <remarks>
   IFC class names are affected by the user's entries in the mapping file set for a
   given export operation.
</remarks>
            <param name="element">
   The element.
</param>
            <param name="exporterIFC">
   The exporter.
</param>
            <returns>
   The IFC class name.  This is an empty string if the element should not be exported because it is not
   found in the mapping file.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFCUtils.GetIFCClassNameByCategory(Autodesk.Revit.DB.ElementId,Autodesk.Revit.DB.IFC.ExporterIFC)">
            <summary>
   Obtains the IFC class name associated to a given category id for the current export.
</summary>
            <remarks>
   IFC class names are affected by the user's entries in the mapping file set for a
   given export operation.
</remarks>
            <param name="catId">
   The category id.
</param>
            <param name="exporterIFC">
   The exporter.
</param>
            <returns>
   The IFC class name.  This is an empty string if the element should not be exported because it is not
   found in the mapping file.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFCUtils.GetOpeningData(Autodesk.Revit.DB.IFC.ExporterIFC,Autodesk.Revit.DB.Element,Autodesk.Revit.DB.Transform,Autodesk.Revit.DB.IFC.IFCRange)">
            <summary>
   Gets the openings data from the element.
</summary>
            <param name="exporterIFC">
   The exporter.
</param>
            <param name="element">
   The element.
</param>
            <param name="lcs">
   The local coordinate system for the extrusion.
</param>
            <param name="range">
   The range.  This consists of two double values representing the height in Z at the start and the end
   of the range.  If the values are identical the entire element is used.
</param>
            <returns>
   The opening data.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2017
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFCUtils.AddClippingsToBaseExtrusion(Autodesk.Revit.DB.IFC.ExporterIFC,Autodesk.Revit.DB.Wall,Autodesk.Revit.DB.XYZ,Autodesk.Revit.DB.IFC.IFCRange,Autodesk.Revit.DB.IFC.IFCRange,Autodesk.Revit.DB.IFC.IFCAnyHandle,System.Collections.Generic.IList`1{Autodesk.Revit.DB.IFC.IFCExtrusionData}@)">
            <summary>
   Processes the geometry of the wall to create an extruded area solid representing the geometry of the wall (including
   any clippings imposed by neighboring elements).
</summary>
            <param name="exporterIFC">
   The exporter.
</param>
            <param name="wall">
   The wall.
</param>
            <param name="setterOffset">
   The offset from the placement setter.
</param>
            <param name="range">
   The range.  This consists of two double values representing the height in Z at the start and the end
   of the range.  If the values are identical the entire wall is used.
</param>
            <param name="zSpan">
   The overall span in Z of the wall.
</param>
            <param name="baseBodyItemHandle">
   The IfcExtrudedAreaSolid handle generated initially for the wall.
</param>
            <param name="pCutPairOpenings">
   A collection of extruded openings that can be derived from the wall geometry.
</param>
            <returns>
   IfcEtxtrudedAreaSolid handle.  This may be the same handle as was input, or a modified handle derived from the clipping
   geometry.  If the function fails this handle will have no value.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFCUtils.GetLoopsFromTopBottomFace(Autodesk.Revit.DB.IFC.ExporterIFC,Autodesk.Revit.DB.Wall)">
            <summary>
   Gets the curve loop(s) that represent the bottom or top face of the wall, usable to create an extrusion for the wall geometry.
</summary>
            <remarks>
   This function is intended to help determine if a Revit Wall can be exported as an IfcWallStandardCase.  The conditions for
   exporting an IfcWallStandardCase require that the geometry of the wall be described as one profile curve loop extruded in the
   Z direction, with potential clip planes and openings applied to the base geometry.  This function will use either the top
   or bottom face to determine the boundary curve loop.  Regardless of whether the top or bottom face is used, the curve loop
   will be located on the plane corresponding to the base of the wall.
</remarks>
            <param name="exporterIFC">
   The exporter.
</param>
            <param name="wall">
   The wall.
</param>
            <returns>
   The curve loops.  If the function has failed, this collection will be empty.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFCUtils.IsWallBaseRectangular(Autodesk.Revit.DB.Wall,Autodesk.Revit.DB.Curve)">
            <summary>
   Identifies if the wall's base can be represented by a direct thickening of the wall's base curve.
</summary>
            <param name="wall">
   The wall.
</param>
            <param name="curve">
   The wall's base curve.
</param>
            <returns>
   True if the wall's base can be represented by a direct thickening of the wall's base curve.
   False is the wall's base shape is affected by other geometry, and thus cannot be represented
   by a direct thickening of the wall's base cure.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentException">
   The input curve points to a helical curve and is not supported for this operation.
</exception>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFCUtils.CanExportWallGeometryAsExtrusion(Autodesk.Revit.DB.Element,Autodesk.Revit.DB.IFC.IFCRange)">
            <summary>
   Identifies if the base geometry of the wall can be represented as an extrusion.
</summary>
            <param name="element">
   The wall or in-place wall element.
</param>
            <param name="range">
   The range.  This consists of two double values representing the height in Z at the start and the end
   of the range.  If the values are identical the entire wall is used.
</param>
            <returns>
   True if the wall export can be made in the form of an extrusion, false if the
   geometry cannot be assigned to an extrusion.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFCUtils.GetGeometryFromInplaceWall(Autodesk.Revit.DB.FamilyInstance)">
            <summary>
   Obtains a special snapshot of the geometry of an in-place wall element suitable for export.
</summary>
            <param name="pFamInstWallElem">
   The in-place wall instance.
</param>
            <returns>
   The in-place wall geometry.  Returns <see langword="null" /> if there is no special
   geometry for the wall needed for export; the standard geometry of the wall can be used.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFCUtils.GetElevationProfile(Autodesk.Revit.DB.Wall)">
            <summary>
   Obtains the curve loops which bound the wall's elevation profile.
</summary>
            <param name="pVWall">
   The wall.
</param>
            <returns>
   The collection of curve loops.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentException">
   The wall does not have an elevation profile.
</exception>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFCUtils.HasElevationProfile(Autodesk.Revit.DB.Wall)">
            <summary>
   Identifies if the wall has a sketched elevation profile.
</summary>
            <param name="pVWall">
   The wall.
</param>
            <returns>
   True if the wall has a sketch elevation profile, false otherwise.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFCUtils.GetWallTrimmedCurve(Autodesk.Revit.DB.Wall)">
            <summary>
   Obtains the curve of the wall trimmed or extended according to the end conditions of the wall.
</summary>
            <param name="pVWall">
   The wall.
</param>
            <returns>
   The trimmed or extended curve.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFCUtils.GetWallBaseOffset(Autodesk.Revit.DB.Wall)">
            <summary>
   Obtains the base offset of the wall.
</summary>
            <param name="wall">
   The wall.
</param>
            <returns>
   The base offset of the wall.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFCUtils.IsWallCompletelyClipped(Autodesk.Revit.DB.Wall,Autodesk.Revit.DB.IFC.ExporterIFC,Autodesk.Revit.DB.IFC.IFCRange)">
            <summary>
   Determines if the input wall is completely removed by interaction with other elements
   within the given range.
</summary>
            <param name="pVWall">
   The wall.
</param>
            <param name="exporterIFC">
   The exporter.
</param>
            <param name="range">
   The range.  This consists of two double values representing the height in Z at the start and the end
   of the range.  If the values are identical the entire wall is used.
</param>
            <returns>
   True if the wall should be ignored within the given range.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFCUtils.AreSolidsEqual(Autodesk.Revit.DB.Solid,Autodesk.Revit.DB.Solid,Autodesk.Revit.DB.Transform@)">
            <summary>
   Determines whether two solids are identical, potentially offset from each other.
</summary>
            <param name="first">
   The first solid.
</param>
            <param name="second">
   The second solid
</param>
            <param name="trf">
   The offset transform
</param>
            <returns>
   True if they are identical, false otherwise.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFCUtils.GetTransformForDoorOrWindow(Autodesk.Revit.DB.FamilyInstance,Autodesk.Revit.DB.FamilySymbol,System.Boolean,System.Boolean)">
            <summary>
   Obtains the transform for the door or window instance.
</summary>
            <param name="familyInstance">
   The family instance.
</param>
            <param name="familySymbol">
   The family symbol.
</param>
            <param name="flippedX">
   Is the door or window flipped in X?
</param>
            <param name="flippedY">
   Is the door or window flipped in Y?
</param>
            <returns>
   The transform.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2014
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFCUtils.GetMinSymbolWidth(Autodesk.Revit.DB.FamilySymbol)">
            <summary>
   Obtains the minimum width of the given FamilySymbol.
</summary>
            <param name="symbol">
   The family symbol.
</param>
            <returns>
   The minimum width.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFCUtils.GetMinSymbolHeight(Autodesk.Revit.DB.FamilySymbol)">
            <summary>
   Obtains the minimum height of the given FamilySymbol.
</summary>
            <param name="symbol">
   The family symbol.
</param>
            <returns>
   The minimum height.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFCUtils.UsesInstanceGeometry(Autodesk.Revit.DB.FamilyInstance)">
            <summary>
   Identifies if the family instance has its own geometry, or uses the symbol's geometry with a transform.
</summary>
            <remarks>
   A Family Instance can have its own copy of geometry, or use the symbol's geometry with a transform.
   This method identifies the source of this family instance's geometry.
</remarks>
            <param name="familyInstance">
   The family instance.
</param>
            <returns>
   True if the instance has its own geometry.  False if the symbol's geometry is used.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFCUtils.GetOriginalSymbol(Autodesk.Revit.DB.FamilyInstance)">
            <summary>
   Returns the original family symbol of this family instance, before the instance is modified by
   joins, cuts, coping, extensions, or other post-processing.
</summary>
            <param name="familyInstance">
   The FamilyInstance.
</param>
            <returns>
   The original FamilySymbol.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFCUtils.CollectGeometryInfo(Autodesk.Revit.DB.IFC.ExporterIFC,Autodesk.Revit.DB.IFC.IFCGeometryInfo,Autodesk.Revit.DB.GeometryObject,Autodesk.Revit.DB.XYZ,System.Boolean,Autodesk.Revit.DB.Transform)">
            <summary>
   Collects all the target geometry from the input geometry object and adds it as IFC handles
   to the IFCInfo.
</summary>
            <remarks>
   The type of geometry collected is determined by the method of creation for the IFCGeometryInfo.
</remarks>
            <param name="exporterIFC">
   The exporter.
</param>
            <param name="geometryInfo">
   The container object which collects the geometry.
</param>
            <param name="gNode">
   The geometry object to be processed.
</param>
            <param name="offset">
   The offset to apply to each of the collected geometry handles.
</param>
            <param name="forceVisible">
   True to process geometry which is not set as visible.  False to only process visible geometry.
</param>
            <param name="transform">
   An overall transform to apply to each of the collected geometry handles.
</param>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFCUtils.CollectGeometryInfo(Autodesk.Revit.DB.IFC.ExporterIFC,Autodesk.Revit.DB.IFC.IFCGeometryInfo,Autodesk.Revit.DB.GeometryObject,Autodesk.Revit.DB.XYZ,System.Boolean)">
            <summary>
   Collects all the target geometry from the input geometry object and adds it as IFC handles
   to the IFCInfo.
</summary>
            <remarks>
   The type of geometry collected is determined by the method of creation for the IFCGeometryInfo.
</remarks>
            <param name="exporterIFC">
   The exporter.
</param>
            <param name="geometryInfo">
   The container object which collects the geometry.
</param>
            <param name="gNode">
   The geometry object to be processed.
</param>
            <param name="offset">
   The offset to apply to each of the collected geometry handles.
</param>
            <param name="forceVisible">
   True to process geometry which is not set as visible.  False to only process visible geometry.
</param>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFCUtils.TransformAndScaleVector(Autodesk.Revit.DB.IFC.ExporterIFC,Autodesk.Revit.DB.XYZ)">
            <summary>
   Converts a vector from global Revit coordinates to current IFC coordinates, including scale.
</summary>
            <param name="exporterIFC">
   The exporter.
</param>
            <param name="origVector">
   The original vector.
</param>
            <returns>
   The transformed and scaled point.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFCUtils.TransformAndScalePoint(Autodesk.Revit.DB.IFC.ExporterIFC,Autodesk.Revit.DB.XYZ)">
            <summary>
   Converts a point from global Revit coordinates to current IFC coordinates, including scale.
</summary>
            <param name="exporterIFC">
   The exporter.
</param>
            <param name="origPt">
   The original point.
</param>
            <returns>
   The transformed and scaled point.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFCUtils.ValidateCurveLoops(System.Collections.Generic.IList`1{Autodesk.Revit.DB.CurveLoop},Autodesk.Revit.DB.XYZ)">
            <summary>
   Does validity checks on a list of curve loops to ensure that they are all co-planar, closed, and properly oriented.
</summary>
            <param name="curveLoops">
   The loops to check.
</param>
            <param name="extrDirVec">
   The normal.
</param>
            <returns>
   returns the curve loops properly oriented, if possible.  If not, the return contains no loops.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFCUtils.IsCurveLoopConvexWithOpenings(Autodesk.Revit.DB.CurveLoop,Autodesk.Revit.DB.Wall,Autodesk.Revit.DB.IFC.IFCRange,System.Boolean@)">
            <summary>
   Checks if the region bounded by the input curve loop can be represented as the subtraction of 0 or more convex polygons from a base convex polygon.
</summary>
            <remarks>
   This function is intended to be used to determine if the geometry of a wall with an elevation profile can be successfully represented
   as a vertical extrusion with one or more openings removed.
   If this function is to return true, the subtracting polygons must each have at least one edge coincident with the base convex polygon.
   Before the check is performed, this input curve will be trimmed by the range extents of the wall, if any.
</remarks>
            <param name="inputCurveLoop">
   The input curve loop.  It is intended that this curve loop have been obtained from the elevation profile of a wall.
</param>
            <param name="wall">
   The wall from which the curve loop was obtained.
</param>
            <param name="range">
   The range extents of the wall.
</param>
            <param name="loopIsDegenerate">
   If the function returns false but this returns true, the loop could be obtained but was degenerate.  Thus there is no extrusion
   that can be produced.
</param>
            <returns>
   True if the region can be represented by a boolean combination of polygons, false otherwise.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFCUtils.SortCurveLoops(System.Collections.Generic.IList`1{Autodesk.Revit.DB.CurveLoop})">
            <summary>
   Sorts a set of curve loops such that outer and inner loops are separated.
</summary>
            <remarks>
   Outer loops are separated and inner loops are grouped according to their outer loop. Loops are assumed to be non-intersecting,
   and there will be no nesting of inner loops (that is, an inner loop of an inner loop is another outer loop).
</remarks>
            <param name="loops">
   The curve loops.
</param>
            <returns>
   The sorted collection of loops.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFCUtils.GetLegacyStairOrRampComponents(Autodesk.Revit.DB.IFC.ExporterIFC,Autodesk.Revit.DB.Element)">
            <summary>
   Gets the components of a stair or ramp.
</summary>
            <param name="exporterIFC">
   The exporter.
</param>
            <param name="element">
   The legacy stair or ramp element.
</param>
            <returns>
   The LegacyStairOrRamp that contains the components. NULL means the components can't be determined.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFCUtils.ComputeAreaOfCurveLoops(System.Collections.Generic.IList`1{Autodesk.Revit.DB.CurveLoop})">
            <summary>
   Computes total area of the list of curve loops.  If the area cannot be calculated,
   returns 0.0.
</summary>
            <remarks>
   All curve loops in the list must be planar and lie in the same plane.
</remarks>
            <returns>
   Computed area.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFCUtils.GetNumBuildingStoreys(Autodesk.Revit.DB.IFC.ExporterIFC)">
            <summary>
   Returns the number of non-empty, non-duplicate building stories in the file.
</summary>
            <param name="exporterIFC">
   The exporter.
</param>
            <returns>
   The number of stories.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFCUtils.IsWallJoinedToTop(Autodesk.Revit.DB.Wall)">
            <summary>
   Checks if wall is joined to top.
</summary>
            <param name="wall">
   The wall.
</param>
            <returns>
   True if wall is joined to top, false if not.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFCUtils.EndExportInternal(Autodesk.Revit.DB.IFC.ExporterIFC)">
            <summary>
   Use the internal Revit implementation to relate elements at the end of export.
</summary>
            <param name="exporterIFC">
   The exporter.
</param>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFCUtils.CreateSubElementGUID(Autodesk.Revit.DB.Element,System.Int32)">
            <summary>
   Creates a consistent GUID for an IFC entity related to a Revit element.
   A "related" sub-element is one that is unique for a given type of element, and can
   therefore by identified by a simple index value (e.g. PSet_Wall_Common property set for a wall.)
   The index value 0 is reserved, as this would generate the GUID of the element itself.
   A listing of known sub-elements is contained in IFCSubElementEnums.cs; it is
   expected that this list would be maintained up-to-date, instead of passing arbitrary values
   into this function.
</summary>
            <param name="pElement">
   The element.
</param>
            <param name="subElementIndex">
   The global index for this sub-element.
</param>
            <returns>
   The guid string.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFCUtils.CreateAlternateGUID(Autodesk.Revit.DB.Element)">
            <summary>
   Creates a GUID for the given element.
</summary>
            <param name="pElement">
   The element.
</param>
            <returns>
   The guid string.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFCUtils.CreateProjectLevelGUID(Autodesk.Revit.DB.Document,Autodesk.Revit.DB.IFC.IFCProjectLevelGUIDType)">
            <summary>
   Creates a GUID from Revit project for given GUIDType.
</summary>
            <param name="document">
   The document.
</param>
            <param name="guidType">
   The GUID type.
</param>
            <returns>
   The guid string.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentOutOfRangeException">
   A value passed for an enumeration argument is not a member of that enumeration
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFCUtils.CreateGUID">
            <summary>
   Creates a randomized GUID.
</summary>
            <returns>
   The guid string.
</returns>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFCUtils.GetInstanceCutoutFromWall(Autodesk.Revit.DB.Document,Autodesk.Revit.DB.Wall,Autodesk.Revit.DB.FamilyInstance,Autodesk.Revit.DB.XYZ@)">
            <summary>
   Gets the curve loop corresponding to the hole in the wall made by the instance.
</summary>
            <param name="pADoc">
   The document.
</param>
            <param name="pVWall">
   The host wall.
</param>
            <param name="pFamInst">
   The hosted instance.
</param>
            <param name="pCutDir">
   The direction of the hole relative to the location of the curve loop.
</param>
            <returns>
   The opening in the wall.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2014
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFCUtils.GetDoor2DArcsFromFamily(Autodesk.Revit.DB.Family)">
            <summary>
   Gets the arcs associated with the plan view of a door.
</summary>
            <param name="pFam">
   The family.
</param>
            <returns>
   The arcs.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2014
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFCUtils.ComputeSubcomponents(Autodesk.Revit.DB.HostObject)">
            <summary>
   Splits a roof or floor element composed of planar surfaces into a set of roughly vertical extruded loops of
   uniform depth if possible.
</summary>
            <param name="roofOrFloor">
   The roof or floor.
</param>
            <returns>
   A collection of computed components.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentException">
   The host object roofOrFloor must be a floor or a non face-based roof.
</exception>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <exception cref="T:Autodesk.Revit.Exceptions.InvalidOperationException">
   The roof or floor cannot be split into subcomponents by this routine.  Possible reasons are, among others:
   (1) the roof or floor contains non-planar surfaces, (2) the roof or floor cannot be divided into sub-components
   of equal thickness, or (3) the roof subcomponents contain inner boundary loops.
</exception>
            <since>
   2016
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFCUtils.GetRoofComponents(Autodesk.Revit.DB.IFC.ExporterIFC,Autodesk.Revit.DB.RoofBase)">
            <summary>
   Gets the components of roof slabs.
</summary>
            <param name="exporterIFC">
   The exporter.
</param>
            <param name="roof">
   The roof element.
</param>
            <returns>
   The roof components.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2014
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFCUtils.GetLevelIdByHeight(Autodesk.Revit.DB.IFC.ExporterIFC,Autodesk.Revit.DB.Element)">
            <summary>
   Gets the level if by the height of the element.
</summary>
            <param name="exporterIFC">
   The exporter.
</param>
            <param name="elem">
   The element.
</param>
            <returns>
   The level id.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2014
</since>
        </member>
        <member name="T:Autodesk.Revit.DB.IFC.ExporterIFCUtils">
            <summary>
   A class that contains utilities needed to implement Revit's version of the IFC export client application.
</summary>
            <remarks>
   This class contains special API utilities needed to enable the implementation of the client application
   for IFC export.  Some of these utilities will be needed temporarily while the code for IFC export is
   migrated into the export client.  These temporary interfaces are likely to change in upcoming Revit
   releases.
</remarks>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCOpeningData.GetOpeningSolids">
            <summary>
   Gets opening solids.
</summary>
            <returns>
   The solids.
</returns>
            <since>
   2014
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCOpeningData.GetExtrusionData">
            <summary>
   Gets extrusion data.
</summary>
            <returns>
   The extrusion data.
</returns>
            <since>
   2014
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCOpeningData.IsValidObject">
            <summary>
   Specifies whether the .NET object represents a valid Revit entity.
</summary>
            <remarks>
   If the corresponding Revit native object is destroyed, or creation of the corresponding object is undone,
   a managed API object containing it is no longer valid. API methods cannot be called on invalidated wrapper objects.
</remarks>
            <returns>
   True if the API object holds a valid Revit native object, false otherwise.
</returns>
            <since>
   2014
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCOpeningData.IsRecess">
            <summary>
   Trus if it is a recess, false if it is an opening.
</summary>
            <since>
   2014
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCOpeningData.OpeningElementId">
            <summary>
   The opening element id.
</summary>
            <since>
   2014
</since>
        </member>
        <member name="T:Autodesk.Revit.DB.IFC.IFCOpeningData">
            <summary>
   A class that contains opening data including extrusion data, opening solids and opening element id.
</summary>
            <since>
   2014
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.RoofComponents.GetAreasOfCurveLoops">
            <summary>
   The areas of CurveLoops of roof slabs.
</summary>
            <since>
   2014
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.RoofComponents.GetLoopFaces">
            <summary>
   The faces of the loops of roof slabs.
</summary>
            <returns>
   The faces.
</returns>
            <since>
   2014
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.RoofComponents.GetCurveLoops">
            <summary>
   The CurveLoops of roof slabs.
</summary>
            <returns>
   The CurveLoops.
</returns>
            <since>
   2014
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.RoofComponents.GetPlaneOrigins">
            <summary>
   The plane origins of roof slabs.
</summary>
            <returns>
   The origins.
</returns>
            <since>
   2014
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.RoofComponents.GetPlaneDirections">
            <summary>
   The plane directions of roof slabs.
</summary>
            <returns>
   The directions.
</returns>
            <since>
   2014
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.RoofComponents.IsValidObject">
            <summary>
   Specifies whether the .NET object represents a valid Revit entity.
</summary>
            <remarks>
   If the corresponding Revit native object is destroyed, or creation of the corresponding object is undone,
   a managed API object containing it is no longer valid. API methods cannot be called on invalidated wrapper objects.
</remarks>
            <returns>
   True if the API object holds a valid Revit native object, false otherwise.
</returns>
            <since>
   2014
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.RoofComponents.ScaledDepth">
            <summary>
   The depth of the roof slab.
</summary>
            <since>
   2014
</since>
        </member>
        <member name="T:Autodesk.Revit.DB.IFC.RoofComponents">
            <summary>
   A class that contains multiple roof slab infos of a roof.
</summary>
            <remarks>
   This class contains a series of collections that are all of the same length, and whose nth index corresponds
   to the nth slab of the roof.
</remarks>
            <since>
   2014
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.HostObjectSubcomponentInfo.GetCurveLoop">
            <summary>
   Gets the CurveLoop representing the base profile curve loop of the roof or floor slab
</summary>
            <returns>
   The CurveLoop.
</returns>
            <since>
   2016
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.HostObjectSubcomponentInfo.GetPlane">
            <summary>
   Gets the plane representing the normal and origin of the surface containg the base profile curve loop of the roof or floor slab.
</summary>
            <returns>
   The plane.
</returns>
            <since>
   2016
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.HostObjectSubcomponentInfo.IsValidObject">
            <summary>
   Specifies whether the .NET object represents a valid Revit entity.
</summary>
            <remarks>
   If the corresponding Revit native object is destroyed, or creation of the corresponding object is undone,
   a managed API object containing it is no longer valid. API methods cannot be called on invalidated wrapper objects.
</remarks>
            <returns>
   True if the API object holds a valid Revit native object, false otherwise.
</returns>
            <since>
   2014
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.HostObjectSubcomponentInfo.AreaOfCurveLoop">
            <summary>
   The area of the CurveLoop of the roof or floor slab.
</summary>
            <since>
   2016
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.HostObjectSubcomponentInfo.LoopFace">
            <summary>
   The face of the loops of the roof or floor slab.
</summary>
            <since>
   2016
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.HostObjectSubcomponentInfo.Depth">
            <summary>
   The depth of the roof or floor slab.
</summary>
            <remarks>
   The depth is the thickness of the slab as measured perpendicular to the slab's main faces,
   as opposed to the vertical extrusion distance.
</remarks>
            <since>
   2016
</since>
        </member>
        <member name="T:Autodesk.Revit.DB.IFC.HostObjectSubcomponentInfo">
            <summary>
   A class that contains roof or floor slab information, calculated by ExporterIFCUtils.ComputeSubcomponents().
</summary>
            <remarks>
   A slab is an extrusion with one outer and no inner base profile curve loops, created by
   extruding the base profile loop in the direction Plane.Normal a distance given by the Depth value.
</remarks>
            <since>
   2016
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCLegacyStairOrRamp.GetWalkLines">
            <summary>
   Gets walk lines.
</summary>
            <returns>
   The walk lines.
</returns>
            <since>
   2015
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCLegacyStairOrRamp.GetBoundaryLines">
            <summary>
   Gets boundary lines.
</summary>
            <returns>
   The boundary lines.
</returns>
            <since>
   2015
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCLegacyStairOrRamp.GetTreadsLength">
            <summary>
   Gets the length of treads.
</summary>
            <returns>
   The length of treads.
</returns>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCLegacyStairOrRamp.GetNumberOfTreads">
            <summary>
   Gets the number of treads.
</summary>
            <returns>
   The list of numbers of treads.
</returns>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCLegacyStairOrRamp.GetNumberOfRisers">
            <summary>
   Gets the number of risers.
</summary>
            <returns>
   The list of numbers of risers.
</returns>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCLegacyStairOrRamp.GetStringerGeometries">
            <summary>
   Gets the geometries of stringers.
</summary>
            <returns>
   The geometries of stringers.
</returns>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCLegacyStairOrRamp.GetLandingGeometries">
            <summary>
   Gets the geometries of landings.
</summary>
            <returns>
   The geometries of landings.
</returns>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCLegacyStairOrRamp.GetRunGeometries">
            <summary>
   Gets the geometries of runs.
</summary>
            <returns>
   The geometries of runs.
</returns>
            <since>
   2013
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCLegacyStairOrRamp.IsValidObject">
            <summary>
   Specifies whether the .NET object represents a valid Revit entity.
</summary>
            <remarks>
   If the corresponding Revit native object is destroyed, or creation of the corresponding object is undone,
   a managed API object containing it is no longer valid. API methods cannot be called on invalidated wrapper objects.
</remarks>
            <returns>
   True if the API object holds a valid Revit native object, false otherwise.
</returns>
            <since>
   2014
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCLegacyStairOrRamp.IsRamp">
            <summary>
   True if it is a ramp, false if it is a stair.
</summary>
            <since>
   2013
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCLegacyStairOrRamp.RiserHeight">
            <summary>
   The height of riser.
</summary>
            <since>
   2013
</since>
        </member>
        <member name="T:Autodesk.Revit.DB.IFC.IFCLegacyStairOrRamp">
            <summary>
   The class contains the components of a legacy stair or ramp.
</summary>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCFamilyInstanceExtrusionExportResults.GetExtrusionHandle">
            <summary>
   Gets the extruded solid handle generated for the family instance.
</summary>
            <returns>
   The handle.  If the extrusion analysis failed for the family, this will be a handle with no value assigned.
</returns>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCFamilyInstanceExtrusionExportResults.GetCutPairOpenings">
            <summary>
   Gets the set of "openings" determined from the analysis of the instance geometry.
</summary>
            <returns>
   The extra openings.
</returns>
            <since>
   2012
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCFamilyInstanceExtrusionExportResults.IsValidObject">
            <summary>
   Specifies whether the .NET object represents a valid Revit entity.
</summary>
            <remarks>
   If the corresponding Revit native object is destroyed, or creation of the corresponding object is undone,
   a managed API object containing it is no longer valid. API methods cannot be called on invalidated wrapper objects.
</remarks>
            <returns>
   True if the API object holds a valid Revit native object, false otherwise.
</returns>
            <since>
   2014
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCFamilyInstanceExtrusionExportResults.ExtraOffset">
            <summary>
   The extra offset determined from the geometry of the family instance.
</summary>
            <since>
   2012
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCFamilyInstanceExtrusionExportResults.MaterialId">
            <summary>
   The best material id determined for the family instance.
</summary>
            <since>
   2012
</since>
        </member>
        <member name="T:Autodesk.Revit.DB.IFC.IFCFamilyInstanceExtrusionExportResults">
            <summary>
   This class represents the results of a geometric analysis of a family instance.
</summary>
            <remarks>
   The analysis attempts to convert the geometry of the instance into a single extrusion with
   additional extruded openings cutting the main solid.
</remarks>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCProductWrapper.AddSite(Autodesk.Revit.DB.IFC.IFCAnyHandle)">
            <summary>
   Adds a site (IfcObject) handle to associate with the IfcProduct in this wrapper.
</summary>
            <param name="siteHandle">
   The site handle.
</param>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCProductWrapper.ClearFinishMaterials">
            <summary>
   Clear finish materials in this wrapper.
</summary>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCProductWrapper.AddFinishMaterial(Autodesk.Revit.DB.IFC.IFCAnyHandle)">
            <summary>
   Adds a material handle to associate with the IfcProduct in this wrapper.
</summary>
            <param name="material">
   The material handle.
</param>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCProductWrapper.AddAnnotation(Autodesk.Revit.DB.IFC.IFCAnyHandle,Autodesk.Revit.DB.IFC.IFCLevelInfo,System.Boolean)">
            <summary>
   Adds an annotation handle to associate with the IfcProduct in this wrapper.
</summary>
            <remarks>
   If the IFCLevelInfo is not provided, and relateToLevel to true, the handle will be associated to the building handle.
</remarks>
            <param name="annoHnd">
   The annotation handle.
</param>
            <param name="levelInfo">
   Information on the associated level.  Optional, can be <see langword="null" />.
</param>
            <param name="relateToLevel">
   True to relate the annotation to the level, false otherwise.
</param>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCProductWrapper.AddElement(Autodesk.Revit.DB.IFC.IFCAnyHandle,Autodesk.Revit.DB.IFC.IFCLevelInfo,Autodesk.Revit.DB.IFC.IFCExtrusionCreationData,System.Boolean)">
            <summary>
   Adds an IfcElement handle to associate with the IfcProduct in this wrapper.
</summary>
            <remarks>
   If the IFCLevelInfo is not provided, and relateToLevel to true, the handle will be associated to the building handle.
</remarks>
            <param name="elementHandle">
   The IfcElement handle.
</param>
            <param name="pLevelInfo">
   The level info.
</param>
            <param name="params">
   The extrusion creation data associated with the given element.  Optional, can be <see langword="null" />.
</param>
            <param name="relateToLevel">
   True to relate the element to the level, false otherwise.
</param>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCProductWrapper.AddBuilding(Autodesk.Revit.DB.IFC.IFCAnyHandle)">
            <summary>
   Adds an IfcBuilding handle to associate with the IfcProduct in this wrapper.
</summary>
            <param name="buildingHandle">
   The IfcBuilding handle.
</param>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCProductWrapper.AddSpace(Autodesk.Revit.DB.IFC.IFCAnyHandle,Autodesk.Revit.DB.IFC.IFCLevelInfo,Autodesk.Revit.DB.IFC.IFCExtrusionCreationData,System.Boolean)">
            <summary>
   Adds an IfcSpace handle to associate with the IfcProduct in this wrapper.
</summary>
            <remarks>
   If the IFCLevelInfo is not provided, and relateToLevel to true, the handle will be associated to the building handle.
</remarks>
            <param name="spaceHandle">
   The IfcSpace handle.
</param>
            <param name="pLevelInfo">
   Information on the associated level.
</param>
            <param name="pParams">
   The extrusion creation data associated with the given space.  Optional, can be <see langword="null" />.
</param>
            <param name="relateToLevel">
   True to relate the space to the level, false otherwise.
</param>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCProductWrapper.FindExtrusionCreationParameters(Autodesk.Revit.DB.IFC.IFCAnyHandle)">
            <summary>
   Obtains the extrusion creation data associated with the given element.
</summary>
            <param name="elementHandle">
   The handle.
</param>
            <returns>
   The parameters. <see langword="null" /> if no parameters are associated with the element.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCProductWrapper.GetAnElement">
            <summary>
   Gets the first element handle added to this wrapper.
</summary>
            <returns>
   The handle.
</returns>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCProductWrapper.GetAllObjects">
            <summary>
   Gets all objects associated with the IfcProduct in this wrapper.
</summary>
            <returns>
   The collection of objects.
</returns>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCProductWrapper.Create(Autodesk.Revit.DB.IFC.IFCProductWrapper,System.Boolean)">
            <summary>
   Establishes a new product manager for elements and objects derived from a parent product manager, allowing override of allowRelateToLevel
</summary>
            <param name="pProductWrapper">
   The parent product manager.
</param>
            <param name="allowRelateToLevel">
   True to allow associated elements and objects to relate to a level, false to never allow such a
   relationship.
</param>
            <returns>
   The new product manager.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCProductWrapper.Create(Autodesk.Revit.DB.IFC.IFCProductWrapper)">
            <summary>
   Establishes a new product manager for elements and objects derived from a parent product manager.
</summary>
            <param name="pProductWrapper">
   The parent product manager.
</param>
            <returns>
   The new product manager.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCProductWrapper.Create(Autodesk.Revit.DB.IFC.ExporterIFC,System.Boolean)">
            <summary>
   Establishes a new baseline product manager for elements and objects.
</summary>
            <remarks>
   Elements and objects associated to this product manager will be associated to a top-level IfcProduct based on the world coordinate
   system of the output file.
</remarks>
            <param name="ExporterIFC">
   The exporter.
</param>
            <param name="allowRelateToLevel">
   True to allow associated elements and objects to relate to a level, false to never allow such a
   relationship.
</param>
            <returns>
   The new baseline product manager.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2012
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCProductWrapper.IsValidObject">
            <summary>
   Specifies whether the .NET object represents a valid Revit entity.
</summary>
            <remarks>
   If the corresponding Revit native object is destroyed, or creation of the corresponding object is undone,
   a managed API object containing it is no longer valid. API methods cannot be called on invalidated wrapper objects.
</remarks>
            <returns>
   True if the API object holds a valid Revit native object, false otherwise.
</returns>
            <since>
   2014
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCProductWrapper.Count">
            <summary>
   The number of objects associated with the IfcProduct in this wrapper.
</summary>
            <since>
   2012
</since>
        </member>
        <member name="T:Autodesk.Revit.DB.IFC.IFCProductWrapper">
            <summary>
   This class is used to ensure that elements and objects are associated with the current IfcProduct.
</summary>
            <remarks>
   Each instance makes sure that any elements and products created during its lifetime are properly associated to their parent level (or other containing object).
   To ensure that the lifetime of the object is correctly managed, you should declare an instance of this class as a part of a 'using' statement in C# or
   similar construct in other lanuguages.
</remarks>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCTransformSetter.Initialize(Autodesk.Revit.DB.IFC.ExporterIFC,Autodesk.Revit.DB.Transform)">
            <summary>
   Initializes the transformation in the transform setter.
</summary>
            <param name="exporterIFC">
   The exporter.
</param>
            <param name="transform">
   The transform.
</param>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCTransformSetter.InitializeFromBoundingBox(Autodesk.Revit.DB.IFC.ExporterIFC,System.Collections.Generic.IList`1{Autodesk.Revit.DB.GeometryObject},Autodesk.Revit.DB.IFC.IFCExtrusionCreationData)">
            <summary>
   Initializes the transformation in the transform setter.
</summary>
            <param name="exporterIFC">
   The exporter.
</param>
            <param name="geometryList">
   The set of geometry used to determine the bounding box.
</param>
            <param name="exportBodyParams">
   The extrusion creation data which contains the local placement.
</param>
            <returns>
   The transform corresponding to the movement, if any.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCTransformSetter.Create">
            <summary>
   Creates a new instance of a transform setter.
</summary>
            <returns>
   The new transform setter.
</returns>
            <since>
   2012
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCTransformSetter.IsValidObject">
            <summary>
   Specifies whether the .NET object represents a valid Revit entity.
</summary>
            <remarks>
   If the corresponding Revit native object is destroyed, or creation of the corresponding object is undone,
   a managed API object containing it is no longer valid. API methods cannot be called on invalidated wrapper objects.
</remarks>
            <returns>
   True if the API object holds a valid Revit native object, false otherwise.
</returns>
            <since>
   2014
</since>
        </member>
        <member name="T:Autodesk.Revit.DB.IFC.IFCTransformSetter">
            <summary>
   A state-based class that forces an extra transformation applied to objects being exported.
</summary>
            <remarks>
   IFC has a system of local placements; these are created from a set of transforms in Revit.
   Sometimes there is a need to create a 'fake' transform to get the right local placement structure for IFC.
   This class is intended to maintain the transformation for the duration that it is needed.
   To ensure that the lifetime of the object is correctly managed, you should declare an instance
   of this class as a part of a 'using' statement in C# or
   similar construct in other lanuguages.
</remarks>
            <since>
   2012
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCRange.IsValidObject">
            <summary>
   Specifies whether the .NET object represents a valid Revit entity.
</summary>
            <remarks>
   If the corresponding Revit native object is destroyed, or creation of the corresponding object is undone,
   a managed API object containing it is no longer valid. API methods cannot be called on invalidated wrapper objects.
</remarks>
            <returns>
   True if the API object holds a valid Revit native object, false otherwise.
</returns>
            <since>
   2014
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCRange.End">
            <summary>
   The ending value of the range.
</summary>
            <since>
   2013
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCRange.Start">
            <summary>
   The starting value of the range.
</summary>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCRange.#ctor(Autodesk.Revit.DB.IFC.IFCRange)">
            <summary>
   Instantiates an IFCRange object by copy.
</summary>
            <param name="from">
   The IFCRange object.
</param>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCRange.#ctor(System.Double,System.Double)">
            <summary>
   Instantiates an IFCRange object.
</summary>
            <param name="start">
   The starting value of the range.
</param>
            <param name="end">
   The ending value of the range.
</param>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCRange.#ctor">
            <summary>
   Instantiates a default IFCRange object.
</summary>
            <remarks>
   The starting and ending value are both set to zero.
</remarks>
            <since>
   2013
</since>
        </member>
        <member name="T:Autodesk.Revit.DB.IFC.IFCRange">
            <summary>
   Typically for IFC export, this represents the lower and upper elevations for split wall and column geometry.
</summary>
            <remarks>
   It contains two double values representing the starting and ending values as a range.
</remarks>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IExporterIFCProxy.ExportIFC(Autodesk.Revit.DB.Document,Autodesk.Revit.DB.IFC.ExporterIFC,Autodesk.Revit.DB.View)">
            <summary>
   The method that Revit will invoke to perform an export to IFC.
</summary>
            <remarks>
   There will be a transaction group opened for the document.  Any changes made to the document
   must be temporary, as the transaction group will automatically be rolled back at the end.
</remarks>
            <param name="document">
   The document to export.
</param>
            <param name="exporter">
   The IFC exporter object.
</param>
            <param name="filterView">
   The view whose filter visibility settings govern the export.
</param>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IExporterIFC.ExportIFC(Autodesk.Revit.DB.Document,Autodesk.Revit.DB.IFC.ExporterIFC,Autodesk.Revit.DB.View)">
            <summary>
   The method that Revit will invoke to perform an export to IFC.
</summary>
            <remarks>
   There will be a transaction group opened for the document.  Any changes made to the document
   must be temporary, as the transaction group will automatically be rolled back at the end.
</remarks>
            <param name="document">
   The document to export.
</param>
            <param name="exporter">
   The IFC exporter object.
</param>
            <param name="filterView">
   The view whose filter visibility settings govern the export.
</param>
            <since>
   2012
</since>
        </member>
        <member name="T:Autodesk.Revit.DB.IFC.IExporterIFC">
            <summary>
   The interface used to implement a custom IFC exporter.
</summary>
            <remarks>
   Implement this interface and register an instance of the derived class with ExporterIFCRegistry.
</remarks>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFC.GetOrCreateFillPattern(Autodesk.Revit.DB.ElementId,Autodesk.Revit.DB.Color,System.Double)">
            <summary>
   Get (or create) the IfcFillPatternStyle associated with an ElementId.
</summary>
            <param name="fillPatternId">
   The fill pattern id.
</param>
            <param name="color">
   The pattern color.
</param>
            <param name="planScale">
   The view scale.
</param>
            <returns>
   The IfcSurfaceStyle.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFC.GetRelatedElements">
            <summary>
   Gets all elements not associated to stories.
</summary>
            <returns>
   The collection of elements.
</returns>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFC.GetRelatedProducts">
            <summary>
   Gets all products not associated to stories.
</summary>
            <returns>
   The collection of products.
</returns>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFC.RemoveBuildingStorey(Autodesk.Revit.DB.ElementId)">
            <summary>
   Removes an IFCLevelInfo corresponding to a level from the exporter's internal cache.
</summary>
            <param name="id">
   The level id.
</param>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFC.AddBuildingStorey(Autodesk.Revit.DB.ElementId,Autodesk.Revit.DB.IFC.IFCLevelInfo)">
            <summary>
   Adds building storey to the exporter's internal cache.
</summary>
            <param name="id">
   The level id.
</param>
            <param name="levelInfo">
   The IFCLevelInfo object.
</param>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFC.SetMaterialIdForCurrentExportState(Autodesk.Revit.DB.ElementId)">
            <summary>
   This sets the material id that is to be associated with the element in the current export state.
</summary>
            <remarks>
   Even though there could be several materials associated with the element (set during PushExportState()),
   unless the element has support for IfcMaterialLayerSet, IFC output will include only this one.
</remarks>
            <param name="elementId">
   The material id.
</param>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFC.GetMaterialIdForCurrentExportState">
            <summary>
   This gets the material id that is associated with the element in the current export state.
</summary>
            <remarks>
   Even though there could be several materials associated with the element (set during PushExportState()),
   unless the element has support for IfcMaterialLayerSet, IFC output will include only this one.
</remarks>
            <returns>
   The material id.
</returns>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFC.GetFamilyName">
            <summary>
   Gets the name of the element assigned to the current export state.
</summary>
            <remarks>
   The family name is prepared for use in IFC output during the call to PushExportState().
</remarks>
            <returns>
   The family name.
</returns>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFC.PopExportState">
            <summary>
   Resets the internal state of the exporter to process the previously active input element (if any), or
   the default state if the stack is empty.
</summary>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFC.PushExportState(Autodesk.Revit.DB.Element,Autodesk.Revit.DB.GeometryElement)">
            <summary>
   Sets the internal state of the exporter to process the geometry and properties of the input element.
</summary>
            <remarks>
   The element will be assigned until PopExportState() is called.
</remarks>
            <param name="Elem">
   The element.
</param>
            <param name="GRep">
   The geometry of the element.  Optional, can be <see langword="null" />.
</param>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFC.RegisterShapeForPresentationLayer(Autodesk.Revit.DB.Element,Autodesk.Revit.DB.ElementId,Autodesk.Revit.DB.IFC.IFCAnyHandle)">
            <summary>
   Sets an IfcShapeRepresentation to be used for the IfcPresentationLayerAssignment associated with
   the given Revit category and element.
</summary>
            <param name="pElement">
   The element.
</param>
            <param name="categoryId">
   The category id.
</param>
            <param name="newShapeRepresentation">
   The IfcShapeRepresentation handle.
</param>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFC.GetDoorWindowOpeningHandle(Autodesk.Revit.DB.ElementId)">
            <summary>
   Get the handle to the opening associated with a hosted (door/window) element from the internal cache.
</summary>
            <param name="familyInstanceId">
   The id of the door or window.
</param>
            <returns>
   The opening handle.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2014
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFC.RegisterDoorWindowForUncreatedOpening(Autodesk.Revit.DB.ElementId,Autodesk.Revit.DB.IFC.IFCAnyHandle)">
            <summary>
   Registers a door or window in the ExporterIFC's internal cache.  The ids registered correspond to
   openings in walls which have not been processed and created yet.
</summary>
            <param name="familyInstanceId">
   The id of the door or window.
</param>
            <param name="instanceHandle">
   The handle to the IfcDoor or IfcWindow created for this instance.
</param>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFC.Set3DContextHandle(Autodesk.Revit.DB.IFC.IFCAnyHandle,System.String)">
            <summary>
   Sets the IfcRepresentationContext or IfcRepresentationSubContext handle to be used for 3D entities (Model entities).
</summary>
            <param name="contextHandle">
   The IfcRepresentationContext for 3D entities.
</param>
            <param name="subContextName">
   The name of the IfcRepresentationSubContext, or the IfcRepresentationContext if the string is empty, for 3D entities.
</param>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFC.Get3DContextHandle(System.String)">
            <summary>
   Obtains the IfcRepresentationContext or IfcRepresentationSubContext handle to be used for 3D entities (Model entities).
</summary>
            <remarks>
   The context handle automatically incorporates the angle to true north for the document.
</remarks>
            <param name="subContextName">
   The name of the IfcRepresentationSubContext, or the IfcRepresentationContext if the string is empty, for 3D entities.
</param>
            <returns>
   The IfcRepresentationContext for 3D entities.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFC.Set2DContextHandle(Autodesk.Revit.DB.IFC.IFCAnyHandle)">
            <summary>
   Sets the IfcRepresentationContext handle to be used for 2D entities (Annotations).
</summary>
            <param name="contextHandle">
   The IfcRepresentationContext.
</param>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFC.Get2DContextHandle">
            <summary>
   Obtains the IfcRepresentationContext handle to be used for 2D entities (Annotations).
</summary>
            <remarks>
   The context handle is automatically applied with a 1:100 scale.
</remarks>
            <returns>
   The IfcRepresentationContext.
</returns>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFC.ClearFaceWithElementHandleMap">
            <summary>
   Clear face with element handle map.
</summary>
            <since>
   2014
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFC.RegisterFaceWithElementHandle(Autodesk.Revit.DB.Face,Autodesk.Revit.DB.IFC.IFCAnyHandle)">
            <summary>
   Register face with element handle to make sure the openings created are related to the right element.
</summary>
            <param name="face">
   The face.
</param>
            <param name="elemHandle">
   The element handle.
</param>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2014
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFC.GetLevelInfos">
            <summary>
   Returns a collection containing the information about all levels in the document.
</summary>
            <remarks>
   Level information is currently automatically collected and cached in the ExporterIFC
   object.  This method returns the cached information which is often needed during export
   of particular building elements which reference levels, as well as to implement automatic
   wall and column splitting.
</remarks>
            <returns>
   The collection of level information.
</returns>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFC.GetLevelInfo(Autodesk.Revit.DB.ElementId)">
            <summary>
   Returns an object representing the information about a level in the document.
</summary>
            <remarks>
   Level information is currently automatically collected and cached in the ExporterIFC
   object.  This method returns the cached information for a given level,
   which is often needed during export of particular building elements which reference levels, as well
   as to implement automatic wall and column splitting.
</remarks>
            <param name="levelId">
   The level id.
</param>
            <returns>
   The level information.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFC.GetHostObjects">
            <summary>
   Returns a collection containing the host object handles in the document.
</summary>
            <remarks>
   Host object handles is currently collected by RegisterSpaceBoundingElementHandle
   and exporting internal element and cached in the ExporterIFC object.
   This method returns the cached information which is needed to create wall connectivity objects.
</remarks>
            <returns>
   The collection of host objects.
</returns>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFC.FindSpaceBoundingElementHandle(Autodesk.Revit.DB.ElementId,Autodesk.Revit.DB.ElementId)">
            <summary>
   Looks up the handle associated to the element and level id from the ExporterIFC's internal cache.
</summary>
            <param name="id">
   The Revit element id to look for.
</param>
            <param name="levelId">
   The element level id.
</param>
            <returns>
   The handle associated to the element and level id.  If the id is not found in the cache, an empty handle
   is returned (HasValue == false).
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFC.RegisterSpaceBoundingElementHandle(Autodesk.Revit.DB.IFC.IFCAnyHandle,Autodesk.Revit.DB.ElementId,Autodesk.Revit.DB.ElementId)">
            <summary>
   Stores a handle representing a space bounding element to the ExporterIFC's internal cache.
</summary>
            <remarks>
   The cache of space bounding elements will be used during completion of export to create
   relationship objects such as IfcRelSpaceBoundary and IfcRelConnectsPathElements.
   The types of Revit elements accepted by this function are:
   <list type="bullet"><item>Walls</item><item>Curtain walls</item><item>Roofs</item><item>Floors</item><item>Doors</item><item>Windows</item></list></remarks>
            <param name="instanceHandle">
   The handle to the space bounding element.
</param>
            <param name="id">
   The Revit element id associated to this handle.
</param>
            <param name="levelId">
   The level id assigned to the space bounding object.
</param>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFC.GetOptions">
            <summary>
   Gets the collection of named options set by the exporter client.
</summary>
            <returns>
   The collection of named options.
</returns>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFC.SetOwnerHistoryHandle(Autodesk.Revit.DB.IFC.IFCAnyHandle)">
            <summary>
   Sets the handle to the IfcOwnerHistory for the file.
</summary>
            <param name="ownerHistory">
   The handle.
</param>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFC.SetFile(Autodesk.Revit.DB.IFC.IFCFile)">
            <summary>
   Sets the handle to the IFC file being created during this export operation.
</summary>
            <param name="file">
   The handle to the file.
</param>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFC.PopTransform">
            <summary>
   Resets the internal transform of the exporter to process the previously active input element (if any), or
   the default transform if the stack is empty.
</summary>
            <since>
   2014
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFC.PushTransform(Autodesk.Revit.DB.Transform)">
            <summary>
   Sets the internal transform of the exporter to process the geometry and properties of the input element.
</summary>
            <param name="trf">
   The transform.
</param>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2014
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ExporterIFC.GetFile">
            <summary>
   Gets the handle to the IFC file being created during this export operation.
</summary>
            <returns>
   The handle to the file.
</returns>
            <since>
   2012
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.ExporterIFC.IsValidObject">
            <summary>
   Specifies whether the .NET object represents a valid Revit entity.
</summary>
            <remarks>
   If the corresponding Revit native object is destroyed, or creation of the corresponding object is undone,
   a managed API object containing it is no longer valid. API methods cannot be called on invalidated wrapper objects.
</remarks>
            <returns>
   True if the API object holds a valid Revit native object, false otherwise.
</returns>
            <since>
   2014
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.ExporterIFC.WallAndColumnSplitting">
            <summary>
   Identifies if division of multi-level walls and columns by levels should take place during this export.
</summary>
            <since>
   2012
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.ExporterIFC.SpaceBoundaryLevel">
            <summary>
   Identifies the level of space boundaries being exported.
</summary>
            <remarks>
   There are three valid values for this integer:
   0 = export no space boundaries.  This can save space if the receiving application doesn't use them.
   1 = export 1st level space boundaries.  This is the default.
   2 = export 2nd level space boundaries.  This is primarily for use in energy analysis programs, and the GSA.
</remarks>
            <since>
   2012
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.ExporterIFC.ExportBaseQuantities">
            <summary>
   Identifies if the export should include IFC standard quantities currently supported by Revit.
</summary>
            <since>
   2012
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.ExporterIFC.FileVersion">
            <summary>
   Identifies the file version being exported.
</summary>
            <since>
   2012
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.ExporterIFC.ExportAs2x3">
            <summary>
   Identifies if the file version being exported is 2x3.
</summary>
            <remarks>
   Returns true even for alternative formats equivalent to 2x3, such as COBIE.
</remarks>
            <since>
   2012
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.ExporterIFC.ExportAs2x2">
            <summary>
   Identifies if the file version being exported is 2x2.
</summary>
            <remarks>
   Returns true even for alternative formats equivalent to 2x2, such as BCA.
</remarks>
            <since>
   2012
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.ExporterIFC.FileName">
            <summary>
   The name of the IFC file being exported.
</summary>
            <since>
   2012
</since>
        </member>
        <member name="T:Autodesk.Revit.DB.IFC.ExporterIFC">
            <summary>
   The main class provided by Revit to allow implementation of IFC export.
</summary>
            <remarks>
   An instance of this class is provided to clients which implement IExporterIFC
   in order to provide an implementation for IFC export.  It contains information
   on the options selected by the user for the export operation, as well as
   members used to access specific types of data needed to implement the export
   properly.
</remarks>
            <since>
   2012
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCConnectedWallData.IsValidObject">
            <summary>
   Specifies whether the .NET object represents a valid Revit entity.
</summary>
            <remarks>
   If the corresponding Revit native object is destroyed, or creation of the corresponding object is undone,
   a managed API object containing it is no longer valid. API methods cannot be called on invalidated wrapper objects.
</remarks>
            <returns>
   True if the API object holds a valid Revit native object, false otherwise.
</returns>
            <since>
   2014
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCConnectedWallData.Location">
            <summary>
   The location for the join.
</summary>
            <since>
   2012
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCConnectedWallData.ElementId">
            <summary>
   The element id to which this element is joined.
</summary>
            <since>
   2012
</since>
        </member>
        <member name="T:Autodesk.Revit.DB.IFC.IFCConnectedWallData">
            <summary>
   A class that contains the IFC-specific information about how an element is joined to another element.
</summary>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCLevelInfo.GetLocalPlacement">
            <summary>
   Gets the local placement.
</summary>
            <returns>
   The local placement.
</returns>
            <since>
   2014
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCLevelInfo.GetRelatedElements">
            <summary>
   Gets all building elements on this level.
</summary>
            <returns>
   The collection of elements.
</returns>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCLevelInfo.GetRelatedProducts">
            <summary>
   Gets all building products on this level.
</summary>
            <returns>
   The collection of products.
</returns>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCLevelInfo.GetBuildingStorey">
            <summary>
   Gets the IfcBuildingStorey handle.
</summary>
            <returns>
   The handle.
</returns>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCLevelInfo.Create(Autodesk.Revit.DB.IFC.IFCAnyHandle,Autodesk.Revit.DB.IFC.IFCAnyHandle,System.Double,System.Double,System.Double,System.Boolean)">
            <summary>
   Creates an IFCLevelInfo.
</summary>
            <param name="buildingStorey">
   The building storey handle (IfcBuildingStorey).
</param>
            <param name="localPlacement">
   The local placement handle (IfcLocalPlacement).
</param>
            <param name="height">
   The height of the level.
</param>
            <param name="elevation">
   The elevation of the level.
</param>
            <param name="scaleFactor">
   The scale factor.
</param>
            <param name="isPrimaryLevel">
   True if this is primary level, false otherwise.
</param>
            <returns>
   The IFCLevelInfo object.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCLevelInfo.IsValidObject">
            <summary>
   Specifies whether the .NET object represents a valid Revit entity.
</summary>
            <remarks>
   If the corresponding Revit native object is destroyed, or creation of the corresponding object is undone,
   a managed API object containing it is no longer valid. API methods cannot be called on invalidated wrapper objects.
</remarks>
            <returns>
   True if the API object holds a valid Revit native object, false otherwise.
</returns>
            <since>
   2014
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCLevelInfo.Elevation">
            <summary>
   The elevation of the level.
</summary>
            <since>
   2012
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCLevelInfo.DistanceToNextLevel">
            <summary>
   The distance to the next story level.
</summary>
            <since>
   2012
</since>
        </member>
        <member name="T:Autodesk.Revit.DB.IFC.IFCLevelInfo">
            <summary>
   Represents information about a particular level in the document.
</summary>
            <remarks>
   Level information includes the height, which is the distance to from this level
   to the next available level, and the actual elevation of the level, in the Revit default units.
</remarks>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCExtrusionCreationData.ClearOpenings">
            <summary>
   Removes all cached openings from the data.
</summary>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCExtrusionCreationData.AddOpening(Autodesk.Revit.DB.IFC.IFCExtrusionData)">
            <summary>
   Adds an opening to the data.
</summary>
            <remarks>
   The opening is stored for retrieval later via GetOpenings().
</remarks>
            <param name="data">
   The opening.
</param>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCExtrusionCreationData.GetOpenings">
            <summary>
   Gets a collection of all of the openings stored in this data.
</summary>
            <remarks>
   Contains all of the openings stored via AddOpening().
</remarks>
            <returns>
   The opening information.
</returns>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCExtrusionCreationData.GetLocalPlacement">
            <summary>
   Gets the reference to the IfcLocalPlacement handle used when creating the extrusion.
</summary>
            <returns>
   The IfcLocalPlacement handle.
</returns>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCExtrusionCreationData.SetLocalPlacement(Autodesk.Revit.DB.IFC.IFCAnyHandle)">
            <summary>
   Sets the data to reference an IfcLocalPlacement handle when creating the extrusion.
   Side effect: will set ReuseLocalPlacement to true.
</summary>
            <param name="localPlacement">
   The IfcLocalPlacement handle.
</param>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2012
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCExtrusionCreationData.IsValidObject">
            <summary>
   Specifies whether the .NET object represents a valid Revit entity.
</summary>
            <remarks>
   If the corresponding Revit native object is destroyed, or creation of the corresponding object is undone,
   a managed API object containing it is no longer valid. API methods cannot be called on invalidated wrapper objects.
</remarks>
            <returns>
   True if the API object holds a valid Revit native object, false otherwise.
</returns>
            <since>
   2014
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCExtrusionCreationData.AreInnerRegionsOpenings">
            <summary>
   True if inner regions of the extrusion should become openings, false otherwise.
</summary>
            <since>
   2012
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCExtrusionCreationData.ExtrusionDirection">
            <summary>
   The extrusion direction to generate an extrusion.
</summary>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   When setting this property: A non-optional argument was NULL
</exception>
            <since>
   2012
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCExtrusionCreationData.CustomAxis">
            <summary>
   The custom extrusion axis to try when generating an extrusion.
</summary>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   When setting this property: A non-optional argument was NULL
</exception>
            <since>
   2012
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCExtrusionCreationData.HasExtrusionDirection">
            <summary>
   Identifies if the data contains a extrusion direction.
</summary>
            <since>
   2012
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCExtrusionCreationData.HasCustomAxis">
            <summary>
   Identifies if the data contains a custom extrusion axis.
</summary>
            <since>
   2012
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCExtrusionCreationData.PossibleExtrusionAxes">
            <summary>
   The axes to try when generating the properties of the extrusion.
</summary>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentOutOfRangeException">
   When setting this property: A value passed for an enumeration argument is not a member of that enumeration
</exception>
            <since>
   2012
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCExtrusionCreationData.ReuseLocalPlacement">
            <summary>
   Allows re-use of local placement when creating a new local placement
   due to shifting of breps when moving towards the origin.
</summary>
            <since>
   2013
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCExtrusionCreationData.AllowVerticalOffsetOfBReps">
            <summary>
   Allows vertical shifting of breps when moving towards the origin.
</summary>
            <since>
   2013
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCExtrusionCreationData.ScaledOuterPerimeter">
            <summary>
   The outer perimeter of the extrusion, scaled to the units of export.
</summary>
            <value>
   This value represents the perimeter of the outermost curve loop bounding the area of the extrusion.
   Zero if the perimeter has never been set on this object.
</value>
            <since>
   2012
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCExtrusionCreationData.ScaledInnerPerimeter">
            <summary>
   The inner perimeter of the extrusion, scaled to the units of export.
</summary>
            <value>
   This value represents the perimeter of all of the inner curve loops within the area of the extrusion.
   Zero if the perimeter has never been set on this object.
</value>
            <since>
   2012
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCExtrusionCreationData.ScaledWidth">
            <summary>
   The width of the extrusion, scaled to the units of export.
</summary>
            <value>
   Zero if the width has never been set on this object.
</value>
            <since>
   2012
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCExtrusionCreationData.Slope">
            <summary>
   The slope of the extrusion, in degrees.
</summary>
            <value>
   Zero if the slope has never been set on this object.
</value>
            <since>
   2012
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCExtrusionCreationData.ScaledLength">
            <summary>
   The length of the extrusion, scaled to the units of export.
</summary>
            <value>
   Zero if the length has never been set on this object.
</value>
            <since>
   2012
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCExtrusionCreationData.ScaledHeight">
            <summary>
   The height of the extrusion, scaled to the units of export.
</summary>
            <value>
   Zero if the height has never been set on this object.
</value>
            <since>
   2012
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCExtrusionCreationData.ScaledArea">
            <summary>
   The area of the extrusion, scaled to the units of export.
</summary>
            <value>
   The value will be 0.0 if the area has never been set on this object.
</value>
            <since>
   2012
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCExtrusionCreationData.ForceOffset">
            <summary>
   True to create new local placement with identity transform.
</summary>
            <since>
   2014
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCExtrusionCreationData.#ctor">
            <summary>
   The default constructor.
</summary>
            <remarks>
   All input data will be considered uninitialized.
</remarks>
            <since>
   2012
</since>
        </member>
        <member name="T:Autodesk.Revit.DB.IFC.IFCExtrusionCreationData">
            <summary>
   A utility object that is used to pass information related to extrusion creation.
</summary>
            <remarks>
   This class accepts input used to attempt to create an extrusion (possibly with openings) from Revit geometry.
   The output contains information about the created extrusion and its openings. The information set is used to
   generate properties for the extruded body and related opening elements in the IFC file.
</remarks>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCExtrusionCalculatorUtils.CalculateExtrusionData(Autodesk.Revit.DB.IFC.IFCExtrusionCalculatorOptions,System.Collections.Generic.IList`1{Autodesk.Revit.DB.Face})">
            <summary>
   Calculates the extrusion data from a collection of Revit geometry faces.
</summary>
            <param name="extrInfo">
   The options for extrusion extraction.
</param>
            <param name="allInputFaces">
   The collection of faces.
</param>
            <returns>
   A collection of extrusion data calculated for the geometry.
   If the function fails to calculate one or more valid extrusions,
   this collection will be empty.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCExtrusionCalculatorUtils.CalculateExtrusionData(Autodesk.Revit.DB.IFC.IFCExtrusionCalculatorOptions,Autodesk.Revit.DB.GeometryObject)">
            <summary>
   Calculates the extrusion data from a Revit geometry object.
</summary>
            <param name="extrusionOptions">
   The options for extrusion extraction.
</param>
            <param name="geometryObject">
   The geometry object.
</param>
            <returns>
   A collection of extrusion data calculated for the geometry.
   If the function fails to calculate one or more valid extrusions,
   this collection will be empty.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2012
</since>
        </member>
        <member name="T:Autodesk.Revit.DB.IFC.IFCExtrusionCalculatorUtils">
            <summary>
   A utility class used to calculate extrusion data from Revit geometry for IFC export.
</summary>
            <since>
   2012
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCExtrusionCalculatorOptions.IsValidObject">
            <summary>
   Specifies whether the .NET object represents a valid Revit entity.
</summary>
            <remarks>
   If the corresponding Revit native object is destroyed, or creation of the corresponding object is undone,
   a managed API object containing it is no longer valid. API methods cannot be called on invalidated wrapper objects.
</remarks>
            <returns>
   True if the API object holds a valid Revit native object, false otherwise.
</returns>
            <since>
   2014
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCExtrusionCalculatorOptions.Scale">
            <summary>
   The scaling factor for length measurements from the default Revit units to the export units.
</summary>
            <since>
   2012
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCExtrusionCalculatorOptions.CustomAxis">
            <summary>
   The custom axis to try (if extrusionAxes includes an option for a custom direction).
</summary>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   When setting this property: A non-optional argument was NULL
</exception>
            <since>
   2012
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCExtrusionCalculatorOptions.ExtrusionAxes">
            <summary>
   The extrusion axes to try when doing the calculation.
</summary>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentOutOfRangeException">
   When setting this property: A value passed for an enumeration argument is not a member of that enumeration
</exception>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCExtrusionCalculatorOptions.#ctor(Autodesk.Revit.DB.IFC.ExporterIFC,Autodesk.Revit.DB.IFC.IFCExtrusionAxes,Autodesk.Revit.DB.XYZ,System.Double)">
            <summary>
   Constructs a new instance of a class used to calculate extrusions from Revit geometry.
</summary>
            <param name="exporterIFC">
   The exporter.
</param>
            <param name="extrusionAxes">
   The extrusion axes to try when doing the calculation.
</param>
            <param name="customAxis">
   The custom axis to try (if extrusionAxes includes an option for a custom direction).
</param>
            <param name="scale">
   The scaling factor for length measurements from the default Revit units to the export units.
</param>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentOutOfRangeException">
   A value passed for an enumeration argument is not a member of that enumeration
</exception>
            <since>
   2012
</since>
        </member>
        <member name="T:Autodesk.Revit.DB.IFC.IFCExtrusionCalculatorOptions">
            <summary>
   This class contains the options used to calculate extrusions from Revit geometry.
</summary>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCExtrusionData.GetLoops">
            <summary>
   Gets the curve loops that form the base shape of the extrusion.
</summary>
            <returns>
   The collection of loops.
</returns>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCExtrusionData.ClearLoops">
            <summary>
   Clears the curve loops stored in the extrusion data.
</summary>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCExtrusionData.RemoveLoopAt(System.Int32)">
            <summary>
   Removes the loop at the specified index.
</summary>
            <param name="index">
   The zero-based index of the loop to remove.
</param>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCExtrusionData.AddLoop(Autodesk.Revit.DB.CurveLoop)">
            <summary>
   Adds a curve loop to the extrusion data.
</summary>
            <param name="pLoop">
   The curve loop.
</param>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCExtrusionData.IsValid">
            <summary>
   Determines if the extrusion data represents a valid extrusion.
</summary>
            <returns>
   True if the extrusion is valid, false otherwise.
</returns>
            <since>
   2012
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCExtrusionData.IsValidObject">
            <summary>
   Specifies whether the .NET object represents a valid Revit entity.
</summary>
            <remarks>
   If the corresponding Revit native object is destroyed, or creation of the corresponding object is undone,
   a managed API object containing it is no longer valid. API methods cannot be called on invalidated wrapper objects.
</remarks>
            <returns>
   True if the API object holds a valid Revit native object, false otherwise.
</returns>
            <since>
   2014
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCExtrusionData.ExtrusionDirection">
            <summary>
   The direction used for the extrusion.
</summary>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   When setting this property: A non-optional argument was NULL
</exception>
            <since>
   2012
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCExtrusionData.ExtrusionBasis">
            <summary>
   The basis used for the extrusion.
</summary>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentOutOfRangeException">
   When setting this property: A value passed for an enumeration argument is not a member of that enumeration
</exception>
            <since>
   2012
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCExtrusionData.ScaledExtrusionLength">
            <summary>
   The length of the extrusion, scaled in the units of the export.
</summary>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCExtrusionData.#ctor">
            <summary>
   Constructs a new empty extrusion data object.
</summary>
            <since>
   2012
</since>
        </member>
        <member name="T:Autodesk.Revit.DB.IFC.IFCExtrusionData">
            <summary>
   Represents the geometry of an extrusion (a solid body or opening) generated
   from Revit geometry.
</summary>
            <since>
   2012
</since>
        </member>
        <member name="T:Autodesk.Revit.DB.IFC.IFCExtrusionBasis">
            <summary>
   This enumerated type represents the possible bases for derivation of extrusion geometry.
</summary>
            <since>
   2012
</since>
        </member>
        <member name="F:Autodesk.Revit.DB.IFC.IFCExtrusionBasis.BasisZ">
            <summary>
   The Z direction.
</summary>
        </member>
        <member name="F:Autodesk.Revit.DB.IFC.IFCExtrusionBasis.BasisY">
            <summary>
   The Y direction.
</summary>
        </member>
        <member name="F:Autodesk.Revit.DB.IFC.IFCExtrusionBasis.BasisX">
            <summary>
   The X direction.
</summary>
        </member>
        <member name="F:Autodesk.Revit.DB.IFC.IFCExtrusionBasis.InvalidBasis">
            <summary>
   An invalid basis (typically indicating that the extrusion extraction was unsuccessful).
</summary>
        </member>
        <member name="T:Autodesk.Revit.DB.IFC.IFCExtrusionAxes">
            <summary>
   Represents the possible axes to try when generating an extrusion using IFCCreateExtrusionData.
</summary>
            <since>
   2012
</since>
        </member>
        <member name="F:Autodesk.Revit.DB.IFC.IFCExtrusionAxes.TryXYZAndCustom">
            <summary>
   The x-, y-, and z-axes, and a custom direction.
</summary>
        </member>
        <member name="F:Autodesk.Revit.DB.IFC.IFCExtrusionAxes.TryCustom">
            <summary>
   A custom direction.
</summary>
        </member>
        <member name="F:Autodesk.Revit.DB.IFC.IFCExtrusionAxes.TryXYZ">
            <summary>
   The x-, y-, and z-axes.
</summary>
        </member>
        <member name="F:Autodesk.Revit.DB.IFC.IFCExtrusionAxes.TryYZ">
            <summary>
   The y- and z-axes.
</summary>
        </member>
        <member name="F:Autodesk.Revit.DB.IFC.IFCExtrusionAxes.TryXZ">
            <summary>
   The x- and z-axes.
</summary>
        </member>
        <member name="F:Autodesk.Revit.DB.IFC.IFCExtrusionAxes.TryZ">
            <summary>
   The z-axis.
</summary>
        </member>
        <member name="F:Autodesk.Revit.DB.IFC.IFCExtrusionAxes.TryXY">
            <summary>
   The x- and y-axes.
</summary>
        </member>
        <member name="F:Autodesk.Revit.DB.IFC.IFCExtrusionAxes.TryY">
            <summary>
   The y-axis.
</summary>
        </member>
        <member name="F:Autodesk.Revit.DB.IFC.IFCExtrusionAxes.TryX">
            <summary>
   The x-axis.
</summary>
        </member>
        <member name="F:Autodesk.Revit.DB.IFC.IFCExtrusionAxes.TryDefault">
            <summary>
   The default value.
</summary>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCTransaction.RollBack">
            <summary>
   Rolls back all changes made to the IFC file during the transaction.
</summary>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCTransaction.Commit">
            <summary>
   Commits all changes made to the IFC file during the transaction.
</summary>
            <since>
   2012
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCTransaction.IsValidObject">
            <summary>
   Specifies whether the .NET object represents a valid Revit entity.
</summary>
            <remarks>
   If the corresponding Revit native object is destroyed, or creation of the corresponding object is undone,
   a managed API object containing it is no longer valid. API methods cannot be called on invalidated wrapper objects.
</remarks>
            <returns>
   True if the API object holds a valid Revit native object, false otherwise.
</returns>
            <since>
   2014
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCTransaction.#ctor(Autodesk.Revit.DB.IFC.IFCFile)">
            <summary>
   Instantiates a transaction object.
</summary>
            <remarks>
   The transaction starts by creating a transaction object.
</remarks>
            <param name="file">
   The IFC file for which this transaction is going to be used.
</param>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2012
</since>
        </member>
        <member name="T:Autodesk.Revit.DB.IFC.IFCTransaction">
            <summary>
   IFC transactions are context-like objects that guard any changes made to an IFC file.
</summary>
            <remarks>
   Any change to an IFC file can only be made while there is an active transaction
   open for that file. Changes do not become a part of the file until the
   active transaction is <see cref="M:Autodesk.Revit.DB.IFC.IFCTransaction.Commit">committed</see>. Consequently, all
   changes made in a transaction can be <see cref="M:Autodesk.Revit.DB.IFC.IFCTransaction.RollBack">rolled back</see>
   either explicitly or implicitly (by the destructor).
</remarks>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCFile.CreateStyle(Autodesk.Revit.DB.IFC.ExporterIFC,Autodesk.Revit.DB.IFC.IFCAnyHandle,Autodesk.Revit.DB.Color,Autodesk.Revit.DB.ElementId)">
            <summary>
   Creates and populates an IfcStyledItem for an IfcRepresentationItem with a IfcSurfaceStyle, IfcCurveStyle, and/or an IfcFillStyle,
   and assigns them to the file.
</summary>
            <param name="exporterIFC">
   The exporter.
</param>
            <param name="repItem">
   The representation item.
</param>
            <param name="color">
   The color.
</param>
            <param name="fillPatternId">
   The fill pattern id.
</param>
            <returns>
   The handle.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <exception cref="T:Autodesk.Revit.Exceptions.InvalidOperationException">
   A transaction is required for this operation.
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCFile.CreateStyle(Autodesk.Revit.DB.IFC.ExporterIFC,Autodesk.Revit.DB.IFC.IFCAnyHandle)">
            <summary>
   Creates and populates an IfcStyledItem for an IfcRepresentationItem with a IfcSurfaceStyle, IfcCurveStyle, and/or an IfcFillStyle,
   and assigns them to the file.
</summary>
            <param name="exporterIFC">
   The exporter.
</param>
            <param name="repItem">
   The representation item.
</param>
            <returns>
   The handle.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <exception cref="T:Autodesk.Revit.Exceptions.InvalidOperationException">
   A transaction is required for this operation.
</exception>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCFile.GetInstanceCount(System.String,System.Boolean)">
            <summary>
   Counts IFC instances of one particular type.
</summary>
            <param name="entityName">
   The name of the instance type.
</param>
            <param name="includeSubTypes">
   True to count instances of sub types.
</param>
            <returns>
   The count.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2014
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCFile.GetInstances(System.String,System.Boolean)">
            <summary>
   Gets IFC instances of one particular type.
</summary>
            <param name="entityName">
   The name of the instance type.
</param>
            <param name="includeSubTypes">
   True to retrieve instances of sub types.
</param>
            <returns>
   The instance handles.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2014
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCFile.CreateHeaderInstance(System.String)">
            <summary>
   Creates an IFC header instance in the file model.
</summary>
            <remarks>
   file_schema, file_description and file_name
   must be created to get IFC file written successfully.
   Otherwise, the output IFC file would be empty.
</remarks>
            <param name="name">
   The instance name.
</param>
            <returns>
   The instance handle.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCFile.CreateInstance(System.String)">
            <summary>
   Creates an IFC instance in the file model.
</summary>
            <param name="name">
   The instance name.
</param>
            <returns>
   The instance handle.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCFile.Close">
            <summary>
   Close the IFC file.
</summary>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCFile.Read(Autodesk.Revit.DB.IFC.IFCFileReadOptions,System.Int32@,System.Int32@)">
            <summary>
   Reads content from a file of IFC format.
</summary>
            <param name="readOptions">
   The IFC file read options.
</param>
            <param name="pNumErrors">
   The number of errors reported during the read process.  The actual messages will be in the log file.
</param>
            <param name="pNumWarnings">
   The number of warnings reported during the read process.  The actual messages will be in the log file.
</param>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <exception cref="T:Autodesk.Revit.Exceptions.InvalidOperationException">
   Error reading opening model for unzipping.
   Error reading IFC file.
</exception>
            <since>
   2015
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCFile.Read(Autodesk.Revit.DB.IFC.IFCFileReadOptions)">
            <summary>
   Reads content from a file of IFC format.
</summary>
            <param name="readOptions">
   The IFC file read options.
</param>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2014
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCFile.Write(Autodesk.Revit.DB.IFC.IFCFileWriteOptions)">
            <summary>
   Writes content to a file of IFC format.
</summary>
            <param name="writeOptions">
   The IFC file write options.
</param>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCFile.Create(Autodesk.Revit.DB.IFC.IFCFileModelOptions)">
            <summary>
   Creates an IFC file for exporting.
</summary>
            <param name="modelOptions">
   The options.
</param>
            <returns>
   The IFC file.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCFile.IsValidObject">
            <summary>
   Specifies whether the .NET object represents a valid Revit entity.
</summary>
            <remarks>
   If the corresponding Revit native object is destroyed, or creation of the corresponding object is undone,
   a managed API object containing it is no longer valid. API methods cannot be called on invalidated wrapper objects.
</remarks>
            <returns>
   True if the API object holds a valid Revit native object, false otherwise.
</returns>
            <since>
   2014
</since>
        </member>
        <member name="T:Autodesk.Revit.DB.IFC.IFCFile">
            <summary>
   Represents the IFC file which is being created during export.
</summary>
            <since>
   2012
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCFileReadOptions.IsValidObject">
            <summary>
   Specifies whether the .NET object represents a valid Revit entity.
</summary>
            <remarks>
   If the corresponding Revit native object is destroyed, or creation of the corresponding object is undone,
   a managed API object containing it is no longer valid. API methods cannot be called on invalidated wrapper objects.
</remarks>
            <returns>
   True if the API object holds a valid Revit native object, false otherwise.
</returns>
            <since>
   2014
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCFileReadOptions.XMLConfigFileName">
            <summary>
   The XML configuration file name. It is used only for reading IFC-XML format file.
</summary>
            <remarks>
   It uses default configuration if it is not set.
</remarks>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   When setting this property: A non-optional argument was NULL
</exception>
            <since>
   2014
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCFileReadOptions.FileName">
            <summary>
   The full file name of the IFC file to be read.
</summary>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   When setting this property: A non-optional argument was NULL
</exception>
            <since>
   2014
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCFileReadOptions.#ctor">
            <summary>
   Creates a default IFCFileReadOptions.
</summary>
            <since>
   2014
</since>
        </member>
        <member name="T:Autodesk.Revit.DB.IFC.IFCFileReadOptions">
            <summary>
   This class contains options to read an IFC file.
</summary>
            <since>
   2014
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCFileWriteOptions.IsValidObject">
            <summary>
   Specifies whether the .NET object represents a valid Revit entity.
</summary>
            <remarks>
   If the corresponding Revit native object is destroyed, or creation of the corresponding object is undone,
   a managed API object containing it is no longer valid. API methods cannot be called on invalidated wrapper objects.
</remarks>
            <returns>
   True if the API object holds a valid Revit native object, false otherwise.
</returns>
            <since>
   2014
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCFileWriteOptions.XMLConfigFileName">
            <summary>
   The XML configuration file name. It is used only for writing IFC-XML format file.
</summary>
            <remarks>
   It uses default configuration if it is not set.
</remarks>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   When setting this property: A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCFileWriteOptions.FileFormat">
            <summary>
   The file format of the IFC file.
</summary>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentOutOfRangeException">
   When setting this property: A value passed for an enumeration argument is not a member of that enumeration
</exception>
            <since>
   2013
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCFileWriteOptions.FileName">
            <summary>
   The full file name of the IFC file to be written.
</summary>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   When setting this property: A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCFileWriteOptions.#ctor">
            <summary>
   Creates a default IFCFileWriteOptions. The default file format is ifc.
</summary>
            <since>
   2013
</since>
        </member>
        <member name="T:Autodesk.Revit.DB.IFC.IFCFileWriteOptions">
            <summary>
   This class contains options to write an IFC file.
</summary>
            <since>
   2013
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCFileModelOptions.IsValidObject">
            <summary>
   Specifies whether the .NET object represents a valid Revit entity.
</summary>
            <remarks>
   If the corresponding Revit native object is destroyed, or creation of the corresponding object is undone,
   a managed API object containing it is no longer valid. API methods cannot be called on invalidated wrapper objects.
</remarks>
            <returns>
   True if the API object holds a valid Revit native object, false otherwise.
</returns>
            <since>
   2014
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCFileModelOptions.UserControlledInverses">
            <summary>
   Indicates if the inverses are controlled by Revit or users. True by users, false by Revit.
</summary>
            <since>
   2013
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCFileModelOptions.CacheSize">
            <summary>
   The cache size of the file.
</summary>
            <since>
   2013
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCFileModelOptions.SchemaName">
            <summary>
   The name of the schema.
</summary>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   When setting this property: A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCFileModelOptions.SchemaFile">
            <summary>
   The full name of an IFC schema file.
</summary>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   When setting this property: A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCFileModelOptions.#ctor">
            <summary>
   Creates a default IFCFileModelOptions. The default schema file is empty and cache size is 8192.
</summary>
            <since>
   2013
</since>
        </member>
        <member name="T:Autodesk.Revit.DB.IFC.IFCFileModelOptions">
            <summary>
   This class contains options to create an IFC file model.
</summary>
            <since>
   2013
</since>
        </member>
        <member name="T:Autodesk.Revit.DB.IFC.IFCFileFormat">
            <summary>
   The IFC file format.
</summary>
            <since>
   2013
</since>
        </member>
        <member name="F:Autodesk.Revit.DB.IFC.IFCFileFormat.IfcXMLZIP">
            <summary>
   IFC-XML file, zipped to IFC-ZIP format.
</summary>
        </member>
        <member name="F:Autodesk.Revit.DB.IFC.IFCFileFormat.IfcZIP">
            <summary>
   IFC file, zipped to IFC-ZIP format.
</summary>
        </member>
        <member name="F:Autodesk.Revit.DB.IFC.IFCFileFormat.IfcXML">
            <summary>
   IFC-XML format.
</summary>
        </member>
        <member name="F:Autodesk.Revit.DB.IFC.IFCFileFormat.Ifc">
            <summary>
   IFC format.
</summary>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCAnyHandle.IsSubTypeOf(System.String)">
            <summary>
   Determines whether the instance is an instance of the specified instance type or a subtype of this instance type.
</summary>
            <param name="typeName">
   The instance type name.
</param>
            <returns>
   True if the instance is an instance of the specified instance type or its subtype, false otherwise.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCAnyHandle.IsTypeOf(System.String)">
            <summary>
   Determines whether the instance is an instance of exactly the specified instance type.
</summary>
            <param name="typeName">
   The instance type name.
</param>
            <returns>
   True if the instance is an instance of the specified instance type, false otherwise.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCAnyHandle.UnsetAttribute(System.String)">
            <summary>
   Unsets the attribute value.
</summary>
            <param name="name">
   The attribute name.
</param>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCAnyHandle.SetAttribute(System.String,System.Collections.Generic.ISet`1{System.Boolean})">
            <summary>
   Sets the attribute value.
</summary>
            <param name="name">
   The attribute name.
</param>
            <param name="values">
   The values.
</param>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2015
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCAnyHandle.SetAttribute(System.String,System.Collections.Generic.ISet`1{System.Int32})">
            <summary>
   Sets the attribute value.
</summary>
            <param name="name">
   The attribute name.
</param>
            <param name="values">
   The values.
</param>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2015
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCAnyHandle.SetAttribute(System.String,System.Collections.Generic.ISet`1{System.Double})">
            <summary>
   Sets the attribute value.
</summary>
            <param name="name">
   The attribute name.
</param>
            <param name="values">
   The values.
</param>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2015
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCAnyHandle.SetAttribute(System.String,System.Collections.Generic.ISet`1{System.String})">
            <summary>
   Sets the attribute value.
</summary>
            <param name="name">
   The attribute name.
</param>
            <param name="values">
   The values.
</param>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2015
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCAnyHandle.SetAttribute(System.String,System.Collections.Generic.ISet`1{Autodesk.Revit.DB.IFC.IFCAnyHandle})">
            <summary>
   Sets the attribute value.
</summary>
            <param name="name">
   The attribute name.
</param>
            <param name="values">
   The values.
</param>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2015
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCAnyHandle.SetAttribute(System.String,System.Collections.Generic.IList`1{System.Boolean})">
            <summary>
   Sets the attribute value.
</summary>
            <param name="name">
   The attribute name.
</param>
            <param name="values">
   The values.
</param>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2015
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCAnyHandle.SetAttribute(System.String,System.Collections.Generic.IList`1{System.Int32})">
            <summary>
   Sets the attribute value.
</summary>
            <param name="name">
   The attribute name.
</param>
            <param name="values">
   The values.
</param>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2015
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCAnyHandle.SetAttribute(System.String,System.Collections.Generic.IList`1{System.Double})">
            <summary>
   Sets the attribute value.
</summary>
            <param name="name">
   The attribute name.
</param>
            <param name="values">
   The values.
</param>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2015
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCAnyHandle.SetAttribute(System.String,System.Collections.Generic.IList`1{System.String})">
            <summary>
   Sets the attribute value.
</summary>
            <param name="name">
   The attribute name.
</param>
            <param name="values">
   The values.
</param>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2015
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCAnyHandle.SetAttribute(System.String,System.Collections.Generic.IList`1{Autodesk.Revit.DB.IFC.IFCAnyHandle})">
            <summary>
   Sets the attribute value.
</summary>
            <param name="name">
   The attribute name.
</param>
            <param name="values">
   The values.
</param>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2015
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCAnyHandle.SetAttribute(System.String,Autodesk.Revit.DB.IFC.IFCAnyHandle)">
            <summary>
   Sets the attribute value.
</summary>
            <param name="name">
   The attribute name.
</param>
            <param name="value">
   The value.
</param>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCAnyHandle.SetAttribute(System.String,System.Boolean)">
            <summary>
   Sets the attribute value.
</summary>
            <param name="name">
   The attribute name.
</param>
            <param name="value">
   The value.
</param>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCAnyHandle.SetAttribute(System.String,System.Double)">
            <summary>
   Sets the attribute value.
</summary>
            <param name="name">
   The attribute name.
</param>
            <param name="value">
   The value.
</param>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCAnyHandle.SetAttribute(System.String,System.Int32)">
            <summary>
   Sets the attribute value.
</summary>
            <param name="name">
   The attribute name.
</param>
            <param name="value">
   The value.
</param>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCAnyHandle.SetAttribute(System.String,System.String)">
            <summary>
   Sets the attribute value.
</summary>
            <param name="name">
   The attribute name.
</param>
            <param name="value">
   The value.
</param>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCAnyHandle.SetAttribute(System.String,Autodesk.Revit.DB.IFC.IFCData)">
            <summary>
   Sets the attribute value.
</summary>
            <param name="name">
   The attribute name.
</param>
            <param name="value">
   The value.
</param>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCAnyHandle.GetAttribute(System.String)">
            <summary>
   Gets the attribute by name.
</summary>
            <param name="name">
   The name.
</param>
            <returns>
   The value.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCAnyHandle.CreateAggregateAttribute(System.String)">
            <summary>
   Creates an attribute that is an aggregate.
</summary>
            <param name="name">
   The attribute name.
</param>
            <returns>
   The aggregate.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCAnyHandle.Unset">
            <summary>
   Clears the handle.
</summary>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCAnyHandle.Delete">
            <summary>
   Deletes the handle.
</summary>
            <since>
   2012
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCAnyHandle.IsValidObject">
            <summary>
   Specifies whether the .NET object represents a valid Revit entity.
</summary>
            <remarks>
   If the corresponding Revit native object is destroyed, or creation of the corresponding object is undone,
   a managed API object containing it is no longer valid. API methods cannot be called on invalidated wrapper objects.
</remarks>
            <returns>
   True if the API object holds a valid Revit native object, false otherwise.
</returns>
            <since>
   2014
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCAnyHandle.HasValue">
            <summary>
   Identifies if the handle is empty or contains a value.
</summary>
            <since>
   2012
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCAnyHandle.StepId">
            <summary>
   The step id of the handle. Valid only for import.
</summary>
            <since>
   2014
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCAnyHandle.TypeName">
            <summary>
   The name of the type of the handle.
</summary>
            <since>
   2012
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCAnyHandle.Id">
            <summary>
   The integer identifier for the handle.
</summary>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCAnyHandle.GetHashCode">
            <summary>
Gets the integer value of the id as hash code
</summary>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCAnyHandle.Equals(System.Object)">
            <summary> Determines whether the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" />.  </summary>
            <param name="obj"> Another object. </param>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCAnyHandle.op_Inequality(Autodesk.Revit.DB.IFC.IFCAnyHandle,Autodesk.Revit.DB.IFC.IFCAnyHandle)">
            <summary>Determines whether two IFCAnyHandles are different.</summary>
            <param name="first">The first IFCAnyHandle.</param>
            <param name="second">The second IFCAnyHandle.</param>
            <returns>True if the IFCAnyHandles are different; otherwise, false.</returns>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCAnyHandle.op_Equality(Autodesk.Revit.DB.IFC.IFCAnyHandle,Autodesk.Revit.DB.IFC.IFCAnyHandle)">
            <summary>Determines whether two IFCAnyHandles are the same.</summary>
            <param name="first">The first IFCAnyHandle.</param>
            <param name="second">The second IFCAnyHandle.</param>
            <returns>True if the IFCAnyHandles are the same; otherwise, false.</returns>
        </member>
        <member name="T:Autodesk.Revit.DB.IFC.IFCAnyHandle">
            <summary>
   A handle representing an item in an IFC file.
</summary>
            <remarks>
   Handles are used to populate each line item in an IFC file.  Each handle is assigned a unique identifier
   (an integer) which can be seen in the file contents at the start of the line.
</remarks>
            <since>
   2012
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCAggregate.GetEnumerator">
            <summary>Returns an enumerator that iterates through a collection.</summary>
            <returns>An IEnumerator object that can be used to iterate through the collection.</returns>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCAggregate.GetBasicIEnumerator">
            <summary>Returns an enumerator that iterates through a collection.</summary>
            <returns>An IEnumerator object that can be used to iterate through the collection.</returns>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCAggregate.GetEDMSelect(System.Int32)">
            <summary>
   Gets the data value in the specified aggregate element.
</summary>
            <param name="index">
   The index.
</param>
            <returns>
   The data value.
</returns>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCAggregate.GetIFCAggregateIterator">
            <summary>
   Returns a IFCAggregateIterator that iterates through the collection.
</summary>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCAggregate.Delete">
            <summary>
   Delete the aggregate object from the IFCFile model.
</summary>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCAggregate.AddAggregate">
            <summary>
   Creates a nested aggregate and adds it to the aggregate.
</summary>
            <returns>
   The nested aggregate.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.InvalidOperationException">
   The aggregate is not valid.
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCAggregate.Add(Autodesk.Revit.DB.IFC.IFCData)">
            <summary>
   Adds an element to the aggregate.
</summary>
            <param name="ifcData">
   The IFCData element.
</param>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <exception cref="T:Autodesk.Revit.Exceptions.InvalidOperationException">
   The aggregate is not valid.
</exception>
            <since>
   2013
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCAggregate.IsValidObject">
            <summary>
   Specifies whether the .NET object represents a valid Revit entity.
</summary>
            <remarks>
   If the corresponding Revit native object is destroyed, or creation of the corresponding object is undone,
   a managed API object containing it is no longer valid. API methods cannot be called on invalidated wrapper objects.
</remarks>
            <returns>
   True if the API object holds a valid Revit native object, false otherwise.
</returns>
            <since>
   2014
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCAggregate.Count">
            <summary>
   The number of the data values in the aggregate.
</summary>
            <since>
   2013
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCAggregate.default(System.Int32)">
            <summary>
   Get the IFCData for this aggregate.
</summary>
            <param name="index">
   The index.
</param>
            <returns>
   The IFCData.
</returns>
        </member>
        <member name="T:Autodesk.Revit.DB.IFC.IFCAggregate">
            <summary>
   A collection of IFC handles or attributes.
</summary>
            <since>
   2013
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCAggregateIterator.CurrentObject">
Gets the item at the current position of the iterator.(Inherited from IEnumerator. Give it another property name to avoid confusing. And make it internal.)
</member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCAggregateIterator.Current">
            <summary>Gets the item at the current position of the iterator. </summary>
            <remarks>There is no current item if the iterator has not started yet or has been done. </remarks>
            <exception cref="T:Autodesk.Revit.Exceptions.InvalidOperationException"> There is no current item in the iterator. </exception>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCAggregateIterator.GetCurrent">
            <summary>
   Returns the current IFCData.
</summary>
            <returns>
   The current IFCData.
</returns>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCAggregateIterator.Reset">
            <summary>
   Resets the iterator to the beginning of the aggregate.
</summary>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCAggregateIterator.MoveNext">
            <summary>
   Increments the iterator to the next object in the IFCAggregate.
</summary>
            <returns>
   True if there is another available object in this iterator.
   False if the iterator has completed all available objects.
</returns>
            <since>
   2013
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCAggregateIterator.IsValidObject">
            <summary>
   Specifies whether the .NET object represents a valid Revit entity.
</summary>
            <remarks>
   If the corresponding Revit native object is destroyed, or creation of the corresponding object is undone,
   a managed API object containing it is no longer valid. API methods cannot be called on invalidated wrapper objects.
</remarks>
            <returns>
   True if the API object holds a valid Revit native object, false otherwise.
</returns>
            <since>
   2014
</since>
        </member>
        <member name="T:Autodesk.Revit.DB.IFC.IFCAggregateIterator">
            <summary>
   A class used to iterate individual objects in an IFCAggregate.
</summary>
            <since>
   2013
</since>
        </member>
        <member name="T:Autodesk.Revit.DB.IFC.IFCProjectLevelGUIDType">
            <summary>
   The type of the GUID to be retrieved from Revit.
</summary>
            <since>
   2013
</since>
        </member>
        <member name="F:Autodesk.Revit.DB.IFC.IFCProjectLevelGUIDType.Site">
            <summary>
   The site GUID.
</summary>
        </member>
        <member name="F:Autodesk.Revit.DB.IFC.IFCProjectLevelGUIDType.Building">
            <summary>
   The building GUID.
</summary>
        </member>
        <member name="F:Autodesk.Revit.DB.IFC.IFCProjectLevelGUIDType.Project">
            <summary>
   The project GUID.
</summary>
        </member>
        <member name="T:Autodesk.Revit.DB.IFC.IFCConnectedWallDataLocation">
            <summary>
   An enumerated type that represents the location where an element is connected to a wall.
</summary>
            <since>
   2012
</since>
        </member>
        <member name="F:Autodesk.Revit.DB.IFC.IFCConnectedWallDataLocation.NotDefined">
            <summary>
   The connection type is not defined for this connection.
</summary>
        </member>
        <member name="F:Autodesk.Revit.DB.IFC.IFCConnectedWallDataLocation.Path">
            <summary>
   The conection is at some point along the path of the location line.
</summary>
        </member>
        <member name="F:Autodesk.Revit.DB.IFC.IFCConnectedWallDataLocation.End">
            <summary>
   The connection is at the end of the wall location line.
</summary>
        </member>
        <member name="F:Autodesk.Revit.DB.IFC.IFCConnectedWallDataLocation.Start">
            <summary>
   The connection is at the start of the wall location line.
</summary>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCData.AsAggregate">
            <summary>
   Gets storage value as IFCAggregate when its PrimitiveType is aggregate.
</summary>
            <returns>
   The IFCAggregate.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.InapplicableDataException">
   The primitive type is not aggregate.
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCData.AsInstance">
            <summary>
   Gets storage value as IFCAnyHandle when its PrimitiveType is instance.
</summary>
            <returns>
   The IFCAnyHandle.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.InapplicableDataException">
   The primitive type is not instance.
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCData.AsString">
            <summary>
   Gets storage value as string when its PrimitiveType is string, binary or enumeration.
</summary>
            <returns>
   The string value.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.InapplicableDataException">
   The primitive type is not string, binary or enumeration.
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCData.AsLogical">
            <summary>
   Gets storage value as IFCLogical when its PrimitiveType is logical.
</summary>
            <returns>
   The IFCLogical value.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.InapplicableDataException">
   The primitive type is not logical.
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCData.AsBoolean">
            <summary>
   Gets storage value as boolean when its PrimitiveType is boolean.
</summary>
            <returns>
   The bool value.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.InapplicableDataException">
   The primitive type is not boolean.
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCData.AsDouble">
            <summary>
   Gets storage value as double when its PrimitiveType is double.
</summary>
            <returns>
   The double value.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.InapplicableDataException">
   The primitive type is not double.
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCData.AsInteger">
            <summary>
   Gets storage value as integer when its PrimitiveType is integer.
</summary>
            <returns>
   The int value.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.InapplicableDataException">
   The primitive type is not integer.
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCData.GetTypeList">
            <summary>
   Gets the multiple strings represent one IFC type name.
</summary>
            <returns>
   The strings.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.InvalidOperationException">
   No type assigned or it is a simple type.
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCData.SetTypeList(System.Collections.Generic.IList`1{System.String})">
            <summary>
   Sets the corresponding IFC type by its type list name.
</summary>
            <remarks>
   This sets the IFC type represented by a string list.
   For example, DIMENSION(DIAMETER(INCH(5.0))). It's primitive type is double and the value is 5.0. Its IFC type is DIMENSION/DIAMETER/INCH.
   The string list represents the type is "DIMENSION"-"DIAMETER"-"INCH".
</remarks>
            <param name="typeList">
   The strings represent the name.
</param>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCData.GetSimpleType">
            <summary>
   Gets the IFC type name.
</summary>
            <returns>
   The name.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.InvalidOperationException">
   No type assigned or it is not a simple type.
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCData.HasSimpleType">
            <summary>
   Determines if there is one corresponding IFC type.
</summary>
            <returns>
   False if there are no corresponding IFC types, or more than one; returns true otherwise.
</returns>
            <since>
   2015
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCData.SetSimpleType(System.String)">
            <summary>
   Sets the corresponding IFC type by its name.
</summary>
            <param name="typeName">
   The name of the type.
</param>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCData.CreateStringOfType(System.String,System.String)">
            <summary>
   Creates a string data object of the specified type.
</summary>
            <param name="value">
   The string value.
</param>
            <param name="typeName">
   The type name.
</param>
            <returns>
   The IFCData object.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCData.CreateLogicalOfType(Autodesk.Revit.DB.IFC.IFCLogical,System.String)">
            <summary>
   Creates a logical data object of the specified type.
</summary>
            <param name="value">
   The IFCLogical value.
</param>
            <param name="typeName">
   The type name.
</param>
            <returns>
   The IFCData object.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentOutOfRangeException">
   A value passed for an enumeration argument is not a member of that enumeration
</exception>
            <since>
   2014
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCData.CreateBooleanOfType(System.Boolean,System.String)">
            <summary>
   Creates a boolean data object of the specified type.
</summary>
            <param name="value">
   The boolean value.
</param>
            <param name="typeName">
   The type name.
</param>
            <returns>
   The IFCData object.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCData.CreateDoubleOfType(System.Double,System.String)">
            <summary>
   Creates a double data object of the specified type.
</summary>
            <param name="value">
   The double value.
</param>
            <param name="typeName">
   The type name.
</param>
            <returns>
   The IFCData object.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCData.CreateIntegerOfType(System.Int32,System.String)">
            <summary>
   Creates an integer data object of the specified type.
</summary>
            <param name="value">
   The integer value.
</param>
            <param name="typeName">
   The type name.
</param>
            <returns>
   The IFCData object.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCData.CreateIFCAggregate(Autodesk.Revit.DB.IFC.IFCAggregate)">
            <summary>
   Creates an IFCAggregate data object.
</summary>
            <param name="value">
   The IFCAggregate value.
</param>
            <returns>
   The IFCData object.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCData.CreateIFCAnyHandle(Autodesk.Revit.DB.IFC.IFCAnyHandle)">
            <summary>
   Creates an IFCAnyHandle data object.
</summary>
            <param name="value">
   The IFCAnyHandle value.
</param>
            <returns>
   The IFCData object.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCData.CreateEnumeration(System.String)">
            <summary>
   Creates a enum data object.
</summary>
            <param name="value">
   The string value.
</param>
            <returns>
   The IFCData object.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCData.CreateBinary(System.String)">
            <summary>
   Creates a binary data object.
</summary>
            <param name="value">
   The string value.
</param>
            <returns>
   The IFCData object.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCData.CreateString(System.String)">
            <summary>
   Creates a string data object.
</summary>
            <param name="value">
   The string value.
</param>
            <returns>
   The IFCData object.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCData.CreateLogical(Autodesk.Revit.DB.IFC.IFCLogical)">
            <summary>
   Creates a logical data object.
</summary>
            <param name="value">
   The IFCLogical value.
</param>
            <returns>
   The IFCData object.
</returns>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentOutOfRangeException">
   A value passed for an enumeration argument is not a member of that enumeration
</exception>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCData.CreateBoolean(System.Boolean)">
            <summary>
   Creates a boolean data object.
</summary>
            <param name="value">
   The boolean value.
</param>
            <returns>
   The IFCData object.
</returns>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCData.CreateDouble(System.Double)">
            <summary>
   Creates a double data object.
</summary>
            <param name="value">
   The double value.
</param>
            <returns>
   The IFCData object.
</returns>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCData.CreateInteger(System.Int32)">
            <summary>
   Creates an integer data object.
</summary>
            <param name="value">
   The integer value.
</param>
            <returns>
   The IFCData object.
</returns>
            <since>
   2013
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCData.IsValidObject">
            <summary>
   Specifies whether the .NET object represents a valid Revit entity.
</summary>
            <remarks>
   If the corresponding Revit native object is destroyed, or creation of the corresponding object is undone,
   a managed API object containing it is no longer valid. API methods cannot be called on invalidated wrapper objects.
</remarks>
            <returns>
   True if the API object holds a valid Revit native object, false otherwise.
</returns>
            <since>
   2014
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCData.PrimitiveType">
            <summary>
   The primitive data type.
</summary>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentOutOfRangeException">
   When setting this property: A value passed for an enumeration argument is not a member of that enumeration
</exception>
            <since>
   2013
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.IFCData.HasValue">
            <summary>
   Identifies if the data is empty or contains a value.
</summary>
            <since>
   2013
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCData.GetHashCode">
            <summary>
Gets the hash code.
</summary>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCData.Equals(System.Object)">
            <summary> Determines whether the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" />.  </summary>
            <param name="obj"> Another object. </param>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCData.op_Inequality(Autodesk.Revit.DB.IFC.IFCData,Autodesk.Revit.DB.IFC.IFCData)">
            <summary>Determines whether two IFCDatas are different.</summary>
            <param name="first">The first IFCData.</param>
            <param name="second">The second IFCData.</param>
            <returns>True if the IFCDatas are different; otherwise, false.</returns>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCData.op_Equality(Autodesk.Revit.DB.IFC.IFCData,Autodesk.Revit.DB.IFC.IFCData)">
            <summary>Determines whether two IFCDatas are the same.</summary>
            <param name="first">The first IFCData.</param>
            <param name="second">The second IFCData.</param>
            <returns>True if the IFCDatas are the same; otherwise, false.</returns>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IFCData.#ctor(Autodesk.Revit.DB.IFC.IFCData)">
            <summary>
   Creates a copy object.
</summary>
            <param name="from">
   The IFCData object.
</param>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2013
</since>
        </member>
        <member name="T:Autodesk.Revit.DB.IFC.IFCData">
            <summary>
   A specialized type of abstract data block that can represent any data type.
</summary>
            <since>
   2013
</since>
        </member>
        <member name="T:Autodesk.Revit.DB.IFC.IFCDataPrimitiveType">
            <summary>
   Used in operations to specify the primitive type of an IFCData.
</summary>
            <since>
   2013
</since>
        </member>
        <member name="F:Autodesk.Revit.DB.IFC.IFCDataPrimitiveType.Unknown">
            <summary>
   Unknown.
</summary>
        </member>
        <member name="F:Autodesk.Revit.DB.IFC.IFCDataPrimitiveType.Aggregate">
            <summary>
   Represents IFCAggregate.
</summary>
        </member>
        <member name="F:Autodesk.Revit.DB.IFC.IFCDataPrimitiveType.Instance">
            <summary>
   Represents IFCAnyHandle.
</summary>
        </member>
        <member name="F:Autodesk.Revit.DB.IFC.IFCDataPrimitiveType.Enumeration">
            <summary>
   Enumeration.
   When reading or writing an IFCData of primitive type Enumeration,
   the value will be the string representation of the enumeration value
   as seen in the IFC specification.
</summary>
        </member>
        <member name="F:Autodesk.Revit.DB.IFC.IFCDataPrimitiveType.Binary">
            <summary>
   Binary.
   When reading or writing an IFCData of primitive type Binary,
   the value will be the string representation of the binary value
   as seen in the IFC specification.
</summary>
        </member>
        <member name="F:Autodesk.Revit.DB.IFC.IFCDataPrimitiveType.String">
            <summary>
   String.
</summary>
        </member>
        <member name="F:Autodesk.Revit.DB.IFC.IFCDataPrimitiveType.Logical">
            <summary>
   IFCLogical type.
</summary>
        </member>
        <member name="F:Autodesk.Revit.DB.IFC.IFCDataPrimitiveType.Boolean">
            <summary>
   Boolean.
</summary>
        </member>
        <member name="F:Autodesk.Revit.DB.IFC.IFCDataPrimitiveType.Double">
            <summary>
   Double.
</summary>
        </member>
        <member name="F:Autodesk.Revit.DB.IFC.IFCDataPrimitiveType.Integer">
            <summary>
   Integer.
</summary>
        </member>
        <member name="T:Autodesk.Revit.DB.IFC.IFCLogical">
            <summary>
   A datatype can have values TRUE, FALSE or UNKNOWN.
</summary>
            <since>
   2013
</since>
        </member>
        <member name="F:Autodesk.Revit.DB.IFC.IFCLogical.Unknown">
            <summary>
   Unknown.
</summary>
        </member>
        <member name="F:Autodesk.Revit.DB.IFC.IFCLogical.False">
            <summary>
   False.
</summary>
        </member>
        <member name="F:Autodesk.Revit.DB.IFC.IFCLogical.True">
            <summary>
   True.
</summary>
        </member>
        <member name="M:ServerPath.#ctor">
            <summary>
A path to a Revit model stored on a Revit server.
</summary>
        </member>
        <member name="M:FilePath.#ctor">
            <summary>
A path to a Revit model stored on disk.
</summary>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ImporterIFC.SetFile(Autodesk.Revit.DB.IFC.IFCFile)">
            <summary>
   Sets the handle to the IFC file being created during this import operation.
</summary>
            <param name="file">
   The handle to the file.
</param>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2014
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ImporterIFC.ProcessIFCProject(Autodesk.Revit.DB.IFC.IFCAnyHandle,System.Collections.Generic.IDictionary`2{Autodesk.Revit.DB.IFC.IFCAnyHandle,Autodesk.Revit.DB.ElementId})">
            <summary>
   The entry point to the native IFC import function.  Processes the main IfcProject and creates appropriate Revit elements.
</summary>
            <remarks>
   This function allows for a "hybrid" .NET/native import.  For any handle below, there will be no native processing,
   and it will be assumed that the element created in .NET is valid and appropriate.  Note that this is only applicable
   for IFCAnyHandles that are subtypes of IfcProduct and IfcBuildingElementStorey; other handles will be ignored.
   Also, note that some elements have interdependencies that are not yet handled by this function.  These include:
   1. IfcDoor/IfcWindow and their IfcOpeningElements and 2D representations should both be created in the same environment (.NET or native).
   2. Symbols and their instances should both be created in the same environment (.NET or native).
</remarks>
            <param name="ifcProject">
   The IfcProject containing the entities in the IFC file.
</param>
            <param name="createdElements">
   The element ids for the already created elements.  These handles will not be processed in native code.
</param>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2015
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ImporterIFC.ProcessIFCProject(Autodesk.Revit.DB.IFC.IFCAnyHandle)">
            <summary>
   The entry point to the native IFC import function.  Processes the main IfcProject and creates appropriate Revit elements.
</summary>
            <param name="ifcProject">
   The IfcProject containing the entities in the IFC file.
</param>
            <exception cref="T:Autodesk.Revit.Exceptions.ArgumentNullException">
   A non-optional argument was NULL
</exception>
            <since>
   2014
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.ImporterIFC.GetOptions">
            <summary>
   Gets the collection of named options set by the importer client.
</summary>
            <returns>
   The collection of named options.
</returns>
            <since>
   2015
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.ImporterIFC.IsValidObject">
            <summary>
   Specifies whether the .NET object represents a valid Revit entity.
</summary>
            <remarks>
   If the corresponding Revit native object is destroyed, or creation of the corresponding object is undone,
   a managed API object containing it is no longer valid. API methods cannot be called on invalidated wrapper objects.
</remarks>
            <returns>
   True if the API object holds a valid Revit native object, false otherwise.
</returns>
            <since>
   2014
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.ImporterIFC.Document">
            <summary>
   Gets the document associated with the import.
</summary>
            <since>
   2015
</since>
        </member>
        <member name="P:Autodesk.Revit.DB.IFC.ImporterIFC.FullFileName">
            <summary>
   The full file name of the IFC file to be import.
</summary>
            <since>
   2014
</since>
        </member>
        <member name="T:Autodesk.Revit.DB.IFC.ImporterIFC">
            <summary>
   The main class provided by Revit to allow implementation of IFC import.
</summary>
            <remarks>
   An instance of this class is provided to clients which implement IImporterIFC
   in order to provide an implementation for IFC import.  It contains information
   on the options selected by the user for the import operation, as well as
   members used to access specific types of data needed to implement the import
   properly.
</remarks>
            <since>
   2014
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IIFCImporterServerProxy.ImportIFC(Autodesk.Revit.DB.IFC.ImporterIFC)">
            <summary>
   The method that Revit will invoke to perform an import from IFC.
</summary>
            <param name="importer">
   The IFC importer.
</param>
            <since>
   2014
</since>
        </member>
        <member name="M:Autodesk.Revit.DB.IFC.IIFCImporterServer.ImportIFC(Autodesk.Revit.DB.IFC.ImporterIFC)">
            <summary>
   The method that Revit will invoke to perform an import from IFC.
</summary>
            <param name="importer">
   The IFC importer.
</param>
            <since>
   2014
</since>
        </member>
        <member name="T:Autodesk.Revit.DB.IFC.IIFCImporterServer">
            <summary>
   Interface for external servers implementing IFC import.
</summary>
            <since>
   2014
</since>
        </member>
        <member name="M:vecsAreParallelExact(XYZ!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced,XYZ!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced)">
Determines whether vectors are parallel within DOUBLE_EPS 
Returns: if parallel =&gt; 1
         if not or if either is {0,0,0}. =&gt; 0
         if antiparallel =&gt; -1
</member>
        <member name="M:vecsAreParallelApprox(XYZ!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced,XYZ!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced)">
Determines whether vectors are parallel within ANGLE_EPS 
Returns: if parallel =&gt; 1
         if not or if either is {0,0,0}. =&gt; 0
         if antiparallel =&gt; -1
</member>
        <member name="M:almostEqual(XYZ!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced,XYZ!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced)">
Returns true when the two vectors are almost equal.
NOTE that the applied tolerance scales with the length of the 
vectors.  USE WITH CAUTION.
</member>
        <member name="M:tripleProduct(XYZ!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced,XYZ!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced,XYZ!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced)">
The triple product of of three vectors vec0, vec1, vec2 is defined as
   dot(cross(vec0, vec1), vec2).

It is equal to the signed volume of the parallelepiped spanned by the three vectors.
It is zero if and only if the vectors are linearly dependent. This function is equivalent
to the Vec3d function vecVolume.
</member>
        <member name="M:cross(XYZ!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced,XYZ!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced)">
Treats lhs and rhs as vectors and returns their cross product.
</member>
        <member name="M:dot(XYZ!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced,XYZ!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced)">
Treats lhs and rhs as vectors and returns their dot product.
</member>
        <member name="M:XYZ.normalized">
returns a parallel unit vector or zero vector
</member>
        <member name="M:XYZ.unit">
make this a unit vector or return ERR_NULL_VECTOR
</member>
        <member name="M:XYZ.#ctor(System.Double,System.Double,System.Double)">
construct XYZ from components
</member>
        <member name="M:XYZ.#ctor(System.Double!System.Runtime.CompilerServices.IsConst*)">
construct XYZ from Vec3d
</member>
        <member name="M:XYZ.basisZ">
returns a unit vector in the Z-direction (0, 0, 1)
</member>
        <member name="M:XYZ.basisY">
returns a unit vector in the Y-direction (0, 1, 0)
</member>
        <member name="M:XYZ.basisX">
returns a unit vector in the X-direction (1, 0, 0)
</member>
        <member name="M:XYZ.zero">
returns (0, 0, 0)
</member>
        <member name="M:XYZ.#ctor">
literal constructors. expect heavy optimization.
</member>
        <member name="T:XYZ">

A self-initializing 3d point/vector class.

Notes:
This is intended to be a drop-in replacement for Vec3d.  This means transparent operations with
Vec3d, AKA double*, methods.  This means the compiler may not catch some type errors.

XYZ can be returned by value because the worst that can happen is gratuitous copying of 24
bytes, and we can live with it. In general, we let the compiler figure out the temporary
storage and optimize inline functions.

</member>
        <member name="F:CBitmapRenderTarget.m_pBitmapRenderTarget">
            <summary>
A pointer to an ID2D1BitmapRenderTarget object.
</summary>
        </member>
        <member name="M:CBitmapRenderTarget.GetBitmap(CD2DBitmap*!System.Runtime.CompilerServices.IsImplicitlyDereferenced)">
            <summary>
Retrieves the bitmap for this render target. The returned bitmap can be used for drawing operations. </summary>
            <returns>If the method succeeds, it returns TRUE. Otherwise, it returns FALSE.</returns>
            <param name="bitmap">When this method returns, contains the valid bitmap for this render target. This bitmap can be used for drawing operations.</param>
        </member>
        <member name="M:CBitmapRenderTarget.op_Implicit~ID2D1BitmapRenderTarget*">
            <summary>
Returns ID2D1BitmapRenderTarget interface</summary>
            <returns> 
Pointer to an ID2D1BitmapRenderTarget interface or NULL if object is not initialized yet.</returns>
        </member>
        <member name="M:CBitmapRenderTarget.GetBitmapRenderTarget">
            <summary>
Returns ID2D1BitmapRenderTarget interface</summary>
            <returns> 
Pointer to an ID2D1BitmapRenderTarget interface or NULL if object is not initialized yet.</returns>
        </member>
        <member name="M:CBitmapRenderTarget.Detach">
            <summary>
Detaches render target interface from the object</summary>
            <returns> 
Pointer to detached render target interface.</returns>
        </member>
        <member name="M:CBitmapRenderTarget.Attach(ID2D1BitmapRenderTarget*)">
            <summary>
Attaches existing render target interface to the object</summary>
            <param name="pTarget">Existing render target interface. Cannot be NULL</param>
        </member>
        <member name="M:CBitmapRenderTarget.#ctor">
            <summary>
Constructs a CBitmapRenderTarget object.</summary>
        </member>
        <member name="F:CDCRenderTarget.m_pDCRenderTarget">
            <summary>
A pointer to an ID2D1DCRenderTarget object.
</summary>
        </member>
        <member name="M:CDCRenderTarget.op_Implicit~ID2D1DCRenderTarget*">
            <summary>
Returns ID2D1DCRenderTarget interface</summary>
            <returns> 
Pointer to an ID2D1DCRenderTarget interface or NULL if object is not initialized yet.</returns>
        </member>
        <member name="M:CDCRenderTarget.GetDCRenderTarget">
            <summary>
Returns ID2D1DCRenderTarget interface</summary>
            <returns> 
Pointer to an ID2D1DCRenderTarget interface or NULL if object is not initialized yet.</returns>
        </member>
        <member name="M:CDCRenderTarget.BindDC(CDC!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced,CRect!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced)">
            <summary>
Binds the render target to the device context to which it issues drawing commands</summary>
            <returns>If the method succeeds, it returns TRUE. Otherwise, it returns FALSE.</returns>
            <param name="dc">The device context to which the render target issues drawing commands</param>
            <param name="rect">The dimensions of the handle to a device context (HDC) to which the render target is bound</param>
        </member>
        <member name="M:CDCRenderTarget.Create(D2D1_RENDER_TARGET_PROPERTIES!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced)">
            <summary>
Creates a CDCRenderTarget.</summary>
            <returns>
If the method succeeds, it returns TRUE. Otherwise, it returns FALSE.</returns>
            <param name="props">The rendering mode, pixel format, remoting options, DPI information, and the minimum DirectX support required for hardware rendering.</param>
        </member>
        <member name="M:CDCRenderTarget.Detach">
            <summary>
Detaches render target interface from the object</summary>
            <returns> 
Pointer to detached render target interface.</returns>
        </member>
        <member name="M:CDCRenderTarget.Attach(ID2D1DCRenderTarget*)">
            <summary>
Attaches existing render target interface to the object</summary>
            <param name="pTarget">Existing render target interface. Cannot be NULL</param>
        </member>
        <member name="M:CDCRenderTarget.#ctor">
            <summary>
Constructs a CDCRenderTarget object.</summary>
        </member>
        <member name="T:CDCRenderTarget">
            <summary>
ID2D1DCRenderTarget wrapper.
</summary>
        </member>
        <member name="F:CHwndRenderTarget.m_pHwndRenderTarget">
            <summary>
A pointer to an ID2D1HwndRenderTarget object.
</summary>
        </member>
        <member name="M:CHwndRenderTarget.Resize(CD2DSizeU!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced)">
            <summary>
Changes the size of the render target to the specified pixel size</summary>
            <returns>If the method succeeds, it returns TRUE. Otherwise, it returns FALSE.</returns>
            <param name="size">The new size of the render target in device pixels</param>
        </member>
        <member name="M:CHwndRenderTarget.CheckWindowState">
            <summary>
Indicates whether the HWND associated with this render target is occluded.</summary>
            <returns>
A value that indicates whether the HWND associated with this render target is occluded.</returns>
        </member>
        <member name="M:CHwndRenderTarget.GetHwnd">
            <summary>
Returns the HWND associated with this render target.</summary>
            <returns>
The HWND associated with this render target.</returns>
        </member>
        <member name="M:CHwndRenderTarget.op_Implicit~ID2D1HwndRenderTarget*">
            <summary>
Returns ID2D1HwndRenderTarget interface.</summary>
            <returns>
Pointer to an ID2D1HwndRenderTarget interface or NULL if object is not initialized yet.</returns>
        </member>
        <member name="M:CHwndRenderTarget.GetHwndRenderTarget">
            <summary>
Returns ID2D1HwndRenderTarget interface.</summary>
            <returns>
Pointer to an ID2D1HwndRenderTarget interface or NULL if object is not initialized yet.</returns>
        </member>
        <member name="M:CHwndRenderTarget.ReCreate(HWND__*)">
            <summary>
Re-creates a render target associated with the window</summary>
            <returns>If the method succeeds, it returns TRUE. Otherwise, it returns FALSE.</returns>
            <param name="hWnd">The HWND associated with this render target</param>
        </member>
        <member name="M:CHwndRenderTarget.Create(HWND__*)">
            <summary>
Creates a render target associated with the window </summary>
            <returns>If the method succeeds, it returns TRUE. Otherwise, it returns FALSE</returns>
            <param name="hWnd">The HWND associated with this render target</param>
        </member>
        <member name="M:CHwndRenderTarget.Detach">
            <summary>
Detaches render target interface from the object</summary>
            <returns> 
Pointer to detached render target interface.</returns>
        </member>
        <member name="M:CHwndRenderTarget.Attach(ID2D1HwndRenderTarget*)">
            <summary>
Attaches existing render target interface to the object</summary>
            <param name="pTarget">Existing render target interface. Cannot be NULL</param>
        </member>
        <member name="M:CHwndRenderTarget.#ctor(HWND__*)">
            <summary>
Constructs a CHwndRenderTarget object from HWND.</summary>
            <param name="hwnd">The HWND associated with this render target</param>
        </member>
        <member name="T:CHwndRenderTarget">
            <summary>
ID2D1HwndRenderTarget wrapper.
</summary>
        </member>
        <member name="F:CRenderTarget.m_pTextFormatDefault">
            <summary>
A pointer to CD2DTextFormat object that contains a default text format.
</summary>
        </member>
        <member name="F:CRenderTarget.m_lstResources">
            <summary>
A list of pointers to CD2DResource objects.
</summary>
        </member>
        <member name="F:CRenderTarget.m_pRenderTarget">
            <summary>
A pointer to an ID2D1RenderTarget object.
</summary>
        </member>
        <member name="M:CRenderTarget.VerifyResource(CD2DResource*)">
            <summary>
Verifies CD2DResource object validity; creates the object if it didn't already exist.</summary>
            <param name="pResource">Pointer to CD2DResource object.</param>
            <returns> 
TRUE is object if valid; otherwise FALSE.</returns>
        </member>
        <member name="M:CRenderTarget.PopAxisAlignedClip">
            <summary>
Removes the last axis-aligned clip from the render target. After this method is called, the clip is no longer applied to subsequent drawing operations.</summary>
        </member>
        <member name="M:CRenderTarget.PushAxisAlignedClip(CD2DRectF!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced,D2D1_ANTIALIAS_MODE)">
            <summary>
Removes the last axis-aligned clip from the render target. After this method is called, the clip is no longer applied to subsequent drawing operations.</summary>
            <param name="rectClip">The size and position of the clipping area, in device-independent pixels.</param>
            <param name="mode">The antialiasing mode that is used to draw the edges of clip rects that have subpixel boundaries, and to blend the clip with the scene contents. The blending is performed once when the PopAxisAlignedClip method is called, and does not apply to each primitive within the layer.</param>
        </member>
        <member name="M:CRenderTarget.RestoreDrawingState(ID2D1DrawingStateBlock*!System.Runtime.CompilerServices.IsImplicitlyDereferenced)">
            <summary>
Sets the render target's drawing state to that of the specified ID2D1DrawingStateBlock.</summary>
            <param name="drawingStateBlock">The new drawing state of the render target.</param>
        </member>
        <member name="M:CRenderTarget.SaveDrawingState(ID2D1DrawingStateBlock*!System.Runtime.CompilerServices.IsImplicitlyDereferenced)">
            <summary>
Saves the current drawing state to the specified ID2D1DrawingStateBlock.</summary>
            <param name="drawingStateBlock">When this method returns, contains the current drawing state of the render target. This parameter must be initialized before passing it to the method.</param>
        </member>
        <member name="M:CRenderTarget.Flush(System.UInt64*,System.UInt64*)">
            <summary>
Executes all pending drawing commands.</summary>
            <param name="tag1">Contains the tag for drawing operations that caused errors or 0 if there were no errors. This parameter is passed uninitialized.</param>
            <param name="tag2">Contains the tag for drawing operations that caused errors or 0 if there were no errors. This parameter is passed uninitialized.</param>
        </member>
        <member name="M:CRenderTarget.PopLayer">
            <summary>
Stops redirecting drawing operations to the layer that is specified by the last PushLayer call.</summary>
        </member>
        <member name="M:CRenderTarget.PushLayer(D2D1_LAYER_PARAMETERS!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced,CD2DLayer*!System.Runtime.CompilerServices.IsImplicitlyDereferenced)">
            <summary>
Adds the specified layer to the render target so that it receives all subsequent drawing operations until PopLayer is called.</summary>
            <param name="layerParameters">The content bounds, geometric mask, opacity, opacity mask, and antialiasing options for the layer.</param>
            <param name="layer">The layer that receives subsequent drawing operations.</param>
        </member>
        <member name="M:CRenderTarget.CreateCompatibleRenderTarget(CBitmapRenderTarget*!System.Runtime.CompilerServices.IsImplicitlyDereferenced,CD2DSizeF,CD2DSizeU,D2D1_PIXEL_FORMAT*,D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS)">
            <summary>
Creates a new bitmap render target for use during intermediate offscreen drawing that is compatible with the current render target .</summary>
            <returns>If the method succeeds, it returns TRUE. Otherwise, it returns FALSE.</returns>
            <param name="bitmapTarget">When this method returns, contains the address of a pointer to a new bitmap render target. This parameter is passed uninitialized.</param>
            <param name="sizeDesired">The desired size of the new render target in device-independent pixels if it should be different from the original render target, or NULL. For more information, see the Remarks section.</param>
            <param name="sizePixelDesired">The desired size of the new render target in pixels if it should be different from the original render target, or NULL. For more information, see the Remarks section.</param>
            <param name="desiredFormat">The desired pixel format and alpha mode of the new render target, or NULL. If the pixel format is set to DXGI_FORMAT_UNKNOWN or if this parameter is null, the new render target uses the same pixel format as the original render target. If the alpha mode is D2D1_ALPHA_MODE_UNKNOWN or this parameter is NULL, the alpha mode of the new render target defaults to D2D1_ALPHA_MODE_PREMULTIPLIED. For information about supported pixel formats, see Supported Pixel Formats and Alpha Modes.</param>
            <param name="options">A value that specifies whether the new render target must be compatible with GDI.</param>
        </member>
        <member name="M:CRenderTarget.GetTransform(D2D_MATRIX_3X2_F*)">
            <summary>
Applies the specified transform to the render target, replacing the existing transformation. All subsequent drawing operations occur in the transformed space.</summary>
            <param name="transform">The transform to apply to the render target.</param>
        </member>
        <member name="M:CRenderTarget.SetTransform(D2D_MATRIX_3X2_F!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced)">
            <summary>
Applies the specified transform to the render target, replacing the existing transformation. All subsequent drawing operations occur in the transformed space.</summary>
            <param name="transform">The transform to apply to the render target.</param>
        </member>
        <member name="M:CRenderTarget.SetTransform(D2D_MATRIX_3X2_F!System.Runtime.CompilerServices.IsConst*)">
            <summary>
Applies the specified transform to the render target, replacing the existing transformation. All subsequent drawing operations occur in the transformed space.</summary>
            <param name="transform">The transform to apply to the render target.</param>
        </member>
        <member name="M:CRenderTarget.GetTextRenderingParams(IDWriteRenderingParams**)">
            <summary>
Retrieves the render target's current text rendering options.</summary>
            <param name="textRenderingParams">When this method returns, textRenderingParamscontains the address of a pointer to the render target's current text rendering options.</param>
        </member>
        <member name="M:CRenderTarget.SetTextRenderingParams(IDWriteRenderingParams*)">
            <summary>
Specifies text rendering options to be applied to all subsequent text and glyph drawing operations.</summary>
            <param name="textRenderingParams">The text rendering options to be applied to all subsequent text and glyph drawing operations; NULL to clear current text rendering options.</param>
        </member>
        <member name="M:CRenderTarget.GetTextAntialiasMode">
            <summary>
Gets the current antialiasing mode for text and glyph drawing operations.</summary>
            <returns>
Current antialiasing mode for text and glyph drawing operations.</returns>
        </member>
        <member name="M:CRenderTarget.SetTextAntialiasMode(D2D1_TEXT_ANTIALIAS_MODE)">
            <summary>
Specifies the antialiasing mode to use for subsequent text and glyph drawing operations.</summary>
            <param name="textAntialiasMode">The antialiasing mode to use for subsequent text and glyph drawing operations.</param>
        </member>
        <member name="M:CRenderTarget.GetAntialiasMode">
            <summary>
Retrieves the current antialiasing mode for nontext drawing operations.</summary>
            <returns>
Current antialiasing mode for nontext drawing operations.</returns>
        </member>
        <member name="M:CRenderTarget.SetAntialiasMode(D2D1_ANTIALIAS_MODE)">
            <summary>
Sets the antialiasing mode of the render target. The antialiasing mode applies to all subsequent drawing operations, excluding text and glyph drawing operations.</summary>
            <param name="antialiasMode">The antialiasing mode for future drawing operations.</param>
        </member>
        <member name="M:CRenderTarget.FillMesh(CD2DMesh*,CD2DBrush*)">
            <summary>
Paints the interior of the specified mesh.</summary>
            <param name="pMesh">The mesh to paint.</param>
            <param name="pBrush">The brush used to paint the mesh.</param>
        </member>
        <member name="M:CRenderTarget.DrawGlyphRun(CD2DPointF!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced,DWRITE_GLYPH_RUN!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced,CD2DBrush*,DWRITE_MEASURING_MODE)">
            <summary>
Draws the specified glyphs.</summary>
            <param name="ptBaseLineOrigin">The origin, in device-independent pixels, of the glyphs' baseline.</param>
            <param name="glyphRun">The glyphs to render.</param>
            <param name="pForegroundBrush">The brush used to paint the specified glyphs.</param>
            <param name="measuringMode">A value that indicates how glyph metrics are used to measure text when it is formatted. The default value is DWRITE_MEASURING_MODE_NATURAL.</param>
        </member>
        <member name="M:CRenderTarget.FillGeometry(CD2DGeometry*,CD2DBrush*,CD2DBrush*)">
            <summary>
Paints the interior of the specified geometry.</summary>
            <param name="pGeometry">The geometry to paint.</param>
            <param name="pBrush">The brush used to paint the geometry's interior.</param>
            <param name="pOpacityBrush">The opacity mask to apply to the geometry;NULL for no opacity mask. If an opacity mask (the opacityBrush parameter) is specified, brush must be an ID2D1BitmapBrush that has its x- and y-extend modes set to D2D1_EXTEND_MODE_CLAMP. For more information, see the Remarks section.</param>
        </member>
        <member name="M:CRenderTarget.DrawGeometry(CD2DGeometry*,CD2DBrush*,System.Single,ID2D1StrokeStyle*)">
            <summary>
Draws the outline of the specified geometry using the specified stroke style.</summary>
            <param name="pGeometry">The geometry to draw.</param>
            <param name="pBrush">The brush used to paint the geometry's stroke.</param>
            <param name="fStrokeWidth">The thickness of the geometry's stroke. The stroke is centered on the geometry's outline.</param>
            <param name="strokeStyle">The style of stroke to apply to the geometry's outline, or NULL to paint a solid stroke.</param>
        </member>
        <member name="M:CRenderTarget.DrawBitmap(CD2DBitmap*,CD2DRectF!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced,System.Single,D2D1_BITMAP_INTERPOLATION_MODE,CD2DRectF!System.Runtime.CompilerServices.IsConst*)">
            <summary>
Draws the formatted text described by the specified IDWriteTextLayout object.</summary>
            <param name="pBitmap">The bitmap to render.</param>
            <param name="rectDest">The size and position, in device-independent pixels in the render target's coordinate space, of the area to which the bitmap is drawn. If the rectangle is not well-ordered, nothing is drawn, but the render target does not enter an error state.</param>
            <param name="fOpacity">A value between 0.0f and 1.0f, inclusive, that specifies an opacity value to apply to the bitmap; this value is multiplied against the alpha values of the bitmap's contents.</param>
            <param name="interpolationMode">The interpolation mode to use if the bitmap is scaled or rotated by the drawing operation.</param>
            <param name="pRectSrc">The size and position, in device-independent pixels in the bitmap's coordinate space, of the area within the bitmap to draw.</param>
        </member>
        <member name="M:CRenderTarget.DrawTextLayout(CD2DPointF!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced,CD2DTextLayout*,CD2DBrush*,D2D1_DRAW_TEXT_OPTIONS)">
            <summary>
Draws the formatted text described by the specified IDWriteTextLayout object.</summary>
            <param name="ptOrigin">The point, described in device-independent pixels, at which the upper-left corner of the text described by textLayout is drawn.</param>
            <param name="textLayout">The formatted text to draw. Any drawing effects that do not inherit from ID2D1Resource are ignored. If there are drawing effects that inherit from ID2D1Resource that are not brushes, this method fails and the render target is put in an error state.</param>
            <param name="pBrushForeground">The brush used to paint any text in textLayout that does not already have a brush associated with it as a drawing effect (specified by the IDWriteTextLayout::SetDrawingEffect method).</param>
            <param name="options">A value that indicates whether the text should be snapped to pixel boundaries and whether the text should be clipped to the layout rectangle. The default value is D2D1_DRAW_TEXT_OPTIONS_NONE, which indicates that text should be snapped to pixel boundaries and it should not be clipped to the layout rectangle.</param>
        </member>
        <member name="M:CRenderTarget.DrawText(ATL.CStringT&lt;System.Char,StrTraitMFC_DLL&lt;System.Char,ATL.ChTraitsCRT{System.Char}&gt;&gt;!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced,CD2DRectF!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced,CD2DBrush*,CD2DTextFormat*,D2D1_DRAW_TEXT_OPTIONS,DWRITE_MEASURING_MODE)">
            <summary>
Draws the specified text using the format information provided by an IDWriteTextFormat object.</summary>
            <param name="strText">A pointer to an array of Unicode characters to draw.</param>
            <param name="rect">The size and position of the area in which the text is drawn.</param>
            <param name="pForegroundBrush">The brush used to paint the text.</param>
            <param name="textFormat">An object that describes formatting details of the text to draw, such as the font, the font size, and flow direction.</param>
            <param name="options">A value that indicates whether the text should be snapped to pixel boundaries and whether the text should be clipped to the layout rectangle. The default value is D2D1_DRAW_TEXT_OPTIONS_NONE, which indicates that text should be snapped to pixel boundaries and it should not be clipped to the layout rectangle.</param>
            <param name="measuringMode">A value that indicates how glyph metrics are used to measure text when it is formatted. The default value is DWRITE_MEASURING_MODE_NATURAL.</param>
        </member>
        <member name="M:CRenderTarget.FillOpacityMask(CD2DBitmap*,CD2DBrush*,D2D1_OPACITY_MASK_CONTENT,CD2DRectF!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced,CD2DRectF!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced)">
            <summary>
Applies the opacity mask described by the specified bitmap to a brush and uses that brush to paint a region of the render target.</summary>
            <param name="pOpacityMask">The position and radius, in device-independent pixels, of the ellipse to paint.</param>
            <param name="pBrush">The brush used to paint the region of the render target specified by destinationRectangle.</param>
            <param name="content">The type of content the opacity mask contains. The value is used to determine the color space in which the opacity mask is blended.</param>
            <param name="rectDest">The region of the render target to paint, in device-independent pixels.</param>
            <param name="rectSrc">The region of the bitmap to use as the opacity mask, in device-independent pixels.</param>
        </member>
        <member name="M:CRenderTarget.DrawLine(CD2DPointF!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced,CD2DPointF!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced,CD2DBrush*,System.Single,ID2D1StrokeStyle*)">
            <summary>
Draws a line between the specified points using the specified stroke style.</summary>
            <param name="ptFrom">The start point of the line, in device-independent pixels.</param>
            <param name="ptTo">The end point of the line, in device-independent pixels.</param>
            <param name="pBrush">The brush used to paint the line's stroke.</param>
            <param name="fStrokeWidth">A value greater than or equal to 0.0f that specifies the width of the stroke. If this parameter isn't specified, it defaults to 1.0f. The stroke is centered on the line.</param>
            <param name="strokeStyle">The style of stroke to paint, or NULL to paint a solid line.</param>
        </member>
        <member name="M:CRenderTarget.FillEllipse(CD2DEllipse!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced,CD2DBrush*)">
            <summary>
Paints the interior of the specified ellipse.</summary>
            <param name="ellipse">The position and radius, in device-independent pixels, of the ellipse to paint.</param>
            <param name="pBrush">The brush used to paint the interior of the ellipse.</param>
        </member>
        <member name="M:CRenderTarget.DrawEllipse(CD2DEllipse!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced,CD2DBrush*,System.Single,ID2D1StrokeStyle*)">
            <summary>
Draws the outline of the specified ellipse using the specified stroke style.</summary>
            <param name="ellipse">The position and radius of the ellipse to draw, in device-independent pixels.</param>
            <param name="pBrush">The brush used to paint the ellipse's outline.</param>
            <param name="fStrokeWidth">The thickness of the ellipse's stroke. The stroke is centered on the ellipse's outline.</param>
            <param name="strokeStyle">The style of stroke to apply to the ellipse's outline, or NULL to paint a solid stroke.</param>
        </member>
        <member name="M:CRenderTarget.FillRoundedRectangle(CD2DRoundedRect!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced,CD2DBrush*)">
            <summary>
Paints the interior of the specified rounded rectangle.</summary>
            <param name="rectRounded">The dimensions of the rounded rectangle to paint, in device independent pixels.</param>
            <param name="pBrush">The brush used to paint the interior of the rounded rectangle.</param>
        </member>
        <member name="M:CRenderTarget.DrawRoundedRectangle(CD2DRoundedRect!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced,CD2DBrush*,System.Single,ID2D1StrokeStyle*)">
            <summary>
Draws the outline of the specified rounded rectangle using the specified stroke style.</summary>
            <param name="rectRounded">The dimensions of the rounded rectangle to draw, in device-independent pixels.</param>
            <param name="pBrush">The brush used to paint the rounded rectangle's outline.</param>
            <param name="fStrokeWidth">The width of the rounded rectangle's stroke. The stroke is centered on the rounded rectangle's outline. The default value is 1.0f.</param>
            <param name="strokeStyle">The style of the rounded rectangle's stroke, or NULL to paint a solid stroke. The default value is NULL.</param>
        </member>
        <member name="M:CRenderTarget.FillRectangle(CD2DRectF!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced,CD2DBrush*)">
            <summary>
Paints the interior of the specified rectangle.</summary>
            <param name="rect">The dimension of the rectangle to paint, in device-independent pixels.</param>
            <param name="pBrush">The brush used to paint the rectangle's interior.</param>
        </member>
        <member name="M:CRenderTarget.DrawRectangle(CD2DRectF!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced,CD2DBrush*,System.Single,ID2D1StrokeStyle*)">
            <summary>
Draws the outline of a rectangle that has the specified dimensions and stroke style.</summary>
            <param name="rect">The dimensions of the rectangle to draw, in device-independent pixels</param>
            <param name="pBrush">The brush used to paint the rectangle's stroke</param>
            <param name="fStrokeWidth">A value greater than or equal to 0.0f that specifies the width of the rectangle's stroke. The stroke is centered on the rectangle's outline.</param>
            <param name="strokeStyle">The style of stroke to paint, or NULL to paint a solid stroke.</param>
        </member>
        <member name="M:CRenderTarget.Clear(_D3DCOLORVALUE)">
            <summary>
Clears the drawing area to the specified color.</summary>
            <param name="color">The color to which the drawing area is cleared.</param>
        </member>
        <member name="M:CRenderTarget.COLORREF_TO_D2DCOLOR(System.UInt32!System.Runtime.CompilerServices.IsLong,System.Int32)">
            <summary>
Converts GDI color and alpha values to the D2D1_COLOR_F object.</summary>
            <param name="color">RGB value.</param>
            <param name="nAlpha">Alpha value.</param>
            <returns>
D2D1_COLOR_F value.</returns>
        </member>
        <member name="M:CRenderTarget.EndDraw">
            <summary>
Ends drawing operations on the render target and indicates the current error state and associated tags.</summary>
            <returns>
If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:CRenderTarget.BeginDraw">
            <summary>
Initiates drawing on this render target.</summary>
        </member>
        <member name="M:CRenderTarget.Detach">
            <summary>
Detaches render target interface from the object</summary>
            <returns> 
Pointer to detached render target interface.</returns>
        </member>
        <member name="M:CRenderTarget.Attach(ID2D1RenderTarget*)">
            <summary>
Attaches existing render target interface to the object</summary>
            <param name="pRenderTarget">Existing render target interface. Cannot be NULL</param>
        </member>
        <member name="M:CRenderTarget.GetMaximumBitmapSize">
            <summary>
Gets the maximum size, in device-dependent units (pixels), of any one bitmap dimension supported by the render target</summary>
            <returns> 
The maximum size, in pixels, of any one bitmap dimension supported by the render target</returns>
        </member>
        <member name="M:CRenderTarget.IsSupported(D2D1_RENDER_TARGET_PROPERTIES!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced)">
            <summary>
Indicates whether the render target supports the specified properties</summary>
            <returns> 
TRUE if the specified render target properties are supported by this render target; otherwise, FALSE</returns>
            <param name="renderTargetProperties">The render target properties to test</param>
        </member>
        <member name="M:CRenderTarget.SetTags(System.UInt64,System.UInt64)">
            <summary>
Specifies a label for subsequent drawing operations.</summary>
            <param name="tag1">A label to apply to subsequent drawing operations.</param>
            <param name="tag2">A label to apply to subsequent drawing operations.</param>
        </member>
        <member name="M:CRenderTarget.GetTags(System.UInt64*,System.UInt64*)">
            <summary>
Gets the label for subsequent drawing operations.</summary>
            <param name="tag1">Contains the first label for subsequent drawing operations. This parameter is passed uninitialized. If NULL is specified, no value is retrieved for this parameter.</param>
            <param name="tag2">Contains the second label for subsequent drawing operations. This parameter is passed uninitialized. If NULL is specified, no value is retrieved for this parameter.</param>
        </member>
        <member name="M:CRenderTarget.GetPixelSize">
            <summary>
Returns the size of the render target in device pixels</summary>
            <returns> 
The size of the render target in device pixels</returns>
        </member>
        <member name="M:CRenderTarget.GetPixelFormat">
            <summary>
Retrieves the pixel format and alpha mode of the render target</summary>
            <returns> 
The pixel format and alpha mode of the render target</returns>
        </member>
        <member name="M:CRenderTarget.GetDpi">
            <summary>
Returns the render target's dots per inch (DPI)</summary>
            <returns> 
The render target's dots per inch (DPI).</returns>
        </member>
        <member name="M:CRenderTarget.SetDpi(CD2DSizeF!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced)">
            <summary>
Sets the dots per inch (DPI) of the render target.</summary>
            <param name="sizeDPI">A value greater than or equal to zero that specifies the horizontal/verticalDPI of the render target.</param>
        </member>
        <member name="M:CRenderTarget.GetSize">
            <summary>
Returns the size of the render target in device-independent pixels</summary>
            <returns> 
The current size of the render target in device-independent pixels</returns>
        </member>
        <member name="M:CRenderTarget.op_Implicit~ID2D1RenderTarget*">
            <summary>
Returns ID2D1RenderTarget interface</summary>
            <returns> 
Pointer to an ID2D1RenderTarget interface or NULL if object is not initialized yet.</returns>
        </member>
        <member name="M:CRenderTarget.GetRenderTarget">
            <summary>
Returns ID2D1RenderTarget interface</summary>
            <returns> 
Pointer to an ID2D1RenderTarget interface or NULL if object is not initialized yet.</returns>
        </member>
        <member name="M:CRenderTarget.IsValid">
            <summary>
Checks resource validity</summary>
            <returns> 
TRUE if resource is valid; otherwise FALSE.</returns>
        </member>
        <member name="M:CRenderTarget.Destroy(System.Int32)">
            <summary>
Deletes one or more resources</summary>
            <returns> 
If the method succeeds, it returns TRUE. Otherwise, it returns FALSE</returns>
            <param name="bDeleteResources">If bDeleteResources is TRUE, all resources located in m_lstResources will be automatically destroyed.</param>
        </member>
        <member name="M:CRenderTarget.Dispose">
            <summary>
The destructor. Called when a render target object is being destroyed.
</summary>
        </member>
        <member name="M:CRenderTarget.#ctor">
            <summary>
Constructs a CRenderTarget object.</summary>
        </member>
        <member name="T:CRenderTarget">
            <summary>
ID2D1RenderTarget wrapper.
</summary>
        </member>
        <member name="F:CD2DMesh.m_pMesh">
            <summary>
A pointer to an ID2D1Mesh.
</summary>
        </member>
        <member name="M:CD2DMesh.IsValid">
            <summary>
Checks resource validity</summary>
            <returns> 
TRUE if resource is valid; otherwise FALSE.</returns>
        </member>
        <member name="M:CD2DMesh.Destroy">
            <summary>
Destroys a CD2DMesh object.</summary>
        </member>
        <member name="M:CD2DMesh.Create(CRenderTarget*)">
            <summary>
Creates a CD2DMesh.</summary>
            <returns>
If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
            <param name="pRenderTarget">A pointer to the render target.</param>
        </member>
        <member name="M:CD2DMesh.Open">
            <summary>
Opens the mesh for population.</summary>
            <returns>
A pointer to an ID2D1TessellationSink that is used to populate the mesh.</returns>
        </member>
        <member name="M:CD2DMesh.op_Implicit~ID2D1Mesh*">
            <summary>
Returns ID2D1Mesh interface</summary>
            <returns> 
Pointer to an ID2D1Mesh interface or NULL if object is not initialized yet.</returns>
        </member>
        <member name="M:CD2DMesh.Get">
            <summary>
Returns ID2D1Mesh interface</summary>
            <returns> 
Pointer to an ID2D1Mesh interface or NULL if object is not initialized yet.</returns>
        </member>
        <member name="M:CD2DMesh.Detach">
            <summary>
Detaches resource interface from the object</summary>
            <returns> 
Pointer to detached resource interface.</returns>
        </member>
        <member name="M:CD2DMesh.Attach(ID2D1Mesh*)">
            <summary>
Attaches existing resource interface to the object</summary>
            <param name="pResource">Existing resource interface. Cannot be NULL</param>
        </member>
        <member name="M:CD2DMesh.Dispose">
            <summary>
The destructor. Called when a D2D mesh object is being destroyed.
</summary>
        </member>
        <member name="M:CD2DMesh.#ctor(CRenderTarget*,System.Int32)">
            <summary>
Constructs a CD2DMesh object.</summary>
            <param name="pParentTarget">A pointer to the render target.</param>
            <param name="bAutoDestroy">Indicates that the object will be destroyed by owner (pParentTarget).</param>
        </member>
        <member name="T:CD2DMesh">
            <summary>
ID2D1Mesh wrapper.
</summary>
        </member>
        <member name="F:CD2DGeometrySink.m_pSink">
            <summary>
A pointer to an ID2D1GeometrySink.
</summary>
        </member>
        <member name="M:CD2DGeometrySink.SetSegmentFlags(D2D1_PATH_SEGMENT)">
            <summary>
Specifies stroke and join options to be applied to new segments added to the geometry sink.</summary>
            <param name="vertexFlags">Stroke and join options to be applied to new segments added to the geometry sink.</param>
        </member>
        <member name="M:CD2DGeometrySink.SetFillMode(D2D1_FILL_MODE)">
            <summary>
Specifies the method used to determine which points are inside the geometry described by this geometry sink and which points are outside.</summary>
            <param name="fillMode">The method used to determine whether a given point is part of the geometry.</param>
        </member>
        <member name="M:CD2DGeometrySink.Close">
            <summary>
Closes the geometry sink</summary>
            <returns> 
Nonzero if successful; otherwise FALSE.</returns>
        </member>
        <member name="M:CD2DGeometrySink.AddLines(CArray&lt;CD2DPointF,CD2DPointF&gt;!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced)">
            <summary>
Creates a sequence of lines using the specified points and adds them to the geometry sink.</summary>
            <param name="points">An array of one or more points that describe the lines to draw. A line is drawn from the geometry sink's current point (the end point of the last segment drawn or the location specified by BeginFigure) to the first point in the array. if the array contains additional points, a line is drawn from the first point to the second point in the array, from the second point to the third point, and so on. An array of a sequence of the end points of the lines to draw.</param>
        </member>
        <member name="M:CD2DGeometrySink.AddLine(CD2DPointF)">
            <summary>
Creates a line segment between the current point and the specified end point and adds it to the geometry sink.</summary>
            <param name="point">The end point of the line to draw.</param>
        </member>
        <member name="M:CD2DGeometrySink.AddQuadraticBeziers(CArray&lt;D2D1_QUADRATIC_BEZIER_SEGMENT,D2D1_QUADRATIC_BEZIER_SEGMENT&gt;!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced)">
            <summary>
Adds a sequence of quadratic Bezier segments as an array in a single call.</summary>
            <param name="beziers">An array of a sequence of quadratic Bezier segments.</param>
        </member>
        <member name="M:CD2DGeometrySink.AddQuadraticBezier(D2D1_QUADRATIC_BEZIER_SEGMENT!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced)">
            <summary>
Creates a quadratic Bezier curve between the current point and the specified end point.</summary>
            <param name="bezier">A structure that describes the control point and the end point of the quadratic Bezier curve to add.</param>
        </member>
        <member name="M:CD2DGeometrySink.AddBeziers(CArray&lt;D2D1_BEZIER_SEGMENT,D2D1_BEZIER_SEGMENT&gt;!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced)">
            <summary>
Creates a sequence of cubic Bezier curves and adds them to the geometry sink.</summary>
            <param name="beziers">An array of Bezier segments that describes the Bezier curves to create. A curve is drawn from the geometry sink's current point (the end point of the last segment drawn or the location specified by BeginFigure) to the end point of the first Bezier segment in the array. if the array contains additional Bezier segments, each subsequent Bezier segment uses the end point of the preceding Bezier segment as its start point.</param>
        </member>
        <member name="M:CD2DGeometrySink.AddBezier(D2D1_BEZIER_SEGMENT!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced)">
            <summary>
Creates a cubic Bezier curve between the current point and the specified end point.</summary>
            <param name="bezier">A structure that describes the control points and end point of the Bezier curve to add.</param>
        </member>
        <member name="M:CD2DGeometrySink.AddArc(D2D1_ARC_SEGMENT!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced)">
            <summary>
Adds a single arc to the path geometry</summary>
            <param name="arc">The arc segment to add to the figure</param>
        </member>
        <member name="M:CD2DGeometrySink.EndFigure(D2D1_FIGURE_END)">
            <summary>
Ends the current figure; optionally, closes it.</summary>
            <param name="figureEnd">A value that indicates whether the current figure is closed. If the figure is closed, a line is drawn between the current point and the start point specified by BeginFigure.</param>
        </member>
        <member name="M:CD2DGeometrySink.BeginFigure(CD2DPointF,D2D1_FIGURE_BEGIN)">
            <summary>
Starts a new figure at the specified point.</summary>
            <param name="startPoint">The point at which to begin the new figure.</param>
            <param name="figureBegin">Whether the new figure should be hollow or filled.</param>
        </member>
        <member name="M:CD2DGeometrySink.op_Implicit~ID2D1GeometrySink*">
            <summary>
Returns ID2D1GeometrySink interface</summary>
            <returns> 
Pointer to an ID2D1GeometrySink interface or NULL if object is not initialized yet.</returns>
        </member>
        <member name="M:CD2DGeometrySink.Get">
            <summary>
Returns ID2D1GeometrySink interface</summary>
            <returns> 
Pointer to an ID2D1GeometrySink interface or NULL if object is not initialized yet.</returns>
        </member>
        <member name="M:CD2DGeometrySink.IsValid">
            <summary>
Checks geometry sink validity</summary>
            <returns> 
TRUE if geometry sink is valid; otherwise FALSE.</returns>
        </member>
        <member name="M:CD2DGeometrySink.Dispose">
            <summary>
The destructor. Called when a D2D geometry sink object is being destroyed.
</summary>
        </member>
        <member name="M:CD2DGeometrySink.#ctor(CD2DPathGeometry*!System.Runtime.CompilerServices.IsImplicitlyDereferenced)">
            <summary>
Constructs a CD2DGeometrySink object from CD2DPathGeometry object.</summary>
            <param name="pathGeometry">An existing CD2DPathGeometry object.</param>
        </member>
        <member name="T:CD2DGeometrySink">
            <summary>
ID2D1GeometrySink wrapper.
</summary>
        </member>
        <member name="F:CD2DPathGeometry.m_pPathGeometry">
            <summary>
A pointer to an ID2D1PathGeometry.
</summary>
        </member>
        <member name="M:CD2DPathGeometry.GetFigureCount">
            <summary>
Retrieves tthe number of figures in the path geometry.</summary>
            <returns> 
Returns the number of figures in the path geometry.</returns>
        </member>
        <member name="M:CD2DPathGeometry.GetSegmentCount">
            <summary>
Retrieves the number of segments in the path geometry.</summary>
            <returns> 
Returns the number of segments in the path geometry.</returns>
        </member>
        <member name="M:CD2DPathGeometry.Stream(ID2D1GeometrySink*)">
            <summary>
Copies the contents of the path geometry to the specified ID2D1GeometrySink.</summary>
            <returns>
If the method succeeds, it returns TRUE. Otherwise, it returns FALSE.</returns>
            <param name="geometrySink">The sink to which the path geometry's contents are copied. Modifying this sink does not change the contents of this path geometry.</param>
        </member>
        <member name="M:CD2DPathGeometry.Open">
            <summary>
Retrieves the geometry sink that is used to populate the path geometry with figures and segments.</summary>
            <returns>
A pointer to the ID2D1GeometrySink that is used to populate the path geometry with figures and segments.</returns>
        </member>
        <member name="M:CD2DPathGeometry.Detach">
            <summary>
Detaches resource interface from the object</summary>
            <returns> 
Pointer to detached resource interface.</returns>
        </member>
        <member name="M:CD2DPathGeometry.Attach(ID2D1PathGeometry*)">
            <summary>
Attaches existing resource interface to the object</summary>
            <param name="pResource">Existing resource interface. Cannot be NULL</param>
        </member>
        <member name="M:CD2DPathGeometry.Destroy">
            <summary>
Destroys a CD2DPathGeometry object.</summary>
        </member>
        <member name="M:CD2DPathGeometry.Create(CRenderTarget*)">
            <summary>
Creates a CD2DPathGeometry.</summary>
            <returns>
If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
            <param name="pRenderTarget">A pointer to the render target.</param>
        </member>
        <member name="M:CD2DPathGeometry.#ctor(CRenderTarget*,System.Int32)">
            <summary>
Constructs a CD2DPathGeometry object.</summary>
            <param name="pParentTarget">A pointer to the render target.</param>
            <param name="bAutoDestroy">Indicates that the object will be destroyed by owner (pParentTarget).</param>
        </member>
        <member name="T:CD2DPathGeometry">
            <summary>
ID2D1PathGeometry wrapper.
</summary>
        </member>
        <member name="F:CD2DGeometry.m_pGeometry">
            <summary>
A pointer to an ID2D1Geometry.
</summary>
        </member>
        <member name="M:CD2DGeometry.Widen(System.Single,ID2D1StrokeStyle*,D2D_MATRIX_3X2_F!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced,ID2D1SimplifiedGeometrySink*,System.Single)">
            <summary>
Widens the geometry by the specified stroke and writes the result to an ID2D1SimplifiedGeometrySink after it has been transformed by the specified matrix and flattened using the specified tolerance.</summary>
            <returns> 
If the method succeeds, it returns TRUE. Otherwise, it returns FALSE.</returns>
            <param name="strokeWidth">The amount by which to widen the geometry.</param>
            <param name="strokeStyle">The style of stroke to apply to the geometry, or NULL.</param>
            <param name="worldTransform">The transform to apply to the geometry after widening it.</param>
            <param name="geometrySink">The ID2D1SimplifiedGeometrySink to which the widened geometry is appended.</param>
            <param name="flatteningTolerance">The maximum bounds on the distance between points in the polygonal approximation of the geometry. Smaller values produce more accurate results but cause slower execution.</param>
        </member>
        <member name="M:CD2DGeometry.Tessellate(D2D_MATRIX_3X2_F!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced,ID2D1TessellationSink*,System.Single)">
            <summary>
Creates a set of clockwise-wound triangles that cover the geometry after it has been transformed using the specified matrix and flattened using the specified tolerance.</summary>
            <returns> 
If the method succeeds, it returns TRUE. Otherwise, it returns FALSE.</returns>
            <param name="worldTransform">The transform to apply to this geometry, or NULL.</param>
            <param name="tessellationSink">The ID2D1TessellationSink to which the tessellated is appended.</param>
            <param name="flatteningTolerance">The maximum bounds on the distance between points in the polygonal approximation of the geometry. Smaller values produce more accurate results but cause slower execution.</param>
        </member>
        <member name="M:CD2DGeometry.Simplify(D2D1_GEOMETRY_SIMPLIFICATION_OPTION,D2D_MATRIX_3X2_F!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced,ID2D1SimplifiedGeometrySink*,System.Single)">
            <summary>
Creates a simplified version of the geometry that contains only lines and (optionally) cubic Bezier curves and writes the result to an ID2D1SimplifiedGeometrySink.</summary>
            <returns> 
If the method succeeds, it returns TRUE. Otherwise, it returns FALSE.</returns>
            <param name="simplificationOption">A value that specifies whether the simplified geometry should contain curves.</param>
            <param name="worldTransform">The transform to apply to the simplified geometry.</param>
            <param name="geometrySink">The ID2D1SimplifiedGeometrySink to which the simplified geometry is appended.</param>
            <param name="flatteningTolerance">The maximum bounds on the distance between points in the polygonal approximation of the geometry. Smaller values produce more accurate results but cause slower execution.</param>
        </member>
        <member name="M:CD2DGeometry.Outline(D2D_MATRIX_3X2_F!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced,ID2D1SimplifiedGeometrySink*,System.Single)">
            <summary>
Computes the outline of the geometry and writes the result to an ID2D1SimplifiedGeometrySink.</summary>
            <returns> 
If the method succeeds, it returns TRUE. Otherwise, it returns FALSE.</returns>
            <param name="worldTransform">The transform to apply to the geometry outline.</param>
            <param name="geometrySink">The ID2D1SimplifiedGeometrySink to which the geometry transformed outline is appended.</param>
            <param name="flatteningTolerance">The maximum bounds on the distance between points in the polygonal approximation of the geometry. Smaller values produce more accurate results but cause slower execution.</param>
        </member>
        <member name="M:CD2DGeometry.StrokeContainsPoint(CD2DPointF,System.Single,ID2D1StrokeStyle*,D2D_MATRIX_3X2_F!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced,System.Int32*,System.Single)">
            <summary>
Determines whether the geometry's stroke contains the specified point given the specified stroke thickness, style, and transform.</summary>
            <returns> 
If the method succeeds, it returns TRUE. Otherwise, it returns FALSE.</returns>
            <param name="point">The point to test for containment.</param>
            <param name="strokeWidth">The thickness of the stroke to apply.</param>
            <param name="strokeStyle">The style of the stroke to apply.</param>
            <param name="worldTransform">The transform to apply to the stroked geometry.</param>
            <param name="contains">When this method returns, contains a boolean value set to TRUE if the geometry's stroke contains the specified point; otherwise, FALSE. You must allocate storage for this parameter.</param>
            <param name="flatteningTolerance">The numeric accuracy with which the precise geometric path and path intersection is calculated. Points missing the stroke by less than the tolerance are still considered inside. Smaller values produce more accurate results but cause slower execution.</param>
        </member>
        <member name="M:CD2DGeometry.FillContainsPoint(CD2DPointF,D2D_MATRIX_3X2_F!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced,System.Int32*,System.Single)">
            <summary>
Indicates whether the area filled by the geometry would contain the specified point given the specified flattening tolerance.</summary>
            <returns> 
If the method succeeds, it returns TRUE. Otherwise, it returns FALSE.</returns>
            <param name="point">The point to test.</param>
            <param name="worldTransform">The transform to apply to the geometry prior to testing for containment.</param>
            <param name="contains">When this method returns, contains a bool value that is TRUE if the area filled by the geometry contains point; otherwise, FALSE. You must allocate storage for this parameter.</param>
            <param name="flatteningTolerance">The numeric accuracy with which the precise geometric path and path intersection is calculated. Points missing the fill by less than the tolerance are still considered inside. Smaller values produce more accurate results but cause slower execution.</param>
        </member>
        <member name="M:CD2DGeometry.GetWidenedBounds(System.Single,ID2D1StrokeStyle*,D2D_MATRIX_3X2_F!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced,CD2DRectF*!System.Runtime.CompilerServices.IsImplicitlyDereferenced,System.Single)">
            <summary>
Gets the bounds of the geometry after it has been widened by the specified stroke width and style and transformed by the specified matrix.</summary>
            <returns> 
If the method succeeds, it returns TRUE. Otherwise, it returns FALSE.</returns>
            <param name="strokeWidth">The amount by which to widen the geometry by stroking its outline.</param>
            <param name="strokeStyle">The style of the stroke that widens the geometry.</param>
            <param name="worldTransform">A transform to apply to the geometry after the geometry is transformed and after the geometry has been stroked.</param>
            <param name="bounds">When this method returns, contains the bounds of the widened geometry. You must allocate storage for this parameter.</param>
            <param name="flatteningTolerance">The maximum bounds on the distance between points in the polygonal approximation of the geometries. Smaller values produce more accurate results but cause slower execution.</param>
        </member>
        <member name="M:CD2DGeometry.GetBounds(D2D_MATRIX_3X2_F!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced,CD2DRectF*!System.Runtime.CompilerServices.IsImplicitlyDereferenced)">
            <summary>
Retrieves the bounds of the geometry.</summary>
            <returns> 
If the method succeeds, it returns TRUE. Otherwise, it returns FALSE.</returns>
            <param name="worldTransform">The transform to apply to this geometry before calculating its bounds.</param>
            <param name="bounds">When this method returns, contains the bounds of this geometry. If the bounds are empty, this will be a rect where bounds.left is greater than bounds.right. You must allocate storage for this parameter.</param>
        </member>
        <member name="M:CD2DGeometry.ComputePointAtLength(System.Single,D2D_MATRIX_3X2_F!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced,CD2DPointF*!System.Runtime.CompilerServices.IsImplicitlyDereferenced,CD2DPointF*!System.Runtime.CompilerServices.IsImplicitlyDereferenced,System.Single)">
            <summary>
Calculates the point and tangent vector at the specified distance along the geometry after it has been transformed by the specified matrix and flattened using the specified tolerance.</summary>
            <returns> 
If the method succeeds, it returns TRUE. Otherwise, it returns FALSE.</returns>
            <param name="length">The distance along the geometry of the point and tangent to find. If this distance is less then 0, this method calculates the first point in the geometry. If this distance is greater than the length of the geometry, this method calculates the last point in the geometry.</param>
            <param name="worldTransform">The transform to apply to the geometry before calculating the specified point and tangent.</param>
            <param name="point">The location at the specified distance along the geometry. If the geometry is empty, this point contains NaN as its x and y values.</param>
            <param name="unitTangentVector">When this method returns, contains a pointer to the tangent vector at the specified distance along the geometry. If the geometry is empty, this vector contains NaN as its x and y values. You must allocate storage for this parameter.</param>
            <param name="flatteningTolerance">The maximum bounds on the distance between points in the polygonal approximation of the geometry. Smaller values produce more accurate results but cause slower execution.</param>
        </member>
        <member name="M:CD2DGeometry.ComputeLength(D2D_MATRIX_3X2_F!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced,System.Single*!System.Runtime.CompilerServices.IsImplicitlyDereferenced,System.Single)">
            <summary>
Calculates the length of the geometry as though each segment were unrolled into a line.</summary>
            <returns> 
If the method succeeds, it returns TRUE. Otherwise, it returns FALSE.</returns>
            <param name="worldTransform">The transform to apply to the geometry before calculating its length.</param>
            <param name="length">When this method returns, contains a pointer to the length of the geometry. For closed geometries, the length includes an implicit closing segment. You must allocate storage for this parameter.</param>
            <param name="flatteningTolerance">The maximum bounds on the distance between points in the polygonal approximation of the geometry. Smaller values produce more accurate results but cause slower execution.</param>
        </member>
        <member name="M:CD2DGeometry.ComputeArea(D2D_MATRIX_3X2_F!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced,System.Single*!System.Runtime.CompilerServices.IsImplicitlyDereferenced,System.Single)">
            <summary>
Computes the area of the geometry after it has been transformed by the specified matrix and flattened using the specified tolerance.</summary>
            <returns> 
If the method succeeds, it returns TRUE. Otherwise, it returns FALSE.</returns>
            <param name="worldTransform">The transform to apply to this geometry before computing its area.</param>
            <param name="area">When this method returns, contains a pointer to the area of the transformed, flattened version of this geometry. You must allocate storage for this parameter.</param>
            <param name="flatteningTolerance">The maximum bounds on the distance between points in the polygonal approximation of the geometry. Smaller values produce more accurate results but cause slower execution.</param>
        </member>
        <member name="M:CD2DGeometry.CompareWithGeometry(CD2DGeometry*!System.Runtime.CompilerServices.IsImplicitlyDereferenced,D2D_MATRIX_3X2_F!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced,System.Single)">
            <summary>
Describes the intersection between this geometry and the specified geometry. The comparison is performed using the specified flattening tolerance.</summary>
            <returns> 
If the method succeeds, it returns TRUE. Otherwise, it returns FALSE.</returns>
            <param name="inputGeometry">The geometry to test.</param>
            <param name="inputGeometryTransform">The transform to apply to inputGeometry.</param>
            <param name="flatteningTolerance">The maximum bounds on the distance between points in the polygonal approximation of the geometries. Smaller values produce more accurate results but cause slower execution. </param>
        </member>
        <member name="M:CD2DGeometry.CombineWithGeometry(CD2DGeometry*!System.Runtime.CompilerServices.IsImplicitlyDereferenced,D2D1_COMBINE_MODE,D2D_MATRIX_3X2_F!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced,ID2D1SimplifiedGeometrySink*,System.Single)">
            <summary>
Combines this geometry with the specified geometry and stores the result in an ID2D1SimplifiedGeometrySink.</summary>
            <returns> 
If the method succeeds, it returns TRUE. Otherwise, it returns FALSE.</returns>
            <param name="inputGeometry">The geometry to combine with this instance.</param>
            <param name="combineMode">The type of combine operation to perform.</param>
            <param name="inputGeometryTransform">The transform to apply to inputGeometry before combining.</param>
            <param name="geometrySink">The result of the combine operation.</param>
            <param name="flatteningTolerance">The maximum bounds on the distance between points in the polygonal approximation of the geometries. Smaller values produce more accurate results but cause slower execution.</param>
        </member>
        <member name="M:CD2DGeometry.IsValid">
            <summary>
Checks resource validity</summary>
            <returns> 
TRUE if resource is valid; otherwise FALSE.</returns>
        </member>
        <member name="M:CD2DGeometry.Destroy">
            <summary>
Destroys a CD2DGeometry object.</summary>
        </member>
        <member name="M:CD2DGeometry.op_Implicit~ID2D1Geometry*">
            <summary>
Returns ID2D1Geometry interface</summary>
            <returns> 
Pointer to an ID2D1Geometry interface or NULL if object is not initialized yet.</returns>
        </member>
        <member name="M:CD2DGeometry.Get">
            <summary>
Returns ID2D1Geometry interface</summary>
            <returns> 
Pointer to an ID2D1Geometry interface or NULL if object is not initialized yet.</returns>
        </member>
        <member name="M:CD2DGeometry.Detach">
            <summary>
Detaches resource interface from the object</summary>
            <returns> 
Pointer to detached resource interface.</returns>
        </member>
        <member name="M:CD2DGeometry.Attach(ID2D1Geometry*)">
            <summary>
Attaches existing resource interface to the object</summary>
            <param name="pResource">Existing resource interface. Cannot be NULL</param>
        </member>
        <member name="M:CD2DGeometry.Dispose">
            <summary>
The destructor. Called when a D2D geometry object is being destroyed.
</summary>
        </member>
        <member name="M:CD2DGeometry.#ctor(CRenderTarget*,System.Int32)">
            <summary>
Constructs a CD2DGeometry object.</summary>
            <param name="pParentTarget">A pointer to the render target.</param>
            <param name="bAutoDestroy">Indicates that the object will be destroyed by owner (pParentTarget).</param>
        </member>
        <member name="T:CD2DGeometry">
            <summary>
ID2D1Geometry wrapper.
</summary>
        </member>
        <member name="F:CD2DTextLayout.m_pTextLayout">
            <summary>
A pointer to an IDWriteTextLayout.
</summary>
        </member>
        <member name="M:CD2DTextLayout.GetLocaleName(System.UInt32,DWRITE_TEXT_RANGE*)">
            <summary>
Gets the locale name of the text at the specified position.</summary>
            <returns>
CString object that contains the current locale name.</returns>
            <param name="currentPosition">The position of the text to inspect.</param>
            <param name="textRange">The range of text that has the same formatting as the text at the position specified by currentPosition. This means the run has the exact formatting as the position specified, including but not limited to the locale name.</param>
        </member>
        <member name="M:CD2DTextLayout.GetFontFamilyName(System.UInt32,DWRITE_TEXT_RANGE*)">
            <summary>
Copies the font family name of the text at the specified position.</summary>
            <returns>
CString object that contains the current font family name.</returns>
            <param name="currentPosition">The position of the text to examine.</param>
            <param name="textRange">The range of text that has the same formatting as the text at the position specified by currentPosition. This means the run has the exact formatting as the position specified, including but not limited to the font family name.</param>
        </member>
        <member name="M:CD2DTextLayout.SetLocaleName(System.Char!System.Runtime.CompilerServices.IsConst*,DWRITE_TEXT_RANGE)">
            <summary>
Sets the locale name for text within a specified text range</summary>
            <returns> 
If the method succeeds, it returns TRUE. Otherwise, it returns FALSE</returns>
            <param name="pwzLocaleName">A null-terminated locale name string</param>
            <param name="textRange">Text range to which this change applies</param>
        </member>
        <member name="M:CD2DTextLayout.SetFontFamilyName(System.Char!System.Runtime.CompilerServices.IsConst*,DWRITE_TEXT_RANGE)">
            <summary>
Sets null-terminated font family name for text within a specified text range</summary>
            <returns> 
If the method succeeds, it returns TRUE. Otherwise, it returns FALSE</returns>
            <param name="pwzFontFamilyName">The font family name that applies to the entire text string within the range specified by textRange</param>
            <param name="textRange">Text range to which this change applies</param>
        </member>
        <member name="M:CD2DTextLayout.op_Implicit~IDWriteTextLayout*">
            <summary>
Returns IDWriteTextLayout interface</summary>
            <returns>
Pointer to an IDWriteTextLayout interface or NULL if object is not initialized yet.</returns>
        </member>
        <member name="M:CD2DTextLayout.Get">
            <summary>
Returns IDWriteTextLayout interface</summary>
            <returns>
Pointer to an IDWriteTextLayout interface or NULL if object is not initialized yet.</returns>
        </member>
        <member name="M:CD2DTextLayout.IsValid">
            <summary>
Checks resource validity</summary>
            <returns> 
TRUE if resource is valid; otherwise FALSE.</returns>
        </member>
        <member name="M:CD2DTextLayout.Destroy">
            <summary>
Destroys a CD2DTextLayout object.</summary>
        </member>
        <member name="M:CD2DTextLayout.Create(CRenderTarget*)">
            <summary>
Creates a CD2DTextLayout.</summary>
            <returns>
If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
            <param name="pRenderTarget">A pointer to the render target.</param>
        </member>
        <member name="M:CD2DTextLayout.ReCreate(CRenderTarget*)">
            <summary>
Re-creates a CD2DTextLayout.</summary>
            <returns>
If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
            <param name="pRenderTarget">A pointer to the render target.</param>
        </member>
        <member name="M:CD2DTextLayout.Dispose">
            <summary>
The destructor. Called when a D2D text layout object is being destroyed.
</summary>
        </member>
        <member name="M:CD2DTextLayout.#ctor(CRenderTarget*,ATL.CStringT&lt;System.Char,StrTraitMFC_DLL&lt;System.Char,ATL.ChTraitsCRT{System.Char}&gt;&gt;!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced,CD2DTextFormat*!System.Runtime.CompilerServices.IsImplicitlyDereferenced,CD2DSizeF!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced,System.Int32)">
            <summary>
Constructs a CD2DTextLayout object.</summary>
            <param name="pParentTarget">A pointer to the render target.</param>
            <param name="strText">A CString object that contains the string to create a new CD2DTextLayout object from.</param>
            <param name="textFormat">A CString object that contains the format to apply to the string.</param>
            <param name="sizeMax">The size of the layout box.</param>
            <param name="bAutoDestroy">Indicates that the object will be destroyed by owner (pParentTarget).</param>
        </member>
        <member name="T:CD2DTextLayout">
            <summary>
IDWriteTextLayout wrapper.
</summary>
        </member>
        <member name="F:CD2DTextFormat.m_pTextFormat">
            <summary>
A pointer to an IDWriteTextFormat.
</summary>
        </member>
        <member name="M:CD2DTextFormat.GetLocaleName">
            <summary>
Gets a copy of the locale name.</summary>
            <returns>
CString object that contains the current locale name.</returns>
        </member>
        <member name="M:CD2DTextFormat.GetFontFamilyName">
            <summary>
Gets a copy of the font family name.</summary>
            <returns>
CString object that contains the current font family name.</returns>
        </member>
        <member name="M:CD2DTextFormat.op_Implicit~IDWriteTextFormat*">
            <summary>
Returns IDWriteTextFormat interface</summary>
            <returns>
Pointer to an IDWriteTextFormat interface or NULL if object is not initialized yet.</returns>
        </member>
        <member name="M:CD2DTextFormat.Get">
            <summary>
Returns IDWriteTextFormat interface</summary>
            <returns> 
Pointer to an IDWriteTextFormat interface or NULL if object is not initialized yet.</returns>
        </member>
        <member name="M:CD2DTextFormat.IsValid">
            <summary>
Checks resource validity</summary>
            <returns> 
TRUE if resource is valid; otherwise FALSE.</returns>
        </member>
        <member name="M:CD2DTextFormat.Destroy">
            <summary>
Destroys a CD2DTextFormat object.</summary>
        </member>
        <member name="M:CD2DTextFormat.Create(CRenderTarget*)">
            <summary>
Creates a CD2DTextFormat.</summary>
            <returns>
If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
            <param name="pRenderTarget">A pointer to the render target.</param>
        </member>
        <member name="M:CD2DTextFormat.ReCreate(CRenderTarget*)">
            <summary>
Re-creates a CD2DTextFormat.</summary>
            <returns>
If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
            <param name="pRenderTarget">A pointer to the render target.</param>
        </member>
        <member name="M:CD2DTextFormat.Dispose">
            <summary>
The destructor. Called when a D2D text format object is being destroyed.
</summary>
        </member>
        <member name="M:CD2DTextFormat.#ctor(CRenderTarget*,ATL.CStringT&lt;System.Char,StrTraitMFC_DLL&lt;System.Char,ATL.ChTraitsCRT{System.Char}&gt;&gt;!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced,System.Single,DWRITE_FONT_WEIGHT,DWRITE_FONT_STYLE,DWRITE_FONT_STRETCH,ATL.CStringT&lt;System.Char,StrTraitMFC_DLL&lt;System.Char,ATL.ChTraitsCRT{System.Char}&gt;&gt;!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced,IDWriteFontCollection*,System.Int32)">
            <summary>
Constructs a CD2DTextFormat object.</summary>
            <param name="pParentTarget">A pointer to the render target.</param>
            <param name="strFontFamilyName">A CString object that contains the name of the font family.</param>
            <param name="fontSize">The logical size of the font in DIP ("device-independent pixel") units. A DIPequals 1/96 inch.</param>
            <param name="fontWeight">A value that indicates the font weight for the text object.</param>
            <param name="fontStyle">A value that indicates the font style for the text object.</param>
            <param name="fontStretch">A value that indicates the font stretch for the text object.</param>
            <param name="strFontLocale">A CString object that contains the locale name.</param>
            <param name="pFontCollection">A pointer to a font collection object. When this is NULL, indicates the system font collection.</param>
            <param name="bAutoDestroy">Indicates that the object will be destroyed by owner (pParentTarget).</param>
        </member>
        <member name="T:CD2DTextFormat">
            <summary>
IDWriteTextFormat wrapper.
</summary>
        </member>
        <member name="F:CD2DRadialGradientBrush.m_pRadialGradientBrush">
            <summary>
A pointer to an ID2D1RadialGradientBrush.
</summary>
        </member>
        <member name="F:CD2DRadialGradientBrush.m_RadialGradientBrushProperties">
            <summary>
The center, gradient origin offset, and x-radius and y-radius of the brush's gradient.
</summary>
        </member>
        <member name="M:CD2DRadialGradientBrush.GetRadiusY">
            <summary>
Retrieves the y-radius of the gradient ellipse</summary>
            <returns> 
The y-radius of the gradient ellipse. This value is expressed in the brush's coordinate space</returns>
        </member>
        <member name="M:CD2DRadialGradientBrush.GetRadiusX">
            <summary>
Retrieves the x-radius of the gradient ellipse</summary>
            <returns> 
The x-radius of the gradient ellipse. This value is expressed in the brush's coordinate space</returns>
        </member>
        <member name="M:CD2DRadialGradientBrush.GetGradientOriginOffset">
            <summary>
Retrieves the offset of the gradient origin relative to the gradient ellipse's center</summary>
            <returns> 
The offset of the gradient origin from the center of the gradient ellipse. This value is expressed in the brush's coordinate space</returns>
        </member>
        <member name="M:CD2DRadialGradientBrush.GetCenter">
            <summary>
Retrieves the center of the gradient ellipse</summary>
            <returns> 
The center of the gradient ellipse. This value is expressed in the brush's coordinate space</returns>
        </member>
        <member name="M:CD2DRadialGradientBrush.SetRadiusY(System.Single)">
            <summary>
Specifies the y-radius of the gradient ellipse, in the brush's coordinate space</summary>
            <param name="radiusY">The y-radius of the gradient ellipse. This value is in the brush's coordinate space</param>
        </member>
        <member name="M:CD2DRadialGradientBrush.SetRadiusX(System.Single)">
            <summary>
Specifies the x-radius of the gradient ellipse, in the brush's coordinate space</summary>
            <param name="radiusX">The x-radius of the gradient ellipse. This value is in the brush's coordinate space</param>
        </member>
        <member name="M:CD2DRadialGradientBrush.SetGradientOriginOffset(CD2DPointF)">
            <summary>
Specifies the offset of the gradient origin relative to the gradient ellipse's center</summary>
            <param name="gradientOriginOffset">The offset of the gradient origin from the center of the gradient ellipse</param>
        </member>
        <member name="M:CD2DRadialGradientBrush.SetCenter(CD2DPointF)">
            <summary>
Specifies the center of the gradient ellipse in the brush's coordinate space</summary>
            <param name="point">The center of the gradient ellipse, in the brush's coordinate space</param>
        </member>
        <member name="M:CD2DRadialGradientBrush.op_Implicit~ID2D1RadialGradientBrush*">
            <summary>
Returns ID2D1RadialGradientBrush interface</summary>
            <returns> 
Pointer to an ID2D1RadialGradientBrush interface or NULL if object is not initialized yet.</returns>
        </member>
        <member name="M:CD2DRadialGradientBrush.Get">
            <summary>
Returns ID2D1RadialGradientBrush interface</summary>
            <returns> 
Pointer to an ID2D1RadialGradientBrush interface or NULL if object is not initialized yet.</returns>
        </member>
        <member name="M:CD2DRadialGradientBrush.Detach">
            <summary>
Detaches resource interface from the object</summary>
            <returns> 
Pointer to detached resource interface.</returns>
        </member>
        <member name="M:CD2DRadialGradientBrush.Attach(ID2D1RadialGradientBrush*)">
            <summary>
Attaches existing resource interface to the object</summary>
            <param name="pResource">Existing resource interface. Cannot be NULL</param>
        </member>
        <member name="M:CD2DRadialGradientBrush.Destroy">
            <summary>
Destroys a CD2DRadialGradientBrush object.</summary>
        </member>
        <member name="M:CD2DRadialGradientBrush.Create(CRenderTarget*)">
            <summary>
Creates a CD2DRadialGradientBrush.</summary>
            <returns>
If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
            <param name="pRenderTarget">A pointer to the render target.</param>
        </member>
        <member name="M:CD2DRadialGradientBrush.Dispose">
            <summary>
The destructor. Called when a D2D radial gradient brush object is being destroyed.
</summary>
        </member>
        <member name="M:CD2DRadialGradientBrush.#ctor(CRenderTarget*,D2D1_GRADIENT_STOP!System.Runtime.CompilerServices.IsConst*,System.UInt32,D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES,D2D1_GAMMA,D2D1_EXTEND_MODE,CD2DBrushProperties*,System.Int32)">
            <summary>
Constructs a CD2DLinearGradientBrush object.</summary>
            <param name="pParentTarget">A pointer to the render target.</param>
            <param name="gradientStops">A pointer to an array of D2D1_GRADIENT_STOP structures.</param>
            <param name="gradientStopsCount">A value greater than or equal to 1 that specifies the number of gradient stops in the gradientStops array.</param>
            <param name="RadialGradientBrushProperties">The center, gradient origin offset, and x-radius and y-radius of the brush's gradient.</param>
            <param name="colorInterpolationGamma">The space in which color interpolation between the gradient stops is performed.</param>
            <param name="extendMode">The behavior of the gradient outside the [0,1] normalized range.</param>
            <param name="pBrushProperties">A pointer to the opacity and transformation of a brush.</param>
            <param name="bAutoDestroy">Indicates that the object will be destroyed by owner (pParentTarget).</param>
        </member>
        <member name="T:CD2DRadialGradientBrush">
            <summary>
ID2D1RadialGradientBrush wrapper.
</summary>
        </member>
        <member name="F:CD2DLinearGradientBrush.m_pLinearGradientBrush">
            <summary>
A pointer to an ID2D1LinearGradientBrush.
</summary>
        </member>
        <member name="F:CD2DLinearGradientBrush.m_LinearGradientBrushProperties">
            <summary>
The start and end points of the gradient.
</summary>
        </member>
        <member name="M:CD2DLinearGradientBrush.GetEndPoint">
            <summary>
Retrieves the ending coordinates of the linear gradient</summary>
            <returns> 
The ending two-dimensional coordinates of the linear gradient, in the brush's coordinate space</returns>
        </member>
        <member name="M:CD2DLinearGradientBrush.GetStartPoint">
            <summary>
Retrieves the starting coordinates of the linear gradient</summary>
            <returns> 
The starting two-dimensional coordinates of the linear gradient, in the brush's coordinate space</returns>
        </member>
        <member name="M:CD2DLinearGradientBrush.SetEndPoint(CD2DPointF)">
            <summary>
Sets the ending coordinates of the linear gradient in the brush's coordinate space</summary>
            <param name="point">The ending two-dimensional coordinates of the linear gradient, in the brush's coordinate space</param>
        </member>
        <member name="M:CD2DLinearGradientBrush.SetStartPoint(CD2DPointF)">
            <summary>
Sets the starting coordinates of the linear gradient in the brush's coordinate space</summary>
            <param name="point">The starting two-dimensional coordinates of the linear gradient, in the brush's coordinate space</param>
        </member>
        <member name="M:CD2DLinearGradientBrush.op_Implicit~ID2D1LinearGradientBrush*">
            <summary>
Returns ID2D1LinearGradientBrush interface</summary>
            <returns> 
Pointer to an ID2D1LinearGradientBrush interface or NULL if object is not initialized yet.</returns>
        </member>
        <member name="M:CD2DLinearGradientBrush.Get">
            <summary>
Returns ID2D1LinearGradientBrush interface</summary>
            <returns> 
Pointer to an ID2D1LinearGradientBrush interface or NULL if object is not initialized yet.</returns>
        </member>
        <member name="M:CD2DLinearGradientBrush.Detach">
            <summary>
Detaches resource interface from the object</summary>
            <returns> 
Pointer to detached resource interface.</returns>
        </member>
        <member name="M:CD2DLinearGradientBrush.Attach(ID2D1LinearGradientBrush*)">
            <summary>
Attaches existing resource interface to the object</summary>
            <param name="pResource">Existing resource interface. Cannot be NULL</param>
        </member>
        <member name="M:CD2DLinearGradientBrush.Destroy">
            <summary>
Destroys a CD2DLinearGradientBrush object.</summary>
        </member>
        <member name="M:CD2DLinearGradientBrush.Create(CRenderTarget*)">
            <summary>
Creates a CD2DLinearGradientBrush.</summary>
            <returns>
If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
            <param name="pRenderTarget">A pointer to the render target.</param>
        </member>
        <member name="M:CD2DLinearGradientBrush.Dispose">
            <summary>
The destructor. Called when a D2D linear gradient brush object is being destroyed.
</summary>
        </member>
        <member name="M:CD2DLinearGradientBrush.#ctor(CRenderTarget*,D2D1_GRADIENT_STOP!System.Runtime.CompilerServices.IsConst*,System.UInt32,D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES,D2D1_GAMMA,D2D1_EXTEND_MODE,CD2DBrushProperties*,System.Int32)">
            <summary>
Constructs a CD2DLinearGradientBrush object.</summary>
            <param name="pParentTarget">A pointer to the render target.</param>
            <param name="gradientStops">A pointer to an array of D2D1_GRADIENT_STOP structures.</param>
            <param name="gradientStopsCount">A value greater than or equal to 1 that specifies the number of gradient stops in the gradientStops array.</param>
            <param name="LinearGradientBrushProperties">The start and end points of the gradient.</param>
            <param name="colorInterpolationGamma">The space in which color interpolation between the gradient stops is performed.</param>
            <param name="extendMode">The behavior of the gradient outside the [0,1] normalized range.</param>
            <param name="pBrushProperties">A pointer to the opacity and transformation of a brush.</param>
            <param name="bAutoDestroy">Indicates that the object will be destroyed by owner (pParentTarget).</param>
        </member>
        <member name="T:CD2DLinearGradientBrush">
            <summary>
ID2D1LinearGradientBrush wrapper.
</summary>
        </member>
        <member name="F:CD2DGradientBrush.m_pGradientStops">
            <summary>
A pointer to an array of D2D1_GRADIENT_STOP structures.
</summary>
        </member>
        <member name="F:CD2DGradientBrush.m_extendMode">
            <summary>
The behavior of the gradient outside the [0,1] normalized range.
</summary>
        </member>
        <member name="F:CD2DGradientBrush.m_colorInterpolationGamma">
            <summary>
The space in which color interpolation between the gradient stops is performed.
</summary>
        </member>
        <member name="F:CD2DGradientBrush.m_arGradientStops">
            <summary>
Array of the D2D1_GRADIENT_STOP structures.
</summary>
        </member>
        <member name="M:CD2DGradientBrush.Destroy">
            <summary>
Destroys a CD2DGradientBrush object.</summary>
        </member>
        <member name="M:CD2DGradientBrush.Dispose">
            <summary>
The destructor. Called when a D2D gradient brush object is being destroyed.
</summary>
        </member>
        <member name="M:CD2DGradientBrush.#ctor(CRenderTarget*,D2D1_GRADIENT_STOP!System.Runtime.CompilerServices.IsConst*,System.UInt32,D2D1_GAMMA,D2D1_EXTEND_MODE,CD2DBrushProperties*,System.Int32)">
            <summary>
Constructs a CD2DGradientBrush object.</summary>
            <param name="pParentTarget">A pointer to the render target.</param>
            <param name="gradientStops">A pointer to an array of D2D1_GRADIENT_STOP structures.</param>
            <param name="gradientStopsCount">A value greater than or equal to 1 that specifies the number of gradient stops in the gradientStops array.</param>
            <param name="colorInterpolationGamma">The space in which color interpolation between the gradient stops is performed.</param>
            <param name="extendMode">The behavior of the gradient outside the [0,1] normalized range.</param>
            <param name="pBrushProperties">A pointer to the opacity and transformation of a brush.</param>
            <param name="bAutoDestroy">Indicates that the object will be destroyed by owner (pParentTarget).</param>
        </member>
        <member name="T:CD2DGradientBrush">
            <summary>
The base class of CD2DLinearGradientBrush and CD2DRadialGradientBrush classes.
</summary>
        </member>
        <member name="F:CD2DBitmapBrush.m_pBitmapBrushProperties">
            <summary>
Bitmap brush properties.
</summary>
        </member>
        <member name="F:CD2DBitmapBrush.m_pBitmapBrush">
            <summary>
Stores a pointer to an ID2D1BitmapBrush object.
</summary>
        </member>
        <member name="F:CD2DBitmapBrush.m_pBitmap">
            <summary>
Stores a pointer to a CD2DBitmap object.
</summary>
        </member>
        <member name="M:CD2DBitmapBrush.CommonInit(D2D1_BITMAP_BRUSH_PROPERTIES*)">
            <summary>
Initializes the object</summary>
            <param name="pBitmapBrushProperties">A pointer to the bitmap brush properties.</param>
        </member>
        <member name="M:CD2DBitmapBrush.Destroy">
            <summary>
Destroys a CD2DBitmapBrush object.</summary>
        </member>
        <member name="M:CD2DBitmapBrush.Create(CRenderTarget*)">
            <summary>
Creates a CD2DBitmapBrush.</summary>
            <returns>
If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
            <param name="pRenderTarget">A pointer to the render target.</param>
        </member>
        <member name="M:CD2DBitmapBrush.GetInterpolationMode">
            <summary>
Gets the interpolation method used when the brush bitmap is scaled or rotated</summary>
            <returns> 
The interpolation method used when the brush bitmap is scaled or rotated</returns>
        </member>
        <member name="M:CD2DBitmapBrush.GetExtendModeY">
            <summary>
Gets the method by which the brush vertically tiles those areas that extend past its bitmap</summary>
            <returns> 
A value that specifies how the brush vertically tiles those areas that extend past its bitmap</returns>
        </member>
        <member name="M:CD2DBitmapBrush.GetExtendModeX">
            <summary>
Gets the method by which the brush horizontally tiles those areas that extend past its bitmap</summary>
            <returns> 
A value that specifies how the brush horizontally tiles those areas that extend past its bitmap</returns>
        </member>
        <member name="M:CD2DBitmapBrush.SetBitmap(CD2DBitmap*)">
            <summary>
Specifies the bitmap source that this brush uses to paint</summary>
            <param name="pBitmap">The bitmap source used by the brush</param>
        </member>
        <member name="M:CD2DBitmapBrush.SetInterpolationMode(D2D1_BITMAP_INTERPOLATION_MODE)">
            <summary>
Specifies the interpolation mode used when the brush bitmap is scaled or rotated</summary>
            <param name="interpolationMode">The interpolation mode used when the brush bitmap is scaled or rotated</param>
        </member>
        <member name="M:CD2DBitmapBrush.SetExtendModeY(D2D1_EXTEND_MODE)">
            <summary>
Specifies how the brush vertically tiles those areas that extend past its bitmap</summary>
            <param name="extendModeY">A value that specifies how the brush vertically tiles those areas that extend past its bitmap</param>
        </member>
        <member name="M:CD2DBitmapBrush.SetExtendModeX(D2D1_EXTEND_MODE)">
            <summary>
Specifies how the brush horizontally tiles those areas that extend past its bitmap</summary>
            <param name="extendModeX">A value that specifies how the brush horizontally tiles those areas that extend past its bitmap</param>
        </member>
        <member name="M:CD2DBitmapBrush.GetBitmap">
            <summary>
Gets the bitmap source that this brush uses to paint</summary>
            <returns> 
Pointer to an CD2DBitmap object or NULL if object is not initialized yet.</returns>
        </member>
        <member name="M:CD2DBitmapBrush.op_Implicit~ID2D1BitmapBrush*">
            <summary>
Returns ID2D1BitmapBrush interface</summary>
            <returns> 
Pointer to an ID2D1BitmapBrush interface or NULL if object is not initialized yet.</returns>
        </member>
        <member name="M:CD2DBitmapBrush.Get">
            <summary>
Returns ID2D1BitmapBrush interface</summary>
            <returns> 
Pointer to an ID2D1BitmapBrush interface or NULL if object is not initialized yet.</returns>
        </member>
        <member name="M:CD2DBitmapBrush.Detach">
            <summary>
Detaches resource interface from the object</summary>
            <returns> 
Pointer to detached resource interface.</returns>
        </member>
        <member name="M:CD2DBitmapBrush.Attach(ID2D1BitmapBrush*)">
            <summary>
Attaches existing resource interface to the object</summary>
            <param name="pResource">Existing resource interface. Cannot be NULL</param>
        </member>
        <member name="M:CD2DBitmapBrush.Dispose">
            <summary>
The destructor. Called when a D2D bitmap brush object is being destroyed.
</summary>
        </member>
        <member name="M:CD2DBitmapBrush.#ctor(CRenderTarget*,System.Char!System.Runtime.CompilerServices.IsConst*,CD2DSizeU,D2D1_BITMAP_BRUSH_PROPERTIES*,CD2DBrushProperties*,System.Int32)">
            <summary>
Constructs a CD2DBitmapBrush object from file.</summary>
            <param name="pParentTarget">A pointer to the render target.</param>
            <param name="lpszImagePath">Pointer to a null-terminated string that contains the name of file.</param>
            <param name="sizeDest">Destination size of the bitmap.</param>
            <param name="pBitmapBrushProperties">A pointer to the extend modes and the interpolation mode of a bitmap brush.</param>
            <param name="pBrushProperties">A pointer to the opacity and transformation of a brush.</param>
            <param name="bAutoDestroy">Indicates that the object will be destroyed by owner (pParentTarget).</param>
        </member>
        <member name="M:CD2DBitmapBrush.#ctor(CRenderTarget*,System.UInt32,System.Char!System.Runtime.CompilerServices.IsConst*,CD2DSizeU,D2D1_BITMAP_BRUSH_PROPERTIES*,CD2DBrushProperties*,System.Int32)">
            <summary>
Constructs a CD2DBitmapBrush object from resource.</summary>
            <param name="pParentTarget">A pointer to the render target.</param>
            <param name="uiResID">The resource ID number of the resource.</param>
            <param name="lpszType">Pointer to a null-terminated string that contains the resource type.</param>
            <param name="sizeDest">Destination size of the bitmap.</param>
            <param name="pBitmapBrushProperties">A pointer to the extend modes and the interpolation mode of a bitmap brush.</param>
            <param name="pBrushProperties">A pointer to the opacity and transformation of a brush.</param>
            <param name="bAutoDestroy">Indicates that the object will be destroyed by owner (pParentTarget).</param>
        </member>
        <member name="M:CD2DBitmapBrush.#ctor(CRenderTarget*,D2D1_BITMAP_BRUSH_PROPERTIES*,CD2DBrushProperties*,System.Int32)">
            <summary>
Constructs a CD2DBitmapBrush object.</summary>
            <param name="pParentTarget">A pointer to the render target.</param>
            <param name="pBitmapBrushProperties">A pointer to the extend modes and the interpolation mode of a bitmap brush.</param>
            <param name="pBrushProperties">A pointer to the opacity and transformation of a brush.</param>
            <param name="bAutoDestroy">Indicates that the object will be destroyed by owner (pParentTarget).</param>
        </member>
        <member name="T:CD2DBitmapBrush">
            <summary>
ID2D1BitmapBrush wrapper.
</summary>
        </member>
        <member name="F:CD2DSolidColorBrush.m_colorSolid">
            <summary>
Brush solid color.
</summary>
        </member>
        <member name="F:CD2DSolidColorBrush.m_pSolidColorBrush">
            <summary>
Stores a pointer to an ID2D1SolidColorBrush object.
</summary>
        </member>
        <member name="M:CD2DSolidColorBrush.Destroy">
            <summary>
Destroys a CD2DSolidColorBrush object.</summary>
        </member>
        <member name="M:CD2DSolidColorBrush.Create(CRenderTarget*)">
            <summary>
Creates a CD2DSolidColorBrush.</summary>
            <returns>
If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
            <param name="pRenderTarget">A pointer to the render target.</param>
        </member>
        <member name="M:CD2DSolidColorBrush.GetColor">
            <summary>
Retrieves the color of the solid color brush</summary>
            <returns> 
The color of this solid color brush</returns>
        </member>
        <member name="M:CD2DSolidColorBrush.SetColor(_D3DCOLORVALUE)">
            <summary>
Specifies the color of this solid color brush</summary>
            <param name="color">The color of this solid color brush</param>
        </member>
        <member name="M:CD2DSolidColorBrush.op_Implicit~ID2D1SolidColorBrush*">
            <summary>
Returns ID2D1SolidColorBrush interface</summary>
            <returns> 
Pointer to an ID2D1SolidColorBrush interface or NULL if object is not initialized yet.</returns>
        </member>
        <member name="M:CD2DSolidColorBrush.Get">
            <summary>
Returns ID2D1SolidColorBrush interface</summary>
            <returns> 
Pointer to an ID2D1SolidColorBrush interface or NULL if object is not initialized yet.</returns>
        </member>
        <member name="M:CD2DSolidColorBrush.Detach">
            <summary>
Detaches resource interface from the object</summary>
            <returns> 
Pointer to detached resource interface.</returns>
        </member>
        <member name="M:CD2DSolidColorBrush.Attach(ID2D1SolidColorBrush*)">
            <summary>
Attaches existing resource interface to the object</summary>
            <param name="pResource">Existing resource interface. Cannot be NULL</param>
        </member>
        <member name="M:CD2DSolidColorBrush.Dispose">
            <summary>
The destructor. Called when a D2D solid brush object is being destroyed.
</summary>
        </member>
        <member name="M:CD2DSolidColorBrush.#ctor(CRenderTarget*,System.UInt32!System.Runtime.CompilerServices.IsLong,System.Int32,CD2DBrushProperties*,System.Int32)">
            <summary>
Constructs a CD2DSolidColorBrush object.</summary>
            <param name="pParentTarget">A pointer to the render target.</param>
            <param name="color">The red, green, and blue values of the brush's color.</param>
            <param name="nAlpha">The opacity of the brush's color.</param>
            <param name="pBrushProperties">A pointer to the opacity and transformation of a brush.</param>
            <param name="bAutoDestroy">Indicates that the object will be destroyed by owner (pParentTarget).</param>
        </member>
        <member name="M:CD2DSolidColorBrush.#ctor(CRenderTarget*,_D3DCOLORVALUE,CD2DBrushProperties*,System.Int32)">
            <summary>
Constructs a CD2DSolidColorBrush object.</summary>
            <param name="pParentTarget">A pointer to the render target.</param>
            <param name="color">The red, green, blue, and alpha values of the brush's color.</param>
            <param name="pBrushProperties">A pointer to the opacity and transformation of a brush.</param>
            <param name="bAutoDestroy">Indicates that the object will be destroyed by owner (pParentTarget).</param>
        </member>
        <member name="T:CD2DSolidColorBrush">
            <summary>
ID2D1SolidColorBrush wrapper.
</summary>
        </member>
        <member name="F:CD2DBrush.m_pBrushProperties">
            <summary>
Brush properties.
</summary>
        </member>
        <member name="F:CD2DBrush.m_pBrush">
            <summary>
Stores a pointer to an ID2D1Brush object.
</summary>
        </member>
        <member name="M:CD2DBrush.GetTransform(D2D_MATRIX_3X2_F*)">
            <summary>
Gets the current transform of the render target</summary>
            <param name="transform">When this returns, contains the current transform of the render target. This parameter is passed uninitialized</param>
        </member>
        <member name="M:CD2DBrush.SetTransform(D2D_MATRIX_3X2_F!System.Runtime.CompilerServices.IsConst*)">
            <summary>
Applies the specified transform to the render target, replacing the existing transformation. All subsequent drawing operations occur in the transformed space</summary>
            <param name="transform">The transform to apply to the render target</param>
        </member>
        <member name="M:CD2DBrush.GetOpacity">
            <summary>
Gets the degree of opacity of this brush</summary>
            <returns> 
A value between zero and 1 that indicates the opacity of the brush. This value is a constant multiplier that linearly scales the alpha value of all pixels filled by the brush. The opacity values are clamped in the range 0 to 1 before they are multiplied together</returns>
        </member>
        <member name="M:CD2DBrush.SetOpacity(System.Single)">
            <summary>
Sets the degree of opacity of this brush</summary>
            <param name="opacity">A value between zero and 1 that indicates the opacity of the brush. This value is a constant multiplier that linearly scales the alpha value of all pixels filled by the brush. The opacity values are clamped in the range 0 to 1 before they are multiplied together</param>
        </member>
        <member name="M:CD2DBrush.Destroy">
            <summary>
Destroys a CD2DBrush object.</summary>
        </member>
        <member name="M:CD2DBrush.op_Implicit~ID2D1Brush*">
            <summary>
Returns ID2D1Brush interface</summary>
            <returns> 
Pointer to an ID2D1Brush interface or NULL if object is not initialized yet.</returns>
        </member>
        <member name="M:CD2DBrush.Get">
            <summary>
Returns ID2D1Brush interface</summary>
            <returns> 
Pointer to an ID2D1Brush interface or NULL if object is not initialized yet.</returns>
        </member>
        <member name="M:CD2DBrush.IsValid">
            <summary>
Checks resource validity</summary>
            <returns> 
TRUE if resource is valid; otherwise FALSE.</returns>
        </member>
        <member name="M:CD2DBrush.Detach">
            <summary>
Detaches resource interface from the object</summary>
            <returns> 
Pointer to detached resource interface.</returns>
        </member>
        <member name="M:CD2DBrush.Attach(ID2D1Brush*)">
            <summary>
Attaches existing resource interface to the object</summary>
            <param name="pResource">Existing resource interface. Cannot be NULL</param>
        </member>
        <member name="M:CD2DBrush.Dispose">
            <summary>
The destructor. Called when a D2D brush object is being destroyed.
</summary>
        </member>
        <member name="M:CD2DBrush.#ctor(CRenderTarget*,CD2DBrushProperties*,System.Int32)">
            <summary>
Constructs a CD2DBrush object.</summary>
            <param name="pParentTarget">A pointer to the render target.</param>
            <param name="pBrushProperties">A pointer to the opacity and transformation of a brush.</param>
            <param name="bAutoDestroy">Indicates that the object will be destroyed by owner (pParentTarget).</param>
        </member>
        <member name="T:CD2DBrush">
            <summary>
ID2D1Brush wrapper.
</summary>
        </member>
        <member name="M:CD2DBrushProperties.CommonInit">
            <summary>
Initializes the object</summary>
        </member>
        <member name="M:CD2DBrushProperties.#ctor(D2D_MATRIX_3X2_F,System.Single)">
            <summary>
Creates a CD2D_BRUSH_PROPERTIES structure</summary>
            <param name="_transform">The transformation to apply to the brush</param>
            <param name="_opacity">The base opacity of the brush. The default value is 1.0.</param>
        </member>
        <member name="M:CD2DBrushProperties.#ctor(System.Single)">
            <summary>
Creates a CD2D_BRUSH_PROPERTIES structure</summary>
            <param name="_opacity">The base opacity of the brush. The default value is 1.0.</param>
        </member>
        <member name="M:CD2DBrushProperties.#ctor">
            <summary>
Creates a CD2D_BRUSH_PROPERTIES structure</summary>
        </member>
        <member name="T:CD2DBrushProperties">
            <summary>
D2D1_BRUSH_PROPERTIES wrapper.
</summary>
        </member>
        <member name="F:CD2DBitmap.m_bAutoDestroyHBMP">
            <summary>
TRUE if m_hBmpSrc should be destroyed; otherwise FALSE.
</summary>
        </member>
        <member name="F:CD2DBitmap.m_hBmpSrc">
            <summary>
Source bitmap handle.
</summary>
        </member>
        <member name="F:CD2DBitmap.m_sizeDest">
            <summary>
Bitmap destination size.
</summary>
        </member>
        <member name="F:CD2DBitmap.m_strPath">
            <summary>
Botmap file path.
</summary>
        </member>
        <member name="F:CD2DBitmap.m_lpszType">
            <summary>
Resource type.
</summary>
        </member>
        <member name="F:CD2DBitmap.m_uiResID">
            <summary>
Bitmap resource ID.
</summary>
        </member>
        <member name="F:CD2DBitmap.m_pBitmap">
            <summary>
Stores a pointer to an ID2D1Bitmap object.
</summary>
        </member>
        <member name="M:CD2DBitmap.Destroy">
            <summary>
Destroys a CD2DBitmap object.</summary>
        </member>
        <member name="M:CD2DBitmap.Create(CRenderTarget*)">
            <summary>
Creates a CD2DBitmap.</summary>
            <returns>
If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
            <param name="pRenderTarget">A pointer to the render target.</param>
        </member>
        <member name="M:CD2DBitmap.CommonInit">
            <summary>
Initializes the object</summary>
        </member>
        <member name="M:CD2DBitmap.op_Implicit~ID2D1Bitmap*">
            <summary>
Returns ID2D1Bitmap interface</summary>
            <returns> 
Pointer to an ID2D1Bitmap interface or NULL if object is not initialized yet.</returns>
        </member>
        <member name="M:CD2DBitmap.Get">
            <summary>
Returns ID2D1Bitmap interface</summary>
            <returns> 
Pointer to an ID2D1Bitmap interface or NULL if object is not initialized yet.</returns>
        </member>
        <member name="M:CD2DBitmap.IsValid">
            <summary>
Checks resource validity</summary>
            <returns> 
TRUE if resource is valid; otherwise FALSE.</returns>
        </member>
        <member name="M:CD2DBitmap.CopyFromMemory(System.Void!System.Runtime.CompilerServices.IsConst*,System.UInt32,CD2DRectU!System.Runtime.CompilerServices.IsConst*)">
            <summary>
Copies the specified region from memory into the current bitmap</summary>
            <returns> 
If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
            <param name="srcData">The data to copy</param>
            <param name="pitch">The stride, or pitch, of the source bitmap stored in srcData. The stride is the byte count of a scanline (one row of pixels in memory). The stride can be computed from the following formula: pixel width * bytes per pixel + memory padding</param>
            <param name="destRect">In the current bitmap, the upper-left corner of the area to which the region specified by srcRect is copied</param>
        </member>
        <member name="M:CD2DBitmap.CopyFromRenderTarget(CRenderTarget!System.Runtime.CompilerServices.IsConst*,CD2DPointU!System.Runtime.CompilerServices.IsConst*,CD2DRectU!System.Runtime.CompilerServices.IsConst*)">
            <summary>
Copies the specified region from the specified render target into the current bitmap</summary>
            <returns> 
If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
            <param name="pRenderTarget">The render target that contains the region to copy</param>
            <param name="destPoint">In the current bitmap, the upper-left corner of the area to which the region specified by srcRect is copied</param>
            <param name="srcRect">The area of renderTarget to copy</param>
        </member>
        <member name="M:CD2DBitmap.CopyFromBitmap(CD2DBitmap!System.Runtime.CompilerServices.IsConst*,CD2DPointU!System.Runtime.CompilerServices.IsConst*,CD2DRectU!System.Runtime.CompilerServices.IsConst*)">
            <summary>
Copies the specified region from the specified bitmap into the current bitmap</summary>
            <returns> 
If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
            <param name="pBitmap">The bitmap to copy from</param>
            <param name="destPoint">In the current bitmap, the upper-left corner of the area to which the region specified by srcRect is copied</param>
            <param name="srcRect">The area of bitmap to copy</param>
        </member>
        <member name="M:CD2DBitmap.GetDPI">
            <summary>
Return the dots per inch (DPI) of the bitmap</summary>
            <returns> 
The horizontal and vertical DPI of the bitmap.</returns>
        </member>
        <member name="M:CD2DBitmap.GetPixelFormat">
            <summary>
Retrieves the pixel format and alpha mode of the bitmap</summary>
            <returns> 
The pixel format and alpha mode of the bitmap.</returns>
        </member>
        <member name="M:CD2DBitmap.GetPixelSize">
            <summary>
Returns the size, in device-dependent units (pixels), of the bitmap</summary>
            <returns> 
The size, in pixels, of the bitmap..</returns>
        </member>
        <member name="M:CD2DBitmap.GetSize">
            <summary>
Returns the size, in device-independent pixels (DIPs), of the bitmap</summary>
            <returns> 
The size, in DIPs, of the bitmap.</returns>
        </member>
        <member name="M:CD2DBitmap.Detach">
            <summary>
Detaches resource interface from the object</summary>
            <returns> 
Pointer to detached resource interface.</returns>
        </member>
        <member name="M:CD2DBitmap.Attach(ID2D1Bitmap*)">
            <summary>
Attaches existing resource interface to the object</summary>
            <param name="pResource">Existing resource interface. Cannot be NULL</param>
        </member>
        <member name="M:CD2DBitmap.Dispose">
            <summary>
The destructor. Called when a D2D bitmap object is being destroyed.
</summary>
        </member>
        <member name="M:CD2DBitmap.#ctor(CRenderTarget*,System.Int32)">
            <summary>
Constructs a CD2DBitmap object.</summary>
            <param name="pParentTarget">A pointer to the render target.</param>
            <param name="bAutoDestroy">Indicates that the object will be destroyed by owner (pParentTarget).</param>
        </member>
        <member name="M:CD2DBitmap.#ctor(CRenderTarget*,HBITMAP__*,CD2DSizeU,System.Int32)">
            <summary>
Constructs a CD2DBitmap object from HBITMAP.</summary>
            <param name="pParentTarget">A pointer to the render target.</param>
            <param name="hbmpSrc">Handle to the bitmap.</param>
            <param name="sizeDest">Destination size of the bitmap.</param>
            <param name="bAutoDestroy">Indicates that the object will be destroyed by owner (pParentTarget).</param>
        </member>
        <member name="M:CD2DBitmap.#ctor(CRenderTarget*,System.Char!System.Runtime.CompilerServices.IsConst*,CD2DSizeU,System.Int32)">
            <summary>
Constructs a CD2DBitmap object from file.</summary>
            <param name="pParentTarget">A pointer to the render target.</param>
            <param name="lpszPath">Pointer to a null-terminated string that contains the name of file.</param>
            <param name="sizeDest">Destination size of the bitmap.</param>
            <param name="bAutoDestroy">Indicates that the object will be destroyed by owner (pParentTarget).</param>
        </member>
        <member name="M:CD2DBitmap.#ctor(CRenderTarget*,System.UInt32,System.Char!System.Runtime.CompilerServices.IsConst*,CD2DSizeU,System.Int32)">
            <summary>
Constructs a CD2DBitmap object from resource.</summary>
            <param name="pParentTarget">A pointer to the render target.</param>
            <param name="uiResID">The resource ID number of the resource.</param>
            <param name="lpszType">Pointer to a null-terminated string that contains the resource type.</param>
            <param name="sizeDest">Destination size of the bitmap.</param>
            <param name="bAutoDestroy">Indicates that the object will be destroyed by owner (pParentTarget).</param>
        </member>
        <member name="T:CD2DBitmap">
            <summary>
ID2D1Bitmap wrapper.
</summary>
        </member>
        <member name="F:CD2DLayer.m_pLayer">
            <summary>
Stores a pointer to an ID2D1Layer object.
</summary>
        </member>
        <member name="M:CD2DLayer.Destroy">
            <summary>
Destroys a CD2DLayer object.</summary>
        </member>
        <member name="M:CD2DLayer.Create(CRenderTarget*)">
            <summary>
Creates a CD2DLayer.</summary>
            <returns>
If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
            <param name="pRenderTarget">A pointer to the render target.</param>
        </member>
        <member name="M:CD2DLayer.Detach">
            <summary>
Detaches resource interface from the object</summary>
            <returns> 
Pointer to detached resource interface.</returns>
        </member>
        <member name="M:CD2DLayer.Attach(ID2D1Layer*)">
            <summary>
Attaches existing resource interface to the object</summary>
            <param name="pResource">Existing resource interface. Cannot be NULL</param>
        </member>
        <member name="M:CD2DLayer.op_Implicit~ID2D1Layer*">
            <summary>
Returns ID2D1Layer interface</summary>
            <returns> 
Pointer to an ID2D1Layer interface or NULL if object is not initialized yet.</returns>
        </member>
        <member name="M:CD2DLayer.Get">
            <summary>
Returns ID2D1Layer interface</summary>
            <returns> 
Pointer to an ID2D1Layer interface or NULL if object is not initialized yet.</returns>
        </member>
        <member name="M:CD2DLayer.IsValid">
            <summary>
Checks resource validity</summary>
            <returns> 
TRUE if resource is valid; otherwise FALSE.</returns>
        </member>
        <member name="M:CD2DLayer.GetSize">
            <summary>
Returns the size of the render target in device-independent pixels</summary>
            <returns> 
The current size of the render target in device-independent pixels</returns>
        </member>
        <member name="M:CD2DLayer.Dispose">
            <summary>
The destructor. Called when a D2D layer object is being destroyed.
</summary>
        </member>
        <member name="M:CD2DLayer.#ctor(CRenderTarget*,System.Int32)">
            <summary>
Constructs a CD2DLayer object.</summary>
            <param name="pParentTarget">A pointer to the render target.</param>
            <param name="bAutoDestroy">Indicates that the object will be destroyed by owner (pParentTarget).</param>
        </member>
        <member name="T:CD2DLayer">
            <summary>
ID2D1Layer wrapper.
</summary>
        </member>
        <member name="F:CD2DResource.m_pParentTarget">
            <summary>
Pointer to the parent CRenderTarget)</summary>
        </member>
        <member name="F:CD2DResource.m_bIsAutoDestroy">
            <summary>
Resource will be destoyed by owner (CRenderTarget)</summary>
        </member>
        <member name="M:CD2DResource.IsValid">
            <summary>
Checks resource validity</summary>
            <returns> 
TRUE if resource is valid; otherwise FALSE.</returns>
        </member>
        <member name="M:CD2DResource.Destroy">
            <summary>
Destroys a CD2DResource object.</summary>
        </member>
        <member name="M:CD2DResource.Create(CRenderTarget*)">
            <summary>
Creates a CD2DResource.</summary>
            <returns>
If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
            <param name="pRenderTarget">A pointer to the render target.</param>
        </member>
        <member name="M:CD2DResource.ReCreate(CRenderTarget*)">
            <summary>
Re-creates a CD2DResource.</summary>
            <returns>
If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
            <param name="pRenderTarget">A pointer to the render target.</param>
        </member>
        <member name="M:CD2DResource.IsAutoDestroy">
            <summary>
Check auto destroy flag.</summary>
            <returns>
TRUE if the object will be destroyed by its owner; otherwise FALSE.</returns>
        </member>
        <member name="M:CD2DResource.Dispose">
            <summary>
The destructor. Called when a D2D resource object is being destroyed.
</summary>
        </member>
        <member name="M:CD2DResource.#ctor(CRenderTarget*,System.Int32)">
            <summary>
Constructs a CD2DResource object.</summary>
            <param name="pParentTarget">A pointer to the render target.</param>
            <param name="bAutoDestroy">Indicates that the object will be destroyed by owner (pParentTarget).</param>
        </member>
        <member name="T:CD2DResource">
            <summary>
An abstract class, which provides a interface for creating and managing D2D resources such as brushes, layers and texts.
</summary>
        </member>
        <member name="M:CD2DEllipse.#ctor(CD2DPointF!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced,CD2DSizeF!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced)">
            <summary>
Constructs a CD2DEllipse from CD2DPointF and CD2DSizeF objects.</summary>
            <param name="ptCenter">The center point of the ellipse.</param>
            <param name="sizeRadius">The X-radius and Y-radius of the ellipse.</param>
        </member>
        <member name="M:CD2DEllipse.#ctor(D2D1_ELLIPSE!System.Runtime.CompilerServices.IsConst*)">
            <summary>
Constructs a CD2DEllipse object from D2D1_ELLIPSE object.</summary>
            <param name="ellipse">source ellipse</param>
        </member>
        <member name="M:CD2DEllipse.#ctor(D2D1_ELLIPSE!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced)">
            <summary>
Constructs a CD2DEllipse object from D2D1_ELLIPSE object.</summary>
            <param name="ellipse">source ellipse</param>
        </member>
        <member name="M:CD2DEllipse.#ctor(CD2DRectF!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced)">
            <summary>
Constructs a CD2DEllipse object from CD2DRectF object.</summary>
            <param name="rect">source rectangle</param>
        </member>
        <member name="T:CD2DEllipse">
            <summary>
D2D1_ELLIPSE wrapper
</summary>
        </member>
        <member name="M:CD2DRoundedRect.#ctor(D2D1_ROUNDED_RECT!System.Runtime.CompilerServices.IsConst*)">
            <summary>
Constructs a CD2DRoundedRect object from D2D1_ROUNDED_RECT object.</summary>
            <param name="rectIn">source rectangle</param>
        </member>
        <member name="M:CD2DRoundedRect.#ctor(D2D1_ROUNDED_RECT!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced)">
            <summary>
Constructs a CD2DRoundedRect object from D2D1_ROUNDED_RECT object.</summary>
            <param name="rectIn">source rectangle</param>
        </member>
        <member name="M:CD2DRoundedRect.#ctor(CD2DRectF!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced,CD2DSizeF!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced)">
            <summary>
Constructs a CD2DRoundedRect object from CD2DRectF object.</summary>
            <param name="rectIn">source rectangle</param>
            <param name="sizeRadius">radius size</param>
        </member>
        <member name="T:CD2DRoundedRect">
            <summary>
D2D1_ROUNDED_RECT wrapper
</summary>
        </member>
        <member name="M:CD2DRectU.op_Implicit~CRect">
            <summary>
Converts CD2DRectU to CRect object.</summary>
            <returns>
Current value of D2D rectangle.
</returns>
        </member>
        <member name="M:CD2DRectU.IsNull">
            <summary>
Returns a Boolean value that indicates whether an expression contains no valid data (Null).</summary>
            <returns>
TRUE if rectangle's top, left, bottom, and right values are all equal to 0; otherwise FALSE.
</returns>
        </member>
        <member name="M:CD2DRectU.#ctor(System.UInt32,System.UInt32,System.UInt32,System.UInt32)">
            <summary>
Constructs a CD2DRectU object from four UINT32 values.</summary>
            <param name="uLeft">source left coordinate</param>
            <param name="uTop">source top coordinate</param>
            <param name="uRight">source right coordinate</param>
            <param name="uBottom">source bottom coordinate</param>
        </member>
        <member name="M:CD2DRectU.#ctor(D2D_RECT_U!System.Runtime.CompilerServices.IsConst*)">
            <summary>
Constructs a CD2DRectU object from D2D1_RECT_U object.</summary>
            <param name="rect">source rectangle</param>
        </member>
        <member name="M:CD2DRectU.#ctor(D2D_RECT_U!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced)">
            <summary>
Constructs a CD2DRectU object from D2D1_RECT_U object.</summary>
            <param name="rect">source rectangle</param>
        </member>
        <member name="M:CD2DRectU.#ctor(CRect!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced)">
            <summary>
Constructs a CD2DRectU object from CRect object.</summary>
            <param name="rect">source rectangle</param>
        </member>
        <member name="T:CD2DRectU">
            <summary>
D2D1_RECT_U wrapper
</summary>
        </member>
        <member name="M:CD2DRectF.op_Implicit~CRect">
            <summary>
Converts CD2DRectF to CRect object.</summary>
            <returns>
Current value of D2D rectangle.
</returns>
        </member>
        <member name="M:CD2DRectF.IsNull">
            <summary>
Returns a Boolean value that indicates whether an expression contains no valid data (Null).</summary>
            <returns>
TRUE if rectangle's top, left, bottom, and right values are all equal to 0; otherwise FALSE.
</returns>
        </member>
        <member name="M:CD2DRectF.#ctor(System.Single,System.Single,System.Single,System.Single)">
            <summary>
Constructs a CD2DRectF object from four FLOAT values.</summary>
            <param name="fLeft">source left coordinate</param>
            <param name="fTop">source top coordinate</param>
            <param name="fRight">source right coordinate</param>
            <param name="fBottom">source bottom coordinate</param>
        </member>
        <member name="M:CD2DRectF.#ctor(D2D_RECT_F!System.Runtime.CompilerServices.IsConst*)">
            <summary>
Constructs a CD2DRectF object from D2D1_RECT_F object.</summary>
            <param name="rect">source rectangle</param>
        </member>
        <member name="M:CD2DRectF.#ctor(D2D_RECT_F!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced)">
            <summary>
Constructs a CD2DRectF object from D2D1_RECT_F object.</summary>
            <param name="rect">source rectangle</param>
        </member>
        <member name="M:CD2DRectF.#ctor(CRect!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced)">
            <summary>
Constructs a CD2DRectF object from CRect object.</summary>
            <param name="rect">source rectangle</param>
        </member>
        <member name="T:CD2DRectF">
            <summary>
D2D1_RECT_F wrapper
</summary>
        </member>
        <member name="M:CD2DSizeU.op_Implicit~CSize">
            <summary>
Converts CD2DSizeU to CSize object.</summary>
            <returns>
Current value of D2D size.
</returns>
        </member>
        <member name="M:CD2DSizeU.IsNull">
            <summary>
Returns a Boolean value that indicates whether an expression contains no valid data (Null).</summary>
            <returns>
TRUE if width and height are empty; otherwise FALSE.
</returns>
        </member>
        <member name="M:CD2DSizeU.#ctor(System.UInt32,System.UInt32)">
            <summary>
Constructs a CD2DSizeU object from two UINT32 values.</summary>
            <param name="cx">source width</param>
            <param name="cy">source height</param>
        </member>
        <member name="M:CD2DSizeU.#ctor(D2D_SIZE_U!System.Runtime.CompilerServices.IsConst*)">
            <summary>
Constructs a CD2DSizeU object from D2D1_SIZE_U object.</summary>
            <param name="size">source size</param>
        </member>
        <member name="M:CD2DSizeU.#ctor(D2D_SIZE_U!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced)">
            <summary>
Constructs a CD2DSizeU object from D2D1_SIZE_U object.</summary>
            <param name="size">source size</param>
        </member>
        <member name="M:CD2DSizeU.#ctor(CSize!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced)">
            <summary>
Constructs a CD2DSizeU object from CSize object.</summary>
            <param name="size">source size</param>
        </member>
        <member name="T:CD2DSizeU">
            <summary>
D2D1_SIZE_U wrapper
</summary>
        </member>
        <member name="M:CD2DSizeF.op_Implicit~CSize">
            <summary>
Converts CD2DSizeF to CSize object.</summary>
            <returns>
Current value of D2D size.
</returns>
        </member>
        <member name="M:CD2DSizeF.IsNull">
            <summary>
Returns a Boolean value that indicates whether an expression contains no valid data (Null).</summary>
            <returns>
TRUE if width and height are empty; otherwise FALSE.
</returns>
        </member>
        <member name="M:CD2DSizeF.#ctor(System.Single,System.Single)">
            <summary>
Constructs a CD2DSizeF object from two FLOAT values.</summary>
            <param name="cx">source width</param>
            <param name="cy">source height</param>
        </member>
        <member name="M:CD2DSizeF.#ctor(D2D_SIZE_F!System.Runtime.CompilerServices.IsConst*)">
            <summary>
Constructs a CD2DSizeF object from D2D1_SIZE_F object.</summary>
            <param name="size">source size</param>
        </member>
        <member name="M:CD2DSizeF.#ctor(D2D_SIZE_F!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced)">
            <summary>
Constructs a CD2DSizeF object from D2D1_SIZE_F object.</summary>
            <param name="size">source size</param>
        </member>
        <member name="M:CD2DSizeF.#ctor(CSize!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced)">
            <summary>
Constructs a CD2DSizeF object from CSize object.</summary>
            <param name="size">source size</param>
        </member>
        <member name="T:CD2DSizeF">
            <summary>
D2D1_SIZE_F wrapper
</summary>
        </member>
        <member name="M:CD2DPointU.op_Implicit~CPoint">
            <summary>
Converts CD2DPointU to CPoint object.</summary>
            <returns>
Current value of D2D point.
</returns>
        </member>
        <member name="M:CD2DPointU.#ctor(System.UInt32,System.UInt32)">
            <summary>
Constructs a CD2DPointU object from two UINT32 values.</summary>
            <param name="uX">source X</param>
            <param name="uY">source Y</param>
        </member>
        <member name="M:CD2DPointU.#ctor(D2D_POINT_2U!System.Runtime.CompilerServices.IsConst*)">
            <summary>
Constructs a CD2DPointU from object D2D1_POINT_2U object.</summary>
            <param name="pt">source point</param>
        </member>
        <member name="M:CD2DPointU.#ctor(D2D_POINT_2U!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced)">
            <summary>
Constructs a CD2DPointU from object D2D1_POINT_2U object.</summary>
            <param name="pt">source point</param>
        </member>
        <member name="M:CD2DPointU.#ctor(CPoint!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced)">
            <summary>
Constructs a CD2DPointU object from CPoint object.</summary>
            <param name="pt">source point</param>
        </member>
        <member name="T:CD2DPointU">
            <summary>
D2D1_POINT_2U wrapper
</summary>
        </member>
        <member name="M:CD2DPointF.op_Implicit~CPoint">
            <summary>
Converts CD2DPointF to CPoint object.</summary>
            <returns>
Current value of D2D point.
</returns>
        </member>
        <member name="M:CD2DPointF.#ctor(System.Single,System.Single)">
            <summary>
Constructs a CD2DPointF object from two FLOAT values.</summary>
            <param name="fX">source X</param>
            <param name="fY">source Y</param>
        </member>
        <member name="M:CD2DPointF.#ctor(D2D_POINT_2F!System.Runtime.CompilerServices.IsConst*)">
            <summary>
Constructs a CD2DPointF object from D2D1_POINT_2F object.</summary>
            <param name="pt">source point</param>
        </member>
        <member name="M:CD2DPointF.#ctor(D2D_POINT_2F!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced)">
            <summary>
Constructs a CD2DPointF object from D2D1_POINT_2F object.</summary>
            <param name="pt">source point</param>
        </member>
        <member name="M:CD2DPointF.#ctor(CPoint!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced)">
            <summary>
Constructs a CD2DPointF object from CPoint object.</summary>
            <param name="pt">source point</param>
        </member>
        <member name="T:CD2DPointF">
            <summary>
D2D1_POINT_2F wrapper
</summary>
        </member>
        <member name="M:CCustomTransition.Create(IUIAnimationTransitionLibrary*,IUIAnimationTransitionFactory*)">
            <summary>
Calls the transition library to create encapsulated transition COM object.
</summary>
            <remarks>
This method also can set initial value and initial velocity to be applied to an animation variable, which is
associated with this transition. For this purpose you have to call SetInitialValue and SetInitialVelocity before
the framework creates the encapsulated transition COM object (it happens when you call CAnimationController::AnimateGroup).
</remarks>
            <param name="pLibrary">A pointer to transition library, which is responsible for creation of standard transitions.</param>
            <param name="pFactory">A pointer to transition factory, which is responsible for creation of custom transitions.</param>
        </member>
        <member name="M:CCustomTransition.SetInitialVelocity(System.Double)">
            <summary>
Sets an initial velocity, which will be applied to an animation variable associated with this transition.
</summary>
        </member>
        <member name="M:CCustomTransition.SetInitialValue(System.Double)">
            <summary>
Sets an initial value, which will be applied to an animation variable associated with this transition.
</summary>
        </member>
        <member name="M:CCustomTransition.#ctor(CCustomInterpolator*)">
            <summary>
Constructs a custom transition object.
</summary>
            <param name="pInterpolator">A pointer to custom interpolator.</param>
        </member>
        <member name="F:CCustomTransition.m_initialVelocity">
            <summary>
Stores the initial velocity.
</summary>
        </member>
        <member name="F:CCustomTransition.m_initialValue">
            <summary>
Stores the initial value.
</summary>
        </member>
        <member name="F:CCustomTransition.m_bInitialVelocitySpecified">
            <summary>
Specifies whether the initial velocity was specified with SetInitialVelocity.
</summary>
        </member>
        <member name="F:CCustomTransition.m_bInitialValueSpecified">
            <summary>
Specifies whether the initial value was specified with SetInitialValue.
</summary>
        </member>
        <member name="F:CCustomTransition.m_pInterpolator">
            <summary>
Stores a pointer to a custom interpolator.
</summary>
        </member>
        <member name="T:CCustomTransition">
            <summary>
Implements custom transition.
</summary>
            <remarks>
The CCustomTransitions class allows developers to implement custom transitions. It's created and used
as a standard transition, but its constructor accepts as parameter a pointer to a custom interpolator.
Perform the following steps to use custom transitions:
1. Derive a class from CCustomInterpolator and implement at least InterpolateValue method.
2. Ensure that the lifetime of custom interpolator object must be longer than duration of animation where it's used.
3. Instantiate (using operator new) a CCustomTransition object and pass a pointer to custom interpolator in the constructor.
4. Call CCustomTransition::SetInitialValue and CCustomTransition::SetInitialVelocity if these parameters are required for custom interpolation.
5. Pass the pointer to custom transition to AddTransition method of animation object, whose value should be animated with the custom algorithm.
6. When the value of animation object should change Windows Animation API will call InterpolateValue (and other relevant methods) in CCustomInterpolator.
</remarks>
        </member>
        <member name="M:CInterpolatorBase.GetDependencies(__MIDL___MIDL_itf_UIAnimation_0000_0010_0001*,__MIDL___MIDL_itf_UIAnimation_0000_0010_0001*,__MIDL___MIDL_itf_UIAnimation_0000_0010_0001*)">
            <summary>
Gets the interpolator's dependencies.
</summary>
            <returns>
If the method succeeds, it returns S_OK. It returns E_FAIL if CCustomInterpolator is not
set, or custom implementation returns FALSE from the GetDependencies method.
</returns>
            <param name="initialValueDependencies">Output. Aspects of the interpolator that depend on the initial value passed to SetInitialValueAndVelocity.</param>
            <param name="initialVelocityDependencies">Output. Aspects of the interpolator that depend on the initial velocity passed to SetInitialValueAndVelocity.</param>
            <param name="durationDependencies">Output. Aspects of the interpolator that depend on the duration passed to SetDuration.</param>
        </member>
        <member name="M:CInterpolatorBase.InterpolateVelocity(System.Double,System.Double*)">
            <summary>
Interpolates the velocity at a given offset
</summary>
            <returns>
If the method succeeds, it returns S_OK. It returns E_FAIL if CCustomInterpolator is not
set, or custom implementation returns FALSE from the InterpolateVelocity method.
</returns>
            <param name="offset">The offset from the start of the transition.
The offset is always greater than or equal to zero and less than or equal to the duration of the transition.
This method is not called if the duration of the transition is zero. </param>
            <param name="velocity">Output. The velocity of the variable at the offset.</param>
        </member>
        <member name="M:CInterpolatorBase.InterpolateValue(System.Double,System.Double*)">
            <summary>
Interpolates the value at a given offset
</summary>
            <returns>
If the method succeeds, it returns S_OK. It returns E_FAIL if CCustomInterpolator is not
set, or custom implementation returns FALSE from the InterpolateValue method.
</returns>
            <param name="offset">The offset from the start of the transition.
The offset is always greater than or equal to zero and less than the duration of the transition.
This method is not called if the duration of the transition is zero.</param>
            <param name="value">Output. The interpolated value.</param>
        </member>
        <member name="M:CInterpolatorBase.GetFinalValue(System.Double*)">
            <summary>
Gets the final value to which the interpolator leads.
</summary>
            <returns>
If the method succeeds, it returns S_OK. It returns E_FAIL if CCustomInterpolator is not
set, or custom implementation returns FALSE from the GetFinalValue method.
</returns>
            <param name="value">Output. The final value of a variable at the end of the transition.</param>
        </member>
        <member name="M:CInterpolatorBase.GetDuration(System.Double*)">
            <summary>
Gets the interpolator's duration.
</summary>
            <returns>
If the method succeeds, it returns S_OK. It returns E_FAIL if CCustomInterpolator is not
set, or custom implementation returns FALSE from the GetDuration method.
</returns>
            <param name="duration">Output. The duration of the transition, in seconds.</param>
        </member>
        <member name="M:CInterpolatorBase.SetDuration(System.Double)">
            <summary>
Sets the interpolator's duration
</summary>
            <returns>
If the method succeeds, it returns S_OK. It returns E_FAIL if CCustomInterpolator is not
set, or custom implementation returns FALSE from the SetDuration method.
</returns>
            <param name="duration">The duration of the transition.</param>
        </member>
        <member name="M:CInterpolatorBase.SetInitialValueAndVelocity(System.Double,System.Double)">
            <summary>
Sets the interpolator's initial value and velocity.
</summary>
            <returns>
If the method succeeds, it returns S_OK. It returns E_FAIL if CCustomInterpolator is not
set, or custom implementation returns FALSE from the SetInitialValueAndVelocity method.
</returns>
            <param name="initialValue">The value of the variable at the start of the transition.</param>
            <param name="initialVelocity">The velocity of the variable at the start of the transition.</param>
        </member>
        <member name="M:CInterpolatorBase.CreateInstance(CCustomInterpolator*,IUIAnimationInterpolator**)">
            <summary>
Creates an instance of CInterpolatorBase and stores a pointer to custom interpolator, which will be handling events.
</summary>
If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
<param name="pInterpolator">A pointer to custom interpolator.</param><param name="ppHandler">Output. Contains a pointer to instance of CInterpolatorBase when the function returns.</param></member>
        <member name="M:CInterpolatorBase.SetCustomInterpolator(CCustomInterpolator*)">
            <summary>
Stores  a pointer to custom interpolator, which will be handling events.
</summary>
            <param name="pInterpolator">A pointer to custom interpolator.</param>
        </member>
        <member name="M:CInterpolatorBase.#ctor">
            <summary>
Constructs the CInterpolatorBase object.
</summary>
        </member>
        <member name="T:CInterpolatorBase">
            <summary>
Implements a callback, which is called by Animation API when it needs to calculate a new value of animation variable.
</summary>
            <remarks>
This handler is created and passed to IUIAnimationTransitionFactory::CreateTransition when a CCustomTransition
object is being created as a part of animation initialization process (started by CAnimationController::AnimateGroup).
Usually you don't need to use this class directly, it just routs all events to a CCustomInterpolator-derived class, whose
pointer is passed to constructor of CCustomTransition.
</remarks>
        </member>
        <member name="M:CCustomInterpolator.GetDependencies(__MIDL___MIDL_itf_UIAnimation_0000_0010_0001*,__MIDL___MIDL_itf_UIAnimation_0000_0010_0001*,__MIDL___MIDL_itf_UIAnimation_0000_0010_0001*)">
            <summary>
Gets the interpolator's dependencies.
</summary>
            <returns>
Basic implementation always returns TRUE. Return FALSE from overridden implementation if you wish to fail the event.
</returns>
            <param name="initialValueDependencies">Output. Aspects of the interpolator that depend on the initial value passed to SetInitialValueAndVelocity.</param>
            <param name="initialVelocityDependencies">Output. Aspects of the interpolator that depend on the initial velocity passed to SetInitialValueAndVelocity.</param>
            <param name="durationDependencies">Output. Aspects of the interpolator that depend on the duration passed to SetDuration.</param>
        </member>
        <member name="M:CCustomInterpolator.InterpolateVelocity(System.Double,System.Double*)">
            <summary>
Interpolates the velocity at a given offset
</summary>
            <returns>
Basic implementation always returns TRUE. Return FALSE from overridden implementation if you wish to fail the event.
</returns>
            <param name="offset">The offset from the start of the transition.
The offset is always greater than or equal to zero and less than or equal to the duration of the transition.
This method is not called if the duration of the transition is zero. </param>
            <param name="velocity">Output. The velocity of the variable at the offset.</param>
        </member>
        <member name="M:CCustomInterpolator.InterpolateValue(System.Double,System.Double*)">
            <summary>
Interpolates the value at a given offset.
</summary>
            <returns>
Basic implementation always returns TRUE. Return FALSE from overridden implementation if you wish to fail the event.
</returns>
            <param name="offset">The offset from the start of the transition.
The offset is always greater than or equal to zero and less than the duration of the transition.
This method is not called if the duration of the transition is zero.</param>
            <param name="value">Output. The interpolated value.</param>
        </member>
        <member name="M:CCustomInterpolator.GetFinalValue(System.Double*)">
            <summary>
Gets the final value to which the interpolator leads.
</summary>
            <returns>
Basic implementation always returns TRUE. Return FALSE from overridden implementation if you wish to fail the event.
</returns>
            <param name="value">Output. The final value of a variable at the end of the transition.</param>
        </member>
        <member name="M:CCustomInterpolator.GetDuration(System.Double*)">
            <summary>
Gets the interpolator's duration.
</summary>
            <returns>
Basic implementation always returns TRUE. Return FALSE from overridden implementation if you wish to fail the event.
</returns>
            <param name="duration">Output. The duration of the transition, in seconds.</param>
        </member>
        <member name="M:CCustomInterpolator.SetDuration(System.Double)">
            <summary>
Sets the interpolator's duration.
</summary>
            <returns>
Basic implementation always returns TRUE. Return FALSE from overridden implementation if you wish to fail the event.
</returns>
            <param name="duration">The duration of the transition.</param>
        </member>
        <member name="M:CCustomInterpolator.SetInitialValueAndVelocity(System.Double,System.Double)">
            <summary>
Sets the interpolator's initial value and velocity.
</summary>
            <returns>
The basic implementation always returns TRUE. Return FALSE from overridden implementation if you wish to fail the event.
</returns>
            <param name="initialValue">The value of the variable at the start of the transition.</param>
            <param name="initialVelocity">The velocity of the variable at the start of the transition.</param>
        </member>
        <member name="M:CCustomInterpolator.Init(System.Double,System.Double)">
            <summary>
Initializes duration and final value.
</summary>
            <param name="duration">The duration of the transition.</param>
            <param name="finalValue">The final value of a variable at the end of the transition.</param>
        </member>
        <member name="M:CCustomInterpolator.#ctor(System.Double,System.Double)">
            <summary>
Constructs a custom interpolator object and initializes duration and velocity to specified values.
</summary>
            <param name="duration">The duration of the transition.</param>
            <param name="finalValue" />
        </member>
        <member name="M:CCustomInterpolator.#ctor">
            <summary>
Constructs a custom interpolator object and sets all values to default 0.
</summary>
            <remarks>
Use CCustomInterpolator::Init to initialize duration and final value later in the code.
</remarks>
        </member>
        <member name="F:CCustomInterpolator.m_currentVelocity">
            <summary>
The interpolated velocity.
</summary>
        </member>
        <member name="F:CCustomInterpolator.m_currentValue">
            <summary>
The interpolated value.
</summary>
        </member>
        <member name="F:CCustomInterpolator.m_initialVelocity">
            <summary>
The velocity of the variable at the start of the transition.
</summary>
        </member>
        <member name="F:CCustomInterpolator.m_initialValue">
            <summary>
The value of the variable at the start of the transition.
</summary>
        </member>
        <member name="F:CCustomInterpolator.m_finalValue">
            <summary>
The final value of a variable at the end of the transition.
</summary>
        </member>
        <member name="F:CCustomInterpolator.m_duration">
            <summary>
The duration of the transition.
</summary>
        </member>
        <member name="T:CCustomInterpolator">
            <summary>
Implements a basic interpolator.
</summary>
            <remarks>
Derive a class from CCustomInterpolator and override all necessary methods in order to implement a custom
interpolation algorithm. A pointer to this class should be passed as a parameter to CCustomTransition.
</remarks>
        </member>
        <member name="M:CSinusoidalTransitionFromVelocity.Create(IUIAnimationTransitionLibrary*,IUIAnimationTransitionFactory*)">
            <summary>
Calls the transition library to create encapsulated transition COM object.
</summary>
            <returns>
TRUE if transition is created successfully; otherwise FALSE.
</returns>
            <param name="pLibrary">A pointer to transition library, which is responsible for creation of standard transitions.</param>
            <param name="pFactory">A pointer to transition factory, which is responsible for creation of custom transitions.</param>
        </member>
        <member name="F:CSinusoidalTransitionFromVelocity.m_period">
            <summary>
The period of oscillation of the sinusoidal wave in seconds.
</summary>
        </member>
        <member name="F:CSinusoidalTransitionFromVelocity.m_duration">
            <summary>
The duration of the transition.
</summary>
        </member>
        <member name="M:CSinusoidalTransitionFromVelocity.#ctor(System.Double,System.Double)">
            <summary>
Constructs a transition object.
</summary>
            <param name="duration">The duration of the transition.</param>
            <param name="period">The period of oscillation of the sinusoidal wave in seconds. </param>
        </member>
        <member name="T:CSinusoidalTransitionFromVelocity">
            <summary>
Encapsulates a sinusoidal-velocity transition, with an amplitude determined by the animation variable's initial velocity..
</summary>
            <remarks>
The value of the animation variable oscillates around the initial value over the entire duration of a
sinusoidal-range transition. The amplitude of the oscillation is determined by the animation variable's velocity
when the transition begins.
Because all transitions are cleared automatically, it's recommended to allocated them using operator new.
The encapsulated IUIAnimationTransition COM object is created by CAnimationController::AnimateGroup, until then
it's NULL. Changing member variables after creation of this COM object has no effect.
</remarks>
        </member>
        <member name="M:CSinusoidalTransitionFromRange.Create(IUIAnimationTransitionLibrary*,IUIAnimationTransitionFactory*)">
            <summary>
Calls the transition library to create encapsulated transition COM object.
</summary>
            <returns>
TRUE if transition is created successfully; otherwise FALSE.
</returns>
            <param name="pLibrary">A pointer to transition library, which is responsible for creation of standard transitions.</param>
            <param name="pFactory">A pointer to transition factory, which is responsible for creation of custom transitions.</param>
        </member>
        <member name="F:CSinusoidalTransitionFromRange.m_slope">
            <summary>
The slope at the start of the transition.
</summary>
        </member>
        <member name="F:CSinusoidalTransitionFromRange.m_period">
            <summary>
The period of oscillation of the sinusoidal wave in seconds.
</summary>
        </member>
        <member name="F:CSinusoidalTransitionFromRange.m_dblMaximumValue">
            <summary>
The value of the animation variable at a peak of the sinusoidal wave.
</summary>
        </member>
        <member name="F:CSinusoidalTransitionFromRange.m_dblMinimumValue">
            <summary>
The value of the animation variable at a trough of the sinusoidal wave.
</summary>
        </member>
        <member name="F:CSinusoidalTransitionFromRange.m_duration">
            <summary>
The duration of the transition.
</summary>
        </member>
        <member name="M:CSinusoidalTransitionFromRange.#ctor(System.Double,System.Double,System.Double,System.Double,__MIDL___MIDL_itf_UIAnimation_0000_0009_0001)">
            <summary>
Constructs a transition object.
</summary>
            <param name="duration">The duration of the transition.</param>
            <param name="dblMinimumValue">The value of the animation variable at a trough of the sinusoidal wave.</param>
            <param name="dblMaximumValue">The value of the animation variable at a peak of the sinusoidal wave.</param>
            <param name="period">The period of oscillation of the sinusoidal wave in seconds. </param>
            <param name="slope">The slope at the start of the transition. </param>
        </member>
        <member name="T:CSinusoidalTransitionFromRange">
            <summary>
Encapsulates a sinusoidal-range transition, with a given range of oscillation.
</summary>
            <remarks>
The value of the animation variable fluctuates between the specified minimum and maximum values over the entire
duration of a sinusoidal-range transition. The slope parameter is used to disambiguate between the two possible
sine waves specified by the other parameters.
Because all transitions are cleared automatically, it's recommended to allocated them using operator new.
The encapsulated IUIAnimationTransition COM object is created by CAnimationController::AnimateGroup, until then
it's NULL. Changing member variables after creation of this COM object has no effect.
</remarks>
        </member>
        <member name="M:CReversalTransition.Create(IUIAnimationTransitionLibrary*,IUIAnimationTransitionFactory*)">
            <summary>
Calls the transition library to create encapsulated transition COM object.
</summary>
            <returns>
TRUE if transition is created successfully; otherwise FALSE.
</returns>
            <param name="pLibrary">A pointer to transition library, which is responsible for creation of standard transitions.</param>
            <param name="pFactory">A pointer to transition factory, which is responsible for creation of custom transitions.</param>
        </member>
        <member name="F:CReversalTransition.m_duration">
            <summary>
The duration of the transition.
</summary>
        </member>
        <member name="M:CReversalTransition.#ctor(System.Double)">
            <summary>
Constructs a reversal transition object and initializes its duration.
</summary>
            <param name="duration">The duration of the transition. </param>
        </member>
        <member name="T:CReversalTransition">
            <summary>
Encapsulates a reversal transition.
</summary>
            <remarks>
A reversal transition smoothly changes direction over a given duration.
The final value will be the same as the initial value and the final velocity will be the negative of the initial velocity.
Because all transitions are cleared automatically, it's recommended to allocated them using operator new.
The encapsulated IUIAnimationTransition COM object is created by CAnimationController::AnimateGroup, until then
it's NULL. Changing member variables after creation of this COM object has no effect.
</remarks>
        </member>
        <member name="M:CParabolicTransitionFromAcceleration.Create(IUIAnimationTransitionLibrary*,IUIAnimationTransitionFactory*)">
            <summary>
Calls the transition library to create encapsulated transition COM object.
</summary>
            <returns>
TRUE if transition is created successfully; otherwise FALSE.
</returns>
            <param name="pLibrary">A pointer to transition library, which is responsible for creation of standard transitions.</param>
            <param name="pFactory">A pointer to transition factory, which is responsible for creation of custom transitions.</param>
        </member>
        <member name="F:CParabolicTransitionFromAcceleration.m_dblAcceleration">
            <summary>
The acceleration of the animation variable during the transition.
</summary>
        </member>
        <member name="F:CParabolicTransitionFromAcceleration.m_dblFinalVelocity">
            <summary>
The velocity of the animation variable at the end of the transition.
</summary>
        </member>
        <member name="F:CParabolicTransitionFromAcceleration.m_dblFinalValue">
            <summary>
The value of the animation variable at the end of the transition.
</summary>
        </member>
        <member name="M:CParabolicTransitionFromAcceleration.#ctor(System.Double,System.Double,System.Double)">
            <summary>
Constructs a parabolic-acceleration transition and initializes it with specified parameters.
</summary>
            <param name="dblFinalValue">The value of the animation variable at the end of the transition. </param>
            <param name="dblFinalVelocity">The velocity of the animation variable at the end of the transition. </param>
            <param name="dblAcceleration">The acceleration of the animation variable during the transition.</param>
        </member>
        <member name="T:CParabolicTransitionFromAcceleration">
            <summary>
Encapsulates a parabolic-acceleration transition.
</summary>
            <remarks>
During a parabolic-acceleration transition, the value of the animation variable changes from the initial value
to the final value ending at a specified velocity. You can control how quickly the variable reaches the final
value by specifying the rate of acceleration.
Because all transitions are cleared automatically, it's recommended to allocated them using operator new.
The encapsulated IUIAnimationTransition COM object is created by CAnimationController::AnimateGroup, until then
it's NULL. Changing member variables after creation of this COM object has no effect.
</remarks>
        </member>
        <member name="M:CSmoothStopTransition.Create(IUIAnimationTransitionLibrary*,IUIAnimationTransitionFactory*)">
            <summary>
Calls the transition library to create encapsulated transition COM object.
</summary>
            <returns>
TRUE if transition is created successfully; otherwise FALSE.
</returns>
            <param name="pLibrary">A pointer to transition library, which is responsible for creation of standard transitions.</param>
            <param name="pFactory">A pointer to transition factory, which is responsible for creation of custom transitions.</param>
        </member>
        <member name="F:CSmoothStopTransition.m_dblFinalValue">
            <summary>
The value of the animation variable at the end of the transition.
</summary>
        </member>
        <member name="F:CSmoothStopTransition.m_maximumDuration">
            <summary>
The maximum duration of the transition.
</summary>
        </member>
        <member name="M:CSmoothStopTransition.#ctor(System.Double,System.Double)">
            <summary>
Constructs a smooth-stop transition and initializes its maximum duration and final value.
</summary>
            <param name="maximumDuration">The maximum duration of the transition.</param>
            <param name="dblFinalValue">The value of the animation variable at the end of the transition.</param>
        </member>
        <member name="T:CSmoothStopTransition">
            <summary>
Encapsulates a smooth-stop transition.
</summary>
            <remarks>
A smooth-stop transition slows down as it approaches a given final value, and reaches it with a velocity of zero.
The duration of the transition is determined by the initial velocity, the difference between the initial and final values,
and the specified maximum duration. If there is no solution consisting of a single parabolic arc,
this method creates a cubic transition.
Because all transitions are cleared automatically, it's recommended to allocated them using operator new.
The encapsulated IUIAnimationTransition COM object is created by CAnimationController::AnimateGroup, until then
it's NULL. Changing member variables after creation of this COM object has no effect.
</remarks>
        </member>
        <member name="M:CLinearTransitionFromSpeed.Create(IUIAnimationTransitionLibrary*,IUIAnimationTransitionFactory*)">
            <summary>
Calls the transition library to create encapsulated transition COM object.
</summary>
            <returns>
TRUE if transition is created successfully; otherwise FALSE.
</returns>
            <param name="pLibrary">A pointer to transition library, which is responsible for creation of standard transitions.</param>
            <param name="pFactory">A pointer to transition factory, which is responsible for creation of custom transitions.</param>
        </member>
        <member name="F:CLinearTransitionFromSpeed.m_dblFinalValue">
            <summary>
The value of the animation variable at the end of the transition.
</summary>
        </member>
        <member name="F:CLinearTransitionFromSpeed.m_dblSpeed">
            <summary>
The absolute value of the variable's velocity.
</summary>
        </member>
        <member name="M:CLinearTransitionFromSpeed.#ctor(System.Double,System.Double)">
            <summary>
Constructs a linear-speed transition object and initializes it with speed and final value.
</summary>
            <param name="dblSpeed">The absolute value of the variable's velocity.</param>
            <param name="dblFinalValue">The value of the animation variable at the end of the transition.</param>
        </member>
        <member name="T:CLinearTransitionFromSpeed">
            <summary>
Encapsulates a linear-speed transition.
</summary>
            <remarks>
During a linear-speed transition, the value of the animation variable changes at a specified rate.
The duration of the transition is determined by the difference between the initial value and the specified final value.
Because all transitions are cleared automatically, it's recommended to allocated them using operator new.
The encapsulated IUIAnimationTransition COM object is created by CAnimationController::AnimateGroup, until then
it's NULL. Changing member variables after creation of this COM object has no effect.
</remarks>
        </member>
        <member name="M:CLinearTransition.Create(IUIAnimationTransitionLibrary*,IUIAnimationTransitionFactory*)">
            <summary>
Calls the transition library to create encapsulated transition COM object.
</summary>
            <returns>
TRUE if transition is created successfully; otherwise FALSE.
</returns>
            <param name="pLibrary">A pointer to transition library, which is responsible for creation of standard transitions.</param>
            <param name="pFactory">A pointer to transition factory, which is responsible for creation of custom transitions.</param>
        </member>
        <member name="F:CLinearTransition.m_dblFinalValue">
            <summary>
The value of the animation variable at the end of the transition.
</summary>
        </member>
        <member name="F:CLinearTransition.m_duration">
            <summary>
The duration of the transition.
</summary>
        </member>
        <member name="M:CLinearTransition.#ctor(System.Double,System.Double)">
            <summary>
Constructs a linear transition object and initializes it with duration and final value.
</summary>
            <param name="duration">The duration of the transition.</param>
            <param name="dblFinalValue">The value of the animation variable at the end of the transition.</param>
        </member>
        <member name="T:CLinearTransition">
            <summary>
Encapsulates a linear transition.
</summary>
            <remarks>
During a linear transition, the value of the animation variable transitions linearly from its initial value to a specified final value.
Because all transitions are cleared automatically, it's recommended to allocated them using operator new.
The encapsulated IUIAnimationTransition COM object is created by CAnimationController::AnimateGroup, until then
it's NULL. Changing member variables after creation of this COM object has no effect.
</remarks>
        </member>
        <member name="M:CInstantaneousTransition.Create(IUIAnimationTransitionLibrary*,IUIAnimationTransitionFactory*)">
            <summary>
Calls the transition library to create encapsulated transition COM object.
</summary>
            <returns>
TRUE if transition is created successfully; otherwise FALSE.
</returns>
            <param name="pLibrary">A pointer to transition library, which is responsible for creation of standard transitions.</param>
            <param name="pFactory">A pointer to transition factory, which is responsible for creation of custom transitions.</param>
        </member>
        <member name="F:CInstantaneousTransition.m_dblFinalValue">
            <summary>
The value of the animation variable at the end of the transition.
</summary>
        </member>
        <member name="M:CInstantaneousTransition.#ctor(System.Double)">
            <summary>
Constructs a transition object and initializes its final value.
</summary>
            <param name="dblFinalValue">The value of the animation variable at the end of the transition.</param>
        </member>
        <member name="T:CInstantaneousTransition">
            <summary>
Encapsulates an instantaneous transition.
</summary>
            <remarks>
During an instantaneous transition, the value of the animation variable changes instantly from its current
value to a specified final value. The duration of this transition is always zero.
Because all transitions are cleared automatically, it's recommended to allocated them using operator new.
The encapsulated IUIAnimationTransition COM object is created by CAnimationController::AnimateGroup, until then
it's NULL. Changing member variables after creation of this COM object has no effect.
</remarks>
        </member>
        <member name="M:CDiscreteTransition.Create(IUIAnimationTransitionLibrary*,IUIAnimationTransitionFactory*)">
            <summary>
Calls the transition library to create encapsulated transition COM object.
</summary>
            <returns>
TRUE if transition is created successfully; otherwise FALSE.
</returns>
            <param name="pLibrary">A pointer to transition library, which is responsible for creation of standard transitions.</param>
            <param name="pFactory">A pointer to transition factory, which is responsible for creation of custom transitions.</param>
        </member>
        <member name="F:CDiscreteTransition.m_hold">
            <summary>
The amount of time by which to hold the variable at its final value.
</summary>
        </member>
        <member name="F:CDiscreteTransition.m_dblFinalValue">
            <summary>
The value of the animation variable at the end of the transition.
</summary>
        </member>
        <member name="F:CDiscreteTransition.m_delay">
            <summary>
The amount of time by which to delay the instantaneous switch to the final value.
</summary>
        </member>
        <member name="M:CDiscreteTransition.#ctor(System.Double,System.Double,System.Double)">
            <summary>
Constructs a discrete transition object and initializes its parameters.
</summary>
            <param name="delay">The amount of time by which to delay the instantaneous switch to the final value.</param>
            <param name="dblFinalValue">The value of the animation variable at the end of the transition. </param>
            <param name="hold">The amount of time by which to hold the variable at its final value.</param>
        </member>
        <member name="T:CDiscreteTransition">
            <summary>
Encapsulates a discrete transition.
</summary>
            <remarks>
During a discrete transition, the animation variable remains at the initial value for a specified delay time,
then switches instantaneously to a specified final value and remains at that value for a given hold time.
Because all transitions are cleared automatically, it's recommended to allocated them using operator new.
The encapsulated IUIAnimationTransition COM object is created by CAnimationController::AnimateGroup, until then
it's NULL. Changing member variables after creation of this COM object has no effect.
</remarks>
        </member>
        <member name="M:CCubicTransition.Create(IUIAnimationTransitionLibrary*,IUIAnimationTransitionFactory*)">
            <summary>
Calls the transition library to create encapsulated transition COM object.
</summary>
            <returns>
TRUE if transition is created successfully; otherwise FALSE.
</returns>
            <param name="pLibrary">A pointer to transition library, which is responsible for creation of standard transitions.</param>
            <param name="pFactory">A pointer to transition factory, which is responsible for creation of custom transitions.</param>
        </member>
        <member name="F:CCubicTransition.m_dblFinalVelocity">
            <summary>
The velocity of the variable at the end of the transition.
</summary>
        </member>
        <member name="F:CCubicTransition.m_dblFinalValue">
            <summary>
The value of the animation variable at the end of the transition.
</summary>
        </member>
        <member name="F:CCubicTransition.m_duration">
            <summary>
The duration of the transition.
</summary>
        </member>
        <member name="M:CCubicTransition.#ctor(System.Double,System.Double,System.Double)">
            <summary>
Constructs a transition object and initializes its parameters.
</summary>
            <param name="duration">The duration of the transition.</param>
            <param name="finalValue">The value of the animation variable at the end of the transition.</param>
            <param name="finalVelocity">The velocity of the variable at the end of the transition.</param>
        </member>
        <member name="T:CCubicTransition">
            <summary>
Encapsulates a cubic transition.
</summary>
            <remarks>
During a cubic transition, the value of the animation variable changes from its initial value to a specified
final value over the duration of the transition, ending at a specified velocity.
Because all transitions are cleared automatically, it's recommended to allocated them using operator new.
The encapsulated IUIAnimationTransition COM object is created by CAnimationController::AnimateGroup, until then
it's NULL. Changing member variables after creation of this COM object has no effect.
</remarks>
        </member>
        <member name="M:CConstantTransition.Create(IUIAnimationTransitionLibrary*,IUIAnimationTransitionFactory*)">
            <summary>
Calls the transition library to create encapsulated transition COM object.
</summary>
            <returns>
TRUE if transition is created successfully; otherwise FALSE.
</returns>
            <param name="pLibrary">A pointer to transition library, which is responsible for creation of standard transitions.</param>
            <param name="pFactory">A pointer to transition factory, which is responsible for creation of custom transitions.</param>
        </member>
        <member name="F:CConstantTransition.m_duration">
            <summary>
The duration of the transition.
</summary>
        </member>
        <member name="M:CConstantTransition.#ctor(System.Double)">
            <summary>
Constructs a transition object and initializes its duration.
</summary>
            <param name="duration">The duration of the transition. </param>
        </member>
        <member name="T:CConstantTransition">
            <summary>
Encapsulates a constant transition.
</summary>
            <remarks>
During a constant transition, the value of an animation variable remains at the initial value over the duration
of the transition.
Because all transitions are cleared automatically, it's recommended to allocated them using operator new.
The encapsulated IUIAnimationTransition COM object is created by CAnimationController::AnimateGroup, until then
it's NULL. Changing member variables after creation of this COM object has no effect.
</remarks>
        </member>
        <member name="M:CAccelerateDecelerateTransition.Create(IUIAnimationTransitionLibrary*,IUIAnimationTransitionFactory*)">
            <summary>
Calls the transition library to create encapsulated transition COM object.
</summary>
            <returns>
TRUE if transition is created successfully; otherwise FALSE.
</returns>
            <param name="pLibrary">A pointer to transition library, which is responsible for creation of standard transitions.</param>
            <param name="pFactory">A pointer to transition factory, which is responsible for creation of custom transitions.</param>
        </member>
        <member name="F:CAccelerateDecelerateTransition.m_decelerationRatio">
            <summary>
The ratio of the time spent decelerating to the duration.
</summary>
        </member>
        <member name="F:CAccelerateDecelerateTransition.m_accelerationRatio">
            <summary>
The ratio of the time spent accelerating to the duration.
</summary>
        </member>
        <member name="F:CAccelerateDecelerateTransition.m_finalValue">
            <summary>
The value of the animation variable at the end of the transition.
</summary>
        </member>
        <member name="F:CAccelerateDecelerateTransition.m_duration">
            <summary>
The duration of the transition.
</summary>
        </member>
        <member name="M:CAccelerateDecelerateTransition.#ctor(System.Double,System.Double,System.Double,System.Double)">
            <summary>
Constructs a transition object.
</summary>
            <param name="duration">The duration of the transition. </param>
            <param name="finalValue">The value of the animation variable at the end of the transition. </param>
            <param name="accelerationRatio">The ratio of the time spent accelerating to the duration.</param>
            <param name="decelerationRatio">The ratio of the time spent decelerating to the duration. </param>
        </member>
        <member name="T:CAccelerateDecelerateTransition">
            <summary>
Implements an accelerate-decelerate transition.
</summary>
            <remarks>
During an accelerate-decelerate transition, the animation variable speeds up and then slows down over the
duration of the transition, ending at a specified value. You can control how quickly the variable accelerates and
decelerates independently, by specifying different acceleration and deceleration ratios.
When the initial velocity is zero, the acceleration ratio is the fraction of the duration that the variable will
spend accelerating; likewise with the deceleration ratio. If the initial velocity is non-zero, it is the
fraction of the time between the velocity reaching zero and the end of transition. The acceleration ratio and
the deceleration ratio should sum to a maximum of 1.0.
Because all transitions are cleared automatically, it's recommended to allocated them using operator new.
The encapsulated IUIAnimationTransition COM object is created by CAnimationController::AnimateGroup, until then
it's NULL. Changing member variables after creation of this COM object has no effect.
</remarks>
        </member>
        <member name="M:CAnimationTimerEventHandler.OnRenderingTooSlow(System.UInt32)">
            <summary>
Handles events that occur when the rendering frame rate for an animation falls below the minimum desirable frame rate.
</summary>
            <returns>
S_OK if the method succeeds; otherwise E_FAIL.
</returns>
        </member>
        <member name="M:CAnimationTimerEventHandler.OnPostUpdate">
            <summary>
Handles events that occur after an animation update is finished.
</summary>
            <returns>
S_OK if the method succeeds; otherwise E_FAIL.
</returns>
        </member>
        <member name="M:CAnimationTimerEventHandler.OnPreUpdate">
            <summary>
Handles events that occur before an animation update begins.
</summary>
            <returns>
S_OK if the method succeeds; otherwise E_FAIL.
</returns>
        </member>
        <member name="M:CAnimationTimerEventHandler.SetAnimationController(CAnimationController*)">
            <summary>
Stores a pointer to animation controller to route events.
</summary>
            <param name="pAnimationController">A pointer to animation controller, which will receive events.</param>
        </member>
        <member name="M:CAnimationTimerEventHandler.CreateInstance(CAnimationController*,IUIAnimationTimerEventHandler**)">
            <summary>
Creates an instance of CAnimationTimerEventHandler callback.
</summary>
            <returns>
If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
</returns>
            <param name="pAnimationController">A pointer to animation controller, which will receive events.</param>
            <param name="ppTimerEventHandler">Output. If the method succeeds it contains a pointer to COM object that will handle
animation timer events.</param>
        </member>
        <member name="T:CAnimationTimerEventHandler">
            <summary>
Implements a call back, which is called by Animation API when timing events occur.
</summary>
            <remarks>
This event handler is created and passed to IUIAnimationTimer::SetTimerEventHandler when you call
CAnimationController::EnableAnimationTimerEventHandler.
</remarks>
        </member>
        <member name="M:CAnimationStoryboardEventHandler.OnStoryboardUpdated(IUIAnimationStoryboard*)">
            <summary>
Handles OnStoryboardUpdated events, which occur when a storyboard is updated
</summary>
            <returns>
S_OK if the method succeeds; otherwise E_FAIL.
</returns>
            <param name="storyboard">A pointer to storyboard, which was updated.</param>
        </member>
        <member name="M:CAnimationStoryboardEventHandler.OnStoryboardStatusChanged(IUIAnimationStoryboard*,__MIDL___MIDL_itf_UIAnimation_0000_0002_0001,__MIDL___MIDL_itf_UIAnimation_0000_0002_0001)">
            <summary>
Handles OnStoryboardStatusChanged events, which occur when a storyboard's status changes
</summary>
            <returns>
S_OK if the method succeeds; otherwise E_FAIL.
</returns>
            <param name="storyboard">A pointer to storyboard whose status has changed.</param>
            <param name="newStatus">Specifies new storyboard status.</param>
            <param name="previousStatus">Specifies previous storyboard status.</param>
        </member>
        <member name="M:CAnimationStoryboardEventHandler.SetAnimationController(CAnimationController*)">
            <summary>
Stores a pointer to animation controller to route events.
</summary>
            <param name="pAnimationController">A pointer to animation controller, which will receive events.</param>
        </member>
        <member name="M:CAnimationStoryboardEventHandler.CreateInstance(CAnimationController*,IUIAnimationStoryboardEventHandler**)">
            <summary>
Creates an instance of CAnimationStoryboardEventHandler callback.
</summary>
            <returns>
If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
</returns>
            <param name="pAnimationController">A pointer to animation controller, which will receive events.</param>
            <param name="ppHandler">Output. If the method succeeds it contains a pointer to COM object that will handle
storyboard events.</param>
        </member>
        <member name="M:CAnimationStoryboardEventHandler.#ctor">
            <summary>
Constructs a CAnimationStoryboardEventHandler object.
</summary>
        </member>
        <member name="T:CAnimationStoryboardEventHandler">
            <summary>
Implements a callback, which is called by Animation API when storyboard's status is changed or storyboard is updated.
</summary>
            <remarks>
This event handler is created and passed to IUIAnimationStoryboard::SetStoryboardEventHandler method,
when you call CAnimationController::EnableStoryboardEventHandler.
</remarks>
        </member>
        <member name="M:CAnimationVariableIntegerChangeHandler.OnIntegerValueChanged(IUIAnimationStoryboard*,IUIAnimationVariable*,System.Int32,System.Int32)">
            <summary>
Called when a value of an animation variable has changed.
</summary>
            <returns>
S_OK if the method succeeds; otherwise E_FAIL.
</returns>
            <param name="storyboard">The storyboard that is animating the variable.</param>
            <param name="variable">The animation variable that was updated.</param>
            <param name="newValue">The new rounded value.</param>
            <param name="previousValue">The previous rounded value.</param>
        </member>
        <member name="M:CAnimationVariableIntegerChangeHandler.SetAnimationController(CAnimationController*)">
            <summary>
Stores a pointer to animation controller to route events.
</summary>
            <param name="pAnimationController">A pointer to animation controller, which will receive events.</param>
        </member>
        <member name="M:CAnimationVariableIntegerChangeHandler.CreateInstance(CAnimationController*,IUIAnimationVariableIntegerChangeHandler**)">
            <summary>
Creates an instance of CAnimationVariableIntegerChangeHandler callback.
</summary>
            <returns>
If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
</returns>
            <param name="pAnimationController">A pointer to animation controller, which will receive events.</param>
            <param name="ppHandler">Output. If the method succeeds it contains a pointer to COM object that will handle
variable integer change events.</param>
        </member>
        <member name="M:CAnimationVariableIntegerChangeHandler.#ctor">
            <summary>
Constructs a CAnimationVariableIntegerChangeHandler object.
</summary>
        </member>
        <member name="T:CAnimationVariableIntegerChangeHandler">
            <summary>
Implements a call back, which is called by Animation API when the value of an animation variable changes.
</summary>
            <remarks>
This event handler is created and passed to IUIAnimationVariable::SetVariableIntegerChangeHandler method,
when you call CAnimationVariable::EnableIntegerValueChangedEvent or CAnimationBaseObject::EnableIntegerValueChangedEvent
(which enables this event for all animation variables encapsulated in an animation object).
</remarks>
        </member>
        <member name="M:CAnimationVariableChangeHandler.OnValueChanged(IUIAnimationStoryboard*,IUIAnimationVariable*,System.Double,System.Double)">
            <summary>
Called when a value of an animation variable has changed.
</summary>
            <returns>
If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
</returns>
            <param name="storyboard">The storyboard that is animating the variable.</param>
            <param name="variable">The animation variable that was updated.</param>
            <param name="newValue">The new value.</param>
            <param name="previousValue">The previous value.</param>
        </member>
        <member name="M:CAnimationVariableChangeHandler.SetAnimationController(CAnimationController*)">
            <summary>
Stores a pointer to animation controller to route events.
</summary>
            <param name="pAnimationController">A pointer to animation controller, which will receive events.</param>
        </member>
        <member name="M:CAnimationVariableChangeHandler.CreateInstance(CAnimationController*,IUIAnimationVariableChangeHandler**)">
            <summary>
Creates an instance of CAnimationVariableChangeHandler object.
</summary>
            <returns>
If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
</returns>
            <param name="pAnimationController">A pointer to animation controller, which will receive events.</param>
            <param name="ppHandler">Output. If the method succeeds it contains a pointer to COM object that will handle
variable change events.</param>
        </member>
        <member name="M:CAnimationVariableChangeHandler.#ctor">
            <summary>
Constructs a CAnimationVariableChangeHandler object.
</summary>
        </member>
        <member name="T:CAnimationVariableChangeHandler">
            <summary>
Implements a call back, which is called by Animation API when the value of an animation variable changes.
</summary>
            <remarks>
This event handler is created and passed to IUIAnimationVariable::SetVariableChangeHandler method,
when you call CAnimationVariable::EnableValueChangedEvent or CAnimationBaseObject::EnableValueChangedEvent
(which enables this event for all animation variables encapsulated in an animation object).
</remarks>
        </member>
        <member name="M:CAnimationManagerEventHandler.OnManagerStatusChanged(__MIDL___MIDL_itf_UIAnimation_0000_0000_0002,__MIDL___MIDL_itf_UIAnimation_0000_0000_0002)">
            <summary>
Called when a status of animation manager has changed.
</summary>
            <returns>
Current implementation always returns S_OK;
</returns>
            <param name="newStatus">New status.</param>
            <param name="previousStatus">Previous status.</param>
        </member>
        <member name="M:CAnimationManagerEventHandler.SetAnimationController(CAnimationController*)">
            <summary>
Stores a pointer to animation controller to route events.
</summary>
            <param name="pAnimationController">A pointer to animation controller, which will receive events.</param>
        </member>
        <member name="M:CAnimationManagerEventHandler.CreateInstance(CAnimationController*,IUIAnimationManagerEventHandler**)">
            <summary>
Creates an instance of CAnimationManagerEventHandler object.
</summary>
            <returns>
If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
</returns>
            <param name="pAnimationController">A pointer to animation controller, which will receive events.</param>
            <param name="ppManagerEventHandler">Output. If the method succeeds it contains a pointer to COM object that will handle
status updates to an animation manager.</param>
        </member>
        <member name="M:CAnimationManagerEventHandler.#ctor">
            <summary>
Constructs a CAnimationManagerEventHandler object.
</summary>
        </member>
        <member name="T:CAnimationManagerEventHandler">
            <summary>
Implements a callback, which is called by Animation API when a status of animation manager changed.
</summary>
            <remarks>
This event handler is created and passed to IUIAnimationManager::SetManagerEventHandler method,
when you call CAnimationController::EnableAnimationManagerEvent.
</remarks>
        </member>
        <member name="M:CAnimationController.CleanUpGroup(CAnimationGroup*)">
            <summary>
A helper that cleans up the group.
</summary>
            <remarks>
This method removes all transitions and keyframes from the specified group.
</remarks>
            <param name="pGroup">A pointer to animation group to clean.</param>
        </member>
        <member name="M:CAnimationController.OnAfterSchedule(CAnimationGroup*)">
            <summary>
Called by the framework when an animation for the specified group has just been scheduled.
</summary>
            <remarks>
The default implementation removes keyframes from the specified group and transitions from animation variables that
belong to the specified group. Can be overridden in a derived class to take any additional actions upon animation schedule.
</remarks>
            <param name="pGroup">A pointer to an animation group, which has been scheduled.</param>
        </member>
        <member name="M:CAnimationController.OnAnimationTimerRenderingTooSlow(System.UInt32)">
            <summary>
Called by the framework when the rendering frame rate for an animation falls below a minimum desirable frame rate.
</summary>
            <remarks>
This method is called if you enable timer event handlers using EnableAnimationTimerEventHandler.
It can be overridden in a derived class to take application-specific actions.
The minimum desirable frame rate is specified by calling IUIAnimationTimer::SetFrameRateThreshold.
</remarks>
            <param name="fps">The current frame rate in frames per second. </param>
        </member>
        <member name="M:CAnimationController.OnAnimationTimerPostUpdate">
            <summary>
Called by the framework after an animation update is finished.
</summary>
            <remarks>
This method is called if you enable timer event handlers using EnableAnimationTimerEventHandler.
It can be overridden in a derived class to take application-specific actions.
</remarks>
        </member>
        <member name="M:CAnimationController.OnAnimationTimerPreUpdate">
            <summary>
Called by the framework before an animation update begins.
</summary>
            <remarks>
This method is called if you enable timer event handlers using EnableAnimationTimerEventHandler.
It can be overridden in a derived class to take application-specific actions.
</remarks>
        </member>
        <member name="M:CAnimationController.OnHasPriorityCompress(CAnimationGroup*,CAnimationGroup*,__MIDL___MIDL_itf_UIAnimation_0000_0008_0001)">
            <summary>
Called by the framework to resolve scheduling conflicts.
</summary>
            <returns>
Should return TRUE if storyboard owned by pGroupNew has priority. Should return FALSE if storyboard owned by
pGroupScheduled has priority.
</returns>
            <remarks>
This method is called if you enable priority comparison events using CAnimationController::EnablePriorityComparisonHandler
and specify UI_ANIMATION_PHT_COMPRESS.
It can be overridden in a derived class to take application-specific actions.
Read Windows Animation API documentation for more information about Conflict Management (http://msdn.microsoft.com/en-us/library/dd371759(VS.85).aspx).
</remarks>
            <param name="pGroupScheduled">The group that owns the currently scheduled storyboard.</param>
            <param name="pGroupNew">The group that owns the new storyboard that is in scheduling conflict with the scheduled storyboard owned by pGroupScheduled.</param>
            <param name="priorityEffect">The potential effect on pGroupNew if pGroupScheduled has a higher priority.</param>
        </member>
        <member name="M:CAnimationController.OnHasPriorityTrim(CAnimationGroup*,CAnimationGroup*,__MIDL___MIDL_itf_UIAnimation_0000_0008_0001)">
            <summary>
Called by the framework to resolve scheduling conflicts.
</summary>
            <returns>
Should return TRUE if storyboard owned by pGroupNew has priority. Should return FALSE if storyboard owned by
pGroupScheduled has priority.
</returns>
            <remarks>
This method is called if you enable priority comparison events using CAnimationController::EnablePriorityComparisonHandler
and specify UI_ANIMATION_PHT_TRIM.
It can be overridden in a derived class to take application-specific actions.
Read Windows Animation API documentation for more information about Conflict Management (http://msdn.microsoft.com/en-us/library/dd371759(VS.85).aspx).
</remarks>
            <param name="pGroupScheduled">The group that owns the currently scheduled storyboard.</param>
            <param name="pGroupNew">The group that owns the new storyboard that is in scheduling conflict with the scheduled storyboard owned by pGroupScheduled.</param>
            <param name="priorityEffect">The potential effect on pGroupNew if pGroupScheduled has a higher priority.</param>
        </member>
        <member name="M:CAnimationController.OnHasPriorityConclude(CAnimationGroup*,CAnimationGroup*,__MIDL___MIDL_itf_UIAnimation_0000_0008_0001)">
            <summary>
Called by the framework to resolve scheduling conflicts.
</summary>
            <returns>
Should return TRUE if storyboard owned by pGroupNew has priority. Should return FALSE if storyboard owned by
pGroupScheduled has priority.
</returns>
            <remarks>
This method is called if you enable priority comparison events using CAnimationController::EnablePriorityComparisonHandler
and specify UI_ANIMATION_PHT_CONCLUDE.
It can be overridden in a derived class to take application-specific actions.
Read Windows Animation API documentation for more information about Conflict Management (http://msdn.microsoft.com/en-us/library/dd371759(VS.85).aspx).
</remarks>
            <param name="pGroupScheduled">The group that owns the currently scheduled storyboard.</param>
            <param name="pGroupNew">The group that owns the new storyboard that is in scheduling conflict with the scheduled storyboard owned by pGroupScheduled.</param>
            <param name="priorityEffect">The potential effect on pGroupNew if pGroupScheduled has a higher priority.</param>
        </member>
        <member name="M:CAnimationController.OnHasPriorityCancel(CAnimationGroup*,CAnimationGroup*,__MIDL___MIDL_itf_UIAnimation_0000_0008_0001)">
            <summary>
Called by the framework to resolve scheduling conflicts.
</summary>
            <returns>
Should return TRUE if storyboard owned by pGroupNew has priority. Should return FALSE if storyboard owned by
pGroupScheduled has priority.
</returns>
            <remarks>
This method is called if you enable priority comparison events using CAnimationController::EnablePriorityComparisonHandler
and specify UI_ANIMATION_PHT_CANCEL.
It can be overridden in a derived class to take application-specific actions.
Read Windows Animation API documentation for more information about Conflict Management (http://msdn.microsoft.com/en-us/library/dd371759(VS.85).aspx).
</remarks>
            <param name="pGroupScheduled">The group that owns the currently scheduled storyboard.</param>
            <param name="pGroupNew">The group that owns the new storyboard that is in scheduling conflict with the scheduled storyboard owned by pGroupScheduled.</param>
            <param name="priorityEffect">The potential effect on pGroupNew if pGroupScheduled has a higher priority.</param>
        </member>
        <member name="M:CAnimationController.OnStoryboardUpdated(CAnimationGroup*)">
            <summary>
Called by the framework when storyboard has been updated.
</summary>
            <remarks>
This method is called if you enable storyboard events using CAnimationController::EnableStoryboardEventHandler.
It can be overridden in a derived class to take application-specific actions.
</remarks>
            <param name="pGroup">A pointer to a group that owns the storyboard.</param>
        </member>
        <member name="M:CAnimationController.OnStoryboardStatusChanged(CAnimationGroup*,__MIDL___MIDL_itf_UIAnimation_0000_0002_0001,__MIDL___MIDL_itf_UIAnimation_0000_0002_0001)">
            <summary>
Called by the framework when storyboard status has changed.
</summary>
            <remarks>
This method is called if you enable storyboard events using CAnimationController::EnableStoryboardEventHandler.
It can be overridden in a derived class to take application-specific actions.
</remarks>
            <param name="pGroup">A pointer to an animation group that owns the storyboard whose status has changed.</param>
            <param name="newStatus">Specifies the new status.</param>
            <param name="previousStatus">Specifies the previous status.</param>
        </member>
        <member name="M:CAnimationController.OnAnimationIntegerValueChanged(CAnimationGroup*,CAnimationBaseObject*,IUIAnimationVariable*,System.Int32,System.Int32)">
            <summary>
Called by the framework when integer value of animation variable has changed.
</summary>
            <remarks>
This method is called if you enable animation variable events with EnableIntegerValueChangedEvent called for a specific
animation variable or animation object.
It can be overridden in a derived class to take application-specific actions.
</remarks>
            <param name="pGroup">A pointer to an animation group that holds an animation object whose value has changed.</param>
            <param name="pObject">A pointer to an animation object that contains an animation variable whose value has changed.</param>
            <param name="variable">A pointer to an animation variable.</param>
            <param name="newValue">Specifies new value.</param>
            <param name="prevValue">Specifies previous value.</param>
        </member>
        <member name="M:CAnimationController.OnAnimationValueChanged(CAnimationGroup*,CAnimationBaseObject*,IUIAnimationVariable*,System.Double,System.Double)">
            <summary>
Called by the framework when value of animation variable has changed.
</summary>
            <remarks>
This method is called if you enable animation variable events with EnableValueChangedEvent called for a specific
animation variable or animation object.
It can be overridden in a derived class to take application-specific actions.
</remarks>
            <param name="pGroup">A pointer to an animation group that holds an animation object whose value has changed.</param>
            <param name="pObject">A pointer to an animation object that contains an animation variable whose value has changed.</param>
            <param name="variable">A pointer to an animation variable.</param>
            <param name="newValue">Specifies new value.</param>
            <param name="prevValue">Specifies previous value.</param>
        </member>
        <member name="M:CAnimationController.OnAnimationManagerStatusChanged(__MIDL___MIDL_itf_UIAnimation_0000_0000_0002,__MIDL___MIDL_itf_UIAnimation_0000_0000_0002)">
            <summary>
Called by the framework in response to StatusChanged event from animation manager.
</summary>
            <remarks>
This method is called if you enable animation manager events with EnableAnimationManagerEvent.
It can be overridden in a derived class to take application-specific actions. The default implementation
updates a related window if it has been set with SetRelatedWnd.
</remarks>
            <param name="newStatus">New animation manager status.</param>
            <param name="previousStatus">Previous animation manager status.</param>
        </member>
        <member name="M:CAnimationController.OnBeforeAnimationStart(CAnimationGroup*)">
            <summary>
Called by the framework right before the animation is scheduled.
</summary>
            <remarks>
This call is routed to related CWnd and can be overridden in a derived class to perform any
additional actions before the animation starts for the specified group.
</remarks>
            <param name="pGroup">A pointer to an animation group whose animation is about to start.</param>
        </member>
        <member name="M:CAnimationController.CleanUpGroup(System.UInt32)">
            <summary>
Called by the framework to clean up the group when animation has been scheduled.
</summary>
            <remarks>
This method removes all transitions and keyframes from the specified group, because they are not relevant
after an animation has been scheduled.
</remarks>
            <param name="nGroupID">Specifies GroupID.</param>
        </member>
        <member name="M:CAnimationController.ScheduleGroup(System.UInt32,System.Double)">
            <summary>
Schedules an animation.
</summary>
            <returns>
TRUE if animation was scheduled successfully. FALSE if storyboard has not been created, or other error occurs.
</returns>
            <remarks>
You must call AnimateGroup with parameter bScheduleNow set to FALSE prior ScheduleGroup. You can specify the
desired animation time obtained from IUIAnimationTimer::GetTime. If the time parameter is 0.0, the animation is scheduled for the
current time.
</remarks>
            <param name="nGroupID">Specifies animation Group ID to schedule.</param>
            <param name="time">Specifies time to schedule.</param>
        </member>
        <member name="M:CAnimationController.AnimateGroup(System.UInt32,System.Int32)">
            <summary>
Prepares a group to run animation and optionally schedules it.
</summary>
            <returns>
TRUE if animation was successfully scheduled and run.
</returns>
            <remarks>
This method does the actual work creating storyboard, adding animation variables, applying transitions and setting keyframes.
It's possible to delay scheduling if you set bScheduleNow to FALSE. In this case the specified group
will hold a storyboard that has been set up for animation. At that point you can setup events for the storyboard and
animation variables. When you actually need to run the animation call CAnimationController::ScheduleGroup.
</remarks>
            <param name="nGroupID">Specifies GroupID.</param>
            <param name="bScheduleNow">Specifies whether to run animation right away.</param>
        </member>
        <member name="M:CAnimationController.FindAnimationObject(IUIAnimationVariable*,CAnimationBaseObject**,CAnimationGroup**)">
            <summary>
Finds animation object containing a specified animation variable.
</summary>
            <returns>
TRUE if object was found; otherwise FALSE.
</returns>
            <remarks>
Called from event handlers when it's required to find an animation object from incoming animation variable.
</remarks>
            <param name="pVariable">A pointer to animation variable.</param>
            <param name="ppObject">Output. Contains a pointer to animation object or NULL. </param>
            <param name="ppGroup">Output. Contains a pointer to animation group that holds the animation object, or NULL.</param>
        </member>
        <member name="M:CAnimationController.FindAnimationGroup(IUIAnimationStoryboard*)">
            <summary>
Finds an animation group by its storyboard.
</summary>
            <returns>
A pointer to animation group if succeeds, or NULL if no group plays the specified storyboard.
</returns>
            <remarks>
This method is usually called from event handlers to find a group by pointer to storyboard that comes as a parameter to an event handler.
</remarks>
            <param name="pStoryboard">A pointer to a storyboard.</param>
        </member>
        <member name="M:CAnimationController.FindAnimationGroup(System.UInt32)">
            <summary>
Finds an animation group by its Group ID.
</summary>
            <returns>
A pointer to animation group or NULL if the group with specified ID is not found.
</returns>
            <remarks>
Use this method to find an animation group at runtime. A group is created and added to the internal list of animation groups
when a first animation object with particular GroupID is being added to animation controller.
</remarks>
            <param name="nGroupID">Specifies a GroupID.</param>
        </member>
        <member name="M:CAnimationController.AddKeyframeToGroup(System.UInt32,CBaseKeyFrame*)">
            <summary>
Adds a keyframe to group.
</summary>
            <returns>
TRUE if the function succeeds; otherwise FALSE.
</returns>
            <remarks>
Usually you don't need to call this method, use CAnimationController::CreateKeyframe instead, which creates
and adds the created keyframe to a group automatically.
</remarks>
            <param name="nGroupID">Specifies Group ID.</param>
            <param name="pKeyframe">A pointer to a keyframe.</param>
        </member>
        <member name="M:CAnimationController.CreateKeyframe(System.UInt32,CBaseKeyFrame*,System.Double)">
            <summary>
Creates a keyframe that depends on other keyframe with optional offset in seconds and adds it to the specified group.
</summary>
            <returns>
A pointer to newly created keyframe if the function succeeds.
</returns>
            <remarks>
You can store the returned pointer and base other keyframes on the newly created keyframe (see the second overload).
It's possible to begin transitions at keyframes - see CBaseTransition::SetKeyframes.
You don't need to delete keyframes created in this way, because they are deleted automatically by animation groups.
Be careful when creating keyframes based on other keyframes and transitions and avoid circular references.
</remarks>
            <param name="nGroupID">Specifies Group ID for which keyframe is created.</param>
            <param name="pKeyframe">A  pointer to base keyframe for this keyframe.</param>
            <param name="offset">Offset in seconds from the base keyframe specified by pKeyframe.</param>
        </member>
        <member name="M:CAnimationController.CreateKeyframe(System.UInt32,CBaseTransition*)">
            <summary>
Creates a keyframe that depends on transition and adds it to the specified group.
</summary>
            <returns>
A pointer to newly created keyframe if the function succeeds.
</returns>
            <remarks>
You can store the returned pointer and base other keyframes on the newly created keyframe (see the second overload).
It's possible to begin transitions at keyframes - see CBaseTransition::SetKeyframes.
You don't need to delete keyframes created in this way, because they are deleted automatically by animation groups.
Be careful when creating keyframes based on other keyframes and transitions and avoid circular references.
</remarks>
            <param name="nGroupID">Specifies Group ID for which keyframe is created.</param>
            <param name="pTransition">A pointer to transition. Keyframe will be inserted to storyboard after this transition.</param>
        </member>
        <member name="M:CAnimationController.RemoveTransitions(System.UInt32)">
            <summary>
Removes transitions from animation objects that belong to the specified group.
</summary>
            <remarks>
The group loops over its animation objects and calls ClearTransitions(FALSE) for each animation object.
This method is called by the framework after animation has been scheduled.
</remarks>
            <param name="nGroupID">Specifies Group ID.</param>
        </member>
        <member name="M:CAnimationController.RemoveAllAnimationGroups">
            <summary>
Removes all animation groups from animation controller.
</summary>
            <remarks>
All groups will be deleted, their pointer, if stored at the application level, must be invalidated.
If CAnimationGroup::m_bAutodestroyAnimationObjects for a group being deleted is TRUE,
all animation objects that belong to that group will be deleted; otherwise their references to parent animation
controller will be set to NULL and they can be added to another controller.
</remarks>
        </member>
        <member name="M:CAnimationController.RemoveAnimationGroup(System.UInt32)">
            <summary>
Removes an animation group with specified ID from animation controller.
</summary>
            <remarks>
This method removes an animation group from the internal list of groups and deletes it, therefore if you stored
a pointer to that animation group, it must be invalidated. If CAnimationGroup::m_bAutodestroyAnimationObjects is TRUE,
all animation objects that belong to that group will be deleted; otherwise their references to parent animation
controller will be set to NULL and they can be added to another controller.
</remarks>
            <param name="nGroupID">Specifies animation group ID.</param>
        </member>
        <member name="M:CAnimationController.RemoveAnimationObject(CAnimationBaseObject*,System.Int32)">
            <summary>
Remove an animation object from animation controller.
</summary>
            <remarks>
Removes an animation object from animation controller and animation group. Call this function if
a particular object should not be animated anymore, or if you need to move the object to another animation controller.
In the last case bNoDelete must be TRUE.
</remarks>
            <param name="pObject">A pointer to an animation object.</param>
            <param name="bNoDelete">If this parameter is TRUE the object will not be deleted upon remove.</param>
        </member>
        <member name="M:CAnimationController.AddAnimationObject(CAnimationBaseObject*)">
            <summary>
Adds an animation object to a group that belongs to the animation controller.
</summary>
            <returns>
A pointer to existing or new animation group where pObject has been added if function succeeds; NULL if
pObject has already been added to a group that belongs to another animation controller.
</returns>
            <remarks>
Call this method to add an animation object to the animation controller. An object will be added to a group
according to object's GroupID (see CAnimationBaseObject::SetID). The animation controller will create a new
group if it's the first object being added with the specified GroupID. An animation object can be added to
one animation controller only. If you need to add an object to another controller, call RemoveAnimationObject first.
If you call SetID with new GroupID for an object that has been already added to a group, the object will be removed
from the old group and added to another group with specified ID.
</remarks>
            <param name="pObject">A pointer to an animation object.</param>
        </member>
        <member name="M:CAnimationController.SetRelatedWnd(CWnd*)">
            <summary>
Establishes a relationship between animation controller and a window.
</summary>
            <remarks>
If a related CWnd object is set, the animation controller can automatically update it (send WM_PAINT message) when
the status of animation manager has changed or timer post update event has occurred.
</remarks>
            <param name="pWnd">A pointer to window object to set.</param>
        </member>
        <member name="M:CAnimationController.IsAnimationInProgress">
            <summary>
Tells whether at least one group is playing animation.
</summary>
            <returns>
TRUE if there is an animation in progress for this animation controller; otherwise FALSE.
</returns>
            <remarks>
Checks status of animation manager and returns TRUE if the status is UI_ANIMATION_MANAGER_BUSY.
</remarks>
        </member>
        <member name="M:CAnimationController.UpdateAnimationManager">
            <summary>
Directs the animation manager to update the values of all animation variables.
</summary>
            <remarks>
Calling this method advances the animation manager to current time, changing statuses of storyboards as necessary
and updating any animation variables to appropriate interpolated values. Internally this method calls
IUIAnimationTimer::GetTime(timeNow) and IUIAnimationManager::Update(timeNow). Override this method in a derived
class to customize this behavior.
</remarks>
        </member>
        <member name="M:CAnimationController.EnableAnimationTimerEventHandler(System.Int32,__MIDL___MIDL_itf_UIAnimation_0000_0012_0001)">
            <summary>
Sets or releases a handler for timing events and handler for timing updates.
</summary>
            <returns>
TRUE if handlers were successfully set or released; FALSE if this method is called for a second time without
releasing the handlers first, or if any other error occurs.
</returns>
            <remarks>
When the handlers are set (enabled) Windows Animation API calls OnAnimationTimerPreUpdate, OnAnimationTimerPostUpdate,
OnRenderingTooSlow methods.
You need to enable animation timers to allow Windows Animation API update storyboards. Otherwise you'll need to
call CAnimationController::UpdateAnimationManager in order to direct the animation manager to update the values
of all animation variables.
</remarks>
            <param name="bEnable">Specifies whether to set or release the handlers.</param>
            <param name="idleBehavior">Specifies idle behavior for timer update handler.</param>
        </member>
        <member name="M:CAnimationController.EnableStoryboardEventHandler(System.UInt32,System.Int32)">
            <summary>
Sets or releases a handler for storyboard status and update events.
</summary>
            <returns>
TRUE if the handler was successfully set or released; FALSE if the specified animation group is now found or
animation for the specified group has not been initiated and its internal storyboard is NULL.
</returns>
            <remarks>
When a handler is set (enabled) Windows Animation API calls OnStoryboardStatusChanges and OnStoryboardUpdated virtual methods.
A handler must be set after CAnimationController::Animate has been called for the specified animation group, because
it creates encapsulated IUIAnimationStoryboard object.
</remarks>
            <param name="nGroupID">Specifies Group ID.</param>
            <param name="bEnable">Specifies whether to set or release a handler.</param>
        </member>
        <member name="M:CAnimationController.EnablePriorityComparisonHandler(System.UInt64)">
            <summary>
Sets or releases the priority comparison handler to call to determine whether a scheduled storyboard can be cancelled,
concluded, trimmed or compressed.
</summary>
            <returns>
TRUE if the handler was successfully set or released.
</returns>
            <remarks>
When a handler is set (enabled) Windows Animation calls the following virtual methods depending on dwHandlerType:
OnHasPriorityCancel, OnHasPriorityConclude, OnHasPriorityTrim, OnHasPriorityCompress.
dwHandler can be a combination of the following flags:
UI_ANIMATION_PHT_NONE - release all handlers
UI_ANIMATION_PHT_CANCEL - set Cancel comparison handler
UI_ANIMATION_PHT_CONCLUDE - set Conclude comparison handler
UI_ANIMATION_PHT_COMPRESS - set Compress comparison handler
UI_ANIMATION_PHT_TRIM - set Trim comparison handler
UI_ANIMATION_PHT_CANCEL_REMOVE - remove Cancel comparison handler
UI_ANIMATION_PHT_CONCLUDE_REMOVE - remove Conclude comparison handler
UI_ANIMATION_PHT_COMPRESS_REMOVE - remove Compress comparison handler
UI_ANIMATION_PHT_TRIM_REMOVE - remove Trim comparison handler
</remarks>
            <param name="dwHandlerType">A combination of UI_ANIMATION_PHT_ flags (see remarks), which specifies what handlers to set or release.</param>
        </member>
        <member name="M:CAnimationController.EnableAnimationManagerEvent(System.Int32)">
            <summary>
Sets or releases a handler to call when animation manager's status changes.
</summary>
            <returns>
TRUE if the handler was successfully set or released.
</returns>
            <remarks>
When a handler is set (enabled) Windows Animation calls OnAnimationManagerStatusChanged when animation manager's status changes.
</remarks>
            <param name="bEnable">Specifies whether to set or release a handler.</param>
        </member>
        <member name="M:CAnimationController.GetKeyframeStoryboardStart">
            <summary>
Returns a keyframe that identifies start of storyboard.
</summary>
            <returns>
A pointer to base keyframe, which identifies start of storyboard.
</returns>
            <remarks>
Obtain this keyframe to base any other keyframes or transitions on the moment in time when a storyboard starts.
</remarks>
        </member>
        <member name="M:CAnimationController.IsValid">
            <summary>
Tells whether animation controller is valid.
</summary>
            <returns>
TRUE if animation controller is valid; otherwise FALSE.
</returns>
            <remarks>
This method returns FALSE only if Windows Animation API is not supported on the current OS and creation of
animation manager failed because it's not registered. You need to call GetUIAnimationManager at least once after initialization of
COM libraries to cause setting of this flag.
</remarks>
        </member>
        <member name="M:CAnimationController.GetUITransitionFactory">
            <summary>
A pointer to IUIAnimationTransitionFactory interface or NULL, if creation of transition library failed.
</summary>
            <returns>
A pointer to IUIAnimationTransitionFactory or NULL, if creation of transition factory failed.
</returns>
            <remarks>
If current OS does not support Windows Animation API, this method returns NULL and after that all subsequent calls
on CAnimationController::IsValid return FALSE.
</remarks>
        </member>
        <member name="M:CAnimationController.GetUIAnimationTimer">
            <summary>
Provides access to encapsulated IUIAnimationTimer object.
</summary>
            <returns>
A pointer to IUIAnimationTimer interface or NULL, if creation of animation timer failed.
</returns>
            <remarks>
If current OS does not support Windows Animation API, this method returns NULL and after that all subsequent calls
on CAnimationController::IsValid return FALSE.
</remarks>
        </member>
        <member name="M:CAnimationController.GetUITransitionLibrary">
            <summary>
Provides access to encapsulated IUIAnimationTransitionLibrary object.
</summary>
            <returns>
A pointer to IUIAnimationTransitionLibrary interface or NULL, if creation of transition library failed.
</returns>
            <remarks>
If current OS does not support Windows Animation API, this method returns NULL and after that all subsequent calls
on CAnimationController::IsValid return FALSE.
</remarks>
        </member>
        <member name="M:CAnimationController.GetUIAnimationManager">
            <summary>
Provides access to encapsulated IUIAnimationManager object.
</summary>
            <returns>
A pointer to IUIAnimationManager interface or NULL, if creation of animation manager failed.
</returns>
            <remarks>
If current OS does not support Windows Animation API, this method returns NULL and after that all subsequent calls
on CAnimationController::IsValid return FALSE.
You may need to access IUIAnimationManager in order to call its interface methods, which are not wrapped by
animation controller.
</remarks>
        </member>
        <member name="M:CAnimationController.Dispose">
            <summary>
The destructor. Called when animation controller object is being destroyed.
</summary>
        </member>
        <member name="M:CAnimationController.#ctor">
            <summary>
Constructs an animation controller.
</summary>
        </member>
        <member name="F:CAnimationController.g_KeyframeStoryboardStart">
            <summary>
A keyframe that represents start of storyboard.
</summary>
        </member>
        <member name="F:CAnimationController.m_lstAnimationGroups">
            <summary>
A list of animation groups that belong to this animation controller.
</summary>
        </member>
        <member name="F:CAnimationController.m_pRelatedWnd">
            <summary>
A pointer to a related CWnd object, which can be automatically redrawn when
the status of animation manager has changed, or post update event has occurred. Can be NULL.
</summary>
        </member>
        <member name="F:CAnimationController.m_pTransitionFactory">
            <summary>
Stores a pointer to Transition Factory COM object.
</summary>
        </member>
        <member name="F:CAnimationController.m_pAnimationTimer">
            <summary>
Stores a pointer to Animation Timer COM object.
</summary>
        </member>
        <member name="F:CAnimationController.m_pTransitionLibrary">
            <summary>
Stores a pointer to Transition Library COM object.
</summary>
        </member>
        <member name="F:CAnimationController.m_pAnimationManager">
            <summary>
Stores a pointer to Animation Manager COM object.
</summary>
        </member>
        <member name="F:CAnimationController.m_bIsValid">
            <summary>
Specifies whether an animation controller is valid or not.
This member is set to FALSE if current OS does not support Windows Animation API.
</summary>
        </member>
        <member name="T:CAnimationController">
            <summary>
Implements the animation controller, which provides a central interface for creating and managing UI animations.
</summary>
            <remarks>
The CAnimationController class is the key class that manages animations.
You may create one or more instances of animation controller in an application and, optionally, connect an instance of
animation controller to a CWnd object using CAnimationController::SetRelatedWnd. This connection is required to send WM_PAINT messages
to the related window automatically when animation manager status has changed or animation timer has been updated.
If you do not enable this relation, you must redraw a window that displays an animation manually. For this purpose you can derive a class
from CAnimationController and override OnAnimationManagerStatusChanged and/or OnAnimationTimerPostUpdate and invalidate one or
more windows when necessary.
</remarks>
        </member>
        <member name="F:CAnimationGroup.m_bAutodestroyAnimationObjects">
            <summary>
Specifies how to destroy animation objects. If this parameter is TRUE, animation objects will be destroyed automatically
when the group is destroyed. Otherwise animation objects must be destroyed manually. The default value is FALSE.
Set this value to TRUE only if all animation objects that belong to group are allocated dynamically with operator new.
</summary>
        </member>
        <member name="F:CAnimationGroup.m_bAutoclearTransitions">
            <summary>
Specifies how to clear transitions from animation objects that belong to group. If this member is TRUE,
transitions are removed automatically when an animation has been scheduled. Otherwise you need to remove
transitions manually.
</summary>
        </member>
        <member name="F:CAnimationGroup.m_bAutodestroyKeyframes">
            <summary>
Specifies how to destroy keyframes. If this value is TRUE, all keyframes are removed and destroyed;
otherwise they are removed from the list only. The default value is TRUE.
</summary>
        </member>
        <member name="F:CAnimationGroup.m_pStoryboard">
            <summary>
Points to animation storyboard. This pointer is valid only after call on Animate.
</summary>
        </member>
        <member name="F:CAnimationGroup.m_lstKeyFrames">
            <summary>
Contains a list of keyframes.
</summary>
        </member>
        <member name="F:CAnimationGroup.m_lstAnimationObjects">
            <summary>
Contains a list of animation objects.
</summary>
        </member>
        <member name="M:CAnimationGroup.SetAutodestroyTransitions(System.Int32)">
            <summary>
Directs all animation objects that belong to group automatically destroy transitions.
</summary>
            <remarks>
Set this value to FALSE only if you allocate transitions on the stack. The default value is TRUE, therefore
it's highly recommended to allocate transition objects using operator new.
</remarks>
            <param name="bAutoDestroy">Specifies how to destroy transitions.</param>
        </member>
        <member name="M:CAnimationGroup.Schedule(IUIAnimationTimer*,System.Double)">
            <summary>
Schedules an animation at the specified time.
</summary>
            <returns>
TRUE if the method succeeds; FALSE if the method fails or if Animate has not been called with bScheduleNow set to FALSE.
</returns>
            <remarks>
Call this function to schedule an animation at the specified time. You must call Animate with bScheduleNow set to FALSE first.
</remarks>
            <param name="pTimer">A pointer to animation timer.</param>
            <param name="time">Specifies time to schedule the animation.</param>
        </member>
        <member name="M:CAnimationGroup.Animate(IUIAnimationManager*,IUIAnimationTimer*,System.Int32)">
            <summary>
Animates a group.
</summary>
            <returns>
TRUE if the method succeeds; otherwise FALSE.
</returns>
            <remarks>
This method creates an internal storyboard, creates and applies transitions and schedules an animation
if bScheduleNow is TRUE. If bScheduleNow is FALSE, you need to call Schedule to start animation at the
specified time.
</remarks>
            <param name="pManager" />
            <param name="pTimer" />
            <param name="bScheduleNow" />
        </member>
        <member name="M:CAnimationGroup.FindAnimationObject(IUIAnimationVariable*)">
            <summary>
Finds an animation object that contains the specified animation variable.
</summary>
            <returns>
A pointer to animation object, or NULL if animation object is not found.
</returns>
            <param name="pVariable">A pointer to animation variable.</param>
        </member>
        <member name="M:CAnimationGroup.RemoveKeyframes">
            <summary>
Removes and optionally destroys all keyframes that belong to an animation group.
</summary>
            <remarks>
If m_bAutodestroyKeyframes member is TRUE then keyframes are removed and destroyed, otherwise keyframes are
just removed from the internal list of keyframes.
</remarks>
        </member>
        <member name="M:CAnimationGroup.RemoveTransitions">
            <summary>
Removes transitions from animation objects that belong to an animation group.
</summary>
            <remarks>
If m_bAutoclearTransitions flag is set to TRUE, this method loops over all animation objects that belong to the group
and calls CAnimationObject::ClearTransitions(FALSE).
</remarks>
        </member>
        <member name="M:CAnimationGroup.ApplyTransitions">
            <summary>
Applies transitions to animation objects.
</summary>
            <remarks>
This method ASSERTS in debug mode if storyboard has not been created.
It creates all transitions first, then adds "static" keyframes (keyframes that depend on offsets),
adds transitions that do not depend on keyframes, adds keyframes depending on transitions and other keyframes,
and at last adds transitions that depend on keyframes.
</remarks>
        </member>
        <member name="M:CAnimationGroup.GetGroupID">
            <summary>
Returns GroupID.
</summary>
            <returns>
A group identifier.
</returns>
        </member>
        <member name="M:CAnimationGroup.Dispose">
            <summary>
The destructor. Called when an animation group is being destroyed.
</summary>
        </member>
        <member name="M:CAnimationGroup.#ctor(CAnimationController*,System.UInt32)">
            <summary>
Constructs an animation group.
</summary>
            <param name="pParentController">A pointer to animation controller that creates a group.</param>
            <param name="nGroupID">Specifies GroupID.</param>
        </member>
        <member name="M:CAnimationGroup.CreateTransitions">
            <summary>
A helper that creates COM transition objects.
</summary>
            <returns>
TRUE is the method succeeds, otherwise FALSE.
</returns>
        </member>
        <member name="M:CAnimationGroup.AddTransitions(IUIAnimationStoryboard*,System.Int32)">
            <summary>
A helper that adds transitions to a storyboard.
</summary>
            <param name="pStoryboard">A pointer to a storyboard COM object.</param>
            <param name="bDependOnKeyframes">Specifies whether this method should add to the storyboard transitions that depend on other keyframes.</param>
        </member>
        <member name="M:CAnimationGroup.AddKeyframes(IUIAnimationStoryboard*,System.Int32)">
            <summary>
A helper that adds keyframes to a storyboard.
</summary>
            <param name="pStoryboard">A pointer to a storyboard COM object.</param>
            <param name="bAddDeep">Specifies whether this method should add to the storyboard keyframes that depend on other keyframes.</param>
        </member>
        <member name="F:CAnimationGroup.m_pParentController">
            <summary>
A pointer to animation controller this group belongs to.
</summary>
        </member>
        <member name="F:CAnimationGroup.m_nGroupID">
            <summary>
A unique identifier of animation group.
</summary>
        </member>
        <member name="T:CAnimationGroup">
            <summary>
Implements an animation group, which combines an animation storyboard, animation objects and transitions
to define an animation.
</summary>
            <remarks>
Animation groups are created automatically by animation controller (CAnimationController) when you add animation
objects using CAnimationController::AddAnimationObject.
An animation group is identified by GroupID, which is usually taken as a parameter to manipulate animation groups.
The GroupID is taken from the first animation object being added to a new animation group.
An encapsulated animation storyboard is created after you call CAnimationController::AnimateGroup and can be
accessed via public member m_pStoryboard.
</remarks>
        </member>
        <member name="M:CAnimationRect.GetAnimationVariableList(CList&lt;CAnimationVariable**,CAnimationVariable**&gt;*!System.Runtime.CompilerServices.IsImplicitlyDereferenced)">
            <summary>
Puts the encapsulated animation variables into a list.
</summary>
            <param name="lst">When the function returns, it contains pointers to four CAnimationVariable objects
representing coordinates of rectangle.</param>
        </member>
        <member name="F:CAnimationRect.m_bFixedSize">
            <summary>
Specifies whether the rectangle has fixed size.
</summary>
            <remarks>
If this member is true, then the size of rectangle is fixed and right and bottom values
are recalculated each time the top-left corner is  moved according to the fixed size.
Set this value to TRUE to easily move the rectangle around the screen. In this case transitions applied to
right and bottom coordinates are ignored. The size is stored internally when you construct the object and/or
call SetDefaultValue. By default this member is set to FALSE.
</remarks>
        </member>
        <member name="M:CAnimationRect.AddTransition(CBaseTransition*,CBaseTransition*,CBaseTransition*,CBaseTransition*)">
            <summary>
Adds transitions for left, top, right and bottom coordinates.
</summary>
            <remarks>
Call this function to add the specified transitions to the internal list of transitions to be applied to animation variables for each rectangle sides.
When you add transitions, they are not applied immediately and stored in an internal list. Transitions are applied
(added to a storyboard for a particular value) when you call CAnimationController::AnimateGroup.
If you don't need to apply a transition to one of the rectangle sides, you can pass NULL.
</remarks>
            <param name="pLeftTransition">Specifies transition for the left side.</param>
            <param name="pTopTransition">Specifies transition for the top side.</param>
            <param name="pRightTransition">Specifies transition for the right side.</param>
            <param name="pBottomTransition">Specifies transition for the bottom side.</param>
        </member>
        <member name="M:CAnimationRect.op_Implicit~tagRECT">
            <summary>
Converts a CAnimationRect to RECT.
</summary>
            <returns>
Current value of animation rectangle as RECT.
</returns>
            <remarks>
This function internally calls GetValue. If GetValue for some reason fails, the returned RECT will contain default values for all rectangle coordinates.
</remarks>
        </member>
        <member name="M:CAnimationRect.op_Assign(tagRECT!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced)">
            <summary>
Assigns rect to CAnimationRect.
</summary>
            <remarks>
It's recommended to do that before animation start, because this operator calls
SetDefaultValue, which recreates the underlying COM objects for color components if they have been created. If you
subscribed this animation object to events (ValueChanged or IntegerValueChanged), you need to re-enable these events.
</remarks>
            <param name="rect">The new value of animation rectangle.</param>
        </member>
        <member name="M:CAnimationRect.GetBottom">
            <summary>
Provides access to CAnimationVariable representing bottom coordinate.
</summary>
            <returns>
A reference to encapsulated CAnimationVariable representing bottom coordinate.
</returns>
            <remarks>
You can call this method to get direct access to underlying CAnimationVariable representing the bottom coordinate.
</remarks>
        </member>
        <member name="M:CAnimationRect.GetRight">
            <summary>
Provides access to CAnimationVariable representing right coordinate.
</summary>
            <returns>
A reference to encapsulated CAnimationVariable representing right coordinate.
</returns>
            <remarks>
You can call this method to get direct access to underlying CAnimationVariable representing the right coordinate.
</remarks>
        </member>
        <member name="M:CAnimationRect.GetTop">
            <summary>
Provides access to CAnimationVariable representing top coordinate.
</summary>
            <returns>
A reference to encapsulated CAnimationVariable representing top coordinate.
</returns>
            <remarks>
You can call this method to get direct access to underlying CAnimationVariable representing the top coordinate.
</remarks>
        </member>
        <member name="M:CAnimationRect.GetLeft">
            <summary>
Provides access to CAnimationVariable representing left coordinate.
</summary>
            <returns>
A reference to encapsulated CAnimationVariable representing left coordinate.
</returns>
            <remarks>
You can call this method to get direct access to underlying CAnimationVariable representing the left coordinate.
</remarks>
        </member>
        <member name="M:CAnimationRect.GetValue(CRect*!System.Runtime.CompilerServices.IsImplicitlyDereferenced)">
            <summary>
Returns current value.
</summary>
            <returns>
TRUE, if the current value was successfully retrieved; otherwise FALSE.
</returns>
            <remarks>
Call this function to retrieve the current value of animation rectangle. If this method fails or underlying COM objects for
left, top, right and bottom have not been initialized, rect contains default value, which was previously set in constructor or by SetDefaultValue.
</remarks>
            <param name="rect">Output. Contains the current value when this method returns.</param>
        </member>
        <member name="M:CAnimationRect.GetDefaultValue">
            <summary>
Returns the default values for rectangle's bounds.
</summary>
            <returns>
A CRect value containing defaults for left, right, top and bottom.
</returns>
            <remarks>
Call this function to retrieve default value, which was previously set by constructor or SetDefaultValue.
</remarks>
        </member>
        <member name="M:CAnimationRect.SetDefaultValue(CRect!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced)">
            <summary>
Sets default value.
</summary>
            <remarks>
Use this function to set a default value to animation object. This methods assigns default values to rectangle's bounds.
It also recreates underlying COM objects if they have been created. If you
subscribed this animation object to events (ValueChanged or IntegerValueChanged), you need to re-enable these events.
</remarks>
            <param name="rect">Specifies new default values for left, top, right and bottom.</param>
        </member>
        <member name="M:CAnimationRect.#ctor(System.Int32,System.Int32,System.Int32,System.Int32,System.UInt32,System.UInt32,System.UInt64)">
            <summary>
Constructs an animation rect object.
</summary>
            <remarks>
The object is constructed with specified coordinates of each side, Object ID and Group ID. They can be changed
later at runtime using SetDefaultValue and SetID.
</remarks>
            <param name="nLeft">Specifies coordinate of left bound.</param>
            <param name="nTop">Specifies coordinate of top bound.</param>
            <param name="nRight">Specifies coordinate of right bound.</param>
            <param name="nBottom">Specifies coordinate of bottom bound.</param>
            <param name="nGroupID">Specifies Group ID.</param>
            <param name="nObjectID">Specifies Object ID.</param>
            <param name="dwUserData">Specifies user-defined data.</param>
        </member>
        <member name="M:CAnimationRect.#ctor(CPoint!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced,CSize!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced,System.UInt32,System.UInt32,System.UInt64)">
            <summary>
Constructs an animation rect object.
</summary>
            <remarks>
The object is constructed with specified top-left corner coordinates and size of rectangle, Object ID and Group ID. They can be changed
later at runtime using SetDefaultValue and SetID.
</remarks>
            <param name="pt">Coordinate of top-left corner.</param>
            <param name="sz">Size of rectangle.</param>
            <param name="nGroupID">Specifies Group ID.</param>
            <param name="nObjectID">Specifies Object ID.</param>
            <param name="dwUserData">Specifies user-defined data.</param>
        </member>
        <member name="M:CAnimationRect.#ctor(CRect!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced,System.UInt32,System.UInt32,System.UInt64)">
            <summary>
Constructs an animation rect object.
</summary>
            <remarks>
The object is constructed with specified rect coordinates, Object ID and Group ID. They can be changed
later at runtime using SetDefaultValue and SetID.
</remarks>
            <param name="rect">Specifies default rectangle.</param>
            <param name="nGroupID">Specifies Group ID.</param>
            <param name="nObjectID">Specifies Object ID.</param>
            <param name="dwUserData">Specifies user-defined data.</param>
        </member>
        <member name="M:CAnimationRect.#ctor">
            <summary>
Constructs a CAnimationRect object.
</summary>
            <remarks>
The object is constructed with default values for left, top, right and bottom, Object ID and Group ID, which will be set to 0. They can be changed
later at runtime using SetDefaultValue and SetID.
</remarks>
        </member>
        <member name="F:CAnimationRect.m_szInitial">
            <summary>
Specifies initial size of animation rectangle.
</summary>
        </member>
        <member name="F:CAnimationRect.m_bottomValue">
            <summary>
The encapsulated animation variable that represents Bottom bound of animation rectangle.
</summary>
        </member>
        <member name="F:CAnimationRect.m_rightValue">
            <summary>
The encapsulated animation variable that represents Right bound of animation rectangle.
</summary>
        </member>
        <member name="F:CAnimationRect.m_topValue">
            <summary>
The encapsulated animation variable that represents Top bound of animation rectangle.
</summary>
        </member>
        <member name="F:CAnimationRect.m_leftValue">
            <summary>
The encapsulated animation variable that represents Left bound of animation rectangle.
</summary>
        </member>
        <member name="T:CAnimationRect">
            <summary>
Implements the functionality of a rectangle whose top, left, right and bottom sides can be animated.
</summary>
            <remarks>
The CAnimationRect class encapsulates four CAnimationVariable objects and can represent in applications
a rectangle.
To use this class in application, just instantiate an object of this class, add it to animation controller using
CAnimationController::AddAnimationObject and call AddTransition for each transition to be applied to left, right top and bottom coordinates.
</remarks>
        </member>
        <member name="M:CAnimationColor.GetAnimationVariableList(CList&lt;CAnimationVariable**,CAnimationVariable**&gt;*!System.Runtime.CompilerServices.IsImplicitlyDereferenced)">
            <summary>
Puts the encapsulated animation variables into a list.
</summary>
            <param name="lst">When the function returns, it contains pointers to three CAnimationVariable objects
representing red, green and blue components.</param>
        </member>
        <member name="M:CAnimationColor.AddTransition(CBaseTransition*,CBaseTransition*,CBaseTransition*)">
            <summary>
Adds transitions for Red, Green and Blue components.
</summary>
            <remarks>
Call this function to add the specified transitions to the internal list of transitions to be applied to animation variables representing color components.
When you add transitions, they are not applied immediately and stored in an internal list. Transitions are applied
(added to a storyboard for a particular value) when you call CAnimationController::AnimateGroup.
If you don't need to apply a transition to one of the color components, you can pass NULL.
</remarks>
            <param name="pRTransition">Transition for Red component.</param>
            <param name="pGTransition">Transition for Green component.</param>
            <param name="pBTransition">Transition for Blue component.</param>
        </member>
        <member name="M:CAnimationColor.op_Implicit~System.UInt32!System.Runtime.CompilerServices.IsLong">
            <summary>
Converts a CAnimationColor to COLORREF.
</summary>
            <returns>
Current value of animation color object as COLORREF.
</returns>
            <remarks>
This function internally calls GetValue. If GetValue for some reason fails, the returned COLORREF will contain default values for all color components.
</remarks>
        </member>
        <member name="M:CAnimationColor.op_Assign(System.UInt32!System.Runtime.CompilerServices.IsLong)">
            <summary>
Assigns color to CAnimationColor.
</summary>
            <remarks>
It's recommended to do that before animation start, because this operator calls
SetDefaultValue, which recreates the underlying COM objects for color components if they have been created. If you
subscribed this animation object to events (ValueChanged or IntegerValueChanged), you need to re-enable these events.
</remarks>
            <param name="color">Specifies new value Animation Color.</param>
        </member>
        <member name="M:CAnimationColor.GetB">
            <summary>
Provides access to CAnimationVariable representing Blue component.
</summary>
            <returns>
A reference to encapsulated CAnimationVariable representing Blue component.
</returns>
            <remarks>
You can call this method to get direct access to underlying CAnimationVariable representing Blue component.
</remarks>
        </member>
        <member name="M:CAnimationColor.GetG">
            <summary>
Provides access to CAnimationVariable representing Green component.
</summary>
            <returns>
A reference to encapsulated CAnimationVariable representing Green component.
</returns>
            <remarks>
You can call this method to get direct access to underlying CAnimationVariable representing Green component.
</remarks>
        </member>
        <member name="M:CAnimationColor.GetR">
            <summary>
Provides access to CAnimationVariable representing Red component.
</summary>
            <returns>
A reference to encapsulated CAnimationVariable representing Red component.
</returns>
            <remarks>
You can call this method to get direct access to underlying CAnimationVariable representing Red component.
</remarks>
        </member>
        <member name="M:CAnimationColor.GetValue(System.UInt32!System.Runtime.CompilerServices.IsLong*!System.Runtime.CompilerServices.IsImplicitlyDereferenced)">
            <summary>
Returns current value.
</summary>
            <returns>
TRUE, if the current value was successfully retrieved; otherwise FALSE.
</returns>
            <remarks>
Call this function to retrieve the current value of animation color. If this method fails or underlying COM objects for
color components have not been initialized, color contains default value, which was previously set in constructor or by SetDefaultValue.
</remarks>
            <param name="color">Output. Contains the current value when this method returns.</param>
        </member>
        <member name="M:CAnimationColor.GetDefaultValue">
            <summary>
Returns the default values for color components.
</summary>
            <returns>
A COLORREF value containing defaults for RGB components.
</returns>
            <remarks>
Call this function to retrieve default value, which was previously set by constructor or SetDefaultValue.
</remarks>
        </member>
        <member name="M:CAnimationColor.SetDefaultValue(System.UInt32!System.Runtime.CompilerServices.IsLong)">
            <summary>
Sets default value.
</summary>
            <remarks>
Use this function to set a default value to animation object. This methods assigns default values to color components
of animation color. It also recreates underlying COM objects if they have been created. If you
subscribed this animation object to events (ValueChanged or IntegerValueChanged), you need to re-enable these events.
</remarks>
            <param name="color">Specifies new default values for red, green and blue components.</param>
        </member>
        <member name="M:CAnimationColor.#ctor(System.UInt32!System.Runtime.CompilerServices.IsLong,System.UInt32,System.UInt32,System.UInt64)">
            <summary>
Constructs an animation color object.
</summary>
            <remarks>
The object is constructed with specified values for RGB components, Object ID and Group ID. They can be changed
later at runtime using SetDefaultValue and SetID.
</remarks>
            <param name="color">Specifies default color.</param>
            <param name="nGroupID">Specifies Group ID.</param>
            <param name="nObjectID">Specifies Object ID.</param>
            <param name="dwUserData">Specifies user-defined data.</param>
        </member>
        <member name="M:CAnimationColor.#ctor">
            <summary>
Constructs a CAnimationColor object.
</summary>
            <remarks>
The object is constructed with default values for red, green, blue, Object ID and Group ID, which will be set to 0. They can be changed
later at runtime using SetDefaultValue and SetID.
</remarks>
        </member>
        <member name="F:CAnimationColor.m_bValue">
            <summary>
The encapsulated animation variable that represents Blue component of animation color.
</summary>
        </member>
        <member name="F:CAnimationColor.m_gValue">
            <summary>
The encapsulated animation variable that represents Green component of animation color.
</summary>
        </member>
        <member name="F:CAnimationColor.m_rValue">
            <summary>
The encapsulated animation variable that represents Red component of animation color.
</summary>
        </member>
        <member name="T:CAnimationColor">
            <summary>
Implements the functionality of a color whose red, green and blue components can be animated.
</summary>
            <remarks>
The CAnimationColor class encapsulates three CAnimationVariable objects and can represent in applications
a color. For example, you can use this class to animate colors of any object on the screen (like text color, background color etc).
To use this class in application, just instantiate an object of this class, add it to animation controller using
CAnimationController::AddAnimationObject and call AddTransition for each transition to be applied to Red, Green and Blue components.
</remarks>
        </member>
        <member name="M:CAnimationSize.GetAnimationVariableList(CList&lt;CAnimationVariable**,CAnimationVariable**&gt;*!System.Runtime.CompilerServices.IsImplicitlyDereferenced)">
            <summary>
Puts the encapsulated animation variables into a list.
</summary>
            <param name="lst">When the function returns, it contains pointers to two CAnimationVariable objects
representing the width and height.</param>
        </member>
        <member name="M:CAnimationSize.AddTransition(CBaseTransition*,CBaseTransition*)">
            <summary>
Adds transitions for Width and Height.
</summary>
            <remarks>
Call this function to add the specified transitions to the internal list of transitions to be applied to animation variables for Width and Height.
When you add transitions, they are not applied immediately and stored in an internal list. Transitions are applied
(added to a storyboard for a particular value) when you call CAnimationController::AnimateGroup.
If you don't need to apply a transition to one of dimensions, you can pass NULL.
</remarks>
            <param name="pCXTransition">A pointer to transition for Width.</param>
            <param name="pCYTransition">A pointer to transition for Height.</param>
        </member>
        <member name="M:CAnimationSize.op_Implicit~CSize">
            <summary>
Converts a CAnimationSize to a CSize.
</summary>
            <returns>
Current value of animation size as CSize.
</returns>
            <remarks>
This function internally calls GetValue. If GetValue for some reason fails, the returned size will contain default values for Width and Height.
</remarks>
        </member>
        <member name="M:CAnimationSize.op_Assign(CSize!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced)">
            <summary>
Assigns szSrc to CAnimationSize.
</summary>
            <remarks>
Assigns szSrc to CAnimationSize. It's recommended to do that before animation start, because this operator calls
SetDefaultValue, which recreates the underlying COM objects for Width and Height if they have been created. If you
subscribed this animation object to events (ValueChanged or IntegerValueChanged), you need to re-enable these events.
</remarks>
            <param name="szSrc">Refers to CSize or SIZE.</param>
        </member>
        <member name="M:CAnimationSize.GetCY">
            <summary>
Provides access to CAnimationVariable representing Height.
</summary>
            <returns>
A reference to encapsulated CAnimationVariable representing Height.
</returns>
            <remarks>
You can call this method to get direct access to underlying CAnimationVariable representing Height.
</remarks>
        </member>
        <member name="M:CAnimationSize.GetCX">
            <summary>
Provides access to CAnimationVariable representing Width.
</summary>
            <returns>
A reference to encapsulated CAnimationVariable representing Width.
</returns>
            <remarks>
You can call this method to get direct access to underlying CAnimationVariable representing Width.
</remarks>
        </member>
        <member name="M:CAnimationSize.GetValue(CSize*!System.Runtime.CompilerServices.IsImplicitlyDereferenced)">
            <summary>
Returns current value.
</summary>
            <returns>
TRUE, if the current value was successfully retrieved; otherwise FALSE.
</returns>
            <remarks>
Call this function to retrieve the current value of animation size. If this method fails or underlying COM objects for
Width and Size have not been initialized, szValue contains default value, which was previously set in constructor or by SetDefaultValue.
</remarks>
            <param name="szValue">Output. Contains the current value when this method returns.</param>
        </member>
        <member name="M:CAnimationSize.GetDefaultValue">
            <summary>
Returns the default values for Width and Height.
</summary>
            <returns>
A CSize object containing default values.
</returns>
            <remarks>
Call this function to retrieve default value, which was previously set by constructor or SetDefaultValue.
</remarks>
        </member>
        <member name="M:CAnimationSize.SetDefaultValue(CSize!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced)">
            <summary>
Sets default value.
</summary>
            <remarks>
Use this function to set a default value to animation object. This methods assigns default values to Width and Height
of animation size. It also recreates underlying COM objects if they have been created. If you
subscribed this animation object to events (ValueChanged or IntegerValueChanged), you need to re-enable these events.
</remarks>
            <param name="szDefault">Specifies new default size.</param>
        </member>
        <member name="M:CAnimationSize.#ctor(CSize!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced,System.UInt32,System.UInt32,System.UInt64)">
            <summary>
Constructs an animation size object.
</summary>
            <remarks>
The object is constructed with specified values for width, height, Object ID and Group ID. They can be changed
later at runtime using SetDefaultValue and SetID.
</remarks>
            <param name="szDefault">Specifies default size.</param>
            <param name="nGroupID">Specifies Group ID.</param>
            <param name="nObjectID">Specifies Object ID.</param>
            <param name="dwUserData">Specifies user-defined data.</param>
        </member>
        <member name="M:CAnimationSize.#ctor">
            <summary>
Constructs an animation size object.
</summary>
            <remarks>
The object is constructed with default values for width, height, Object ID and Group ID, which will be set to 0. They can be changed
later at runtime using SetDefaultValue and SetID.
</remarks>
        </member>
        <member name="F:CAnimationSize.m_cyValue">
            <summary>
The encapsulated animation variable that represents height of animation size.
</summary>
        </member>
        <member name="F:CAnimationSize.m_cxValue">
            <summary>
The encapsulated animation variable that represents width of animation size.
</summary>
        </member>
        <member name="T:CAnimationSize">
            <summary>
Implements the functionality of a size object whose dimensions can be animated.
</summary>
            <remarks>
The CAnimationSize class encapsulates two CAnimationVariable objects and can represent in applications
a size. For example, you can use this class to animate a size of any two dimensional object on the screen (like rectangle, control etc).
To use this class in application, just instantiate an object of this class, add it to animation controller using
CAnimationController::AddAnimationObject and call AddTransition for each transition to be applied to Width and/or Height.
</remarks>
        </member>
        <member name="M:CAnimationPoint.GetAnimationVariableList(CList&lt;CAnimationVariable**,CAnimationVariable**&gt;*!System.Runtime.CompilerServices.IsImplicitlyDereferenced)">
            <summary>
Puts the encapsulated animation variables into a list.
</summary>
            <param name="lst">When the function returns, it contains pointers to two CAnimationVariable objects
representing the X and Y coordinates.</param>
        </member>
        <member name="M:CAnimationPoint.AddTransition(CBaseTransition*,CBaseTransition*)">
            <summary>
Adds transitions for X and Y coordinates.
</summary>
            <remarks>
Call this function to add the specified transitions to the internal list of transitions to be applied to animation variables for X and Y coordinates.
When you add transitions, they are not applied immediately and stored in an internal list. Transitions are applied
(added to a storyboard for a particular value) when you call CAnimationController::AnimateGroup.
If you don't need to apply a transition to one of coordinates, you can pass NULL.
</remarks>
            <param name="pXTransition">A pointer to transition for X coordinates.</param>
            <param name="pYTransition">A pointer to transition for Y coordinate.</param>
        </member>
        <member name="M:CAnimationPoint.GetY">
            <summary>
Provides access to CAnimationVariable for Y coordinate.
</summary>
            <returns>
A reference to encapsulated CAnimationVariable representing Y coordinate.
</returns>
            <remarks>
You can call this method to get direct access to underlying CAnimationVariable representing Y coordinate.
</remarks>
        </member>
        <member name="M:CAnimationPoint.GetX">
            <summary>
Provides access to CAnimationVariable for X coordinate.
</summary>
            <returns>
A reference to encapsulated CAnimationVariable representing X coordinate.
</returns>
            <remarks>
You can call this method to get direct access to underlying CAnimationVariable representing X coordinate.
</remarks>
        </member>
        <member name="M:CAnimationPoint.op_Implicit~CPoint">
            <summary>
Converts a CAnimationPoint to a CPoint.
</summary>
            <returns>
Current value of CAnimationPoint as CPoint.
</returns>
            <remarks>
This function internally calls GetValue. If GetValue for some reason fails, the returned point will contain default values for X and Y coordinates.
</remarks>
        </member>
        <member name="M:CAnimationPoint.op_Assign(CPoint!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced)">
            <summary>
Assigns ptSrc to CAnimationPoint.
</summary>
            <remarks>
Assigns ptSrc to CAnimationPoint. It's recommended to do that before animation start, because this operator calls
SetDefaultValue, which recreates the underlying COM objects for X and Y coordinates if they have been created. If you
subscribed this animation object to events (ValueChanged or IntegerValueChanged), you need to re-enable these events.
</remarks>
            <param name="ptSrc">Refers to CPoint or POINT.</param>
        </member>
        <member name="M:CAnimationPoint.GetValue(CPoint*!System.Runtime.CompilerServices.IsImplicitlyDereferenced)">
            <summary>
Returns current value.
</summary>
            <returns>
TRUE, if the current value was successfully retrieved; otherwise FALSE.
</returns>
            <remarks>
Call this function to retrieve the current value of animation point. If this method fails or underlying COM objects for
X and Y coordinates have not been initialized, ptValue contains default
value, which was previously set in constructor or by SetDefaultValue.
</remarks>
            <param name="ptValue">Output. Contains the current value when this method returns.</param>
        </member>
        <member name="M:CAnimationPoint.GetDefaultValue">
            <summary>
Returns the default values for X and Y coordinates.
</summary>
            <returns>
A point containing default value.
</returns>
            <remarks>
Call this function to retrieve default value, which was previously set by constructor or SetDefaultValue.
</remarks>
        </member>
        <member name="M:CAnimationPoint.SetDefaultValue(tagPOINT!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced)">
            <summary>
Sets default value.
</summary>
            <remarks>
Use this function to set a default value to animation object. This methods assigns default values to X and Y
coordinates of animation point. It also recreates underlying COM objects if they have been created. If you
subscribed this animation object to events (ValueChanged or IntegerValueChanged), you need to re-enable these events.
</remarks>
            <param name="ptDefault">Specifies the default point value.</param>
        </member>
        <member name="M:CAnimationPoint.#ctor(CPoint!System.Runtime.CompilerServices.IsConst*!System.Runtime.CompilerServices.IsImplicitlyDereferenced,System.UInt32,System.UInt32,System.UInt64)">
            <summary>
Constructs CAnimationPoint object.
</summary>
            <remarks>
Constructs CAnimationPoint object with specified properties.
</remarks>
            <param name="ptDefault">Specifies default point coordinates.</param>
            <param name="nGroupID">Specifies Group ID.</param>
            <param name="nObjectID">Specifies Object ID.</param>
            <param name="dwUserData">Specifies user-defined data.</param>
        </member>
        <member name="M:CAnimationPoint.#ctor">
            <summary>
Constructs CAnimationPoint object.
</summary>
            <remarks>
Constructs CAnimationPoint object with default properties: default point coordinates, Group ID and Object ID are set to 0.
</remarks>
        </member>
        <member name="F:CAnimationPoint.m_yValue">
            <summary>
The encapsulated animation variable that represents Y coordinate of animation point.
</summary>
        </member>
        <member name="F:CAnimationPoint.m_xValue">
            <summary>
The encapsulated animation variable that represents X coordinate of animation point.
</summary>
        </member>
        <member name="T:CAnimationPoint">
            <summary>
Implements the functionality of a point whose coordinates can be animated.
</summary>
            <remarks>
The CAnimationPoint class encapsulates two CAnimationVariable objects and can represent in applications
a point. For example, you can use this class to animate a position of any object on the screen (like text string, circle, point etc).
To use this class in application, just instantiate an object of this class, add it to animation controller using
CAnimationController::AddAnimationObject and call AddTransition for each transition to be applied to X and/or Y coordinates.
</remarks>
        </member>
        <member name="M:CAnimationValue.GetAnimationVariableList(CList&lt;CAnimationVariable**,CAnimationVariable**&gt;*!System.Runtime.CompilerServices.IsImplicitlyDereferenced)">
            <summary>
Puts the encapsulated animation variable into a list.
</summary>
            <param name="lst">When the function returns, it contains a pointer to CAnimationVariable representing the animated value.</param>
        </member>
        <member name="M:CAnimationValue.AddTransition(CBaseTransition*)">
            <summary>
Adds a transition to be applied to a value.
</summary>
            <remarks>
Call this function to add a transition to internal list of transitions to be applied to an animation variable.
When you add transitions, they are not applied immediately and stored in an internal list. Transitions are applied
(added to a storyboard for a particular value) when you call CAnimationController::AnimateGroup.
</remarks>
            <param name="pTransition">A pointer to transition object.</param>
        </member>
        <member name="M:CAnimationValue.GetVariable">
            <summary>
Provides access to encapsulated animation variable.
</summary>
            <returns>
A reference to encapsulated animation variable.
</returns>
            <remarks>
Use this method to access the encapsulated animation variable. From CAnimationVariable you get access
to underlying IUIAnimationVariable object, whose pointer can be NULL if animation variable has not been created.
</remarks>
        </member>
        <member name="M:CAnimationValue.op_Assign(System.Int32)">
            <summary>
Assigns an INT32 value to CAnimationValue.
</summary>
            <remarks>
Assigns an INT32 value to CAnimationValue. This value is set as a default value for encapsulated animation variable.
If you subscribed this animation object to events (ValueChanged or IntegerValueChanged), you need to re-enable these events.
</remarks>
            <param name="nVal">Specifies the value to be assigned to Animation Value.</param>
        </member>
        <member name="M:CAnimationValue.op_Assign(System.Double)">
            <summary>
Assigns a DOUBLE value to CAnimationValue.
</summary>
            <remarks>
Assigns a DOUBLE value to CAnimationValue. This value is set as a default value for encapsulated animation variable.
If you subscribed this animation object to events (ValueChanged or IntegerValueChanged), you need to re-enable these events.
</remarks>
            <param name="dblVal">Specifies the value to be assigned to Animation Value.</param>
        </member>
        <member name="M:CAnimationValue.op_Implicit~System.Int32">
            <summary>
Provides conversion between CAnimationValue and INT32.
</summary>
            <returns>
Current value of Animation Value as integer.
</returns>
            <remarks>
Provides conversion between CAnimationValue and INT32. This method internally calls GetValue and doesn't check for
errors. If GetValue fails, the returned value will contain a default value previously set in constructor or with SetDefaultValue.
</remarks>
        </member>
        <member name="M:CAnimationValue.op_Implicit~System.Double">
            <summary>
Provides conversion between CAnimationValue and DOUBLE.
</summary>
            <returns>
Current value of Animation Value.
</returns>
            <remarks>
Provides conversion between CAnimationValue and DOUBLE. This method internally calls GetValue and doesn't check for
errors. If GetValue fails, the returned value will contain a default value previously set in constructor or with SetDefaultValue.
</remarks>
        </member>
        <member name="M:CAnimationValue.GetValue(System.Int32*!System.Runtime.CompilerServices.IsImplicitlyDereferenced)">
            <summary>
Retrieves the current value.
</summary>
            <returns>
TRUE if the current value was retrieved successfully; otherwise FALSE.
</returns>
            <remarks>
Call this function to retrieve the current value. This implementation calls the encapsulated COM object, and if
the call fails, this method returns the default value that was previously set in constructor or with SetDefaultValue.
</remarks>
            <param name="nValue">Output. When the function returns it contains a current value of animation variable.</param>
        </member>
        <member name="M:CAnimationValue.GetValue(System.Double*!System.Runtime.CompilerServices.IsImplicitlyDereferenced)">
            <summary>
Retrieves the current value.
</summary>
            <returns>
TRUE if the current value was retrieved successfully; otherwise FALSE.
</returns>
            <remarks>
Call this function to retrieve the current value. This implementation calls the encapsulated COM object, and if
the call fails, this method returns the default value that was previously set in constructor or with SetDefaultValue.
</remarks>
            <param name="dblValue">Output. When the function returns it contains a current value of animation variable.</param>
        </member>
        <member name="M:CAnimationValue.SetDefaultValue(System.Double)">
            <summary>
Sets default value.
</summary>
            <remarks>
Use this method to set a default value. A default value is returned to application when animation has not been started
and/or underlying COM object has not been created. If the underlying COM object encapsulated in CAnimationVarible
was already created, this method recreates it, therefore you might need to call EnableValueChanged/EnableIntegerValueChanged
methods again.
</remarks>
            <param name="dblDefaultValue">Specifies the default value.</param>
        </member>
        <member name="M:CAnimationValue.#ctor(System.Double,System.UInt32,System.UInt32,System.UInt64)">
            <summary>
Constructs a CAnimationValue object.
</summary>
            <remarks>
Constructs CAnimationValue object with specified properties.
</remarks>
            <param name="dblDefaultValue">Specifies default value.</param>
            <param name="nGroupID">Specifies Group ID.</param>
            <param name="nObjectID">Specifies Object ID.</param>
            <param name="dwUserData">specifies user-defined data.</param>
        </member>
        <member name="M:CAnimationValue.#ctor">
            <summary>
Constructs a CAnimationValue object.
</summary>
            <remarks>
Constructs CAnimationValue object with default properties: default value, Group ID and Object ID are set to 0.
</remarks>
        </member>
        <member name="F:CAnimationValue.m_value">
            <summary>
The encapsulated animation variable that represents animation value.
</summary>
        </member>
        <member name="T:CAnimationValue">
            <summary>
Implements the functionality of animation object with one value.
</summary>
            <remarks>
The CAnimationValue class encapsulates a single CAnimationVariable object and can represent in applications
a single animated value. For example, you can use this class for animated transparency (fade effect), angle (to rotate objects),
or for any other case when you need to create an animation depending on a single animated value.
To use this class in application, just instantiate an object of this class, add it to animation controller using
CAnimationController::AddAnimationObject and call AddTransition for each transition to be applied to the value.
</remarks>
        </member>
        <member name="M:CAnimationBaseObject.SetParentAnimationObjects">
            <summary>
Establishes relationship between animation variables, contained in an animation object, and their container.
</summary>
            <remarks>
This is a helper that can be used to establish relationship between animation variables, contained in an animation object,
and their container. It loops over animation variables and sets a back pointer to a parent animation object
to each animation variable.
In the current implementation the actual relationship is established in CAnimationBaseObject::ApplyTransitions, therefore
back pointers are not set until you call CAnimationGroup::Animate.
Knowing the relationship may be helpful when you processing events and need to get a parent animation object
from CAnimationVariable (use CAnimationVariable::GetParentAnimationObject).
</remarks>
        </member>
        <member name="M:CAnimationBaseObject.GetAnimationVariableList(CList&lt;CAnimationVariable**,CAnimationVariable**&gt;*!System.Runtime.CompilerServices.IsImplicitlyDereferenced)">
            <summary>
Collects pointers to contained animation variables.
</summary>
            <remarks>
This is a pure virtual method that must be overridden in a derived class.
An animation object, depending on its type, contains one or more animation variables. For example, CAnimationPoint
contains two variables, for X and Y coordinates respectively. The base class CAnimationBaseObject implements
some generic methods, which act on a list of animation variables: ApplyTransitions, ClearTransitions,
EnableValueChangedEvent, EnableIntegerValueChangedEvent. These methods call GetAnimationVariableList, which is filled
in a derived class with actual animation variables contained in a particular animation object, then loop over the
list and perform necessary actions.
If you create a custom animation object, you must add to lst all animation variables contained in that object.
</remarks>
            <param name="lst">A list that must be filled with animation variables contained in an animation object.</param>
        </member>
        <member name="M:CAnimationBaseObject.ContainsVariable(IUIAnimationVariable*)">
            <summary>
Determines whether an animation object contains a particular animation variable.
</summary>
            <returns>
TRUE if the animation variable is contained in the animation object; otherwise FALSE.
</returns>
            <remarks>
This method can be used to determine whether an animation variable specified by pVariable is contained
within an animation object. An animation object, depending on its type, may contain several animation variables.
For example, CAnimationColor contains three variables, one for each color component (red, green and blue). When a
value of animation variable has changed, Windows Animation API sends ValueChanged or IntegerValueChanged events (if enabled),
and the parameter of this event is a pointer to interface IUIAnimationVariable of animation variable.
This method helps to obtain a pointer to animation from a pointer to contained COM object.
</remarks>
            <param name="pVariable">A pointer to animation variable.</param>
        </member>
        <member name="M:CAnimationBaseObject.EnableIntegerValueChangedEvent(CAnimationController*,System.Int32)">
            <summary>
Sets up Integer Value Changed event handler.
</summary>
            <remarks>
If the Integer Value Changed event handler is enabled, you can handle this event in CAnimationController::OnAnimationIntegerValueChanged method,
which should be overridden in a CAnimationController-derived class. This method is called every time the animation integer value has changed.
</remarks>
            <param name="pController">A pointer to a parent controller.</param>
            <param name="bEnable">Specifies whether to enable, or disable Integer Value Changed event.</param>
        </member>
        <member name="M:CAnimationBaseObject.EnableValueChangedEvent(CAnimationController*,System.Int32)">
            <summary>
Sets up Value Changed event handler.
</summary>
            <remarks>
If the Value Changed event handler is enabled, you can handle this event in CAnimationController::OnAnimationValueChanged method,
which should be overridden in a CAnimationController-derived class. This method is called every time the animation value has changed.
</remarks>
            <param name="pController">A pointer to a parent controller.</param>
            <param name="bEnable">Specifies whether to enable, or disable Value Changed event.</param>
        </member>
        <member name="M:CAnimationBaseObject.ClearTransitions(System.Int32)">
            <summary>
Removes all related transitions.
</summary>
            <remarks>
Removes all related transitions and destroys them if bAutodestroy or m_bAutodestroyTransitions flag is TRUE.
Transitions should be destroyed automatically only if they are not allocated on the stack.
If the above flags are FALSE, transitions are just removed from the internal list of related transitions.
</remarks>
            <param name="bAutodestroy">Specifies whether to destroy transition objects automatically, or just remove them from the related list.</param>
        </member>
        <member name="M:CAnimationBaseObject.ApplyTransitions(IUIAnimationStoryboard*,System.Int32)">
            <summary>
Adds transitions to storyboard with encapsulated animation variable.
</summary>
            <returns>
TRUE if transitions were added successfully.
</returns>
            <remarks>
Adds related transitions, that have been added with AddTransition (overloaded methods in derived classes), to storyboard.
</remarks>
            <param name="pStoryboard">A pointer to a storyboard.</param>
            <param name="bDependOnKeyframes">With FALSE this method adds only those transitions that do not depend on keyframes.</param>
        </member>
        <member name="M:CAnimationBaseObject.GetAutodestroyTransitions">
            <summary>
Tells whether related transition are destroyed automatically.
</summary>
            <returns>
If TRUE, related transitions are destroyed automatically; if FALSE, transition objects should be deallocated by calling application.
</returns>
            <remarks>
By default this flag is TRUE. Set this flag only if you allocated transition on the stack and/or transitions should be deallocated by
the calling application.
</remarks>
        </member>
        <member name="M:CAnimationBaseObject.SetAutodestroyTransitions(System.Int32)">
            <summary>
Sets a flag that orders to automatically destroy transitions.
</summary>
            <remarks>
Set this flag only if you allocated transition objects using operator new. If for some reason transition
objects are allocated on the stack, the auto destroy flag should be FALSE. By default this flag is TRUE.
</remarks>
            <param name="bValue">Specifies the auto destroy flag.</param>
        </member>
        <member name="M:CAnimationBaseObject.GetUserData">
            <summary>
Returns user defined data.
</summary>
            <returns>
A value of custom data.
</returns>
            <remarks>
Call this method to retrieve the custom data at runtime. The returned value will be 0 if it was not explicitly initialized in constructor or with SetUserData.
</remarks>
        </member>
        <member name="M:CAnimationBaseObject.GetGroupID">
            <summary>
Returns current Group ID.
</summary>
            <returns>
Current Group ID.
</returns>
            <remarks>
Use this method to retrieve Group ID. It's 0 if Group ID has not been set explicitly in constructor or with SetID.
</remarks>
        </member>
        <member name="M:CAnimationBaseObject.GetObjectID">
            <summary>
Returns current Object ID.
</summary>
            <returns>
Current Object ID.
</returns>
            <remarks>
Use this method to retrieve Object ID. It's 0 if Object ID has not been set explicitly in constructor or with SetID.
</remarks>
        </member>
        <member name="M:CAnimationBaseObject.DetachFromController">
            <summary>
Detaches an animation object from parent animation controller.
</summary>
            <remarks>
This method is used internally.
</remarks>
        </member>
        <member name="M:CAnimationBaseObject.SetUserData(System.UInt64)">
            <summary>
Sets user-defined data.
</summary>
            <remarks>
Use this method to associate a custom data with an animation object. This data may be retrieved later at runtime by GetUserData.
</remarks>
            <param name="dwUserData">Specifies the custom data.</param>
        </member>
        <member name="M:CAnimationBaseObject.SetID(System.UInt32,System.UInt32)">
            <summary>
Sets new IDs.
</summary>
            <remarks>
Allows to change Object ID and Group ID. If the new Group ID differs from the current ID, an animation object
is moved to another group (a new group will be created, if necessary).
</remarks>
            <param name="nObjectID">Specifies new Object ID.</param>
            <param name="nGroupID">Specifies new Group ID.</param>
        </member>
        <member name="M:CAnimationBaseObject.CreateTransitions">
            <summary>
Creates transitions associated with an animation object.
</summary>
            <returns>
TRUE if transitions were created successfully; otherwise FALSE.
</returns>
            <remarks>
Loops over list of animation variables encapsulated in a derived animation object and creates transitions
associated with each animation variable.
</remarks>
        </member>
        <member name="M:CAnimationBaseObject.Dispose">
            <summary>
The destructor. Called when an animation object is being destroyed.
</summary>
        </member>
        <member name="M:CAnimationBaseObject.#ctor(System.UInt32,System.UInt32,System.UInt64)">
            <summary>
Constructs an animation object.
</summary>
            <remarks>
Constructs an animation object with specified Object ID and Group ID.
</remarks>
            <param name="nGroupID">Specifies Group ID.</param>
            <param name="nObjectID">Specifies Object ID.</param>
            <param name="dwUserData">User-defined data, which can be associated with animation object and retrieved later at runtime.</param>
        </member>
        <member name="M:CAnimationBaseObject.#ctor">
            <summary>
Constructs an animation object.
</summary>
            <remarks>
Constructs an animation objects and assigns default Object ID (0) and Group ID (0).
</remarks>
        </member>
        <member name="F:CAnimationBaseObject.m_pParentController">
            <summary>
A pointer to the parent animation controller.
</summary>
        </member>
        <member name="F:CAnimationBaseObject.m_bAutodestroyTransitions">
            <summary>
Specifies whether related transitions should be automatically destroyed.
</summary>
        </member>
        <member name="F:CAnimationBaseObject.m_dwUserData">
            <summary>
Stores user-defined data.
</summary>
        </member>
        <member name="F:CAnimationBaseObject.m_nObjectID">
            <summary>
Specifes the Object ID of the animation object.
</summary>
        </member>
        <member name="F:CAnimationBaseObject.m_nGroupID">
            <summary>
Specifies the Group ID of the animation object.
</summary>
        </member>
        <member name="T:CAnimationBaseObject">
            <summary>
The base class for all animation objects.
</summary>
            <remarks>
This class implements basic methods for all animation objects. An animation object can represent a value, point,
size, rectangle or color in an application, as well as any custom entity. Animation objects are stored in animation groups
(see CAnimationGroup). Each group can be animated separately and can be treated as an analogue of storyboard.
An animation object encapsulates one or more animation variables (see CAnimationVariable), depending on its logical
representation. For example, CAnimationRect contains four animation variables - one variable for each side of rectangle.
Each animation object class exposes overloaded AddTransition method, which should be used to apply transitions to
encapsulated animation variables.
An animation object can be identified by Object ID (optionally) and by Group ID. A Group ID is necessary in order
to place an animation object to correct group, but if a Group ID is not specified, an object is placed in the default group with ID 0.
If you call SetID with different GroupID, an animation object will be moved to another group (a new group is created if necessary).
</remarks>
        </member>
        <member name="F:CAnimationVariable.m_bAutodestroyTransitions">
            <summary>
Specifies whether related transition objects should be deleted.
</summary>
            <remarks>
Set this value to TRUE to force deletion of transition objects when they are being removed from the internal list
of transitions. If this value is FALSE the transitions should be deleted by calling application.
The list of transitions is always cleared after an animation has been scheduled. The default value is FALSE.
</remarks>
        </member>
        <member name="M:CAnimationVariable.GetDefaultValue">
            <summary>
Returns default value.
</summary>
            <returns>
The default value.
</returns>
            <remarks>
Use this function to obtain default value of animation variable. The default value can be set in constructor or by
SetDefaultValue method.
</remarks>
        </member>
        <member name="M:CAnimationVariable.EnableIntegerValueChangedEvent(CAnimationController*,System.Int32)">
            <summary>
Enables or disables the IntegerValueChanged event.
</summary>
            <remarks>
When ValueChanged event is enabled, the framework calls virtual method CAnimationController::OnAnimationIntegerValueChanged.
You need to override it in a class derived from CAnimationController in order to process this event. This method is called every time
the integer value of animation variable is changed.
</remarks>
            <param name="pController">A pointer to parent controller.</param>
            <param name="bEnable">TRUE - enable event, FALSE - disable event.</param>
        </member>
        <member name="M:CAnimationVariable.EnableValueChangedEvent(CAnimationController*,System.Int32)">
            <summary>
Enables or disables the ValueChanged event.
</summary>
            <remarks>
When ValueChanged event is enabled, the framework calls virtual method CAnimationController::OnAnimationValueChanged.
You need to override it in a class derived from CAnimationController in order to process this event. This method is called every time
the value of animation variable is changed.
</remarks>
            <param name="pController">A pointer to parent controller.</param>
            <param name="bEnable">TRUE - enable event, FALSE - disable event.</param>
        </member>
        <member name="M:CAnimationVariable.ApplyTransitions(CAnimationController*,IUIAnimationStoryboard*,System.Int32)">
            <summary>
Adds transitions from the internal list to storyboard.
</summary>
            <remarks>
This method adds transitions from the internal list to storyboard. It's called from the
top level code several times to add transitions that do not depend on keyframes and add
transitions that depend on keyframes. If the underlying animation variable
COM object has not been created, this method creates it at this stage.
</remarks>
            <param name="pController">A pointer to parent animation controller.</param>
            <param name="pStoryboard">A pointer to storyboard.</param>
            <param name="bDependOnKeyframes">TRUE, if this method should add transitions that depend on keyframes.</param>
        </member>
        <member name="M:CAnimationVariable.ClearTransitions(System.Int32)">
            <summary>
Clears transitions.
</summary>
            <remarks>
This method removes all transitions from the internal list of transitions. If bAutodestroy is TRUE, or
m_bAutodestroyTransitions is TRUE, then transitions are deleted. Otherwise the caller should deallocate
the transition objects.
</remarks>
            <param name="bAutodestroy">Specifies whether this method should delete transition objects.</param>
        </member>
        <member name="M:CAnimationVariable.AddTransition(CBaseTransition*)">
            <summary>
Adds a transition.
</summary>
            <remarks>
This method is called to add a transition to the internal list of transitions to be applied to the animation variable.
This list should be cleared when an animation has been scheduled.
</remarks>
            <param name="pTransition">A pointer to a transition to add.</param>
        </member>
        <member name="M:CAnimationVariable.GetValue(System.Int32*!System.Runtime.CompilerServices.IsImplicitlyDereferenced)">
            <summary>
Returns the current value of animation variable.
</summary>
            <returns>
S_OK if the value was obtained successfully, or underlying animation variable has not been created. Otherwise
HRESULT error code.
</returns>
            <remarks>
This method can be called to retrieve the current value of animation variable. If the underlying COM object
has not been created, dblValue will contain a default value, when the function returns.
</remarks>
            <param name="nValue">The current value of the animation variable.</param>
        </member>
        <member name="M:CAnimationVariable.GetValue(System.Double*!System.Runtime.CompilerServices.IsImplicitlyDereferenced)">
            <summary>
Returns the current value of animation variable.
</summary>
            <returns>
S_OK if the value was obtained successfully, or underlying animation variable has not been created. Otherwise
HRESULT error code.
</returns>
            <remarks>
This method can be called to retrieve the current value of animation variable. If the underlying COM object
has not been created, dblValue will contain a default value, when the function returns.
</remarks>
            <param name="dblValue">The current value of the animation variable.</param>
        </member>
        <member name="M:CAnimationVariable.CreateTransitions(IUIAnimationTransitionLibrary*,IUIAnimationTransitionFactory*)">
            <summary>
Creates all transitions to be applied to this animation variable.
</summary>
            <returns>
TRUE if transitions were created successfully; otherwise FALSE.
</returns>
            <remarks>
This method is called by the framework when it needs to create transitions that have been added
to the variable's internal list of transitions.
</remarks>
            <param name="pLibrary">A pointer to transition library.</param>
            <param name="pFactory">A pointer to transition factory.</param>
        </member>
        <member name="M:CAnimationVariable.Create(IUIAnimationManager*)">
            <summary>
Creates the underlying animation variable COM object.
</summary>
            <returns>
TRUE if the animation variable was successfully created; otherwise FALSE.
</returns>
            <remarks>
This method creates the underlying animation variable COM object and sets its default value.
</remarks>
            <param name="pManager">A pointer to animation manager.</param>
        </member>
        <member name="M:CAnimationVariable.SetDefaultValue(System.Double)">
            <summary>
Sets default value and releases IUIAnimationVariable COM object.
</summary>
            <remarks>
Use this method to reset the default value. This method releases the internal IUIAnimationVariable COM object,
therefore when animation variable is recreated, the underlying COM object gets the new default value.
The default value is returned by GetValue if the COM object representing the animation variable is not created,
or if the variable has not been animated.
</remarks>
            <param name="dblDefaultValue">Specifies the new default value.</param>
        </member>
        <member name="M:CAnimationVariable.GetVariable">
            <summary>
Returns a pointer to IUIAnimationVariable COM object.
</summary>
            <returns>
A valid pointer to IUIAnimationVariable COM object, or NULL if animation variable was not created, or can't be created.
</returns>
            <remarks>
Use this function to access the underlying IUIAnimationVariable COM object and call its methods directly if needed.
</remarks>
        </member>
        <member name="M:CAnimationVariable.GetParentAnimationObject">
            <summary>
Returns the parent animation object.
</summary>
            <returns>
A pointer to parent animation object, if relationship was established, otherwise NULL.
</returns>
            <remarks>
This method can be called to retrieve a pointer to a parent animation object (a container).
</remarks>
        </member>
        <member name="M:CAnimationVariable.Dispose">
            <summary>
The destructor. Called when a CAnimationVariable object is being destroyed.
</summary>
        </member>
        <member name="M:CAnimationVariable.#ctor(System.Double)">
            <summary>
Constructs an animation variable object.
</summary>
            <remarks>
Constructs an animation variable object and sets its default value. A default value is used when
a variable is not animated, or can't be animated.
</remarks>
            <param name="dblDefaultValue">Specifies the default value.</param>
        </member>
        <member name="M:CAnimationVariable.SetParentAnimationObject(CAnimationBaseObject*)">
            <summary>
Sets the relationship between an animation variable and an animation object.
</summary>
            <remarks>
This method is called internally to establish one-to-one relationship between an animation variable and an animation object that encapsulates it.
</remarks>
            <param name="pParentObject">A pointer to an animation object that contains this variable.</param>
        </member>
        <member name="F:CAnimationVariable.m_pParentObject">
            <summary>
A pointer to an animation object that encapsulates this animation variable.
</summary>
        </member>
        <member name="F:CAnimationVariable.m_lstTransitions">
            <summary>
Contains a list of transitions that animate this animation variable.
</summary>
        </member>
        <member name="F:CAnimationVariable.m_dblDefaultValue">
            <summary>
Specifies the default value, which is propagated to IUIAnimationVariable.
</summary>
        </member>
        <member name="F:CAnimationVariable.m_variable">
            <summary>
Stores a pointer to IUIAnimationVariable COM object. NULL if the COM object has not been created yet, or if creation failed.
</summary>
        </member>
        <member name="T:CAnimationVariable">
            <summary>
Represents an animation variable.
</summary>
            <remarks>
The CAnimationVariable class encapsulates IUIAnimationVariable COM object. It also holds a list of transitions
to be applied to the animation variable in a storyboard. CAnimationVariable objects are embedded to
animation objects, which can represent in an application an animated value, point, size, color and rectangle.
</remarks>
        </member>
        <member name="M:CKeyFrame.AddToStoryboardAtOffset(IUIAnimationStoryboard*,System.Int32)">
            <summary>
Adds a keyframe to storyboard at offset.
</summary>
            <returns>
TRUE, if keyframe was added successfully.
</returns>
            <remarks>
This function is called by the framework to add a keyframe to storyboard at offset.
</remarks>
            <param name="pStoryboard">A pointer to a storyboard.</param>
            <param name="bDeepAdd">Specifies whether to add a keyframe this keyframe depend on recursively.</param>
        </member>
        <member name="M:CKeyFrame.AddToStoryboardAfterTransition(IUIAnimationStoryboard*,System.Int32)">
            <summary>
Adds a keyframe to storyboard after transition.
</summary>
            <returns>
TRUE, if keyframe was added successfully.
</returns>
            <remarks>
This function is called by the framework to add a keyframe to storyboard after transition.
</remarks>
            <param name="pStoryboard">A pointer to a storyboard.</param>
            <param name="bDeepAdd">Specifies whether to add a transition recursively.</param>
        </member>
        <member name="M:CKeyFrame.AddToStoryboard(IUIAnimationStoryboard*,System.Int32)">
            <summary>
Adds a keyframe to a storyboard.
</summary>
            <returns>
TRUE, if keyframe was added successfully.
</returns>
            <remarks>
This method adds a keyframe to storyboard. If it depends on other keyframe or transition and bDeepAdd is TRUE,
this method tries to add them recursively.
</remarks>
            <param name="pStoryboard">A pointer to a storyboard.</param>
            <param name="bDeepAdd">Specifies whether to add keyframe or transition recursively.</param>
        </member>
        <member name="M:CKeyFrame.GetOffset">
            <summary>
Returns an offset from other keyframe.
</summary>
            <returns>
An offset in seconds from other keyframe.
</returns>
            <remarks>
This method should be called to determine an offset in seconds from other keyframe.
</remarks>
        </member>
        <member name="M:CKeyFrame.GetExistingKeyframe">
            <summary>
Returns a pointer to a keyframe this keyframe depends on.
</summary>
            <returns>
A valid pointer to keyframe, or NULL if this keyframe does not depend on other keyframe.
</returns>
            <remarks>
This is an accessor to a keyframe this keyframe depends on.
</remarks>
        </member>
        <member name="M:CKeyFrame.GetTransition">
            <summary>
Returns a pointer to a transition this keyframe depends on.
</summary>
            <returns>
A valid pointer to transition, or NULL if this keyframe does not depend on transition.
</returns>
            <remarks>
This is an accessor to a transition this keyframe depends on.
</remarks>
        </member>
        <member name="M:CKeyFrame.#ctor(CBaseKeyFrame*,System.Double)">
            <summary>
Constructs a keyframe that depends on other keyframe.
</summary>
            <remarks>
The constructed keyframe will represent a moment in time within a storyboard, which has a specified offset from pKeyframe.
</remarks>
            <param name="pKeyframe">A pointer to keyframe.</param>
            <param name="offset">Offset, in seconds, from keyframe specified by pKeyframe.</param>
        </member>
        <member name="M:CKeyFrame.#ctor(CBaseTransition*)">
            <summary>
Constructs a keyframe that depends on a transition.
</summary>
            <remarks>
The constructed keyframe will represent a moment in time within a storyboard when the specified transition ends.
</remarks>
            <param name="pTransition">A pointer to a transition.</param>
        </member>
        <member name="F:CKeyFrame.m_pExistingKeyFrame">
            <summary>
Stores a pointer to an existing keframe. This keyframe is added to storyboard with m_offset to the existing keyframe.
</summary>
        </member>
        <member name="F:CKeyFrame.m_offset">
            <summary>
Specifies offset of this keyframe from a keyframe stored in m_pExistingKeyFrame.
</summary>
        </member>
        <member name="F:CKeyFrame.m_pTransition">
            <summary>
Stores a pointer to transtion that begins at this keyframe.
</summary>
        </member>
        <member name="T:CKeyFrame">
            <summary>
Represents an animation keyframe.
</summary>
            <remarks>
This class implements an animation keyframe. A keyframe represents a moment in time within a
storyboard and can be used to specify the start and end times of transitions.
A keyframe may be based on other keyframe and have an offset (in seconds) from it, or may be based on a transition and
represent a moment in time when this transition ends.
</remarks>
        </member>
        <member name="M:CBaseKeyFrame.AddToStoryboard(IUIAnimationStoryboard*,System.Int32)">
            <summary>
Adds a keyframe to storyboard.
</summary>
            <returns>
TRUE if keyframe was added to storyboard successfully; otherwise FALSE.
</returns>
            <remarks>
This method is called to add a keyframe to storyboard.
</remarks>
            <param name="pStoryboard">A pointer to a storyboard.</param>
            <param name="bDeepAdd">If this parameter is TRUE and the keyframe being added depends on some other keyframe or transition, this method tries
to add this keyframe or transition to storyboard first.</param>
        </member>
        <member name="M:CBaseKeyFrame.IsKeyframeAtOffset">
            <summary>
Specifies whether the keyframe should be added to storyboard at offset, or after transition.
</summary>
            <returns>
TRUE if the keyframe should be added to storyboard at some specified offset.
FALSE if the keyframe should be added to storyboard after some transition.
</returns>
            <remarks>
Specifies whether the keyframe should be added to storyboard at offset.
The offset or transition must be specified in a derived class.
</remarks>
        </member>
        <member name="M:CBaseKeyFrame.IsAdded">
            <summary>
Tells whether a keyframe has been added to storyboard.
</summary>
            <returns>
TRUE if a keyframe is added to a storyboard; otehrwise FALSE.
</returns>
            <remarks>
In the base class IsAdded always returns TRUE, but it's overridden in derived classes.
</remarks>
        </member>
        <member name="M:CBaseKeyFrame.GetAnimationKeyframe">
            <summary>
Returns the underlying keyframe value.
</summary>
            <returns>
A current keyframe. The default value is UI_ANIMATION_KEYFRAME_STORYBOARD_START.
</returns>
            <remarks>
This is an accessor to the underlying keyframe value.
</remarks>
        </member>
        <member name="M:CBaseKeyFrame.#ctor">
            <summary>
Constructs a keyframe object.
</summary>
        </member>
        <member name="F:CBaseKeyFrame.m_bIsKeyframeAtOffset">
            <summary>
Specifies whether this keyframe should be added to storyboard at an offset from
another existing keyframe, or at the end of some transition.
</summary>
        </member>
        <member name="F:CBaseKeyFrame.m_bAdded">
            <summary>
Specifies whether this keyframe has been added to a storyboard.
</summary>
        </member>
        <member name="F:CBaseKeyFrame.m_keyframe">
            <summary>
Represents a Windows Animation API keyframe. When a keyframe is not initialized
it is set to the predefined value UI_ANIMATION_KEYFRAME_STORYBOARD_START.
</summary>
        </member>
        <member name="T:CBaseKeyFrame">
            <summary>
Implements basic functionality of keyframe.
</summary>
            <remarks>
Encapsulates UI_ANIMATION_KEYFRAME variable. Serves as a base class for any keyframe implementation.
A keyframe represents a moment in time within a storyboard and can be used to specify the start and end times of transitions.
There are two types of keyframes - keyframes added to storyboard at the specified offset (in time), or keyframes added
after specified transition. Because durations of some transitions can't be known before animation starts, the actual values
of some keyframes are determined at runtime only.
Because keyframes may depend on transitions, which in their turn depend on keyframes, it's important to prevent
infinite recursions when building keyframe chains.
</remarks>
        </member>
        <member name="F:CBaseTransition.m_bAdded">
            <summary>
Specifies whether a transition has been added to a storyboard.
</summary>
        </member>
        <member name="F:CBaseTransition.m_pRelatedVariable">
            <summary>
A pointer to an animation variable, which is animated with the transition stored in m_transition.
</summary>
        </member>
        <member name="F:CBaseTransition.m_pEndKeyframe">
            <summary>
Stores a pointer to the keyframe that specifies the end of the transition.
</summary>
        </member>
        <member name="F:CBaseTransition.m_pStartKeyframe">
            <summary>
Stores a pointer to the keyframe that specifies the beginning of the transition.
</summary>
        </member>
        <member name="F:CBaseTransition.m_transition">
            <summary>
Stores a pointer to IUIAnimationTransition. NULL if a COM transition object has not been created.
</summary>
        </member>
        <member name="F:CBaseTransition.m_type">
            <summary>
Stores the transition type.
</summary>
        </member>
        <member name="M:CBaseTransition.AddToStoryboardAtKeyframes(IUIAnimationStoryboard*)">
            <summary>
Adds a transition to a storyboard.
</summary>
            <returns>
TRUE, if transition was successfully added to a storyboard.
</returns>
            <remarks>
Applies the transition to the related variable in the storyboard. If the start keyframe was specified, the transition
begins at that keyframe. If the end keyframe was specified, the transition begins at the start keyframe and
and stops at the end keyframe. If the transition was created with a duration parameter specified, that duration is
overwritten with the duration of time between the start and end keyframes.
If no keyframe was specified, the transition is appended to the transition added most recently to the variable.
</remarks>
            <param name="pStoryboard">A pointer to storyboard, which will animate the related variable.</param>
        </member>
        <member name="M:CBaseTransition.AddToStoryboard(IUIAnimationStoryboard*)">
            <summary>
Adds a transition to a storyboard.
</summary>
            <returns>
TRUE, if transition was successfully added to a storyboard.
</returns>
            <remarks>
Applies the transition to the related variable in the storyboard.  If this is the first transition
applied to this variable in this storyboard, the transition begins at the start of the storyboard.
Otherwise, the transition is appended to the transition added most recently to the variable.
</remarks>
            <param name="pStoryboard">A pointer to storyboard, which will animate the related variable.</param>
        </member>
        <member name="M:CBaseTransition.GetRelatedVariable">
            <summary>
Returns a pointer to related variable.
</summary>
            <returns>
A valid pointer to animation variable, or NULL if an animation variable has not been set by SetRelatedVariable.
</returns>
            <remarks>
This is an accessor to related animation variable.
</remarks>
        </member>
        <member name="M:CBaseTransition.SetRelatedVariable(CAnimationVariable*)">
            <summary>
Establishes a relationship between animation variable and transition.
</summary>
            <remarks>
Establishes a relationship between animation variable and transition. A transition can be applied only to one variable.
</remarks>
            <param name="pVariable">A pointer to related animation variable.</param>
        </member>
        <member name="M:CBaseTransition.GetEndKeyframe">
            <summary>
Returns start keyframe.
</summary>
            <returns>
A valid pointer to a keyframe, or NULL if a transition should not be inserted between keyframes.
</returns>
            <remarks>
This method can be used to access a keyframe object that was previously set by SetKeyframes.
It's called by top level code when transitions are being added to storyboard.
</remarks>
        </member>
        <member name="M:CBaseTransition.GetStartKeyframe">
            <summary>
Returns start keyframe.
</summary>
            <returns>
A valid pointer to a keyframe, or NULL if a transition should not start after a keyframe.
</returns>
            <remarks>
This method can be used to access a keyframe object that was previously set by SetKeyframes.
It's called by top level code when transitions are being added to storyboard.
</remarks>
        </member>
        <member name="M:CBaseTransition.IsAdded">
            <summary>
Tells whether a transition has been added to a storyboard.
</summary>
            <returns>
Returns TRUE if a transition has been added to a storyboard, otherwise FALSE.
</returns>
            <remarks>
This flag is set internally when the top level code adds transitions to storyboard.
</remarks>
        </member>
        <member name="M:CBaseTransition.SetKeyframes(CBaseKeyFrame*,CBaseKeyFrame*)">
            <summary>
Sets keyframes for a transition.
</summary>
            <remarks>
This method tells the transition to start after specified keyframe and, optionally, if pEnd is not NULL, end
before the specified keyframe.
If the transition was created with a duration parameter specified, that duration is overwritten with the duration of time between the start and end keyframes.
</remarks>
            <param name="pStart">A keyframe that specifies the beginning of the transition. </param>
            <param name="pEnd">A keyframe that specifies the end of the transition.</param>
        </member>
        <member name="M:CBaseTransition.GetTransition">
            <summary>
Returns a pointer to underlying COM transition object.
</summary>
            <returns>
A valid pointer to IUIAnimationTransition or NULL if underlying transition can't be created.
</returns>
            <remarks>
It's an accessor method to underlying COM transition object. It doesn't instantiates the underlying IUIAnimationTransition COM
object if it wasn't created.
</remarks>
        </member>
        <member name="M:CBaseTransition.GetTransition(IUIAnimationTransitionLibrary*,IUIAnimationTransitionFactory*)">
            <summary>
Returns a pointer to underlying COM transition object.
</summary>
            <returns>
A valid pointer to IUIAnimationTransition or NULL if underlying transition can't be created.
</returns>
            <remarks>
This method returns a pointer to underlying COM transition object and creates it if necessary.
</remarks>
            <param name="pLibrary">A pointer to transition library, which creates standard transitions. It can be NULL for custom transitions.</param>
            <param name="pFactory">A pointer to transition factory, which creates custom transitions. It can be NULL for standard transitions.</param>
        </member>
        <member name="M:CBaseTransition.Create(IUIAnimationTransitionLibrary*,IUIAnimationTransitionFactory*)">
            <summary>
Creates a COM transition.
</summary>
            <returns>
TRUE if a transition COM object was created successfully; otherwise FALSE.
</returns>
            <remarks>
This is a pure virtual function that must be overridden in a derived class.
It's called by the framework to instantiate the underlying COM transition object.
</remarks>
            <param name="pLibrary">A pointer to transition library, which creates standard transitions. It can be NULL for custom transitions.</param>
            <param name="pFactory">A pointer to transition factory, which creates custom transitions. It can be NULL for standard transitions.</param>
        </member>
        <member name="M:CBaseTransition.GetType">
            <summary>
Returns transition type.
</summary>
            <returns>
One of TRANSITION_TYPE enumerated values.
</returns>
            <remarks>
This method can be used to identify a transition object by its type.
The type is set in a constructor in a derived class.
</remarks>
        </member>
        <member name="M:CBaseTransition.Clear">
            <summary>
Releases encapsulated IUIAnimationTransition COM object.
</summary>
            <remarks>
This method should be called from a derived class's Create method in order to prevent
IUITransition interface leak.
</remarks>
        </member>
        <member name="M:CBaseTransition.Dispose">
            <summary>
The destructor. Called when a transition object is being destroyed.
</summary>
        </member>
        <member name="M:CBaseTransition.#ctor">
            <summary>
Constructs a base transtion object.
</summary>
        </member>
        <member name="T:CBaseTransition.TRANSITION_TYPE">
            <summary>
Defines the transition types currently supported by the MFC implementation of Windows Animation API.
</summary>
            <remarks>
A transition type is set in the constructor of specific transition.
For example, CSinusoidalTransitionFromRange sets its type to SINUSOIDAL_FROM_RANGE.
</remarks>
        </member>
        <member name="T:CBaseTransition">
            <summary>
Represents a basic transition.
</summary>
            <remarks>
This class encapsulates IUIAnimationTransition interface and serves as a base class for all transitions.
</remarks>
        </member>
    </members>
</doc>