esriGeometry.tlh
上传用户:juying163
上传日期:2014-09-24
资源大小:5867k
文件大小:523k
源码类别:

GIS编程

开发平台:

Visual C++

  1.         struct IGeometry * baseGeom ) = 0;
  2.     virtual HRESULT __stdcall ConstructExtrudeBetween (
  3.         struct IFunctionalSurface * fromSurface,
  4.         struct IFunctionalSurface * toSurface,
  5.         struct IGeometry * baseGeom ) = 0;
  6.     virtual HRESULT __stdcall ConstructExtrudeAlongLine (
  7.         struct ILine * extrusionLine,
  8.         struct IGeometry * baseGeom ) = 0;
  9.     virtual HRESULT __stdcall ConstructExtrudeRelative (
  10.         struct IVector3D * extrusionVector,
  11.         struct IGeometry * baseGeom ) = 0;
  12.     virtual HRESULT __stdcall ConstructExtrude (
  13.         double OffsetZ,
  14.         struct IGeometry * baseGeom ) = 0;
  15. };
  16. struct __declspec(uuid("6b256ae0-1cde-11d4-9f5c-00c04f6bdf0d"))
  17. IExtrude : IUnknown
  18. {
  19.     //
  20.     // Raw methods provided by interface
  21.     //
  22.     virtual HRESULT __stdcall ExtrudeFromTo (
  23.         double fromZ,
  24.         double toZ,
  25.         struct IGeometry * baseGeom,
  26.         struct IGeometry * * extrudedGeom ) = 0;
  27.     virtual HRESULT __stdcall ExtrudeAbsolute (
  28.         double toZ,
  29.         struct IGeometry * baseGeom,
  30.         struct IGeometry * * extrudedGeom ) = 0;
  31.     virtual HRESULT __stdcall ExtrudeBetween (
  32.         struct IFunctionalSurface * fromSurface,
  33.         struct IFunctionalSurface * toSurface,
  34.         struct IGeometry * baseGeom,
  35.         struct IGeometry * * extrudedGeom ) = 0;
  36.     virtual HRESULT __stdcall ExtrudeAlongLine (
  37.         struct ILine * extrusionLine,
  38.         struct IGeometry * baseGeom,
  39.         struct IGeometry * * extrudedGeom ) = 0;
  40.     virtual HRESULT __stdcall ExtrudeRelative (
  41.         struct IVector3D * extrusionVector,
  42.         struct IGeometry * baseGeom,
  43.         struct IGeometry * * extrudedGeom ) = 0;
  44.     virtual HRESULT __stdcall Extrude (
  45.         double OffsetZ,
  46.         struct IGeometry * baseGeom,
  47.         struct IGeometry * * extrudedGeom ) = 0;
  48. };
  49. struct __declspec(uuid("8c6e62ce-74fd-11d3-9f49-00c04f6bdd7f"))
  50. ISpatialIndex : IUnknown
  51. {
  52.     //
  53.     // Raw methods provided by interface
  54.     //
  55.     virtual HRESULT __stdcall put_AllowIndexing (
  56.         VARIANT_BOOL AllowIndexing ) = 0;
  57.     virtual HRESULT __stdcall get_AllowIndexing (
  58.         VARIANT_BOOL * AllowIndexing ) = 0;
  59.     virtual HRESULT __stdcall Invalidate ( ) = 0;
  60. };
  61. struct __declspec(uuid("8d7948bc-8dca-4e81-a7d5-8c259f202bd3"))
  62. ISpatialIndex2 : ISpatialIndex
  63. {
  64.     //
  65.     // Raw methods provided by interface
  66.     //
  67.     virtual HRESULT __stdcall CheckInvalidate ( ) = 0;
  68. };
  69. struct __declspec(uuid("52c59396-d744-11d2-9f34-00c04f6bdf06"))
  70. IMAware : IUnknown
  71. {
  72.     //
  73.     // Raw methods provided by interface
  74.     //
  75.     virtual HRESULT __stdcall get_MAware (
  76.         VARIANT_BOOL * MAware ) = 0;
  77.     virtual HRESULT __stdcall put_MAware (
  78.         VARIANT_BOOL MAware ) = 0;
  79.     virtual HRESULT __stdcall get_MSimple (
  80.         VARIANT_BOOL * MSimple ) = 0;
  81.     virtual HRESULT __stdcall DropMs ( ) = 0;
  82. };
  83. struct __declspec(uuid("01faff20-5191-11d2-92f6-0000f875171d"))
  84. IMCollection : IUnknown
  85. {
  86.     //
  87.     // Raw methods provided by interface
  88.     //
  89.     virtual HRESULT __stdcall get_MMin (
  90.         double * outMMin ) = 0;
  91.     virtual HRESULT __stdcall get_MMax (
  92.         double * outMMax ) = 0;
  93.     virtual HRESULT __stdcall MultiplyMs (
  94.         double factor ) = 0;
  95.     virtual HRESULT __stdcall OffsetMs (
  96.         double Offset ) = 0;
  97. };
  98. struct __declspec(uuid("fd5e17ec-d717-11d2-9f34-00c04f6bdf06"))
  99. IMSegmentation : IMCollection
  100. {
  101.     //
  102.     // Raw methods provided by interface
  103.     //
  104.     virtual HRESULT __stdcall get_MMonotonic (
  105.         enum esriMMonotonicEnum * MMonotonic ) = 0;
  106.     virtual HRESULT __stdcall GetMsAtDistance (
  107.         double distance,
  108.         VARIANT_BOOL asRatio,
  109.         VARIANT * ms ) = 0;
  110.     virtual HRESULT __stdcall InsertMAtDistance (
  111.         double M,
  112.         double distance,
  113.         VARIANT_BOOL asRatio,
  114.         VARIANT_BOOL createPart,
  115.         VARIANT_BOOL * SplitHappened,
  116.         long * newPartIndex,
  117.         long * newSegmentIndex ) = 0;
  118.     virtual HRESULT __stdcall GetDistancesAtM (
  119.         VARIANT_BOOL asRatio,
  120.         double M,
  121.         VARIANT * distances ) = 0;
  122.     virtual HRESULT __stdcall ReverseMsOrder ( ) = 0;
  123.     virtual HRESULT __stdcall InterpolateMsBetween (
  124.         long fromPart,
  125.         long FromPoint,
  126.         long toPart,
  127.         long ToPoint ) = 0;
  128.     virtual HRESULT __stdcall SetAndInterpolateMsBetween (
  129.         double fromM,
  130.         double toM ) = 0;
  131.     virtual HRESULT __stdcall SetMsAsDistance (
  132.         VARIANT_BOOL asRatio ) = 0;
  133.     virtual HRESULT __stdcall ExtrapolateMs (
  134.         enum esriExtrapolationEnum extrapolationStyle,
  135.         long fromPart,
  136.         long FromPoint,
  137.         long toPart,
  138.         long ToPoint ) = 0;
  139.     virtual HRESULT __stdcall CalculateNonSimpleMs ( ) = 0;
  140.     virtual HRESULT __stdcall GetPointsAtM (
  141.         double M,
  142.         double lateralOffset,
  143.         struct IGeometryCollection * * result ) = 0;
  144.     virtual HRESULT __stdcall GetSubcurveBetweenMs (
  145.         double fromM,
  146.         double toM,
  147.         struct IGeometryCollection * * result ) = 0;
  148. };
  149. enum esriMMonotonicEnum
  150. {
  151.     esriMNotMonotonic = 0,
  152.     esriMAscending = 1,
  153.     esriMDescending = -1
  154. };
  155. struct __declspec(uuid("b80d4790-f452-11d3-9f69-00c04f6bdd7f"))
  156. IMSegmentation2 : IMSegmentation
  157. {
  158.     //
  159.     // Raw methods provided by interface
  160.     //
  161.     virtual HRESULT __stdcall SetMsAsDistance2 (
  162.         struct IPoint * Origin,
  163.         double Scale,
  164.         double Offset,
  165.         VARIANT_BOOL ignoreGaps ) = 0;
  166.     virtual HRESULT __stdcall UpdateMsByDistance (
  167.         long fromPart,
  168.         long FromPoint,
  169.         long toPart,
  170.         long ToPoint,
  171.         double fromM,
  172.         double toM,
  173.         long updateHow,
  174.         VARIANT_BOOL ignoreGaps ) = 0;
  175.     virtual HRESULT __stdcall UpdateMsByMs (
  176.         long fromPart,
  177.         long FromPoint,
  178.         long toPart,
  179.         long ToPoint,
  180.         double fromM,
  181.         double toM,
  182.         long updateHow ) = 0;
  183.     virtual HRESULT __stdcall CalibrateByDistance (
  184.         struct IEnumVertex * Points,
  185.         long updateHow,
  186.         VARIANT_BOOL ignoreGaps,
  187.         double cutoffDistance,
  188.         struct IEnumSplitPoint * * splitPoints ) = 0;
  189.     virtual HRESULT __stdcall CalibrateByMs (
  190.         struct IEnumVertex * Points,
  191.         long updateHow,
  192.         double cutoffDistance,
  193.         struct IEnumSplitPoint * * splitPoints ) = 0;
  194.     virtual HRESULT __stdcall GetSubcurveBetweenMsEx (
  195.         double fromM,
  196.         double toM,
  197.         long * fromMDetails,
  198.         long * toMDetails,
  199.         struct IGeometryCollection * * result ) = 0;
  200. };
  201. struct __declspec(uuid("58ad0d5d-393d-44aa-9797-6e50d06ed524"))
  202. IMSegmentation3 : IMSegmentation2
  203. {
  204.     //
  205.     // Raw methods provided by interface
  206.     //
  207.     virtual HRESULT __stdcall UpdateAllMsByMs (
  208.         struct IPoint * Origin,
  209.         double Scale,
  210.         double Offset,
  211.         VARIANT_BOOL ignoreGaps ) = 0;
  212.     virtual HRESULT __stdcall GetNormalsAtM (
  213.         double M,
  214.         double Length,
  215.         struct IGeometryCollection * * result ) = 0;
  216.     virtual HRESULT __stdcall get_MMonotonicity (
  217.         long * monotonicityDetails ) = 0;
  218.     virtual HRESULT __stdcall QueryFirstLastM (
  219.         double * firstM,
  220.         double * lastM ) = 0;
  221.     virtual HRESULT __stdcall OrientByMs ( ) = 0;
  222. };
  223. struct __declspec(uuid("040e3809-1106-11d6-9fa9-00c04f6bdf0d"))
  224. IMSegmentationInternal : IUnknown
  225. {
  226.     //
  227.     // Raw methods provided by interface
  228.     //
  229.     virtual HRESULT __stdcall get_MMonotonicity (
  230.         long * monotonicityDetails ) = 0;
  231.     virtual HRESULT __stdcall QueryFirstLastM (
  232.         double * firstM,
  233.         double * lastM ) = 0;
  234.     virtual HRESULT __stdcall OrientByMs ( ) = 0;
  235. };
  236. struct __declspec(uuid("efeeb8b3-dc23-11d2-9f2e-00c04f6bdf0d"))
  237. IZAware : IUnknown
  238. {
  239.     //
  240.     // Raw methods provided by interface
  241.     //
  242.     virtual HRESULT __stdcall get_ZAware (
  243.         VARIANT_BOOL * ZAware ) = 0;
  244.     virtual HRESULT __stdcall put_ZAware (
  245.         VARIANT_BOOL ZAware ) = 0;
  246.     virtual HRESULT __stdcall get_ZSimple (
  247.         VARIANT_BOOL * ZSimple ) = 0;
  248.     virtual HRESULT __stdcall DropZs ( ) = 0;
  249. };
  250. struct __declspec(uuid("efeeb8b4-dc23-11d2-9f2e-00c04f6bdf0d"))
  251. IZCollection : IUnknown
  252. {
  253.     //
  254.     // Raw methods provided by interface
  255.     //
  256.     virtual HRESULT __stdcall get_ZMin (
  257.         double * ZMin ) = 0;
  258.     virtual HRESULT __stdcall get_ZMax (
  259.         double * ZMax ) = 0;
  260.     virtual HRESULT __stdcall MultiplyZs (
  261.         double factor ) = 0;
  262.     virtual HRESULT __stdcall OffsetZs (
  263.         double Offset ) = 0;
  264. };
  265. struct __declspec(uuid("fe5d57ef-3052-11d4-9f5e-00c04f6bdf0d"))
  266. IZ : IZCollection
  267. {
  268.     //
  269.     // Raw methods provided by interface
  270.     //
  271.     virtual HRESULT __stdcall get_ZVertical (
  272.         VARIANT_BOOL * ZVertical ) = 0;
  273.     virtual HRESULT __stdcall InterpolateFromSurface (
  274.         struct IFunctionalSurface * interpolationSurface ) = 0;
  275.     virtual HRESULT __stdcall InterpolateZsBetween (
  276.         long startPart,
  277.         long startPoint,
  278.         long endPart,
  279.         long endPoint ) = 0;
  280.     virtual HRESULT __stdcall CalculateNonSimpleZs ( ) = 0;
  281.     virtual HRESULT __stdcall SetConstantZ (
  282.         double zLevel ) = 0;
  283. };
  284. struct __declspec(uuid("7767a6f1-69d1-11d4-9f66-00c04f6bdf0d"))
  285. IEncode3DProperties : IUnknown
  286. {
  287.     //
  288.     // Raw methods provided by interface
  289.     //
  290.     virtual HRESULT __stdcall PackNormal (
  291.         struct IVector3D * normalVector,
  292.         double * packedNormal ) = 0;
  293.     virtual HRESULT __stdcall UnPackNormal (
  294.         double packedNormal,
  295.         struct IVector3D * normalVector,
  296.         VARIANT_BOOL * wasProductive ) = 0;
  297.     virtual HRESULT __stdcall PackTexture2D (
  298.         double textureS,
  299.         double textureT,
  300.         double * packedTexture ) = 0;
  301.     virtual HRESULT __stdcall UnPackTexture2D (
  302.         double packedTextureST,
  303.         double * textureS,
  304.         double * textureT,
  305.         VARIANT_BOOL * wasProductive ) = 0;
  306. };
  307. struct __declspec(uuid("739a1669-e870-11d2-9f30-00c04f6bdf0d"))
  308. IPointIDAware : IUnknown
  309. {
  310.     //
  311.     // Raw methods provided by interface
  312.     //
  313.     virtual HRESULT __stdcall get_PointIDAware (
  314.         VARIANT_BOOL * idAware ) = 0;
  315.     virtual HRESULT __stdcall put_PointIDAware (
  316.         VARIANT_BOOL idAware ) = 0;
  317.     virtual HRESULT __stdcall get_PointIDSimple (
  318.         VARIANT_BOOL * idSimple ) = 0;
  319.     virtual HRESULT __stdcall DropPointIDs ( ) = 0;
  320. };
  321. struct __declspec(uuid("e433a193-ceb0-11d3-9f50-00c04f6bdf0d"))
  322. ITextureAware : IUnknown
  323. {
  324.     //
  325.     // Raw methods provided by interface
  326.     //
  327.     virtual HRESULT __stdcall get_TextureAware (
  328.         VARIANT_BOOL * TextureAware ) = 0;
  329.     virtual HRESULT __stdcall put_TextureAware (
  330.         VARIANT_BOOL TextureAware ) = 0;
  331.     virtual HRESULT __stdcall get_TextureDimension (
  332.         enum esriGeometryDimension * Dimension ) = 0;
  333.     virtual HRESULT __stdcall put_TextureDimension (
  334.         enum esriGeometryDimension Dimension ) = 0;
  335.     virtual HRESULT __stdcall get_TextureSimple (
  336.         VARIANT_BOOL * TextureSimple ) = 0;
  337.     virtual HRESULT __stdcall DropTextures ( ) = 0;
  338. };
  339. struct __declspec(uuid("e433a194-ceb0-11d3-9f50-00c04f6bdf0d"))
  340. INormalAware : IUnknown
  341. {
  342.     //
  343.     // Raw methods provided by interface
  344.     //
  345.     virtual HRESULT __stdcall get_NormalAware (
  346.         VARIANT_BOOL * NormalAware ) = 0;
  347.     virtual HRESULT __stdcall put_NormalAware (
  348.         VARIANT_BOOL NormalAware ) = 0;
  349.     virtual HRESULT __stdcall get_NormalSimple (
  350.         VARIANT_BOOL * NormalSimple ) = 0;
  351.     virtual HRESULT __stdcall DropNormals ( ) = 0;
  352. };
  353. struct __declspec(uuid("97fd6869-d4fe-11d3-9f50-00c04f6bdf0d"))
  354. IPartIDAware : IUnknown
  355. {
  356.     //
  357.     // Raw methods provided by interface
  358.     //
  359.     virtual HRESULT __stdcall get_PartIDAware (
  360.         VARIANT_BOOL * idAware ) = 0;
  361.     virtual HRESULT __stdcall put_PartIDAware (
  362.         VARIANT_BOOL idAware ) = 0;
  363.     virtual HRESULT __stdcall get_PartIDSimple (
  364.         VARIANT_BOOL * idSimple ) = 0;
  365.     virtual HRESULT __stdcall DropPartIDs ( ) = 0;
  366. };
  367. struct __declspec(uuid("ab2a8c25-d660-11d2-9f2a-00c04f6bdf0d"))
  368. IVertexAttribute : IUnknown
  369. {
  370.     //
  371.     // Raw methods provided by interface
  372.     //
  373.     virtual HRESULT __stdcall get_VertexAttributeSimple (
  374.         enum esriGeometryAttributes attributeType,
  375.         VARIANT_BOOL * attribSimple ) = 0;
  376.     virtual HRESULT __stdcall get_VertexAttributeMin (
  377.         enum esriGeometryAttributes attributeType,
  378.         double * attributeMin ) = 0;
  379.     virtual HRESULT __stdcall get_VertexAttributeMax (
  380.         enum esriGeometryAttributes attributeType,
  381.         double * attributeMax ) = 0;
  382.     virtual HRESULT __stdcall MultiplyVertexAttributes (
  383.         enum esriGeometryAttributes attributeType,
  384.         double factor ) = 0;
  385.     virtual HRESULT __stdcall OffsetVertexAttributes (
  386.         enum esriGeometryAttributes attributeType,
  387.         double Offset ) = 0;
  388.     virtual HRESULT __stdcall InterpolateVertexAttributesBetween (
  389.         long interpolatedAttributes,
  390.         long startPart,
  391.         long startPoint,
  392.         long endPart,
  393.         long endPoint ) = 0;
  394.     virtual HRESULT __stdcall ExtrapolateVertexAttributes (
  395.         enum esriGeometryAttributes attributeType,
  396.         enum esriExtrapolationEnum extrapolationStyle,
  397.         long startPart,
  398.         long startPoint,
  399.         long endPart,
  400.         long endPoint ) = 0;
  401.     virtual HRESULT __stdcall CalculateNonSimpleVertexAttributes (
  402.         enum esriGeometryAttributes attributeType ) = 0;
  403.     virtual HRESULT __stdcall TransferAttributes (
  404.         struct ICurve * srcCurve ) = 0;
  405. };
  406. struct __declspec(uuid("1b07790e-38c5-11d0-92d2-00805f7c28b0"))
  407. IRelationalOperator : IUnknown
  408. {
  409.     //
  410.     // Raw methods provided by interface
  411.     //
  412.     virtual HRESULT __stdcall Equals (
  413.         struct IGeometry * other,
  414.         VARIANT_BOOL * Equals ) = 0;
  415.     virtual HRESULT __stdcall Touches (
  416.         struct IGeometry * other,
  417.         VARIANT_BOOL * Touches ) = 0;
  418.     virtual HRESULT __stdcall Contains (
  419.         struct IGeometry * other,
  420.         VARIANT_BOOL * Contains ) = 0;
  421.     virtual HRESULT __stdcall Within (
  422.         struct IGeometry * other,
  423.         VARIANT_BOOL * Within ) = 0;
  424.     virtual HRESULT __stdcall Disjoint (
  425.         struct IGeometry * other,
  426.         VARIANT_BOOL * Disjoint ) = 0;
  427.     virtual HRESULT __stdcall Crosses (
  428.         struct IGeometry * other,
  429.         VARIANT_BOOL * Crosses ) = 0;
  430.     virtual HRESULT __stdcall Overlaps (
  431.         struct IGeometry * other,
  432.         VARIANT_BOOL * Overlaps ) = 0;
  433.     virtual HRESULT __stdcall Relation (
  434.         struct IGeometry * other,
  435.         BSTR relationDescription,
  436.         VARIANT_BOOL * relationResult ) = 0;
  437. };
  438. struct __declspec(uuid("1b07790f-38c5-11d0-92d2-00805f7c28b0"))
  439. IProximityOperator : IUnknown
  440. {
  441.     //
  442.     // Raw methods provided by interface
  443.     //
  444.     virtual HRESULT __stdcall QueryNearestPoint (
  445.         struct IPoint * p,
  446.         enum esriSegmentExtension extension,
  447.         struct IPoint * nearest ) = 0;
  448.     virtual HRESULT __stdcall ReturnNearestPoint (
  449.         struct IPoint * p,
  450.         enum esriSegmentExtension extension,
  451.         struct IPoint * * nearest ) = 0;
  452.     virtual HRESULT __stdcall ReturnDistance (
  453.         struct IGeometry * other,
  454.         double * distance ) = 0;
  455. };
  456. struct __declspec(uuid("d4dc3b12-88ea-42d8-87b7-4eb7460737c1"))
  457. ITopologicalOperator3 : ITopologicalOperator2
  458. {
  459.     //
  460.     // Raw methods provided by interface
  461.     //
  462.     virtual HRESULT __stdcall get_IsSimpleEx (
  463.         enum esriNonSimpleReasonEnum * reason,
  464.         VARIANT_BOOL * IsSimple ) = 0;
  465.     virtual HRESULT __stdcall GeoNormalizeEx (
  466.         struct ISpatialReference * SR,
  467.         double denseDistance ) = 0;
  468. };
  469. enum esriNonSimpleReasonEnum
  470. {
  471.     esriNonSimpleOK = 0,
  472.     esriNonSimpleRingOrientation = 1,
  473.     esriNonSimpleSegmentOrientation = 2,
  474.     esriNonSimpleShortSegments = 3,
  475.     esriNonSimpleSelfIntersections = 4,
  476.     esriNonSimpleUnclosedRing = 5,
  477.     esriNonSimpleEmptyPart = 6
  478. };
  479. struct __declspec(uuid("7e9812d8-5ac6-11d1-8352-0000f8775be9"))
  480. IConstructAngle : IUnknown
  481. {
  482.     //
  483.     // Raw methods provided by interface
  484.     //
  485.     virtual HRESULT __stdcall ConstructThreePoint (
  486.         struct IPoint * from,
  487.         struct IPoint * through,
  488.         struct IPoint * to,
  489.         double * outAngle ) = 0;
  490.     virtual HRESULT __stdcall ConstructLine (
  491.         struct ILine * inLine,
  492.         double * outAngle ) = 0;
  493. };
  494. struct __declspec(uuid("f4fd2ec0-990a-11d1-bc7d-0000f875bcce"))
  495. IConstructPath : IUnknown
  496. {
  497.     //
  498.     // Raw methods provided by interface
  499.     //
  500.     virtual HRESULT __stdcall ConstructRigidStretch (
  501.         struct IPath * srcPath,
  502.         long stretchStartIndex,
  503.         long startAnchor,
  504.         long endAnchor,
  505.         struct IPoint * stretchEnd ) = 0;
  506. };
  507. struct __declspec(uuid("eaf5d48c-c666-11d0-8307-0000f8034032"))
  508. IConstructPoint : IUnknown
  509. {
  510.     //
  511.     // Raw methods provided by interface
  512.     //
  513.     virtual HRESULT __stdcall ConstructAlong (
  514.         struct ICurve * curve,
  515.         enum esriSegmentExtension extension,
  516.         double distance,
  517.         VARIANT_BOOL asRatio ) = 0;
  518.     virtual HRESULT __stdcall ConstructAngleDistance (
  519.         struct IPoint * p,
  520.         double inAngle,
  521.         double distance ) = 0;
  522.     virtual HRESULT __stdcall ConstructDeflection (
  523.         struct ILine * baseLine,
  524.         double distance,
  525.         double inAngle ) = 0;
  526.     virtual HRESULT __stdcall ConstructDeflectionIntersection (
  527.         struct ILine * baseLine,
  528.         double startAngle,
  529.         double endAngle,
  530.         VARIANT_BOOL OnRightSide ) = 0;
  531.     virtual HRESULT __stdcall ConstructThreePointResection (
  532.         struct IPoint * point1,
  533.         double angleP1P2,
  534.         struct IPoint * point2,
  535.         double angleP2P3,
  536.         struct IPoint * point3,
  537.         double * arcAngle ) = 0;
  538.     virtual HRESULT __stdcall ConstructOffset (
  539.         struct ICurve * curve,
  540.         enum esriSegmentExtension extension,
  541.         double distance,
  542.         VARIANT_BOOL asRatio,
  543.         double Offset ) = 0;
  544.     virtual HRESULT __stdcall ConstructParallel (
  545.         struct ISegment * Segment,
  546.         enum esriSegmentExtension extension,
  547.         struct IPoint * start,
  548.         double distance ) = 0;
  549.     virtual HRESULT __stdcall ConstructAngleBisector (
  550.         struct IPoint * from,
  551.         struct IPoint * through,
  552.         struct IPoint * to,
  553.         double distance,
  554.         VARIANT_BOOL useAcuteAngle ) = 0;
  555.     virtual HRESULT __stdcall ConstructPerpendicular (
  556.         struct ISegment * base,
  557.         enum esriSegmentExtension extension,
  558.         struct IPoint * p,
  559.         double distance,
  560.         VARIANT_BOOL bUseLineOrientation ) = 0;
  561.     virtual HRESULT __stdcall ConstructAngleIntersection (
  562.         struct IPoint * p1,
  563.         double angle1,
  564.         struct IPoint * p2,
  565.         double angle2 ) = 0;
  566. };
  567. struct __declspec(uuid("affe2936-6d7d-4261-b391-0de4269dd4b3"))
  568. IConstructPoint2 : IConstructPoint
  569. {
  570.     //
  571.     // Raw methods provided by interface
  572.     //
  573.     virtual HRESULT __stdcall ConstructAverage (
  574.         struct IPointCollection * Points,
  575.         enum esriGeometryAttributes attributeType ) = 0;
  576. };
  577. enum esriConstructOffsetEnum
  578. {
  579.     esriConstructOffsetSimple = 1,
  580.     esriConstructOffsetMitered = 2,
  581.     esriConstructOffsetBevelled = 4,
  582.     esriConstructOffsetRounded = 8
  583. };
  584. struct __declspec(uuid("650cfdc0-d947-11d0-830d-0000f8034032"))
  585. IConstructCurve : IUnknown
  586. {
  587.     //
  588.     // Raw methods provided by interface
  589.     //
  590.     virtual HRESULT __stdcall ConstructOffset (
  591.         struct IPolycurve * inCurve,
  592.         double Offset,
  593.         VARIANT * offsetHow = &vtMissing,
  594.         VARIANT * bevelRatio = &vtMissing ) = 0;
  595.     virtual HRESULT __stdcall ConstructKoch (
  596.         struct IPolycurve * p,
  597.         double r,
  598.         int recursionLevel ) = 0;
  599.     virtual HRESULT __stdcall ConstructExtended (
  600.         struct ICurve * fromCurve,
  601.         struct ICurve * toCurve,
  602.         long extensionFlags,
  603.         VARIANT_BOOL * extensionsPerformed ) = 0;
  604. };
  605. struct __declspec(uuid("199120b6-c677-11d0-8307-0000f8034032"))
  606. IConstructLine : IUnknown
  607. {
  608.     //
  609.     // Raw methods provided by interface
  610.     //
  611.     virtual HRESULT __stdcall ConstructAngleBisector (
  612.         struct IPoint * from,
  613.         struct IPoint * through,
  614.         struct IPoint * to,
  615.         double Length,
  616.         VARIANT_BOOL useAcuteAngle ) = 0;
  617.     virtual HRESULT __stdcall ConstructExtended (
  618.         struct ILine * inLine,
  619.         enum esriSegmentExtension extendHow ) = 0;
  620. };
  621. struct __declspec(uuid("b12317d5-16d7-11d2-aa7a-00c04fa37ba4"))
  622. IConstructEllipticArc : IUnknown
  623. {
  624.     //
  625.     // Raw methods provided by interface
  626.     //
  627.     virtual HRESULT __stdcall ConstructEnvelope (
  628.         struct IEnvelope * boundingEnvelope ) = 0;
  629.     virtual HRESULT __stdcall ConstructUpToFivePoints (
  630.         struct IPoint * from,
  631.         struct IPoint * to,
  632.         struct IPoint * thru,
  633.         struct IPoint * point4,
  634.         struct IPoint * point5 ) = 0;
  635.     virtual HRESULT __stdcall ConstructQuarterEllipse (
  636.         struct IPoint * FromPoint,
  637.         struct IPoint * ToPoint,
  638.         VARIANT_BOOL CCW ) = 0;
  639.     virtual HRESULT __stdcall ConstructTwoPointsEnvelope (
  640.         struct IPoint * FromPoint,
  641.         struct IPoint * ToPoint,
  642.         struct IEnvelope * suggestedEnvelope,
  643.         enum esriArcOrientation orientation ) = 0;
  644. };
  645. struct __declspec(uuid("91b6f492-c70a-11d0-8307-0000f8034032"))
  646. IConstructCircularArc : IUnknown
  647. {
  648.     //
  649.     // Raw methods provided by interface
  650.     //
  651.     virtual HRESULT __stdcall ConstructEndPointsRadius (
  652.         struct IPoint * from,
  653.         struct IPoint * to,
  654.         VARIANT_BOOL isCCW,
  655.         double inRadius,
  656.         VARIANT_BOOL IsMinor ) = 0;
  657.     virtual HRESULT __stdcall ConstructEndPointsAngle (
  658.         struct IPoint * from,
  659.         struct IPoint * to,
  660.         VARIANT_BOOL isCCW,
  661.         double CentralAngle ) = 0;
  662.     virtual HRESULT __stdcall ConstructEndPointsArc (
  663.         struct IPoint * from,
  664.         struct IPoint * to,
  665.         VARIANT_BOOL isCCW,
  666.         double arcDistance ) = 0;
  667.     virtual HRESULT __stdcall ConstructEndPointsTangent (
  668.         struct IPoint * from,
  669.         struct IPoint * to,
  670.         VARIANT_BOOL isCCW,
  671.         double tangentDistance ) = 0;
  672.     virtual HRESULT __stdcall ConstructArcDistance (
  673.         struct IPoint * Center,
  674.         struct IPoint * from,
  675.         VARIANT_BOOL isCCW,
  676.         double arcDistance ) = 0;
  677.     virtual HRESULT __stdcall ConstructChordDistance (
  678.         struct IPoint * Center,
  679.         struct IPoint * from,
  680.         VARIANT_BOOL isCCW,
  681.         double chordDistance ) = 0;
  682.     virtual HRESULT __stdcall ConstructTangentDistance (
  683.         struct IPoint * Center,
  684.         struct IPoint * from,
  685.         VARIANT_BOOL isCCW,
  686.         double tangentDistance ) = 0;
  687.     virtual HRESULT __stdcall ConstructTangentRadiusArc (
  688.         struct ISegment * Segment,
  689.         VARIANT_BOOL atStart,
  690.         VARIANT_BOOL isCCW,
  691.         double inRadius,
  692.         double arcDistance ) = 0;
  693.     virtual HRESULT __stdcall ConstructTangentRadiusChord (
  694.         struct ISegment * Segment,
  695.         VARIANT_BOOL atStart,
  696.         VARIANT_BOOL isCCW,
  697.         double inRadius,
  698.         double chordDistance ) = 0;
  699.     virtual HRESULT __stdcall ConstructTangentRadiusTangent (
  700.         struct ISegment * Segment,
  701.         VARIANT_BOOL atStart,
  702.         VARIANT_BOOL isCCW,
  703.         double inRadius,
  704.         double tangentDistance ) = 0;
  705.     virtual HRESULT __stdcall ConstructTangentRadiusAngle (
  706.         struct ISegment * Segment,
  707.         VARIANT_BOOL atStart,
  708.         VARIANT_BOOL isCCW,
  709.         double inRadius,
  710.         double CentralAngle ) = 0;
  711.     virtual HRESULT __stdcall ConstructTangentAngleArc (
  712.         struct ISegment * Segment,
  713.         VARIANT_BOOL atStart,
  714.         VARIANT_BOOL isCCW,
  715.         double CentralAngle,
  716.         double arcDistance ) = 0;
  717.     virtual HRESULT __stdcall ConstructTangentAngleChord (
  718.         struct ISegment * Segment,
  719.         VARIANT_BOOL atStart,
  720.         VARIANT_BOOL isCCW,
  721.         double CentralAngle,
  722.         double chordDistance ) = 0;
  723.     virtual HRESULT __stdcall ConstructTangentAngleTangent (
  724.         struct ISegment * Segment,
  725.         VARIANT_BOOL atStart,
  726.         VARIANT_BOOL isCCW,
  727.         double CentralAngle,
  728.         double tangentDistance ) = 0;
  729.     virtual HRESULT __stdcall ConstructTangentChordArc (
  730.         struct ISegment * Segment,
  731.         VARIANT_BOOL atStart,
  732.         VARIANT_BOOL isCCW,
  733.         double chordDistance,
  734.         double arcDistance ) = 0;
  735.     virtual HRESULT __stdcall ConstructTangentChordTangent (
  736.         struct ISegment * Segment,
  737.         VARIANT_BOOL atStart,
  738.         VARIANT_BOOL isCCW,
  739.         double chordDistance,
  740.         double tangentDistance ) = 0;
  741.     virtual HRESULT __stdcall ConstructTangentArcTangent (
  742.         struct ISegment * Segment,
  743.         VARIANT_BOOL atStart,
  744.         VARIANT_BOOL isCCW,
  745.         double arcDistance,
  746.         double tangentDistance ) = 0;
  747.     virtual HRESULT __stdcall ConstructBearingRadiusAngle (
  748.         struct IPoint * startPoint,
  749.         double inAngle,
  750.         VARIANT_BOOL isCCW,
  751.         double inRadius,
  752.         double CentralAngle ) = 0;
  753.     virtual HRESULT __stdcall ConstructBearingRadiusArc (
  754.         struct IPoint * from,
  755.         double inAngle,
  756.         VARIANT_BOOL isCCW,
  757.         double inRadius,
  758.         double arcDistance ) = 0;
  759.     virtual HRESULT __stdcall ConstructBearingRadiusChord (
  760.         struct IPoint * from,
  761.         double inAngle,
  762.         VARIANT_BOOL isCCW,
  763.         double inRadius,
  764.         double chordDistance,
  765.         VARIANT_BOOL IsMinor ) = 0;
  766.     virtual HRESULT __stdcall ConstructBearingRadiusTangent (
  767.         struct IPoint * from,
  768.         double inAngle,
  769.         VARIANT_BOOL isCCW,
  770.         double inRadius,
  771.         double tangentDistance ) = 0;
  772.     virtual HRESULT __stdcall ConstructBearingAngleArc (
  773.         struct IPoint * from,
  774.         double inAngle,
  775.         VARIANT_BOOL isCCW,
  776.         double CentralAngle,
  777.         double arcDistance ) = 0;
  778.     virtual HRESULT __stdcall ConstructBearingAngleChord (
  779.         struct IPoint * from,
  780.         double inAngle,
  781.         VARIANT_BOOL isCCW,
  782.         double CentralAngle,
  783.         double chordDistance ) = 0;
  784.     virtual HRESULT __stdcall ConstructBearingAngleTangent (
  785.         struct IPoint * from,
  786.         double inAngle,
  787.         VARIANT_BOOL isCCW,
  788.         double CentralAngle,
  789.         double tangentDistance ) = 0;
  790.     virtual HRESULT __stdcall ConstructBearingChordArc (
  791.         struct IPoint * from,
  792.         double inAngle,
  793.         VARIANT_BOOL isCCW,
  794.         double chordDistance,
  795.         double arcDistance ) = 0;
  796.     virtual HRESULT __stdcall ConstructBearingChordTangent (
  797.         struct IPoint * from,
  798.         double inAngle,
  799.         VARIANT_BOOL isCCW,
  800.         double chordDistance,
  801.         double tangentDistance ) = 0;
  802.     virtual HRESULT __stdcall ConstructBearingArcTangent (
  803.         struct IPoint * from,
  804.         double inAngle,
  805.         VARIANT_BOOL isCCW,
  806.         double arcDistance,
  807.         double tangentDistance ) = 0;
  808.     virtual HRESULT __stdcall ConstructThreePoints (
  809.         struct IPoint * from,
  810.         struct IPoint * middle,
  811.         struct IPoint * to,
  812.         VARIANT_BOOL useExistingCenter ) = 0;
  813.     virtual HRESULT __stdcall ConstructFilletPoint (
  814.         struct ISegment * s1,
  815.         struct ISegment * s2,
  816.         struct IPoint * from,
  817.         struct IPoint * hintPoint ) = 0;
  818.     virtual HRESULT __stdcall ConstructFilletRadius (
  819.         struct ISegment * s1,
  820.         struct ISegment * s2,
  821.         double inRadius,
  822.         struct IPoint * hintPoint ) = 0;
  823.     virtual HRESULT __stdcall QueryFilletRadiusRange (
  824.         struct ISegment * s1,
  825.         struct ISegment * s2,
  826.         struct IPoint * hintPoint,
  827.         double * minRadius,
  828.         double * maxRadius ) = 0;
  829.     virtual HRESULT __stdcall ConstructTangentAndPoint (
  830.         struct ISegment * s,
  831.         VARIANT_BOOL atFrom,
  832.         struct IPoint * p ) = 0;
  833.     virtual HRESULT __stdcall ConstructEndPointsChordHeight (
  834.         struct IPoint * from,
  835.         struct IPoint * to,
  836.         VARIANT_BOOL isCCW,
  837.         double ChordHeight ) = 0;
  838.     virtual HRESULT __stdcall ConstructCircle (
  839.         struct IPoint * CenterPoint,
  840.         double Radius,
  841.         VARIANT_BOOL isCCW ) = 0;
  842. };
  843. struct __declspec(uuid("f4ee06a7-7854-485d-9689-914be1b4e900"))
  844. IConstructCircularArc2 : IConstructCircularArc
  845. {
  846.     //
  847.     // Raw methods provided by interface
  848.     //
  849.     virtual HRESULT __stdcall ConstructChordDistanceEx (
  850.         struct IPoint * Center,
  851.         struct IPoint * from,
  852.         VARIANT_BOOL isCCW,
  853.         double chordDistance,
  854.         VARIANT_BOOL IsMinor ) = 0;
  855.     virtual HRESULT __stdcall ConstructTangentRadiusChordEx (
  856.         struct ISegment * Segment,
  857.         VARIANT_BOOL atStart,
  858.         VARIANT_BOOL isCCW,
  859.         double inRadius,
  860.         double chordDistance,
  861.         VARIANT_BOOL IsMinor ) = 0;
  862. };
  863. struct __declspec(uuid("252c0510-b381-11d1-a2d4-0000f8775fbf"))
  864. IConstructBezierCurve : IUnknown
  865. {
  866.     //
  867.     // Raw methods provided by interface
  868.     //
  869.     virtual HRESULT __stdcall ConstructTangentsAtEndpoints (
  870.         struct ILine * pTangentAtFrom,
  871.         struct ILine * pTangentAtTo ) = 0;
  872. };
  873. struct __declspec(uuid("8680c0e0-377f-11d2-bcc5-0000f875bcce"))
  874. IConstructGeometryCollection : IUnknown
  875. {
  876.     //
  877.     // Raw methods provided by interface
  878.     //
  879.     virtual HRESULT __stdcall ConstructDivideEqual (
  880.         struct IPolyline * divideSource,
  881.         long numDivisions,
  882.         enum esriConstructDivideEnum divideHow ) = 0;
  883.     virtual HRESULT __stdcall ConstructDivideLength (
  884.         struct IPolyline * divideSource,
  885.         double Length,
  886.         VARIANT_BOOL asRatio,
  887.         enum esriConstructDivideEnum divideHow ) = 0;
  888. };
  889. enum esriConstructDivideEnum
  890. {
  891.     esriDivideIntoSegments = 0,
  892.     esriDivideIntoParts = 1,
  893.     esriDivideIntoPolylines = 2
  894. };
  895. struct __declspec(uuid("e7a6280c-3e2f-11d3-9f41-00c04f6bdd7f"))
  896. IGeometryEnvironment : IUnknown
  897. {
  898.     //
  899.     // Raw methods provided by interface
  900.     //
  901.     virtual HRESULT __stdcall put_NoDiceLimit (
  902.         long cMaxPoints ) = 0;
  903.     virtual HRESULT __stdcall get_NoDiceLimit (
  904.         long * cMaxPoints ) = 0;
  905.     virtual HRESULT __stdcall put_AutoDensifyTolerance (
  906.         double tolerance ) = 0;
  907.     virtual HRESULT __stdcall get_AutoDensifyTolerance (
  908.         double * tolerance ) = 0;
  909. };
  910. struct __declspec(uuid("6dded3b4-1f7c-11d4-9f7f-00c04f6bc8e8"))
  911. IGeometryEnvironment2 : IGeometryEnvironment
  912. {
  913.     //
  914.     // Raw methods provided by interface
  915.     //
  916.     virtual HRESULT __stdcall put_Pre81Compatibility (
  917.         VARIANT_BOOL pre81Compatible ) = 0;
  918.     virtual HRESULT __stdcall get_Pre81Compatibility (
  919.         VARIANT_BOOL * pre81Compatible ) = 0;
  920.     virtual HRESULT __stdcall put_AngularAutoDensifyTolerance (
  921.         double tolerance ) = 0;
  922.     virtual HRESULT __stdcall get_AngularAutoDensifyTolerance (
  923.         double * tolerance ) = 0;
  924.     virtual HRESULT __stdcall put_DeviationAutoDensifyTolerance (
  925.         double tolerance ) = 0;
  926.     virtual HRESULT __stdcall get_DeviationAutoDensifyTolerance (
  927.         double * tolerance ) = 0;
  928.     virtual HRESULT __stdcall put_UseAlternativeTopoOps (
  929.         VARIANT_BOOL alternativeTopoOps ) = 0;
  930.     virtual HRESULT __stdcall get_UseAlternativeTopoOps (
  931.         VARIANT_BOOL * alternativeTopoOps ) = 0;
  932. };
  933. struct __declspec(uuid("923d59be-a083-44b3-b9a8-a01a580c4f2e"))
  934. IGeometryEnvironment3 : IGeometryEnvironment2
  935. {
  936.     //
  937.     // Raw methods provided by interface
  938.     //
  939.     virtual HRESULT __stdcall get_DicingEnabled (
  940.         VARIANT_BOOL * DicingEnabled ) = 0;
  941.     virtual HRESULT __stdcall put_DicingEnabled (
  942.         VARIANT_BOOL DicingEnabled ) = 0;
  943. };
  944. struct __declspec(uuid("abb994f7-df63-46d5-80b5-57ec1e0bfc88"))
  945. IGeometryEnvironment4 : IGeometryEnvironment3
  946. {
  947.     //
  948.     // Raw methods provided by interface
  949.     //
  950.     virtual HRESULT __stdcall get_DiceWithTrapezoids (
  951.         VARIANT_BOOL * DiceWithTrapezoids ) = 0;
  952.     virtual HRESULT __stdcall put_DiceWithTrapezoids (
  953.         VARIANT_BOOL DiceWithTrapezoids ) = 0;
  954.     virtual HRESULT __stdcall get_ExpandSubPixelParts (
  955.         VARIANT_BOOL * ExpandSubPixelParts ) = 0;
  956.     virtual HRESULT __stdcall put_ExpandSubPixelParts (
  957.         VARIANT_BOOL ExpandSubPixelParts ) = 0;
  958. };
  959. struct __declspec(uuid("518cba93-621e-476a-824d-26a104a42902"))
  960. IGeometryBridge : IUnknown
  961. {
  962.     //
  963.     // Raw methods provided by interface
  964.     //
  965.     virtual HRESULT __stdcall QueryGeometries (
  966.         struct IGeometryCollection * pGeometryCollection,
  967.         long Index,
  968.         SAFEARRAY * * geometries ) = 0;
  969.     virtual HRESULT __stdcall AddGeometries (
  970.         struct IGeometryCollection * pGeometryCollection,
  971.         SAFEARRAY * * newGeometries ) = 0;
  972.     virtual HRESULT __stdcall InsertGeometries (
  973.         struct IGeometryCollection * pGeometryCollection,
  974.         long Index,
  975.         SAFEARRAY * * newGeometries ) = 0;
  976.     virtual HRESULT __stdcall SetGeometries (
  977.         struct IGeometryCollection * pGeometryCollection,
  978.         SAFEARRAY * * newGeometries ) = 0;
  979.     virtual HRESULT __stdcall QueryPoints (
  980.         struct IPointCollection4 * pPointCollection,
  981.         long Index,
  982.         SAFEARRAY * * Points ) = 0;
  983.     virtual HRESULT __stdcall InsertPoints (
  984.         struct IPointCollection4 * pPointCollection,
  985.         long Index,
  986.         SAFEARRAY * * newPoints ) = 0;
  987.     virtual HRESULT __stdcall AddPoints (
  988.         struct IPointCollection4 * pPointCollection,
  989.         SAFEARRAY * * newPoints ) = 0;
  990.     virtual HRESULT __stdcall SetPoints (
  991.         struct IPointCollection4 * pPointCollection,
  992.         SAFEARRAY * * newPoints ) = 0;
  993.     virtual HRESULT __stdcall GetPoints (
  994.         struct IPointCollection4 * pPointCollection,
  995.         long Index,
  996.         SAFEARRAY * * Points ) = 0;
  997.     virtual HRESULT __stdcall ReplacePoints (
  998.         struct IPointCollection4 * pPointCollection,
  999.         long Index,
  1000.         long goingAway,
  1001.         SAFEARRAY * * newPoints ) = 0;
  1002.     virtual HRESULT __stdcall AddWKSPointZs (
  1003.         struct IPointCollection4 * pPointCollection,
  1004.         SAFEARRAY * * pointStructures ) = 0;
  1005.     virtual HRESULT __stdcall SetWKSPointZs (
  1006.         struct IPointCollection4 * pPointCollection,
  1007.         SAFEARRAY * * pointStructures ) = 0;
  1008.     virtual HRESULT __stdcall QueryWKSPointZs (
  1009.         struct IPointCollection4 * pPointCollection,
  1010.         long Index,
  1011.         SAFEARRAY * * pointStructures ) = 0;
  1012.     virtual HRESULT __stdcall InsertWKSPointZs (
  1013.         struct IPointCollection4 * pPointCollection,
  1014.         long Index,
  1015.         SAFEARRAY * * newPoints ) = 0;
  1016.     virtual HRESULT __stdcall QuerySegments (
  1017.         struct ISegmentCollection * pSegmentCollection,
  1018.         long Index,
  1019.         SAFEARRAY * * segments ) = 0;
  1020.     virtual HRESULT __stdcall AddSegments (
  1021.         struct ISegmentCollection * pSegmentCollection,
  1022.         SAFEARRAY * * newSegments ) = 0;
  1023.     virtual HRESULT __stdcall InsertSegments (
  1024.         struct ISegmentCollection * pSegmentCollection,
  1025.         long Index,
  1026.         SAFEARRAY * * newSegments ) = 0;
  1027.     virtual HRESULT __stdcall ReplaceSegments (
  1028.         struct ISegmentCollection * pSegmentCollection,
  1029.         long Index,
  1030.         long goingAway,
  1031.         SAFEARRAY * * newSegments ) = 0;
  1032.     virtual HRESULT __stdcall SetSegments (
  1033.         struct ISegmentCollection * pSegmentCollection,
  1034.         SAFEARRAY * * newSegments ) = 0;
  1035.     virtual HRESULT __stdcall Densify (
  1036.         struct ISegment * pSegment,
  1037.         double maxDeviation,
  1038.         long * pcOutSegments,
  1039.         SAFEARRAY * * segments ) = 0;
  1040.     virtual HRESULT __stdcall ConstructBuffers (
  1041.         struct ITopologicalOperator2 * pTopologicalOperator,
  1042.         SAFEARRAY * * distances,
  1043.         struct IEnumGeometry * * buffers ) = 0;
  1044.     virtual HRESULT __stdcall QueryBeginningRings (
  1045.         struct IMultiPatch * pMultiPatch,
  1046.         long ringTypesDesired,
  1047.         SAFEARRAY * * beginningRings ) = 0;
  1048.     virtual HRESULT __stdcall QueryFollowingRings (
  1049.         struct IMultiPatch * pMultiPatch,
  1050.         struct IRing * beginningRing,
  1051.         SAFEARRAY * * followingRings ) = 0;
  1052. };
  1053. struct __declspec(uuid("f71f8c16-ef07-11d0-8327-0000f8775be9"))
  1054. IGeometryFactory : IUnknown
  1055. {
  1056.     //
  1057.     // Raw methods provided by interface
  1058.     //
  1059.     virtual HRESULT __stdcall CreateGeometry (
  1060.         long * byteCountInOut,
  1061.         unsigned char * geometryInfo,
  1062.         struct IGeometry * * outGeometry ) = 0;
  1063.     virtual HRESULT __stdcall CreateGeometryFromWkb (
  1064.         long * byteCountInOut,
  1065.         unsigned char * geometryInfo,
  1066.         struct IGeometry * * outGeometry ) = 0;
  1067.     virtual HRESULT __stdcall CreateEmptyGeometryByESRIType (
  1068.         enum esriShapeType shapeType,
  1069.         struct IGeometry * * outGeometry ) = 0;
  1070.     virtual HRESULT __stdcall CreateEmptyGeometryByType (
  1071.         enum esriGeometryType GeometryType,
  1072.         struct IGeometry * * outGeometry ) = 0;
  1073.     virtual HRESULT __stdcall CreateGeometryFromWkbVariant (
  1074.         VARIANT wkb,
  1075.         struct IGeometry * * outGeometry,
  1076.         long * numBytesRead ) = 0;
  1077.     virtual HRESULT __stdcall CreateGeometryFromEnumerator (
  1078.         struct IEnumGeometry * geometries,
  1079.         struct IGeometry * * outGeometry ) = 0;
  1080. };
  1081. struct __declspec(uuid("8859da8a-64e0-4f2b-bdfc-46182248bf53"))
  1082. IGeometryFactory2 : IGeometryFactory
  1083. {
  1084.     //
  1085.     // Raw methods provided by interface
  1086.     //
  1087.     virtual HRESULT __stdcall CreateWkbVariantFromGeometry (
  1088.         struct IGeometry * inGeometry,
  1089.         VARIANT * wkb ) = 0;
  1090. };
  1091. struct __declspec(uuid("3f419d43-5486-11d2-aaeb-00c04fa33c20"))
  1092. IConstructDomainExtent : IUnknown
  1093. {
  1094.     //
  1095.     // Raw methods provided by interface
  1096.     //
  1097.     virtual HRESULT __stdcall ConstructDomainExtent (
  1098.         struct IEnvelope * extent,
  1099.         double precision,
  1100.         struct IEnvelope * * newExtent ) = 0;
  1101.     virtual HRESULT __stdcall ConstructZMDomainExtent (
  1102.         double inMin,
  1103.         double inMax,
  1104.         double precision,
  1105.         double * outMin,
  1106.         double * outMax ) = 0;
  1107. };
  1108. struct __declspec(uuid("69656158-701d-408c-8b6a-a0b4c012c843"))
  1109. IGeneralMultiPatchInfo : IUnknown
  1110. {
  1111.     //
  1112.     // Raw methods provided by interface
  1113.     //
  1114.     virtual HRESULT __stdcall get_VertexCount (
  1115.         long * pCount ) = 0;
  1116.     virtual HRESULT __stdcall get_PatchCount (
  1117.         long * pCount ) = 0;
  1118.     virtual HRESULT __stdcall get_MCount (
  1119.         long * pCount ) = 0;
  1120.     virtual HRESULT __stdcall get_NormalCount (
  1121.         long * pCount ) = 0;
  1122.     virtual HRESULT __stdcall get_TextureVertexCount (
  1123.         long * pCount ) = 0;
  1124.     virtual HRESULT __stdcall get_IdCount (
  1125.         long * pCount ) = 0;
  1126.     virtual HRESULT __stdcall get_MaterialCount (
  1127.         long * pCount ) = 0;
  1128.     virtual HRESULT __stdcall get_PatchVertexCount (
  1129.         long patch,
  1130.         long * pCount ) = 0;
  1131.     virtual HRESULT __stdcall get_PatchType (
  1132.         long patch,
  1133.         enum esriPatchType * pType ) = 0;
  1134.     virtual HRESULT __stdcall get_PatchPriority (
  1135.         long patch,
  1136.         long * pPriority ) = 0;
  1137.     virtual HRESULT __stdcall get_PatchMaterialIndex (
  1138.         long patch,
  1139.         long * pIndex ) = 0;
  1140.     virtual HRESULT __stdcall get_PatchVertex (
  1141.         long patch,
  1142.         long Index,
  1143.         WKSPointZ * pPoint ) = 0;
  1144.     virtual HRESULT __stdcall get_PatchM (
  1145.         long patch,
  1146.         long Index,
  1147.         double * pValue ) = 0;
  1148.     virtual HRESULT __stdcall QueryPatchNormal (
  1149.         long patch,
  1150.         long Index,
  1151.         struct IVector3D * pNormal ) = 0;
  1152.     virtual HRESULT __stdcall get_PatchTextureVertexCount (
  1153.         long patch,
  1154.         long * pCount ) = 0;
  1155.     virtual HRESULT __stdcall get_PatchTextureVertex (
  1156.         long patch,
  1157.         long Index,
  1158.         WKSPoint * pPoint ) = 0;
  1159.     virtual HRESULT __stdcall get_PatchVertexID (
  1160.         long patch,
  1161.         long Index,
  1162.         long * pId ) = 0;
  1163.     virtual HRESULT __stdcall get_MaterialColor (
  1164.         long Index,
  1165.         OLE_COLOR * pColor ) = 0;
  1166.     virtual HRESULT __stdcall get_MaterialTransparencyPercent (
  1167.         long Index,
  1168.         long * pTransparency ) = 0;
  1169.     virtual HRESULT __stdcall get_MaterialCullBackface (
  1170.         long Index,
  1171.         VARIANT_BOOL * pCull ) = 0;
  1172.     virtual HRESULT __stdcall get_IsMaterialTextured (
  1173.         long Index,
  1174.         VARIANT_BOOL * pIsTextured ) = 0;
  1175.     virtual HRESULT __stdcall get_MaterialTextureRowCount (
  1176.         long Index,
  1177.         long * pCount ) = 0;
  1178.     virtual HRESULT __stdcall get_MaterialTextureColumnCount (
  1179.         long Index,
  1180.         long * pCount ) = 0;
  1181.     virtual HRESULT __stdcall get_MaterialTextureBytesPerPixel (
  1182.         long Index,
  1183.         long * pBytesPerPixel ) = 0;
  1184.     virtual HRESULT __stdcall get_MaterialTexturePixelColor (
  1185.         long Index,
  1186.         long row,
  1187.         long column,
  1188.         OLE_COLOR * pColor ) = 0;
  1189. };
  1190. struct __declspec(uuid("c7ac18fb-782e-47f1-a9bc-cf7953dda963"))
  1191. ILinePolygonHelper : IUnknown
  1192. {
  1193.     //
  1194.     // Raw methods provided by interface
  1195.     //
  1196.     virtual HRESULT __stdcall Triangulate (
  1197.         struct IPolygon * pPolygon,
  1198.         struct IMultiPatch * * ppMultiPatch,
  1199.         VARIANT_BOOL * pbOK ) = 0;
  1200. };
  1201. struct __declspec(uuid("6fa1a8d6-d264-11d2-9f29-00c04f6bdd7f"))
  1202. AffineTransformation2D;
  1203.     // [ default ] interface IUnknown
  1204.     // interface ITransformationGEN
  1205.     // interface IAffineTransformation2D3GEN
  1206.     // interface ITransformation
  1207.     // interface IAffineTransformation2D
  1208.     // interface IAffineTransformation2D2
  1209.     // interface IAffineTransformation2D3
  1210.     // interface IClone
  1211.     // interface ISupportErrorInfo
  1212.     // interface IZShift
  1213. struct __declspec(uuid("8bedce87-6cee-4e7b-9d17-73b3562e9ae6"))
  1214. IAffineTransformation2D2 : IAffineTransformation2D
  1215. {
  1216.     //
  1217.     // Raw methods provided by interface
  1218.     //
  1219.     virtual HRESULT __stdcall get_MoveOrigin (
  1220.         struct IPoint * * Origin ) = 0;
  1221. };
  1222. struct __declspec(uuid("cd315758-16ae-4438-99b3-f5ffa6bcf3f3"))
  1223. IAffineTransformation2D3 : IAffineTransformation2D2
  1224. {
  1225.     //
  1226.     // Raw methods provided by interface
  1227.     //
  1228.     virtual HRESULT __stdcall DefineConformalFromControlPointsEx (
  1229.         long numPoints,
  1230.         WKSPoint * fromPoints,
  1231.         WKSPoint * toPoints ) = 0;
  1232.     virtual HRESULT __stdcall DefineConformalFromControlPoints (
  1233.         long numPoints,
  1234.         struct IPoint * * fromPoints,
  1235.         struct IPoint * * toPoints ) = 0;
  1236.     virtual HRESULT __stdcall QueryLinearCoefficients (
  1237.         enum esriTransformDirection direction,
  1238.         double * params ) = 0;
  1239.     virtual HRESULT __stdcall SetLinearCoefficients (
  1240.         enum esriTransformDirection direction,
  1241.         double * params ) = 0;
  1242. };
  1243. struct __declspec(uuid("f82eb04a-4e5a-43c7-9a54-457439aa8e9e"))
  1244. ProjectiveTransformation2D;
  1245.     // [ default ] interface IUnknown
  1246.     // interface ITransformationGEN
  1247.     // interface IProjectiveTransformation2DGEN
  1248.     // interface ITransformation
  1249.     // interface IProjectiveTransformation2D
  1250.     // interface IClone
  1251.     // interface ISupportErrorInfo
  1252. struct __declspec(uuid("1c8a72c4-5a43-48ef-938e-2119608d77d0"))
  1253. IProjectiveTransformation2D : ITransformation
  1254. {
  1255.     //
  1256.     // Raw methods provided by interface
  1257.     //
  1258.     virtual HRESULT __stdcall putref_SpatialReference (
  1259.         struct ISpatialReference * SR ) = 0;
  1260.     virtual HRESULT __stdcall get_SpatialReference (
  1261.         struct ISpatialReference * * SR ) = 0;
  1262.     virtual HRESULT __stdcall Reset ( ) = 0;
  1263.     virtual HRESULT __stdcall DefineFromControlPointsEx (
  1264.         long numPoints,
  1265.         WKSPoint * fromPoints,
  1266.         WKSPoint * toPoints ) = 0;
  1267.     virtual HRESULT __stdcall DefineFromControlPoints (
  1268.         long numPoints,
  1269.         struct IPoint * * fromPoints,
  1270.         struct IPoint * * toPoints ) = 0;
  1271.     virtual HRESULT __stdcall GetRMSError (
  1272.         double * fromError,
  1273.         double * toError ) = 0;
  1274.     virtual HRESULT __stdcall GetControlPointError (
  1275.         long i,
  1276.         double * fromError,
  1277.         double * toError ) = 0;
  1278.     virtual HRESULT __stdcall Project (
  1279.         struct ISpatialReference * newSpatialReference ) = 0;
  1280.     virtual HRESULT __stdcall QueryTransformationParameters (
  1281.         enum esriTransformDirection direction,
  1282.         double * params ) = 0;
  1283.     virtual HRESULT __stdcall SetTransformationParameters (
  1284.         enum esriTransformDirection direction,
  1285.         double * params ) = 0;
  1286. };
  1287. struct __declspec(uuid("c55f63f7-27b9-11d5-9f84-00c04f6bdf0d"))
  1288. AffineTransformation3D;
  1289.     // [ default ] interface IUnknown
  1290.     // interface ITransformationGEN
  1291.     // interface ITransformation3DGEN
  1292.     // interface ITransformation
  1293.     // interface ITransformation3D
  1294.     // interface IAffineTransformation3D
  1295.     // interface IClone
  1296.     // interface ISupportErrorInfo
  1297. struct __declspec(uuid("c3e86164-2f35-4068-8706-0a07614f6ac3"))
  1298. IAffineTransformation3D : ITransformation
  1299. {
  1300.     //
  1301.     // Raw methods provided by interface
  1302.     //
  1303.     virtual HRESULT __stdcall DefineFromControlPointsEx (
  1304.         long numPoints,
  1305.         WKSPointZ * fromPoints,
  1306.         WKSPointZ * toPoints ) = 0;
  1307.     virtual HRESULT __stdcall DefineFromControlPoints (
  1308.         long numPoints,
  1309.         struct IPoint * * fromPoints,
  1310.         struct IPoint * * toPoints ) = 0;
  1311.     virtual HRESULT __stdcall GetRMSError (
  1312.         double * fromError,
  1313.         double * toError ) = 0;
  1314.     virtual HRESULT __stdcall GetControlPointError (
  1315.         long i,
  1316.         double * fromError,
  1317.         double * toError ) = 0;
  1318. };
  1319. struct __declspec(uuid("00a5cb41-52da-11d0-a8f2-00608c85ede5"))
  1320. Point;
  1321.     // [ default ] interface IUnknown
  1322.     // interface IPoint
  1323.     // interface IMAware
  1324.     // interface IZAware
  1325.     // interface IPointIDAware
  1326.     // interface IGeometry
  1327.     // interface IGeometry2
  1328.     // interface IGeometry3
  1329.     // interface IGeometry4
  1330.     // interface ITransform2D
  1331.     // interface ITransform3D
  1332.     // interface IConstructPoint
  1333.     // interface IConstructPoint2
  1334.     // interface IRelationalOperator
  1335.     // interface IProximityOperator
  1336.     // interface ITopologicalOperator
  1337.     // interface IHitTest
  1338.     // interface ISupportErrorInfo
  1339.     // interface IPersist
  1340.     // interface IPersistStream
  1341.     // interface IClone
  1342.     // interface IXMLSerialize
  1343. struct __declspec(uuid("0eb12c6e-18f6-11d1-8337-0000f8775be9"))
  1344. IHitTest : IUnknown
  1345. {
  1346.     //
  1347.     // Raw methods provided by interface
  1348.     //
  1349.     virtual HRESULT __stdcall HitTest (
  1350.         struct IPoint * QueryPoint,
  1351.         double searchRadius,
  1352.         enum esriGeometryHitPartType geometryPart,
  1353.         struct IPoint * hitPoint,
  1354.         double * hitDistance,
  1355.         long * hitPartIndex,
  1356.         long * hitSegmentIndex,
  1357.         VARIANT_BOOL * bRightSide,
  1358.         VARIANT_BOOL * bHit ) = 0;
  1359. };
  1360. struct __declspec(uuid("b3fa5973-ada3-11d2-9fae-00c04f8ece3d"))
  1361. Vector3D;
  1362.     // [ default ] interface IUnknown
  1363.     // interface IVector
  1364.     // interface IVector3D
  1365.     // interface IClone
  1366.     // interface ISupportErrorInfo
  1367. struct __declspec(uuid("ecfb3332-9869-11d3-9f5e-00c04f6bc5f4"))
  1368. Sphere;
  1369.     // [ default ] interface IUnknown
  1370.     // interface ISphere
  1371.     // interface IGeometry
  1372.     // interface IClone
  1373.     // interface ISupportErrorInfo
  1374. struct __declspec(uuid("83a20d9d-1c70-11d4-9f5c-00c04f6bdf0d"))
  1375. Ray;
  1376.     // [ default ] interface IUnknown
  1377.     // interface IRay
  1378.     // interface IGeometry
  1379.     // interface IClone
  1380.     // interface ISupportErrorInfo
  1381. struct __declspec(uuid("6f4e63e0-5ab4-11d0-a8f6-00608c85ede5"))
  1382. Line;
  1383.     // [ default ] interface IUnknown
  1384.     // interface ILine
  1385.     // interface ILine2
  1386.     // interface IGeometry
  1387.     // interface ITransform2D
  1388.     // interface ICurve
  1389.     // interface ICurve2
  1390.     // interface ICurve3
  1391.     // interface ISegment
  1392.     // interface IConstructLine
  1393.     // interface IProximityOperator
  1394.     // interface ISupportErrorInfo
  1395.     // interface IClone
  1396.     // interface ISegmentM
  1397.     // interface ISegmentZ
  1398.     // interface ISegmentID
  1399. struct __declspec(uuid("ea7ab50b-1a9d-11d6-9fa9-00c04f6bdf0d"))
  1400. ICurve3 : ICurve2
  1401. {
  1402.     //
  1403.     // Raw methods provided by interface
  1404.     //
  1405.     virtual HRESULT __stdcall QueryPointsAndDistances (
  1406.         enum esriSegmentExtension extension,
  1407.         double searchRadius,
  1408.         struct IPoint * inPoint,
  1409.         VARIANT_BOOL asRatio,
  1410.         double * distanceFromCurve,
  1411.         struct IEnumPointAndDistance * * pointsAndDistances ) = 0;
  1412. };
  1413. struct __declspec(uuid("e54925bb-16d9-11d2-aa7a-00c04fa37ba4"))
  1414. EllipticArc;
  1415.     // [ default ] interface IUnknown
  1416.     // interface IEllipticArc
  1417.     // interface IGeometry
  1418.     // interface ITransform2D
  1419.     // interface ICurve
  1420.     // interface ICurve2
  1421.     // interface ICurve3
  1422.     // interface ISegment
  1423.     // interface IConstructEllipticArc
  1424.     // interface IProximityOperator
  1425.     // interface ISupportErrorInfo
  1426.     // interface IClone
  1427.     // interface ISegmentM
  1428.     // interface ISegmentZ
  1429.     // interface ISegmentID
  1430. struct __declspec(uuid("cd3a614e-bc4b-11d0-8303-0000f8034032"))
  1431. CircularArc;
  1432.     // [ default ] interface IUnknown
  1433.     // interface ICircularArc
  1434.     // interface IGeometry
  1435.     // interface ITransform2D
  1436.     // interface ICurve
  1437.     // interface ICurve2
  1438.     // interface ICurve3
  1439.     // interface ISegment
  1440.     // interface IConstructCircularArc
  1441.     // interface IConstructCircularArc2
  1442.     // interface IProximityOperator
  1443.     // interface ISupportErrorInfo
  1444.     // interface IClone
  1445.     // interface ISegmentM
  1446.     // interface ISegmentZ
  1447.     // interface ISegmentID
  1448. struct __declspec(uuid("c8970bdc-b15b-11d1-a2d3-0000f8775fbf"))
  1449. BezierCurve;
  1450.     // [ default ] interface IUnknown
  1451.     // interface IBezierCurveGEN
  1452.     // interface IBezierCurve
  1453.     // interface IGeometry
  1454.     // interface ITransform2D
  1455.     // interface ICurve
  1456.     // interface ICurve2
  1457.     // interface ICurve3
  1458.     // interface ISegment
  1459.     // interface IConstructBezierCurve
  1460.     // interface IProximityOperator
  1461.     // interface ISupportErrorInfo
  1462.     // interface IClone
  1463.     // interface ISegmentM
  1464.     // interface ISegmentZ
  1465.     // interface ISegmentID
  1466. struct __declspec(uuid("19b8936c-b159-11d1-a2d3-0000f8775fbf"))
  1467. IBezierCurve : ICurve
  1468. {
  1469.     //
  1470.     // Raw methods provided by interface
  1471.     //
  1472.     virtual HRESULT __stdcall QueryCoords (
  1473.         struct IPoint * * controlPoints ) = 0;
  1474.     virtual HRESULT __stdcall PutCoords (
  1475.         long numPoints,
  1476.         struct IPoint * * controlPoints ) = 0;
  1477.     virtual HRESULT __stdcall QueryWKSCoords (
  1478.         WKSPoint * controlPoints ) = 0;
  1479.     virtual HRESULT __stdcall PutWKSCoords (
  1480.         WKSPoint * controlPoints ) = 0;
  1481.     virtual HRESULT __stdcall QueryCoord (
  1482.         long Index,
  1483.         struct IPoint * controlPoint ) = 0;
  1484.     virtual HRESULT __stdcall PutCoord (
  1485.         long Index,
  1486.         struct IPoint * controlPoint ) = 0;
  1487.     virtual HRESULT __stdcall get_Degree (
  1488.         long * Degree ) = 0;
  1489.     virtual HRESULT __stdcall QueryChordLengthTangentAtFrom (
  1490.         struct IPoint * tangent,
  1491.         VARIANT_BOOL * setByUser ) = 0;
  1492.     virtual HRESULT __stdcall QueryChordLengthTangentAtTo (
  1493.         struct IPoint * tangent,
  1494.         VARIANT_BOOL * setByUser ) = 0;
  1495.     virtual HRESULT __stdcall SetChordLengthTangentAtFrom (
  1496.         struct IPoint * tangent,
  1497.         VARIANT_BOOL setByUser ) = 0;
  1498.     virtual HRESULT __stdcall SetChordLengthTangentAtTo (
  1499.         struct IPoint * tangent,
  1500.         VARIANT_BOOL setByUser ) = 0;
  1501.     virtual HRESULT __stdcall QueryInflectionPoint (
  1502.         struct IPoint * inflectionPoint ) = 0;
  1503. };
  1504. struct __declspec(uuid("30707212-52d5-11d0-a8f2-00608c85ede5"))
  1505. Envelope;
  1506.     // [ default ] interface IUnknown
  1507.     // interface IEnvelopeGEN
  1508.     // interface IEnvelope
  1509.     // interface IEnvelope2
  1510.     // interface IMAware
  1511.     // interface IZAware
  1512.     // interface IGeometry
  1513.     // interface IGeometry2
  1514.     // interface IArea
  1515.     // interface IProximityOperator
  1516.     // interface ITransform2D
  1517.     // interface IRelationalOperator
  1518.     // interface IHitTest
  1519.     // interface ISupportErrorInfo
  1520.     // interface IPersist
  1521.     // interface IPersistStream
  1522.     // interface IClone
  1523.     // interface IXMLSerialize
  1524. struct __declspec(uuid("6b256adf-1cde-11d4-9f5c-00c04f6bdf0d"))
  1525. IEnvelope2 : IEnvelope
  1526. {
  1527.     //
  1528.     // Raw methods provided by interface
  1529.     //
  1530.     virtual HRESULT __stdcall PutZCoords (
  1531.         double ZMin,
  1532.         double ZMax ) = 0;
  1533.     virtual HRESULT __stdcall QueryZCoords (
  1534.         double * ZMin,
  1535.         double * ZMax ) = 0;
  1536.     virtual HRESULT __stdcall PutMCoords (
  1537.         double MMin,
  1538.         double MMax ) = 0;
  1539.     virtual HRESULT __stdcall QueryMCoords (
  1540.         double * MMin,
  1541.         double * MMax ) = 0;
  1542. };
  1543. struct __declspec(uuid("30707211-52d5-11d0-a8f2-00608c85ede5"))
  1544. Path;
  1545.     // [ default ] interface IUnknown
  1546.     // interface IPointCollection
  1547.     // interface IPointCollection4
  1548.     // interface IGeometry
  1549.     // interface ISegmentCollection
  1550.     // interface ICurve
  1551.     // interface IPath
  1552.     // interface IConstructPath
  1553.     // interface ISupportErrorInfo
  1554.     // interface IClone
  1555.     // interface ITransform2D
  1556.     // interface ITransform3D
  1557.     // interface IXMLSerialize
  1558. struct __declspec(uuid("b9bc6bce-7891-11d0-82f4-0000f8034032"))
  1559. Ring;
  1560.     // [ default ] interface IUnknown
  1561.     // interface IPointCollection
  1562.     // interface IPointCollection4
  1563.     // interface IGeometry
  1564.     // interface ISegmentCollection
  1565.     // interface IArea
  1566.     // interface ICurve
  1567.     // interface IPath
  1568.     // interface IRing
  1569.     // interface IRing2
  1570.     // interface IConstructPath
  1571.     // interface ISupportErrorInfo
  1572.     // interface IClone
  1573.     // interface ITransform2D
  1574.     // interface ITransform3D
  1575.     // interface IXMLSerialize
  1576. struct __declspec(uuid("00a5cb40-52da-11d0-a8f2-00608c85ede5"))
  1577. Multipoint;
  1578.     // [ default ] interface IUnknown
  1579.     // interface IPointCollection
  1580.     // interface IPointCollection2
  1581.     // interface IPointCollection3
  1582.     // interface IPointCollection4
  1583.     // interface IGeometry
  1584.     // interface IGeometry2
  1585.     // interface IGeometry3
  1586.     // interface IGeometry4
  1587.     // interface IGeometryCollection
  1588.     // interface IMultipoint
  1589.     // interface IMAware
  1590.     // interface IMCollection
  1591.     // interface IZAware
  1592.     // interface IZCollection
  1593.     // interface IPointIDAware
  1594.     // interface IRelationalOperator
  1595.     // interface IProximityOperator
  1596.     // interface ITopologicalOperator
  1597.     // interface ITopologicalOperator2
  1598.     // interface IConstructMultipoint
  1599.     // interface IHitTest
  1600.     // interface ISupportErrorInfo
  1601.     // interface IPersist
  1602.     // interface IPersistStream
  1603.     // interface IClone
  1604.     // interface ITransform2D
  1605.     // interface ISpatialIndex
  1606.     // interface IXMLSerialize
  1607. struct __declspec(uuid("be99e37a-14f8-11d1-8336-0000f8775be9"))
  1608. IConstructMultipoint : IUnknown
  1609. {
  1610.     //
  1611.     // Raw methods provided by interface
  1612.     //
  1613.     virtual HRESULT __stdcall ConstructTangent (
  1614.         struct ICurve * inCurve,
  1615.         struct IPoint * p ) = 0;
  1616.     virtual HRESULT __stdcall ConstructDivideEqual (
  1617.         struct ICurve * inCurve,
  1618.         long numInnerPoints ) = 0;
  1619.     virtual HRESULT __stdcall ConstructDivideLength (
  1620.         struct ICurve * inCurve,
  1621.         double separationDistance ) = 0;
  1622.     virtual HRESULT __stdcall ConstructArcPoints (
  1623.         struct ICircularArc * a ) = 0;
  1624.     virtual HRESULT __stdcall ConstructIntersectionEx (
  1625.         struct ISegment * segment1,
  1626.         enum esriSegmentExtension extension1,
  1627.         struct ISegment * segment2,
  1628.         enum esriSegmentExtension extension2,
  1629.         double * params1,
  1630.         double * params2,
  1631.         long * tangentBits ) = 0;
  1632.     virtual HRESULT __stdcall ConstructIntersection (
  1633.         struct ISegment * segment1,
  1634.         enum esriSegmentExtension extension1,
  1635.         struct ISegment * segment2,
  1636.         enum esriSegmentExtension extension2,
  1637.         VARIANT * params1,
  1638.         VARIANT * params2,
  1639.         VARIANT * isTangentPoint ) = 0;
  1640. };
  1641. struct __declspec(uuid("30707210-52d5-11d0-a8f2-00608c85ede5"))
  1642. Polyline;
  1643.     // [ default ] interface IUnknown
  1644.     // interface IPointCollection
  1645.     // interface IPointCollection4
  1646.     // interface IGeometry
  1647.     // interface IGeometry2
  1648.     // interface IGeometry3
  1649.     // interface IGeometry4
  1650.     // interface ISegmentCollection
  1651.     // interface IGeometryCollection
  1652.     // interface ICurve
  1653.     // interface ICurve2
  1654.     // interface ICurve3
  1655.     // interface IPolycurve
  1656.     // interface IPolycurve2
  1657.     // interface IPolyline
  1658.     // interface IPolyline2
  1659.     // interface IPolyline3
  1660.     // interface IPolyline4
  1661.     // interface IMAware
  1662.     // interface IMCollection
  1663.     // interface IMSegmentation
  1664.     // interface IMSegmentation2
  1665.     // interface IMSegmentation3
  1666.     // interface IZAware
  1667.     // interface IZCollection
  1668.     // interface IZ
  1669.     // interface IPointIDAware
  1670.     // interface ISpatialIndex2
  1671.     // interface IRelationalOperator
  1672.     // interface IProximityOperator
  1673.     // interface ITopologicalOperator
  1674.     // interface ITopologicalOperator2
  1675.     // interface ITopologicalOperator3
  1676.     // interface IHitTest
  1677.     // interface IConstructCurve
  1678.     // interface ISupportErrorInfo
  1679.     // interface IPersist
  1680.     // interface IPersistStream
  1681.     // interface IClone
  1682.     // interface ITransform2D
  1683.     // interface ITransform3D
  1684.     // interface IXMLSerialize
  1685. struct __declspec(uuid("00a5cb42-52da-11d0-a8f2-00608c85ede5"))
  1686. Polygon;
  1687.     // [ default ] interface IUnknown
  1688.     // interface IPointCollection
  1689.     // interface IPointCollection4
  1690.     // interface IGeometry
  1691.     // interface IGeometry2
  1692.     // interface IGeometry3
  1693.     // interface IGeometry4
  1694.     // interface ISegmentCollection
  1695.     // interface IGeometryCollection
  1696.     // interface ICurve
  1697.     // interface IPolycurve
  1698.     // interface IPolycurve2
  1699.     // interface IArea
  1700.     // interface IPolygon
  1701.     // interface IPolygon2
  1702.     // interface IPolygon3
  1703.     // interface IPolygon4
  1704.     // interface IMAware
  1705.     // interface IMCollection
  1706.     // interface IMSegmentation
  1707.     // interface IZAware
  1708.     // interface IZCollection
  1709.     // interface IZ
  1710.     // interface IPointIDAware
  1711.     // interface ISpatialIndex2
  1712.     // interface IRelationalOperator
  1713.     // interface IProximityOperator
  1714.     // interface ITopologicalOperator
  1715.     // interface ITopologicalOperator2
  1716.     // interface ITopologicalOperator3
  1717.     // interface IHitTest
  1718.     // interface IConstructCurve
  1719.     // interface ISupportErrorInfo
  1720.     // interface IPersist
  1721.     // interface IPersistStream
  1722.     // interface IClone
  1723.     // interface ITransform2D
  1724.     // interface ITransform3D
  1725.     // interface IXMLSerialize
  1726. struct __declspec(uuid("688c3098-0e28-11d3-9f33-00c04f6bdd7f"))
  1727. SegmentGraph;
  1728.     // [ default ] interface IUnknown
  1729.     // interface ISegmentGraph
  1730. struct __declspec(uuid("10b5f5c0-3781-11d2-bcc5-0000f875bcce"))
  1731. GeometryBag;
  1732.     // [ default ] interface IUnknown
  1733.     // interface IGeometry
  1734.     // interface IGeometry2
  1735.     // interface IGeometryBag
  1736.     // interface IRelationalOperator
  1737.     // interface ITopologicalOperator
  1738.     // interface IGeometryCollection
  1739.     // interface IEnumGeometry
  1740.     // interface IConstructGeometryCollection
  1741.     // interface ISupportErrorInfo
  1742.     // interface IClone
  1743.     // interface IPersist
  1744.     // interface IPersistStream
  1745.     // interface ITransform2D
  1746.     // interface ISpatialIndex
  1747. struct __declspec(uuid("f3c041c6-ae4d-11d2-9c93-00c04fb17838"))
  1748. MultiPatch;
  1749.     // [ default ] interface IUnknown
  1750.     // interface IGeometry
  1751.     // interface IGeometryCollection
  1752.     // interface IPointCollection
  1753.     // interface IPointCollection4
  1754.     // interface IMultiPatch
  1755.     // interface IConstructMultiPatch
  1756.     // interface IZAware
  1757.     // interface IZCollection
  1758.     // interface IMAware
  1759.     // interface IMCollection
  1760.     // interface IPointIDAware
  1761.     // interface ISupportErrorInfo
  1762.     // interface IPersist
  1763.     // interface IPersistStream
  1764.     // interface IClone
  1765.     // interface ITransform2D
  1766.     // interface ITransform3D
  1767.     // interface IXMLSerialize
  1768.     // interface IGeneralMultiPatchInfo
  1769. struct __declspec(uuid("8b555499-1d26-11d4-9f5c-00c04f6bdf0d"))
  1770. TriangleFan;
  1771.     // [ default ] interface IUnknown
  1772.     // interface IPointCollection
  1773.     // interface IPointCollection4
  1774.     // interface IGeometryCollection
  1775.     // interface IClone
  1776.     // interface ITransform2D
  1777.     // interface ITransform3D
  1778.     // interface IMAware
  1779.     // interface IZAware
  1780.     // interface IPointIDAware
  1781.     // interface IGeometry
  1782.     // interface IGeometry2
  1783.     // interface ITriangleFan
  1784.     // interface ISupportErrorInfo
  1785.     // interface IXMLSerialize
  1786. struct __declspec(uuid("5100f0a0-cf23-11d5-9fa1-00c04f6bdf0d"))
  1787. Triangles;
  1788.     // [ default ] interface IUnknown
  1789.     // interface IPointCollection
  1790.     // interface IPointCollection4
  1791.     // interface IGeometryCollection
  1792.     // interface IClone
  1793.     // interface ITransform2D
  1794.     // interface ITransform3D
  1795.     // interface IMAware
  1796.     // interface IZAware
  1797.     // interface IPointIDAware
  1798.     // interface IGeometry
  1799.     // interface IGeometry2
  1800.     // interface ITriangles
  1801.     // interface ISupportErrorInfo
  1802.     // interface IXMLSerialize
  1803. struct __declspec(uuid("8b55549a-1d26-11d4-9f5c-00c04f6bdf0d"))
  1804. TriangleStrip;
  1805.     // [ default ] interface IUnknown
  1806.     // interface IPointCollection
  1807.     // interface IPointCollection4
  1808.     // interface IGeometryCollection
  1809.     // interface IClone
  1810.     // interface ITransform2D
  1811.     // interface ITransform3D
  1812.     // interface IMAware
  1813.     // interface IZAware
  1814.     // interface IPointIDAware
  1815.     // interface IGeometry
  1816.     // interface IGeometry2
  1817.     // interface ITriangleStrip
  1818.     // interface ISupportErrorInfo
  1819.     // interface IXMLSerialize
  1820. struct __declspec(uuid("11735dae-816c-11d0-82f5-0000f8034032"))
  1821. GeometryEnvironment;
  1822.     // [ default ] interface IUnknown
  1823.     // interface ISupportErrorInfo
  1824.     // interface IConstructAngle
  1825.     // interface IGeometryFactory
  1826.     // interface IGeometryFactory2
  1827.     // interface IGeometryEnvironment
  1828.     // interface IGeometryEnvironment2
  1829.     // interface IGeometryEnvironment3
  1830.     // interface IGeometryEnvironment4
  1831.     // interface IExtrude
  1832.     // interface IEncode3DProperties
  1833.     // interface IConstructDomainExtent
  1834.     // interface IGeometryBridge
  1835. struct __declspec(uuid("2e53c850-5ae3-4b79-8e72-fa0c0018f861"))
  1836. LinePolygonHelper;
  1837.     // [ default ] interface IUnknown
  1838.     // interface ILinePolygonHelper
  1839. struct esriOriginalSegmentMapping
  1840. {
  1841.     struct ISegment * m_pSegment;
  1842.     long m_iPart;
  1843.     long m_iDenseVertex;
  1844.     long m_cDenseSegments;
  1845. };
  1846. struct __declspec(uuid("c90ee28c-01af-11d4-9f6c-00c04f6bdd7f"))
  1847. IESRIShape2 : IESRIShape
  1848. {
  1849.     //
  1850.     // Raw methods provided by interface
  1851.     //
  1852.     virtual HRESULT __stdcall get_ESRIShapeSizeEx2 (
  1853.         long exportFlags,
  1854.         long * cBytes ) = 0;
  1855.     virtual HRESULT __stdcall ExportToESRIShapeEx2 (
  1856.         long exportFlags,
  1857.         long * byteCountInOut,
  1858.         unsigned char * byteBuffer ) = 0;
  1859.     virtual HRESULT __stdcall ImportFromESRIShapeEx (
  1860.         long importFlags,
  1861.         long * byteCountInOut,
  1862.         unsigned char * byteBuffer ) = 0;
  1863. };
  1864. struct __declspec(uuid("92e9489d-5a7a-4a82-b7a7-885df6e1ed5e"))
  1865. IPolycurve3 : IPolycurve2
  1866. {
  1867.     //
  1868.     // Raw methods provided by interface
  1869.     //
  1870.     virtual HRESULT __stdcall DensifyByAngleEx (
  1871.         double maxSegmentLength,
  1872.         double maxAngleDeviation,
  1873.         VARIANT_BOOL bTrackAll,
  1874.         long * cOriginalSegments,
  1875.         struct esriOriginalSegmentMapping * * originalSegments ) = 0;
  1876.     virtual HRESULT __stdcall DensifyEx (
  1877.         double maxSegmentLength,
  1878.         double maxDeviation,
  1879.         VARIANT_BOOL bTrackAll,
  1880.         long * cOriginalSegments,
  1881.         struct esriOriginalSegmentMapping * * originalSegments ) = 0;
  1882. };
  1883. enum SegmentOverlapEnum
  1884. {
  1885.     SegmentOverlapEqual = 1,
  1886.     SegmentOverlapRightAtBeginning = 2,
  1887.     SegmentOverlapLeftAtBeginning = 3,
  1888.     SegmentOverlapRightInMiddle = 4,
  1889.     SegmentOverlapRightAtEnd = 5,
  1890.     SegmentOverlapStaggered = 6,
  1891.     SegmentOverlapMask = 15,
  1892.     SegmentOverlapVertical = 16
  1893. };
  1894. struct __declspec(uuid("fe736c24-01da-11d4-9f6c-00c04f6bdd7f"))
  1895. ITopologicalSegment2 : ITopologicalSegment
  1896. {
  1897.     //
  1898.     // Raw methods provided by interface
  1899.     //
  1900.     virtual HRESULT __stdcall get_IsShort (
  1901.         VARIANT_BOOL * IsShort ) = 0;
  1902.     virtual HRESULT __stdcall get_IsCounterClockwise2 (
  1903.         VARIANT_BOOL * isCCW ) = 0;
  1904.     virtual HRESULT __stdcall SplitYMonotonicEx (
  1905.         long * numSegments,
  1906.         struct ITopologicalSegment * * segments,
  1907.         VARIANT_BOOL * flipped,
  1908.         struct ITopologicalSegment2 * * parentSegments ) = 0;
  1909. };
  1910. struct __declspec(uuid("e057db88-e1af-11d0-830f-0000f8034032"))
  1911. ISegmentFactory : IUnknown
  1912. {
  1913.     //
  1914.     // Raw methods provided by interface
  1915.     //
  1916.     virtual HRESULT __stdcall CreateSegment (
  1917.         WKSPoint * from,
  1918.         WKSPoint * to,
  1919.         double * zs,
  1920.         double * ms,
  1921.         long * IDs,
  1922.         long numModifierBytes,
  1923.         unsigned char * segmentModifier,
  1924.         struct ISpatialReference * SpatialReference,
  1925.         struct ISegment * * outSegment,
  1926.         long * cBytesRead ) = 0;
  1927. };
  1928. struct __declspec(uuid("c1f45030-5836-11d0-a8f5-00608c85ede5"))
  1929. IWin32Shape : IUnknown
  1930. {
  1931.     //
  1932.     // Raw methods provided by interface
  1933.     //
  1934.     virtual HRESULT __stdcall ExportToWin32Shape (
  1935.         struct ITransformation * Transform,
  1936.         struct IEnvelope * displayExtent,
  1937.         long * byteCount,
  1938.         unsigned char * * byteBuffer,
  1939.         VARIANT_BOOL compatibleBuffer,
  1940.         VARIANT_BOOL * dice ) = 0;
  1941. };
  1942. struct __declspec(uuid("ab5eb1e9-90cc-11d4-9f6a-00c04f6bdf0d"))
  1943. IWin32Shape2 : IWin32Shape
  1944. {
  1945.     //
  1946.     // Raw methods provided by interface
  1947.     //
  1948.     virtual HRESULT __stdcall ExportToWin32ShapeEx (
  1949.         VARIANT_BOOL modifyTangents,
  1950.         struct ITransformation * Transform,
  1951.         struct IGeometry * clipShape,
  1952.         long * byteCount,
  1953.         unsigned char * * byteBuffer,
  1954.         VARIANT_BOOL compatibleBuffer,
  1955.         VARIANT_BOOL * dice ) = 0;
  1956. };
  1957. //
  1958. // Named GUID constants initializations
  1959. //
  1960. extern "C" const GUID __declspec(selectany) LIBID_esriGeometry =
  1961.     {0xc4b094c2,0xff32,0x4fa1,{0xab,0xcb,0x78,0x20,0xf8,0xd6,0xfb,0x68}};
  1962. extern "C" const GUID __declspec(selectany) IID_IGeometry =
  1963.     {0x1b07790d,0x38c5,0x11d0,{0x92,0xd2,0x00,0x80,0x5f,0x7c,0x28,0xb0}};
  1964. extern "C" const GUID __declspec(selectany) IID_ISpatialReferenceInfo =
  1965.     {0x4da0fe00,0x1dd2,0x11b2,{0xbf,0x49,0x08,0x00,0x20,0x22,0xf5,0x73}};
  1966. extern "C" const GUID __declspec(selectany) IID_ISpatialReference =
  1967.     {0x4434d680,0xf4da,0x11d1,{0xbc,0xa6,0x00,0x00,0xf8,0x75,0xbc,0xce}};
  1968. extern "C" const GUID __declspec(selectany) IID_IUnit =
  1969.     {0x0ae02580,0x1dd2,0x11b2,{0xbf,0x4a,0x08,0x00,0x20,0x22,0xf5,0x73}};
  1970. extern "C" const GUID __declspec(selectany) IID_ILinearUnit =
  1971.     {0x74ad43f1,0xd31c,0x11d1,{0xbc,0x9b,0x00,0x00,0xf8,0x75,0xbc,0xce}};
  1972. extern "C" const GUID __declspec(selectany) IID_IEnvelope =
  1973.     {0x1b077914,0x38c5,0x11d0,{0x92,0xd2,0x00,0x80,0x5f,0x7c,0x28,0xb0}};
  1974. extern "C" const GUID __declspec(selectany) IID_IPoint =
  1975.     {0x1b077915,0x38c5,0x11d0,{0x92,0xd2,0x00,0x80,0x5f,0x7c,0x28,0xb0}};
  1976. extern "C" const GUID __declspec(selectany) IID_IParameter =
  1977.     {0xdae75100,0x1dd1,0x11b2,{0xbf,0x4d,0x08,0x00,0x20,0x22,0xf5,0x73}};
  1978. extern "C" const GUID __declspec(selectany) IID_IProjection =
  1979.     {0x0ae32400,0x1dd2,0x11b2,{0xbf,0x4d,0x08,0x00,0x20,0x22,0xf5,0x73}};
  1980. extern "C" const GUID __declspec(selectany) IID_IGeographicCoordinateSystem =
  1981.     {0x40870d80,0x1dd2,0x11b2,{0xbf,0x4c,0x08,0x00,0x20,0x22,0xf5,0x73}};
  1982. extern "C" const GUID __declspec(selectany) IID_IDatum =
  1983.     {0x53004780,0x1dd2,0x11b2,{0xbf,0x4b,0x08,0x00,0x20,0x22,0xf5,0x73}};
  1984. extern "C" const GUID __declspec(selectany) IID_ISpheroid =
  1985.     {0x429b9d00,0x1dd2,0x11b2,{0xbf,0x4b,0x08,0x00,0x20,0x22,0xf5,0x73}};
  1986. extern "C" const GUID __declspec(selectany) IID_IPrimeMeridian =
  1987.     {0xf05b7b80,0x1dd1,0x11b2,{0xbf,0x4c,0x08,0x00,0x20,0x22,0xf5,0x73}};
  1988. extern "C" const GUID __declspec(selectany) IID_IAngularUnit =
  1989.     {0x74ad43f0,0xd31c,0x11d1,{0xbc,0x9b,0x00,0x00,0xf8,0x75,0xbc,0xce}};
  1990. extern "C" const GUID __declspec(selectany) IID_IProjectedCoordinateSystem =
  1991.     {0xf94e4c00,0x1dd1,0x11b2,{0xbf,0x4e,0x08,0x00,0x20,0x22,0xf5,0x73}};
  1992. extern "C" const GUID __declspec(selectany) IID_ITransformation =
  1993.     {0x6f2cf924,0x7e00,0x11d0,{0x82,0xf4,0x00,0x00,0xf8,0x03,0x40,0x32}};
  1994. extern "C" const GUID __declspec(selectany) IID_IGeoTransformationOperationSet =
  1995.     {0x0049530e,0xe3ec,0x11d3,{0x9f,0x62,0x00,0xc0,0x4f,0x6b,0xdd,0x7f}};
  1996. extern "C" const GUID __declspec(selectany) IID_IGeoTransformation =
  1997.     {0x9273bb60,0xc611,0x11d2,{0xbd,0x08,0x00,0x00,0xf8,0x75,0xbc,0xce}};
  1998. extern "C" const GUID __declspec(selectany) IID_ISpatialReferenceFactory =
  1999.     {0x6cd10b60,0xc4f6,0x11d1,{0xbc,0x92,0x00,0x00,0xf8,0x75,0xbc,0xce}};
  2000. extern "C" const GUID __declspec(selectany) IID_ITransformationGEN =
  2001.     {0x5f015fe6,0x38cf,0x451d,{0x81,0xcd,0x7e,0x78,0x4b,0x71,0xad,0xd7}};
  2002. extern "C" const GUID __declspec(selectany) IID_IMolodenskyBadekasTransformation =
  2003.     {0x62040069,0x0799,0x422f,{0xb2,0xa6,0x1a,0xc5,0xb6,0x3b,0xca,0xa2}};
  2004. extern "C" const GUID __declspec(selectany) IID_ICompositeGeoTransformation =
  2005.     {0x3be52788,0xdda4,0x11d3,{0x9f,0x61,0x00,0xc0,0x4f,0x6b,0xdd,0x7f}};
  2006. extern "C" const GUID __declspec(selectany) IID_IGeocentricTranslation =
  2007.     {0x063954b0,0xc1fb,0x11d2,{0xbd,0x07,0x00,0x00,0xf8,0x75,0xbc,0xce}};
  2008. extern "C" const GUID __declspec(selectany) IID_IPositionVectorTransformation =
  2009.     {0x063954b1,0xc1fb,0x11d2,{0xbd,0x07,0x00,0x00,0xf8,0x75,0xbc,0xce}};
  2010. extern "C" const GUID __declspec(selectany) IID_ICoordinateFrameTransformation =
  2011.     {0x0cdf92b2,0xc2a0,0x11d2,{0xbd,0x08,0x00,0x00,0xf8,0x75,0xbc,0xce}};
  2012. extern "C" const GUID __declspec(selectany) IID_IMolodenskyTransformation =
  2013.     {0x0cdf92b3,0xc2a0,0x11d2,{0xbd,0x08,0x00,0x00,0xf8,0x75,0xbc,0xce}};
  2014. extern "C" const GUID __declspec(selectany) IID_IGridTransformation =
  2015.     {0xb807845e,0xda8a,0x11d3,{0x9f,0x60,0x00,0xc0,0x4f,0x6b,0xdd,0x7f}};
  2016. extern "C" const GUID __declspec(selectany) IID_ILongitudeRotationTransformation =
  2017.     {0x64c7c780,0xda8b,0x11d3,{0x9f,0x60,0x00,0xc0,0x4f,0x6b,0xdd,0x7f}};
  2018. extern "C" const GUID __declspec(selectany) IID_ISpatialReference2GEN =
  2019.     {0x3b563182,0xcf62,0x4d40,{0x91,0x57,0x50,0x22,0xf7,0xae,0x45,0x61}};
  2020. extern "C" const GUID __declspec(selectany) IID_IProjectedCoordinateSystem4GEN =
  2021.     {0xd44edb15,0x8866,0x4641,{0x87,0x2d,0x3c,0x81,0xf7,0x3a,0xc8,0xaa}};
  2022. extern "C" const GUID __declspec(selectany) IID_IAngularUnitEdit =
  2023.     {0x3b219f22,0xd3ff,0x11d1,{0xbc,0x9b,0x00,0x00,0xf8,0x75,0xbc,0xce}};
  2024. extern "C" const GUID __declspec(selectany) IID_ILinearUnitEdit =
  2025.     {0x3b219f23,0xd3ff,0x11d1,{0xbc,0x9b,0x00,0x00,0xf8,0x75,0xbc,0xce}};
  2026. extern "C" const GUID __declspec(selectany) IID_ISpheroidEdit =
  2027.     {0x3b219f20,0xd3ff,0x11d1,{0xbc,0x9b,0x00,0x00,0xf8,0x75,0xbc,0xce}};
  2028. extern "C" const GUID __declspec(selectany) IID_IDatumEdit =
  2029.     {0x3b219f21,0xd3ff,0x11d1,{0xbc,0x9b,0x00,0x00,0xf8,0x75,0xbc,0xce}};
  2030. extern "C" const GUID __declspec(selectany) IID_IPrimeMeridianEdit =
  2031.     {0x228d7221,0xd335,0x11d1,{0xbc,0x9b,0x00,0x00,0xf8,0x75,0xbc,0xce}};
  2032. extern "C" const GUID __declspec(selectany) IID_IGeographicCoordinateSystem2 =
  2033.     {0xf78b2a38,0x89c4,0x11d4,{0x9f,0x9f,0x00,0xc0,0x4f,0x6b,0xc8,0xe8}};
  2034. extern "C" const GUID __declspec(selectany) IID_IGeographicCoordinateSystemEdit =
  2035.     {0x3b219f24,0xd3ff,0x11d1,{0xbc,0x9b,0x00,0x00,0xf8,0x75,0xbc,0xce}};
  2036. extern "C" const GUID __declspec(selectany) IID_IUnknownCoordinateSystem =
  2037.     {0xb6ea1e3b,0x15e5,0x11d2,{0xaa,0xcd,0x00,0xc0,0x4f,0xa3,0x3c,0x20}};
  2038. extern "C" const GUID __declspec(selectany) IID_IParameterEdit =
  2039.     {0x06b20118,0x3cfb,0x4e1e,{0xb9,0x84,0xd9,0x4b,0x0f,0xe2,0x62,0xaf}};
  2040. extern "C" const GUID __declspec(selectany) IID_IProjectionGEN =
  2041.     {0xb6bb6277,0x7c88,0x4c70,{0x9e,0x36,0xce,0xb3,0xe0,0x0f,0xd1,0x90}};
  2042. extern "C" const GUID __declspec(selectany) IID_IESRISpatialReference =
  2043.     {0xe78f2cd0,0xc9b2,0x11d1,{0xbc,0x93,0x00,0x00,0xf8,0x75,0xbc,0xce}};
  2044. extern "C" const GUID __declspec(selectany) IID_IPRJSpatialReference =
  2045.     {0xbe52f1b6,0x7bae,0x4bab,{0x9e,0x92,0xaa,0xd9,0xdd,0x93,0x31,0xde}};
  2046. extern "C" const GUID __declspec(selectany) IID_ISRPersistStream =
  2047.     {0xe88c7db0,0x9e84,0x11d2,{0xbd,0x00,0x00,0x00,0xf8,0x75,0xbc,0xce}};
  2048. extern "C" const GUID __declspec(selectany) IID_ISpatialReferenceSingletonManager =
  2049.     {0x58ab2690,0x5981,0x11d2,{0xbc,0xda,0x00,0x00,0xf8,0x75,0xbc,0xce}};
  2050. extern "C" const GUID __declspec(selectany) IID_ISpatialReferenceFactory2 =
  2051.     {0x1f050200,0xda7f,0x11d3,{0x9f,0x60,0x00,0xc0,0x4f,0x6b,0xdd,0x7f}};
  2052. extern "C" const GUID __declspec(selectany) CLSID_LinearUnit =
  2053.     {0xde162780,0x1dd1,0x11b2,{0xbf,0x4f,0x08,0x00,0x20,0x22,0xf5,0x73}};
  2054. extern "C" const GUID __declspec(selectany) CLSID_AngularUnit =
  2055.     {0x74ad43f4,0xd31c,0x11d1,{0xbc,0x9b,0x00,0x00,0xf8,0x75,0xbc,0xce}};
  2056. extern "C" const GUID __declspec(selectany) CLSID_Spheroid =
  2057.     {0x2b929480,0x1dd2,0x11b2,{0xbf,0x4f,0x08,0x00,0x20,0x22,0xf5,0x73}};
  2058. extern "C" const GUID __declspec(selectany) CLSID_Datum =
  2059.     {0x862bf080,0x1dd2,0x11b2,{0xbf,0x4f,0x08,0x00,0x20,0x22,0xf5,0x73}};
  2060. extern "C" const GUID __declspec(selectany) CLSID_PrimeMeridian =
  2061.     {0xc55a4180,0x1dd1,0x11b2,{0xbf,0x50,0x08,0x00,0x20,0x22,0xf5,0x73}};
  2062. extern "C" const GUID __declspec(selectany) CLSID_GeographicCoordinateSystem =
  2063.     {0xa6a87a80,0x1dd1,0x11b2,{0xbf,0x51,0x08,0x00,0x20,0x22,0xf5,0x73}};
  2064. extern "C" const GUID __declspec(selectany) IID_ISpatialReference2 =
  2065.     {0x3267d410,0xf5d9,0x11d3,{0x9f,0x69,0x00,0xc0,0x4f,0x6b,0xdd,0x7f}};
  2066. extern "C" const GUID __declspec(selectany) CLSID_Parameter =
  2067.     {0xe2dbdb00,0x1dd1,0x11b2,{0xbf,0x51,0x08,0x00,0x20,0x22,0xf5,0x73}};
  2068. extern "C" const GUID __declspec(selectany) CLSID_ProjectedCoordinateSystem =
  2069.     {0x2a626700,0x1dd2,0x11b2,{0xbf,0x51,0x08,0x00,0x20,0x22,0xf5,0x73}};
  2070. extern "C" const GUID __declspec(selectany) IID_IProjectedCoordinateSystem2 =
  2071.     {0xa690307d,0x6c11,0x43a1,{0x96,0x6a,0x9e,0x8d,0xb0,0x67,0x20,0x33}};
  2072. extern "C" const GUID __declspec(selectany) IID_IProjectedCoordinateSystem3 =
  2073.     {0xd9b13c10,0x5c5e,0x11d5,{0x9f,0xee,0x00,0xc0,0x4f,0x6b,0xdd,0x7f}};
  2074. extern "C" const GUID __declspec(selectany) IID_IProjectedCoordinateSystem4 =
  2075.     {0xd765fb6b,0x05d3,0x4398,{0x86,0xac,0x79,0x43,0x0d,0xe5,0x30,0xe5}};
  2076. extern "C" const GUID __declspec(selectany) IID_IProjectedCoordinateSystemEdit =
  2077.     {0x228d7220,0xd335,0x11d1,{0xbc,0x9b,0x00,0x00,0xf8,0x75,0xbc,0xce}};
  2078. extern "C" const GUID __declspec(selectany) CLSID_SpatialReferenceEnvironment =
  2079.     {0x7b5b7020,0xc4f6,0x11d1,{0xbc,0x92,0x00,0x00,0xf8,0x75,0xbc,0xce}};
  2080. extern "C" const GUID __declspec(selectany) CLSID_GeoTransformationOperationSet =
  2081.     {0x38ac4b99,0xa4c9,0x41e8,{0x88,0xe0,0xce,0xea,0x37,0x88,0x89,0x32}};
  2082. extern "C" const GUID __declspec(selectany) CLSID_Projection =
  2083.     {0x7ca36480,0xc8f4,0x11d1,{0xbc,0x93,0x00,0x00,0xf8,0x75,0xbc,0xce}};
  2084. extern "C" const GUID __declspec(selectany) CLSID_GeocentricTranslation =
  2085.     {0x0f024430,0xc1f8,0x11d2,{0xbd,0x07,0x00,0x00,0xf8,0x75,0xbc,0xce}};
  2086. extern "C" const GUID __declspec(selectany) CLSID_CoordinateFrameTransformation =
  2087.     {0x0f024431,0xc1f8,0x11d2,{0xbd,0x07,0x00,0x00,0xf8,0x75,0xbc,0xce}};
  2088. extern "C" const GUID __declspec(selectany) CLSID_PositionVectorTransformation =
  2089.     {0x0cdf92b1,0xc2a0,0x11d2,{0xbd,0x08,0x00,0x00,0xf8,0x75,0xbc,0xce}};
  2090. extern "C" const GUID __declspec(selectany) CLSID_MolodenskyTransformation =
  2091.     {0x0cdf92b0,0xc2a0,0x11d2,{0xbd,0x08,0x00,0x00,0xf8,0x75,0xbc,0xce}};
  2092. extern "C" const GUID __declspec(selectany) CLSID_MolodenskyBadekasTransformation =
  2093.     {0xe739e629,0x0d22,0x48f7,{0x84,0x1c,0x54,0x11,0x1c,0xa6,0xd6,0x66}};
  2094. extern "C" const GUID __declspec(selectany) CLSID_AbridgedMolodenskyTransformation =
  2095.     {0xdd2f68d0,0xc6b0,0x11d2,{0xbd,0x09,0x00,0x00,0xf8,0x75,0xbc,0xce}};
  2096. extern "C" const GUID __declspec(selectany) CLSID_LongitudeRotationTransformation =
  2097.     {0x6f3c0002,0xda7f,0x11d3,{0x9f,0x60,0x00,0xc0,0x4f,0x6b,0xdd,0x7f}};
  2098. extern "C" const GUID __declspec(selectany) CLSID_NADCONTransformation =
  2099.     {0xd661941c,0xda8a,0x11d3,{0x9f,0x60,0x00,0xc0,0x4f,0x6b,0xdd,0x7f}};
  2100. extern "C" const GUID __declspec(selectany) CLSID_HARNTransformation =
  2101.     {0xdf146878,0xda8a,0x11d3,{0x9f,0x60,0x00,0xc0,0x4f,0x6b,0xdd,0x7f}};
  2102. extern "C" const GUID __declspec(selectany) CLSID_NTv2Transformation =
  2103.     {0x52b971e2,0xebec,0x11d4,{0x9f,0xd6,0x00,0xc0,0x4f,0x6b,0xdd,0x7f}};
  2104. extern "C" const GUID __declspec(selectany) CLSID_CompositeGeoTransformation =
  2105.     {0x5847fb82,0xdbae,0x11d3,{0x9f,0x60,0x00,0xc0,0x4f,0x6b,0xdd,0x7f}};
  2106. extern "C" const GUID __declspec(selectany) CLSID_UnknownCoordinateSystem =
  2107.     {0xb286c06b,0x0879,0x11d2,{0xaa,0xca,0x00,0xc0,0x4f,0xa3,0x3c,0x20}};
  2108. extern "C" const GUID __declspec(selectany) IID_IControlPrecision =
  2109.     {0xed4e18dd,0xee33,0x11d3,{0x9f,0xef,0x00,0xc0,0x4f,0x6b,0xc7,0x24}};
  2110. extern "C" const GUID __declspec(selectany) IID_IWkb =
  2111.     {0x8d9097ee,0x2f7c,0x11d1,{0x83,0x3b,0x00,0x00,0xf8,0x77,0x5b,0xe9}};
  2112. extern "C" const GUID __declspec(selectany) IID_ICurve =
  2113.     {0x1b077916,0x38c5,0x11d0,{0x92,0xd2,0x00,0x80,0x5f,0x7c,0x28,0xb0}};
  2114. extern "C" const GUID __declspec(selectany) IID_ILine =
  2115.     {0xfea4c71c,0xc5ae,0x11d0,{0x83,0x07,0x00,0x00,0xf8,0x03,0x40,0x32}};
  2116. extern "C" const GUID __declspec(selectany) IID_ISegment =
  2117.     {0xf2c4f0de,0xc5ae,0x11d0,{0x83,0x07,0x00,0x00,0xf8,0x03,0x40,0x32}};
  2118. extern "C" const GUID __declspec(selectany) IID_IPointCollection =
  2119.     {0xde08a214,0x4fc2,0x11d1,{0x83,0x4e,0x00,0x00,0xf8,0x77,0x5b,0xe9}};
  2120. extern "C" const GUID __declspec(selectany) IID_IEnumVertex =
  2121.     {0x4cf93638,0xeb81,0x11d2,{0x9f,0x2d,0x00,0xc0,0x4f,0x6b,0xc8,0xe8}};
  2122. extern "C" const GUID __declspec(selectany) IID_IPath =
  2123.     {0x0a82061c,0x95cb,0x11d0,{0x82,0xf7,0x00,0x00,0xf8,0x03,0x40,0x32}};
  2124. extern "C" const GUID __declspec(selectany) IID_IRing =
  2125.     {0x592121ae,0x4cc8,0x11d1,{0x83,0x4e,0x00,0x00,0xf8,0x77,0x5b,0xe9}};
  2126. extern "C" const GUID __declspec(selectany) IID_IESRIShape =
  2127.     {0x7b91ff70,0x53a9,0x11d0,{0xa8,0xf3,0x00,0x60,0x8c,0x85,0xed,0xe5}};
  2128. extern "C" const GUID __declspec(selectany) IID_IESRISegment =
  2129.     {0xa9da7976,0x4b22,0x11d1,{0x83,0x4c,0x00,0x00,0xf8,0x77,0x5b,0xe9}};
  2130. extern "C" const GUID __declspec(selectany) IID_ISegmentCollection =
  2131.     {0xb3fe6b20,0x4fc2,0x11d1,{0x83,0x4e,0x00,0x00,0xf8,0x77,0x5b,0xe9}};
  2132. extern "C" const GUID __declspec(selectany) IID_IEnumSegment =
  2133.     {0xc63faf0e,0x1040,0x11d1,{0xa2,0x7d,0x00,0x00,0xf8,0x77,0x5f,0xbf}};
  2134. extern "C" const GUID __declspec(selectany) IID_IEnumCurve =
  2135.     {0xa478c6a8,0xddad,0x11d2,{0x9f,0x27,0x00,0xc0,0x4f,0x6b,0xc8,0xe8}};
  2136. extern "C" const GUID __declspec(selectany) IID_IPointCollection2 =
  2137.     {0xf643a012,0xc208,0x48db,{0xb2,0xd6,0x56,0x5f,0x52,0xb5,0x5c,0x8e}};
  2138. extern "C" const GUID __declspec(selectany) IID_IPointCollection3 =
  2139.     {0xaf10d3e8,0xf2f8,0x49ec,{0xa6,0xc5,0x70,0x18,0x09,0x9e,0xea,0xed}};
  2140. extern "C" const GUID __declspec(selectany) IID_IPointCollection4 =
  2141.     {0x773f7279,0xaefb,0x11d5,{0x81,0x12,0x00,0xc0,0x4f,0xa0,0xad,0xf8}};
  2142. extern "C" const GUID __declspec(selectany) IID_IPolycurve =
  2143.     {0x4aff82e0,0xf984,0x11d1,{0xbc,0xa7,0x00,0x00,0xf8,0x75,0xbc,0xce}};
  2144. extern "C" const GUID __declspec(selectany) IID_IPolyline =
  2145.     {0xf2485894,0x4cbd,0x11d1,{0x83,0x4e,0x00,0x00,0xf8,0x77,0x5b,0xe9}};
  2146. extern "C" const GUID __declspec(selectany) IID_ITransform2D =
  2147.     {0x3be78ad0,0x886e,0x11d1,{0xbc,0x78,0x00,0x00,0xf8,0x75,0xbc,0xce}};
  2148. extern "C" const GUID __declspec(selectany) IID_IVector =
  2149.     {0x40d717c9,0x10c2,0x11d4,{0x9f,0x59,0x00,0xc0,0x4f,0x6b,0xdf,0x0d}};
  2150. extern "C" const GUID __declspec(selectany) IID_IVector3D =
  2151.     {0xb3fa5971,0xada3,0x11d2,{0x9f,0xae,0x00,0xc0,0x4f,0x8e,0xce,0x3d}};
  2152. extern "C" const GUID __declspec(selectany) IID_ITopologicalSegment =
  2153.     {0x4df409c0,0x2b14,0x11d2,{0xbc,0xbd,0x00,0x00,0xf8,0x75,0xbc,0xce}};
  2154. extern "C" const GUID __declspec(selectany) IID_IEllipticArc =
  2155.     {0xfa44c5f5,0x16c6,0x11d2,{0xaa,0x7a,0x00,0xc0,0x4f,0xa3,0x7b,0xa4}};
  2156. extern "C" const GUID __declspec(selectany) IID_IPolygon =
  2157.     {0xa4c490b8,0x9441,0x11d0,{0x82,0xf7,0x00,0x00,0xf8,0x03,0x40,0x32}};
  2158. extern "C" const GUID __declspec(selectany) IID_IFunctionalSurface =
  2159.     {0x98d17b10,0x951c,0x11d2,{0xbc,0xfc,0x00,0x00,0xf8,0x75,0xbc,0xce}};
  2160. extern "C" const GUID __declspec(selectany) IID_ISegmentGraph =
  2161.     {0x1e402754,0x0e2a,0x11d3,{0x9f,0x33,0x00,0xc0,0x4f,0x6b,0xdd,0x7f}};
  2162. extern "C" const GUID __declspec(selectany) IID_ISegmentGraphCursor =
  2163.     {0x329bfbd8,0x0e2a,0x11d3,{0x9f,0x33,0x00,0xc0,0x4f,0x6b,0xdd,0x7f}};
  2164. extern "C" const GUID __declspec(selectany) IID_IEnumGeometry =
  2165.     {0xbd2503ef,0xdea7,0x11d0,{0x86,0x7f,0x00,0x00,0xf8,0x75,0x17,0x20}};
  2166. extern "C" const GUID __declspec(selectany) IID_IGeometryCollection =
  2167.     {0xc801565e,0x99ca,0x11d0,{0x82,0xf7,0x00,0x00,0xf8,0x03,0x40,0x32}};
  2168. extern "C" const GUID __declspec(selectany) IID_IMultiPatch =
  2169.     {0xf3c041c8,0xae4d,0x11d2,{0x9c,0x93,0x00,0xc0,0x4f,0xb1,0x78,0x38}};
  2170. extern "C" const GUID __declspec(selectany) IID_IEnumSplitPoint =
  2171.     {0x6b640160,0xfa9a,0x11d3,{0x9f,0x6a,0x00,0xc0,0x4f,0x6b,0xdd,0x7f}};
  2172. extern "C" const GUID __declspec(selectany) IID_IEnumIntersection =
  2173.     {0x0cd38cbb,0x1c89,0x11d4,{0x9f,0x5c,0x00,0xc0,0x4f,0x6b,0xdf,0x0d}};
  2174. extern "C" const GUID __declspec(selectany) IID_IEnumPointAndDistance =
  2175.     {0xea7ab50c,0x1a9d,0x11d6,{0x9f,0xa9,0x00,0xc0,0x4f,0x6b,0xdf,0x0d}};
  2176. extern "C" const GUID __declspec(selectany) IID_ICurve2 =
  2177.     {0x058def33,0x2848,0x11d4,{0x9f,0x82,0x00,0xc0,0x4f,0x6b,0xc8,0xe8}};
  2178. extern "C" const GUID __declspec(selectany) IID_IGeometry2 =
  2179.     {0xb79b2d7e,0xdbc8,0x11d3,{0x9f,0x60,0x00,0xc0,0x4f,0x6b,0xdd,0x7f}};
  2180. extern "C" const GUID __declspec(selectany) IID_ICircularArc =
  2181.     {0x991f5c10,0xbc4c,0x11d0,{0x83,0x03,0x00,0x00,0xf8,0x03,0x40,0x32}};
  2182. extern "C" const GUID __declspec(selectany) IID_IGeometryBag =
  2183.     {0xb5b8cda0,0x9d24,0x11d3,{0x81,0x0d,0x00,0x80,0xc7,0x5e,0x8a,0x71}};
  2184. extern "C" const GUID __declspec(selectany) IID_IAffineTransformation2D =
  2185.     {0xd12f81b4,0xd263,0x11d2,{0x9f,0x29,0x00,0xc0,0x4f,0x6b,0xdd,0x7f}};
  2186. extern "C" const GUID __declspec(selectany) IID_ITransformation3D =
  2187.     {0xc06e0427,0x90d2,0x11d3,{0x9f,0x5c,0x00,0xc0,0x4f,0x6b,0xc5,0xf4}};
  2188. extern "C" const GUID __declspec(selectany) IID_ITopologicalOperator =
  2189.     {0x1b077911,0x38c5,0x11d0,{0x92,0xd2,0x00,0x80,0x5f,0x7c,0x28,0xb0}};
  2190. extern "C" const GUID __declspec(selectany) IID_ITopologicalOperator2 =
  2191.     {0x805aeeb0,0x1d4c,0x11d4,{0x9f,0x75,0x00,0xc0,0x4f,0x6b,0xdd,0x7f}};
  2192. extern "C" const GUID __declspec(selectany) IID_IFunctionalSurface2 =
  2193.     {0xe91ae5c7,0x2c16,0x11d4,{0x80,0xe2,0x00,0xc0,0x4f,0xa0,0xad,0xf8}};
  2194. extern "C" const GUID __declspec(selectany) IID_IEnvelopeGEN =
  2195.     {0xad6492fa,0x8902,0x4d83,{0xac,0xd1,0x41,0x8f,0x47,0x6b,0x30,0x6f}};
  2196. extern "C" const GUID __declspec(selectany) IID_IBezierCurveGEN =
  2197.     {0x64de4fd4,0x6e85,0x41ef,{0x84,0x01,0x8b,0xde,0x5e,0x7b,0xea,0xab}};
  2198. extern "C" const GUID __declspec(selectany) IID_IGeometry3 =
  2199.     {0xd034f81b,0x7137,0x40a6,{0x90,0xea,0xd8,0x89,0x68,0xc3,0x3e,0x60}};
  2200. extern "C" const GUID __declspec(selectany) IID_IGeometry4 =
  2201.     {0xc4c70b7a,0xdfba,0x4892,{0x86,0xcd,0xa9,0x10,0x03,0x57,0x40,0x9b}};
  2202. extern "C" const GUID __declspec(selectany) IID_IMSnap =
  2203.     {0x3732f8b2,0x0f64,0x11d5,{0x9f,0xde,0x00,0xc0,0x4f,0x6b,0xdd,0x7f}};
  2204. extern "C" const GUID __declspec(selectany) IID_ITransformation3DGEN =
  2205.     {0x1b9fa97e,0x66c8,0x477c,{0x88,0xc2,0xe8,0x7a,0x96,0xb5,0x62,0x39}};
  2206. extern "C" const GUID __declspec(selectany) IID_IAffineTransformation2D3GEN =
  2207.     {0x20f586de,0x9b4b,0x47a2,{0xa9,0xa7,0xab,0xc7,0x0f,0xfd,0x6e,0x56}};
  2208. extern "C" const GUID __declspec(selectany) IID_IAffineTransformation3DGEN =
  2209.     {0xd1f0124f,0xa469,0x4653,{0xa3,0x60,0xd2,0x9b,0xc0,0x23,0x72,0x2d}};
  2210. extern "C" const GUID __declspec(selectany) IID_IProjectiveTransformation2DGEN =
  2211.     {0xc7a467a9,0x0374,0x4f1a,{0x9c,0xbd,0x71,0x56,0xfe,0x7d,0xac,0xb9}};
  2212. extern "C" const GUID __declspec(selectany) IID_ISphere =
  2213.     {0x0cd38cb9,0x1c89,0x11d4,{0x9f,0x5c,0x00,0xc0,0x4f,0x6b,0xdf,0x0d}};
  2214. extern "C" const GUID __declspec(selectany) IID_IRay =
  2215.     {0x0cd38cba,0x1c89,0x11d4,{0x9f,0x5c,0x00,0xc0,0x4f,0x6b,0xdf,0x0d}};
  2216. extern "C" const GUID __declspec(selectany) IID_IZShift =
  2217.     {0x2439619f,0x6516,0x4a91,{0xa0,0xb9,0x3c,0xfc,0x98,0xd2,0x14,0xd2}};
  2218. extern "C" const GUID __declspec(selectany) IID_ITransform3D =
  2219.     {0x9414e949,0xffa0,0x11d3,{0x9f,0x56,0x00,0xc0,0x4f,0x6b,0xdf,0x0d}};
  2220. extern "C" const GUID __declspec(selectany) IID_IPolycurve2 =
  2221.     {0xf4737332,0xf6b7,0x11d3,{0x9f,0x6a,0x00,0xc0,0x4f,0x6b,0xdd,0x7f}};
  2222. extern "C" const GUID __declspec(selectany) IID_ISegmentM =
  2223.     {0x48cf4c91,0xe3d5,0x11d2,{0x9f,0x2e,0x00,0xc0,0x4f,0x6b,0xdf,0x0d}};
  2224. extern "C" const GUID __declspec(selectany) IID_ISegmentZ =
  2225.     {0x61b43a4b,0xe3d5,0x11d2,{0x9f,0x2e,0x00,0xc0,0x4f,0x6b,0xdf,0x0d}};
  2226. extern "C" const GUID __declspec(selectany) IID_ISegmentID =
  2227.     {0x703052bd,0x25f1,0x11d3,{0x9f,0x3f,0x00,0xc0,0x4f,0x6b,0xdf,0x0d}};
  2228. extern "C" const GUID __declspec(selectany) IID_ILine2 =
  2229.     {0xa1d604a8,0x7914,0x4435,{0x9b,0x26,0x43,0xe1,0xea,0x5b,0xaa,0x99}};
  2230. extern "C" const GUID __declspec(selectany) IID_IRing2 =
  2231.     {0x6011fa75,0x0c4a,0x11d6,{0x9f,0xa9,0x00,0xc0,0x4f,0x6b,0xdf,0x0d}};
  2232. extern "C" const GUID __declspec(selectany) IID_ITriangleStrip =
  2233.     {0xa532932f,0x26a6,0x11d4,{0x9f,0x5e,0x00,0xc0,0x4f,0x6b,0xdf,0x0d}};
  2234. extern "C" const GUID __declspec(selectany) IID_ITriangleFan =
  2235.     {0xa5329330,0x26a6,0x11d4,{0x9f,0x5e,0x00,0xc0,0x4f,0x6b,0xdf,0x0d}};
  2236. extern "C" const GUID __declspec(selectany) IID_ITriangles =
  2237.     {0x5100f09f,0xcf23,0x11d5,{0x9f,0xa1,0x00,0xc0,0x4f,0x6b,0xdf,0x0d}};
  2238. extern "C" const GUID __declspec(selectany) IID_IArea =
  2239.     {0x6039e192,0x4cc8,0x11d1,{0x83,0x4e,0x00,0x00,0xf8,0x77,0x5b,0xe9}};
  2240. extern "C" const GUID __declspec(selectany) IID_IEnumVertex2 =
  2241.     {0x82a0b2f0,0x59bd,0x437e,{0x9e,0xad,0xcd,0xe1,0x57,0x75,0xf2,0x60}};
  2242. extern "C" const GUID __declspec(selectany) IID_IEnumCurve2 =
  2243.     {0x847e3f3d,0x5ebb,0x43f1,{0x84,0x8d,0xf3,0xee,0xfb,0xc5,0x25,0xed}};
  2244. extern "C" const GUID __declspec(selectany) IID_IMultipoint =
  2245.     {0x032277b2,0x5704,0x11d1,{0x83,0x52,0x00,0x00,0xf8,0x77,0x5b,0xe9}};
  2246. extern "C" const GUID __declspec(selectany) IID_IPolyline2 =
  2247.     {0x7a5ae276,0x1230,0x11d4,{0x9f,0x72,0x00,0xc0,0x4f,0x6b,0xdd,0x7f}};
  2248. extern "C" const GUID __declspec(selectany) IID_IPolyline3 =
  2249.     {0x88af3cf5,0x75b6,0x4ef2,{0x91,0xdb,0x7e,0x9e,0xaf,0xf8,0x1f,0x27}};
  2250. extern "C" const GUID __declspec(selectany) IID_IPolyline4 =
  2251.     {0x5fa07d6c,0xd2b7,0x4a83,{0x87,0x0a,0x0f,0xb8,0x15,0x5a,0x43,0x76}};
  2252. extern "C" const GUID __declspec(selectany) IID_IPolygon2 =
  2253.     {0x55e67f71,0x30ff,0x11d4,{0x9f,0x5e,0x00,0xc0,0x4f,0x6b,0xdf,0x0d}};
  2254. extern "C" const GUID __declspec(selectany) IID_IPolygon3 =
  2255.     {0x287370ce,0xb306,0x4892,{0x8a,0x4c,0xa7,0x97,0x0b,0x13,0x2b,0x79}};
  2256. extern "C" const GUID __declspec(selectany) IID_IPolygon4 =
  2257.     {0x5af81eb6,0x5616,0x49a0,{0xb0,0xa6,0xe2,0x65,0x80,0x3e,0x4b,0xd2}};
  2258. extern "C" const GUID __declspec(selectany) IID_IConstructMultiPatch =
  2259.     {0x51cde393,0x03b4,0x11d4,{0x9f,0x56,0x00,0xc0,0x4f,0x6b,0xdf,0x0d}};
  2260. extern "C" const GUID __declspec(selectany) IID_IExtrude =
  2261.     {0x6b256ae0,0x1cde,0x11d4,{0x9f,0x5c,0x00,0xc0,0x4f,0x6b,0xdf,0x0d}};
  2262. extern "C" const GUID __declspec(selectany) IID_ISpatialIndex =
  2263.     {0x8c6e62ce,0x74fd,0x11d3,{0x9f,0x49,0x00,0xc0,0x4f,0x6b,0xdd,0x7f}};
  2264. extern "C" const GUID __declspec(selectany) IID_ISpatialIndex2 =
  2265.     {0x8d7948bc,0x8dca,0x4e81,{0xa7,0xd5,0x8c,0x25,0x9f,0x20,0x2b,0xd3}};
  2266. extern "C" const GUID __declspec(selectany) IID_IMAware =
  2267.     {0x52c59396,0xd744,0x11d2,{0x9f,0x34,0x00,0xc0,0x4f,0x6b,0xdf,0x06}};
  2268. extern "C" const GUID __declspec(selectany) IID_IMCollection =
  2269.     {0x01faff20,0x5191,0x11d2,{0x92,0xf6,0x00,0x00,0xf8,0x75,0x17,0x1d}};
  2270. extern "C" const GUID __declspec(selectany) IID_IMSegmentation =
  2271.     {0xfd5e17ec,0xd717,0x11d2,{0x9f,0x34,0x00,0xc0,0x4f,0x6b,0xdf,0x06}};
  2272. extern "C" const GUID __declspec(selectany) IID_IMSegmentation2 =
  2273.     {0xb80d4790,0xf452,0x11d3,{0x9f,0x69,0x00,0xc0,0x4f,0x6b,0xdd,0x7f}};
  2274. extern "C" const GUID __declspec(selectany) IID_IMSegmentation3 =
  2275.     {0x58ad0d5d,0x393d,0x44aa,{0x97,0x97,0x6e,0x50,0xd0,0x6e,0xd5,0x24}};
  2276. extern "C" const GUID __declspec(selectany) IID_IMSegmentationInternal =
  2277.     {0x040e3809,0x1106,0x11d6,{0x9f,0xa9,0x00,0xc0,0x4f,0x6b,0xdf,0x0d}};
  2278. extern "C" const GUID __declspec(selectany) IID_IZAware =
  2279.     {0xefeeb8b3,0xdc23,0x11d2,{0x9f,0x2e,0x00,0xc0,0x4f,0x6b,0xdf,0x0d}};
  2280. extern "C" const GUID __declspec(selectany) IID_IZCollection =
  2281.     {0xefeeb8b4,0xdc23,0x11d2,{0x9f,0x2e,0x00,0xc0,0x4f,0x6b,0xdf,0x0d}};
  2282. extern "C" const GUID __declspec(selectany) IID_IZ =
  2283.     {0xfe5d57ef,0x3052,0x11d4,{0x9f,0x5e,0x00,0xc0,0x4f,0x6b,0xdf,0x0d}};
  2284. extern "C" const GUID __declspec(selectany) IID_IEncode3DProperties =
  2285.     {0x7767a6f1,0x69d1,0x11d4,{0x9f,0x66,0x00,0xc0,0x4f,0x6b,0xdf,0x0d}};
  2286. extern "C" const GUID __declspec(selectany) IID_IPointIDAware =
  2287.     {0x739a1669,0xe870,0x11d2,{0x9f,0x30,0x00,0xc0,0x4f,0x6b,0xdf,0x0d}};
  2288. extern "C" const GUID __declspec(selectany) IID_ITextureAware =
  2289.     {0xe433a193,0xceb0,0x11d3,{0x9f,0x50,0x00,0xc0,0x4f,0x6b,0xdf,0x0d}};
  2290. extern "C" const GUID __declspec(selectany) IID_INormalAware =
  2291.     {0xe433a194,0xceb0,0x11d3,{0x9f,0x50,0x00,0xc0,0x4f,0x6b,0xdf,0x0d}};
  2292. extern "C" const GUID __declspec(selectany) IID_IPartIDAware =
  2293.     {0x97fd6869,0xd4fe,0x11d3,{0x9f,0x50,0x00,0xc0,0x4f,0x6b,0xdf,0x0d}};
  2294. extern "C" const GUID __declspec(selectany) IID_IVertexAttribute =
  2295.     {0xab2a8c25,0xd660,0x11d2,{0x9f,0x2a,0x00,0xc0,0x4f,0x6b,0xdf,0x0d}};
  2296. extern "C" const GUID __declspec(selectany) IID_IRelationalOperator =
  2297.     {0x1b07790e,0x38c5,0x11d0,{0x92,0xd2,0x00,0x80,0x5f,0x7c,0x28,0xb0}};
  2298. extern "C" const GUID __declspec(selectany) IID_IProximityOperator =
  2299.     {0x1b07790f,0x38c5,0x11d0,{0x92,0xd2,0x00,0x80,0x5f,0x7c,0x28,0xb0}};
  2300. extern "C" const GUID __declspec(selectany) IID_ITopologicalOperator3 =
  2301.     {0xd4dc3b12,0x88ea,0x42d8,{0x87,0xb7,0x4e,0xb7,0x46,0x07,0x37,0xc1}};
  2302. extern "C" const GUID __declspec(selectany) IID_IConstructAngle =
  2303.     {0x7e9812d8,0x5ac6,0x11d1,{0x83,0x52,0x00,0x00,0xf8,0x77,0x5b,0xe9}};
  2304. extern "C" const GUID __declspec(selectany) IID_IConstructPath =
  2305.     {0xf4fd2ec0,0x990a,0x11d1,{0xbc,0x7d,0x00,0x00,0xf8,0x75,0xbc,0xce}};
  2306. extern "C" const GUID __declspec(selectany) IID_IConstructPoint =
  2307.     {0xeaf5d48c,0xc666,0x11d0,{0x83,0x07,0x00,0x00,0xf8,0x03,0x40,0x32}};
  2308. extern "C" const GUID __declspec(selectany) IID_IConstructPoint2 =
  2309.     {0xaffe2936,0x6d7d,0x4261,{0xb3,0x91,0x0d,0xe4,0x26,0x9d,0xd4,0xb3}};
  2310. extern "C" const GUID __declspec(selectany) IID_IConstructCurve =
  2311.     {0x650cfdc0,0xd947,0x11d0,{0x83,0x0d,0x00,0x00,0xf8,0x03,0x40,0x32}};
  2312. extern "C" const GUID __declspec(selectany) IID_IConstructLine =
  2313.     {0x199120b6,0xc677,0x11d0,{0x83,0x07,0x00,0x00,0xf8,0x03,0x40,0x32}};
  2314. extern "C" const GUID __declspec(selectany) IID_IConstructEllipticArc =
  2315.     {0xb12317d5,0x16d7,0x11d2,{0xaa,0x7a,0x00,0xc0,0x4f,0xa3,0x7b,0xa4}};
  2316. extern "C" const GUID __declspec(selectany) IID_IConstructCircularArc =
  2317.     {0x91b6f492,0xc70a,0x11d0,{0x83,0x07,0x00,0x00,0xf8,0x03,0x40,0x32}};
  2318. extern "C" const GUID __declspec(selectany) IID_IConstructCircularArc2 =
  2319.     {0xf4ee06a7,0x7854,0x485d,{0x96,0x89,0x91,0x4b,0xe1,0xb4,0xe9,0x00}};
  2320. extern "C" const GUID __declspec(selectany) IID_IConstructBezierCurve =
  2321.     {0x252c0510,0xb381,0x11d1,{0xa2,0xd4,0x00,0x00,0xf8,0x77,0x5f,0xbf}};
  2322. extern "C" const GUID __declspec(selectany) IID_IConstructGeometryCollection =
  2323.     {0x8680c0e0,0x377f,0x11d2,{0xbc,0xc5,0x00,0x00,0xf8,0x75,0xbc,0xce}};
  2324. extern "C" const GUID __declspec(selectany) IID_IGeometryEnvironment =
  2325.     {0xe7a6280c,0x3e2f,0x11d3,{0x9f,0x41,0x00,0xc0,0x4f,0x6b,0xdd,0x7f}};
  2326. extern "C" const GUID __declspec(selectany) IID_IGeometryEnvironment2 =
  2327.     {0x6dded3b4,0x1f7c,0x11d4,{0x9f,0x7f,0x00,0xc0,0x4f,0x6b,0xc8,0xe8}};
  2328. extern "C" const GUID __declspec(selectany) IID_IGeometryEnvironment3 =
  2329.     {0x923d59be,0xa083,0x44b3,{0xb9,0xa8,0xa0,0x1a,0x58,0x0c,0x4f,0x2e}};
  2330. extern "C" const GUID __declspec(selectany) IID_IGeometryEnvironment4 =
  2331.     {0xabb994f7,0xdf63,0x46d5,{0x80,0xb5,0x57,0xec,0x1e,0x0b,0xfc,0x88}};
  2332. extern "C" const GUID __declspec(selectany) IID_IGeometryBridge =
  2333.     {0x518cba93,0x621e,0x476a,{0x82,0x4d,0x26,0xa1,0x04,0xa4,0x29,0x02}};
  2334. extern "C" const GUID __declspec(selectany) IID_IGeometryFactory =
  2335.     {0xf71f8c16,0xef07,0x11d0,{0x83,0x27,0x00,0x00,0xf8,0x77,0x5b,0xe9}};
  2336. extern "C" const GUID __declspec(selectany) IID_IGeometryFactory2 =
  2337.     {0x8859da8a,0x64e0,0x4f2b,{0xbd,0xfc,0x46,0x18,0x22,0x48,0xbf,0x53}};
  2338. extern "C" const GUID __declspec(selectany) IID_IConstructDomainExtent =
  2339.     {0x3f419d43,0x5486,0x11d2,{0xaa,0xeb,0x00,0xc0,0x4f,0xa3,0x3c,0x20}};
  2340. extern "C" const GUID __declspec(selectany) IID_IGeneralMultiPatchInfo =
  2341.     {0x69656158,0x701d,0x408c,{0x8b,0x6a,0xa0,0xb4,0xc0,0x12,0xc8,0x43}};
  2342. extern "C" const GUID __declspec(selectany) IID_ILinePolygonHelper =
  2343.     {0xc7ac18fb,0x782e,0x47f1,{0xa9,0xbc,0xcf,0x79,0x53,0xdd,0xa9,0x63}};
  2344. extern "C" const GUID __declspec(selectany) CLSID_AffineTransformation2D =
  2345.     {0x6fa1a8d6,0xd264,0x11d2,{0x9f,0x29,0x00,0xc0,0x4f,0x6b,0xdd,0x7f}};
  2346. extern "C" const GUID __declspec(selectany) IID_IAffineTransformation2D2 =
  2347.     {0x8bedce87,0x6cee,0x4e7b,{0x9d,0x17,0x73,0xb3,0x56,0x2e,0x9a,0xe6}};
  2348. extern "C" const GUID __declspec(selectany) IID_IAffineTransformation2D3 =
  2349.     {0xcd315758,0x16ae,0x4438,{0x99,0xb3,0xf5,0xff,0xa6,0xbc,0xf3,0xf3}};
  2350. extern "C" const GUID __declspec(selectany) CLSID_ProjectiveTransformation2D =
  2351.     {0xf82eb04a,0x4e5a,0x43c7,{0x9a,0x54,0x45,0x74,0x39,0xaa,0x8e,0x9e}};
  2352. extern "C" const GUID __declspec(selectany) IID_IProjectiveTransformation2D =
  2353.     {0x1c8a72c4,0x5a43,0x48ef,{0x93,0x8e,0x21,0x19,0x60,0x8d,0x77,0xd0}};
  2354. extern "C" const GUID __declspec(selectany) CLSID_AffineTransformation3D =
  2355.     {0xc55f63f7,0x27b9,0x11d5,{0x9f,0x84,0x00,0xc0,0x4f,0x6b,0xdf,0x0d}};
  2356. extern "C" const GUID __declspec(selectany) IID_IAffineTransformation3D =
  2357.     {0xc3e86164,0x2f35,0x4068,{0x87,0x06,0x0a,0x07,0x61,0x4f,0x6a,0xc3}};
  2358. extern "C" const GUID __declspec(selectany) CLSID_Point =
  2359.     {0x00a5cb41,0x52da,0x11d0,{0xa8,0xf2,0x00,0x60,0x8c,0x85,0xed,0xe5}};
  2360. extern "C" const GUID __declspec(selectany) IID_IHitTest =
  2361.     {0x0eb12c6e,0x18f6,0x11d1,{0x83,0x37,0x00,0x00,0xf8,0x77,0x5b,0xe9}};
  2362. extern "C" const GUID __declspec(selectany) CLSID_Vector3D =
  2363.     {0xb3fa5973,0xada3,0x11d2,{0x9f,0xae,0x00,0xc0,0x4f,0x8e,0xce,0x3d}};
  2364. extern "C" const GUID __declspec(selectany) CLSID_Sphere =
  2365.     {0xecfb3332,0x9869,0x11d3,{0x9f,0x5e,0x00,0xc0,0x4f,0x6b,0xc5,0xf4}};
  2366. extern "C" const GUID __declspec(selectany) CLSID_Ray =
  2367.     {0x83a20d9d,0x1c70,0x11d4,{0x9f,0x5c,0x00,0xc0,0x4f,0x6b,0xdf,0x0d}};
  2368. extern "C" const GUID __declspec(selectany) CLSID_Line =
  2369.     {0x6f4e63e0,0x5ab4,0x11d0,{0xa8,0xf6,0x00,0x60,0x8c,0x85,0xed,0xe5}};
  2370. extern "C" const GUID __declspec(selectany) IID_ICurve3 =
  2371.     {0xea7ab50b,0x1a9d,0x11d6,{0x9f,0xa9,0x00,0xc0,0x4f,0x6b,0xdf,0x0d}};
  2372. extern "C" const GUID __declspec(selectany) CLSID_EllipticArc =
  2373.     {0xe54925bb,0x16d9,0x11d2,{0xaa,0x7a,0x00,0xc0,0x4f,0xa3,0x7b,0xa4}};
  2374. extern "C" const GUID __declspec(selectany) CLSID_CircularArc =
  2375.     {0xcd3a614e,0xbc4b,0x11d0,{0x83,0x03,0x00,0x00,0xf8,0x03,0x40,0x32}};
  2376. extern "C" const GUID __declspec(selectany) CLSID_BezierCurve =
  2377.     {0xc8970bdc,0xb15b,0x11d1,{0xa2,0xd3,0x00,0x00,0xf8,0x77,0x5f,0xbf}};
  2378. extern "C" const GUID __declspec(selectany) IID_IBezierCurve =
  2379.     {0x19b8936c,0xb159,0x11d1,{0xa2,0xd3,0x00,0x00,0xf8,0x77,0x5f,0xbf}};
  2380. extern "C" const GUID __declspec(selectany) CLSID_Envelope =
  2381.     {0x30707212,0x52d5,0x11d0,{0xa8,0xf2,0x00,0x60,0x8c,0x85,0xed,0xe5}};
  2382. extern "C" const GUID __declspec(selectany) IID_IEnvelope2 =
  2383.     {0x6b256adf,0x1cde,0x11d4,{0x9f,0x5c,0x00,0xc0,0x4f,0x6b,0xdf,0x0d}};
  2384. extern "C" const GUID __declspec(selectany) CLSID_Path =
  2385.     {0x30707211,0x52d5,0x11d0,{0xa8,0xf2,0x00,0x60,0x8c,0x85,0xed,0xe5}};
  2386. extern "C" const GUID __declspec(selectany) CLSID_Ring =
  2387.     {0xb9bc6bce,0x7891,0x11d0,{0x82,0xf4,0x00,0x00,0xf8,0x03,0x40,0x32}};
  2388. extern "C" const GUID __declspec(selectany) CLSID_Multipoint =
  2389.     {0x00a5cb40,0x52da,0x11d0,{0xa8,0xf2,0x00,0x60,0x8c,0x85,0xed,0xe5}};
  2390. extern "C" const GUID __declspec(selectany) IID_IConstructMultipoint =
  2391.     {0xbe99e37a,0x14f8,0x11d1,{0x83,0x36,0x00,0x00,0xf8,0x77,0x5b,0xe9}};
  2392. extern "C" const GUID __declspec(selectany) CLSID_Polyline =
  2393.     {0x30707210,0x52d5,0x11d0,{0xa8,0xf2,0x00,0x60,0x8c,0x85,0xed,0xe5}};
  2394. extern "C" const GUID __declspec(selectany) CLSID_Polygon =
  2395.     {0x00a5cb42,0x52da,0x11d0,{0xa8,0xf2,0x00,0x60,0x8c,0x85,0xed,0xe5}};
  2396. extern "C" const GUID __declspec(selectany) CLSID_SegmentGraph =
  2397.     {0x688c3098,0x0e28,0x11d3,{0x9f,0x33,0x00,0xc0,0x4f,0x6b,0xdd,0x7f}};
  2398. extern "C" const GUID __declspec(selectany) CLSID_GeometryBag =
  2399.     {0x10b5f5c0,0x3781,0x11d2,{0xbc,0xc5,0x00,0x00,0xf8,0x75,0xbc,0xce}};
  2400. extern "C" const GUID __declspec(selectany) CLSID_MultiPatch =
  2401.     {0xf3c041c6,0xae4d,0x11d2,{0x9c,0x93,0x00,0xc0,0x4f,0xb1,0x78,0x38}};
  2402. extern "C" const GUID __declspec(selectany) CLSID_TriangleFan =
  2403.     {0x8b555499,0x1d26,0x11d4,{0x9f,0x5c,0x00,0xc0,0x4f,0x6b,0xdf,0x0d}};
  2404. extern "C" const GUID __declspec(selectany) CLSID_Triangles =
  2405.     {0x5100f0a0,0xcf23,0x11d5,{0x9f,0xa1,0x00,0xc0,0x4f,0x6b,0xdf,0x0d}};
  2406. extern "C" const GUID __declspec(selectany) CLSID_TriangleStrip =
  2407.     {0x8b55549a,0x1d26,0x11d4,{0x9f,0x5c,0x00,0xc0,0x4f,0x6b,0xdf,0x0d}};
  2408. extern "C" const GUID __declspec(selectany) CLSID_GeometryEnvironment =
  2409.     {0x11735dae,0x816c,0x11d0,{0x82,0xf5,0x00,0x00,0xf8,0x03,0x40,0x32}};
  2410. extern "C" const GUID __declspec(selectany) CLSID_LinePolygonHelper =
  2411.     {0x2e53c850,0x5ae3,0x4b79,{0x8e,0x72,0xfa,0x0c,0x00,0x18,0xf8,0x61}};
  2412. extern "C" const GUID __declspec(selectany) IID_IESRIShape2 =
  2413.     {0xc90ee28c,0x01af,0x11d4,{0x9f,0x6c,0x00,0xc0,0x4f,0x6b,0xdd,0x7f}};
  2414. extern "C" const GUID __declspec(selectany) IID_IPolycurve3 =
  2415.     {0x92e9489d,0x5a7a,0x4a82,{0xb7,0xa7,0x88,0x5d,0xf6,0xe1,0xed,0x5e}};
  2416. extern "C" const GUID __declspec(selectany) IID_ITopologicalSegment2 =
  2417.     {0xfe736c24,0x01da,0x11d4,{0x9f,0x6c,0x00,0xc0,0x4f,0x6b,0xdd,0x7f}};
  2418. extern "C" const GUID __declspec(selectany) IID_ISegmentFactory =
  2419.     {0xe057db88,0xe1af,0x11d0,{0x83,0x0f,0x00,0x00,0xf8,0x03,0x40,0x32}};
  2420. extern "C" const GUID __declspec(selectany) IID_IWin32Shape =
  2421.     {0xc1f45030,0x5836,0x11d0,{0xa8,0xf5,0x00,0x60,0x8c,0x85,0xed,0xe5}};
  2422. extern "C" const GUID __declspec(selectany) IID_IWin32Shape2 =
  2423.     {0xab5eb1e9,0x90cc,0x11d4,{0x9f,0x6a,0x00,0xc0,0x4f,0x6b,0xdf,0x0d}};
  2424. #pragma pack(pop)