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

GIS编程

开发平台:

Visual C++

  1. // Created by Microsoft (R) C/C++ Compiler Version 12.00.9782.0 (b403fee5).
  2. //
  3. // esriGeometry.tlh
  4. //
  5. // C++ source equivalent of Win32 type library d:/Program Files/ArcGis/com/esriGeometry.olb
  6. // compiler-generated file created 01/08/07 at 20:58:34 - DO NOT EDIT!
  7. //
  8. // Cross-referenced type libraries:
  9. //
  10. //  #import "D:Program FilesArcGIScomesriSystem.olb"
  11. //
  12. #pragma once
  13. #pragma pack(push, 8)
  14. #include <comdef.h>
  15. //
  16. // Forward references and typedefs
  17. //
  18. struct __declspec(uuid("1b07790d-38c5-11d0-92d2-00805f7c28b0"))
  19. /* interface */ IGeometry;
  20. struct __declspec(uuid("4434d680-f4da-11d1-bca6-0000f875bcce"))
  21. /* interface */ ISpatialReference;
  22. struct __declspec(uuid("4da0fe00-1dd2-11b2-bf49-08002022f573"))
  23. /* interface */ ISpatialReferenceInfo;
  24. typedef long esriSpatialReferenceImplHandle;
  25. typedef long esriPrecisionImplHandle;
  26. typedef long esriPrecisionExImplHandle;
  27. struct __declspec(uuid("74ad43f1-d31c-11d1-bc9b-0000f875bcce"))
  28. /* interface */ ILinearUnit;
  29. struct __declspec(uuid("0ae02580-1dd2-11b2-bf4a-08002022f573"))
  30. /* interface */ IUnit;
  31. struct __declspec(uuid("1b077914-38c5-11d0-92d2-00805f7c28b0"))
  32. /* interface */ IEnvelope;
  33. struct __declspec(uuid("1b077915-38c5-11d0-92d2-00805f7c28b0"))
  34. /* interface */ IPoint;
  35. typedef long esriProjectionImplHandle;
  36. typedef long esriGeoTransformationImplHandle;
  37. struct esriSRHorizon;
  38. struct __declspec(uuid("dae75100-1dd1-11b2-bf4d-08002022f573"))
  39. /* interface */ IParameter;
  40. struct __declspec(uuid("0ae32400-1dd2-11b2-bf4d-08002022f573"))
  41. /* interface */ IProjection;
  42. struct __declspec(uuid("40870d80-1dd2-11b2-bf4c-08002022f573"))
  43. /* interface */ IGeographicCoordinateSystem;
  44. struct __declspec(uuid("53004780-1dd2-11b2-bf4b-08002022f573"))
  45. /* interface */ IDatum;
  46. struct __declspec(uuid("429b9d00-1dd2-11b2-bf4b-08002022f573"))
  47. /* interface */ ISpheroid;
  48. struct __declspec(uuid("f05b7b80-1dd1-11b2-bf4c-08002022f573"))
  49. /* interface */ IPrimeMeridian;
  50. struct __declspec(uuid("74ad43f0-d31c-11d1-bc9b-0000f875bcce"))
  51. /* interface */ IAngularUnit;
  52. struct __declspec(uuid("f94e4c00-1dd1-11b2-bf4e-08002022f573"))
  53. /* interface */ IProjectedCoordinateSystem;
  54. struct __declspec(uuid("6f2cf924-7e00-11d0-82f4-0000f8034032"))
  55. /* interface */ ITransformation;
  56. struct __declspec(uuid("0049530e-e3ec-11d3-9f62-00c04f6bdd7f"))
  57. /* interface */ IGeoTransformationOperationSet;
  58. struct __declspec(uuid("9273bb60-c611-11d2-bd08-0000f875bcce"))
  59. /* interface */ IGeoTransformation;
  60. struct __declspec(uuid("6cd10b60-c4f6-11d1-bc92-0000f875bcce"))
  61. /* interface */ ISpatialReferenceFactory;
  62. struct __declspec(uuid("5f015fe6-38cf-451d-81cd-7e784b71add7"))
  63. /* interface */ ITransformationGEN;
  64. struct __declspec(uuid("62040069-0799-422f-b2a6-1ac5b63bcaa2"))
  65. /* interface */ IMolodenskyBadekasTransformation;
  66. struct __declspec(uuid("3be52788-dda4-11d3-9f61-00c04f6bdd7f"))
  67. /* interface */ ICompositeGeoTransformation;
  68. struct __declspec(uuid("063954b0-c1fb-11d2-bd07-0000f875bcce"))
  69. /* interface */ IGeocentricTranslation;
  70. struct __declspec(uuid("063954b1-c1fb-11d2-bd07-0000f875bcce"))
  71. /* interface */ IPositionVectorTransformation;
  72. struct __declspec(uuid("0cdf92b2-c2a0-11d2-bd08-0000f875bcce"))
  73. /* interface */ ICoordinateFrameTransformation;
  74. struct __declspec(uuid("0cdf92b3-c2a0-11d2-bd08-0000f875bcce"))
  75. /* interface */ IMolodenskyTransformation;
  76. struct __declspec(uuid("b807845e-da8a-11d3-9f60-00c04f6bdd7f"))
  77. /* interface */ IGridTransformation;
  78. struct __declspec(uuid("64c7c780-da8b-11d3-9f60-00c04f6bdd7f"))
  79. /* interface */ ILongitudeRotationTransformation;
  80. struct __declspec(uuid("3b563182-cf62-4d40-9157-5022f7ae4561"))
  81. /* interface */ ISpatialReference2GEN;
  82. struct __declspec(uuid("d44edb15-8866-4641-872d-3c81f73ac8aa"))
  83. /* interface */ IProjectedCoordinateSystem4GEN;
  84. struct __declspec(uuid("3b219f22-d3ff-11d1-bc9b-0000f875bcce"))
  85. /* interface */ IAngularUnitEdit;
  86. struct __declspec(uuid("3b219f23-d3ff-11d1-bc9b-0000f875bcce"))
  87. /* interface */ ILinearUnitEdit;
  88. struct __declspec(uuid("3b219f20-d3ff-11d1-bc9b-0000f875bcce"))
  89. /* interface */ ISpheroidEdit;
  90. struct __declspec(uuid("3b219f21-d3ff-11d1-bc9b-0000f875bcce"))
  91. /* interface */ IDatumEdit;
  92. struct __declspec(uuid("228d7221-d335-11d1-bc9b-0000f875bcce"))
  93. /* interface */ IPrimeMeridianEdit;
  94. struct __declspec(uuid("f78b2a38-89c4-11d4-9f9f-00c04f6bc8e8"))
  95. /* interface */ IGeographicCoordinateSystem2;
  96. struct __declspec(uuid("3b219f24-d3ff-11d1-bc9b-0000f875bcce"))
  97. /* interface */ IGeographicCoordinateSystemEdit;
  98. struct __declspec(uuid("b6ea1e3b-15e5-11d2-aacd-00c04fa33c20"))
  99. /* interface */ IUnknownCoordinateSystem;
  100. struct __declspec(uuid("06b20118-3cfb-4e1e-b984-d94b0fe262af"))
  101. /* interface */ IParameterEdit;
  102. struct __declspec(uuid("b6bb6277-7c88-4c70-9e36-ceb3e00fd190"))
  103. /* interface */ IProjectionGEN;
  104. struct __declspec(uuid("e78f2cd0-c9b2-11d1-bc93-0000f875bcce"))
  105. /* interface */ IESRISpatialReference;
  106. struct __declspec(uuid("be52f1b6-7bae-4bab-9e92-aad9dd9331de"))
  107. /* interface */ IPRJSpatialReference;
  108. struct __declspec(uuid("e88c7db0-9e84-11d2-bd00-0000f875bcce"))
  109. /* interface */ ISRPersistStream;
  110. struct __declspec(uuid("58ab2690-5981-11d2-bcda-0000f875bcce"))
  111. /* interface */ ISpatialReferenceSingletonManager;
  112. struct __declspec(uuid("1f050200-da7f-11d3-9f60-00c04f6bdd7f"))
  113. /* interface */ ISpatialReferenceFactory2;
  114. struct /* coclass */ LinearUnit;
  115. struct /* coclass */ AngularUnit;
  116. struct /* coclass */ Spheroid;
  117. struct /* coclass */ Datum;
  118. struct /* coclass */ PrimeMeridian;
  119. struct /* coclass */ GeographicCoordinateSystem;
  120. struct __declspec(uuid("3267d410-f5d9-11d3-9f69-00c04f6bdd7f"))
  121. /* interface */ ISpatialReference2;
  122. struct /* coclass */ Parameter;
  123. struct /* coclass */ ProjectedCoordinateSystem;
  124. struct __declspec(uuid("a690307d-6c11-43a1-966a-9e8db0672033"))
  125. /* interface */ IProjectedCoordinateSystem2;
  126. struct __declspec(uuid("d9b13c10-5c5e-11d5-9fee-00c04f6bdd7f"))
  127. /* interface */ IProjectedCoordinateSystem3;
  128. struct __declspec(uuid("d765fb6b-05d3-4398-86ac-79430de530e5"))
  129. /* interface */ IProjectedCoordinateSystem4;
  130. struct __declspec(uuid("228d7220-d335-11d1-bc9b-0000f875bcce"))
  131. /* interface */ IProjectedCoordinateSystemEdit;
  132. struct /* coclass */ SpatialReferenceEnvironment;
  133. struct /* coclass */ GeoTransformationOperationSet;
  134. struct /* coclass */ Projection;
  135. struct /* coclass */ GeocentricTranslation;
  136. struct /* coclass */ CoordinateFrameTransformation;
  137. struct /* coclass */ PositionVectorTransformation;
  138. struct /* coclass */ MolodenskyTransformation;
  139. struct /* coclass */ MolodenskyBadekasTransformation;
  140. struct /* coclass */ AbridgedMolodenskyTransformation;
  141. struct /* coclass */ LongitudeRotationTransformation;
  142. struct /* coclass */ NADCONTransformation;
  143. struct /* coclass */ HARNTransformation;
  144. struct /* coclass */ NTv2Transformation;
  145. struct /* coclass */ CompositeGeoTransformation;
  146. struct /* coclass */ UnknownCoordinateSystem;
  147. struct __declspec(uuid("ed4e18dd-ee33-11d3-9fef-00c04f6bc724"))
  148. /* interface */ IControlPrecision;
  149. struct __declspec(uuid("8d9097ee-2f7c-11d1-833b-0000f8775be9"))
  150. /* interface */ IWkb;
  151. typedef enum tagesriSRUnit2Type esriSRUnit2Type;
  152. typedef enum tagesriSRSpheroid2Type esriSRSpheroid2Type;
  153. typedef enum tagesriSRDatum3Type esriSRDatum3Type;
  154. typedef enum tagesriSRPrimeM2Type esriSRPrimeM2Type;
  155. typedef enum tagesriSRProjection4Type esriSRProjection4Type;
  156. typedef enum tagesriSRParameter4Type esriSRParameter4Type;
  157. typedef enum tagesriSRGeoCS3Type esriSRGeoCS3Type;
  158. typedef enum tagesriSRProjCS4Type esriSRProjCS4Type;
  159. typedef enum tagesriSRGeoTransformation3Type esriSRGeoTransformation3Type;
  160. struct __declspec(uuid("1b077916-38c5-11d0-92d2-00805f7c28b0"))
  161. /* interface */ ICurve;
  162. struct __declspec(uuid("fea4c71c-c5ae-11d0-8307-0000f8034032"))
  163. /* interface */ ILine;
  164. struct __declspec(uuid("f2c4f0de-c5ae-11d0-8307-0000f8034032"))
  165. /* interface */ ISegment;
  166. struct __declspec(uuid("de08a214-4fc2-11d1-834e-0000f8775be9"))
  167. /* interface */ IPointCollection;
  168. struct __declspec(uuid("4cf93638-eb81-11d2-9f2d-00c04f6bc8e8"))
  169. /* interface */ IEnumVertex;
  170. struct __declspec(uuid("0a82061c-95cb-11d0-82f7-0000f8034032"))
  171. /* interface */ IPath;
  172. struct __declspec(uuid("592121ae-4cc8-11d1-834e-0000f8775be9"))
  173. /* interface */ IRing;
  174. struct __declspec(uuid("7b91ff70-53a9-11d0-a8f3-00608c85ede5"))
  175. /* interface */ IESRIShape;
  176. struct __declspec(uuid("a9da7976-4b22-11d1-834c-0000f8775be9"))
  177. /* interface */ IESRISegment;
  178. struct __declspec(uuid("b3fe6b20-4fc2-11d1-834e-0000f8775be9"))
  179. /* interface */ ISegmentCollection;
  180. struct __declspec(uuid("c63faf0e-1040-11d1-a27d-0000f8775fbf"))
  181. /* interface */ IEnumSegment;
  182. typedef struct _esriSegmentInfo esriSegmentInfo;
  183. struct _esriSegmentInfo;
  184. struct __declspec(uuid("a478c6a8-ddad-11d2-9f27-00c04f6bc8e8"))
  185. /* interface */ IEnumCurve;
  186. struct __declspec(uuid("f643a012-c208-48db-b2d6-565f52b55c8e"))
  187. /* interface */ IPointCollection2;
  188. struct __declspec(uuid("af10d3e8-f2f8-49ec-a6c5-7018099eeaed"))
  189. /* interface */ IPointCollection3;
  190. struct __declspec(uuid("773f7279-aefb-11d5-8112-00c04fa0adf8"))
  191. /* interface */ IPointCollection4;
  192. struct __declspec(uuid("4aff82e0-f984-11d1-bca7-0000f875bcce"))
  193. /* interface */ IPolycurve;
  194. struct __declspec(uuid("f2485894-4cbd-11d1-834e-0000f8775be9"))
  195. /* interface */ IPolyline;
  196. struct __declspec(uuid("3be78ad0-886e-11d1-bc78-0000f875bcce"))
  197. /* interface */ ITransform2D;
  198. struct __declspec(uuid("40d717c9-10c2-11d4-9f59-00c04f6bdf0d"))
  199. /* interface */ IVector;
  200. struct __declspec(uuid("b3fa5971-ada3-11d2-9fae-00c04f8ece3d"))
  201. /* interface */ IVector3D;
  202. struct __declspec(uuid("4df409c0-2b14-11d2-bcbd-0000f875bcce"))
  203. /* interface */ ITopologicalSegment;
  204. struct __declspec(uuid("fa44c5f5-16c6-11d2-aa7a-00c04fa37ba4"))
  205. /* interface */ IEllipticArc;
  206. struct __declspec(uuid("a4c490b8-9441-11d0-82f7-0000f8034032"))
  207. /* interface */ IPolygon;
  208. struct __declspec(uuid("98d17b10-951c-11d2-bcfc-0000f875bcce"))
  209. /* interface */ IFunctionalSurface;
  210. struct __declspec(uuid("1e402754-0e2a-11d3-9f33-00c04f6bdd7f"))
  211. /* interface */ ISegmentGraph;
  212. struct __declspec(uuid("329bfbd8-0e2a-11d3-9f33-00c04f6bdd7f"))
  213. /* interface */ ISegmentGraphCursor;
  214. struct __declspec(uuid("bd2503ef-dea7-11d0-867f-0000f8751720"))
  215. /* interface */ IEnumGeometry;
  216. struct __declspec(uuid("c801565e-99ca-11d0-82f7-0000f8034032"))
  217. /* interface */ IGeometryCollection;
  218. struct __declspec(uuid("f3c041c8-ae4d-11d2-9c93-00c04fb17838"))
  219. /* interface */ IMultiPatch;
  220. struct __declspec(uuid("6b640160-fa9a-11d3-9f6a-00c04f6bdd7f"))
  221. /* interface */ IEnumSplitPoint;
  222. struct __declspec(uuid("0cd38cbb-1c89-11d4-9f5c-00c04f6bdf0d"))
  223. /* interface */ IEnumIntersection;
  224. struct __declspec(uuid("ea7ab50c-1a9d-11d6-9fa9-00c04f6bdf0d"))
  225. /* interface */ IEnumPointAndDistance;
  226. struct __declspec(uuid("058def33-2848-11d4-9f82-00c04f6bc8e8"))
  227. /* interface */ ICurve2;
  228. struct __declspec(uuid("b79b2d7e-dbc8-11d3-9f60-00c04f6bdd7f"))
  229. /* interface */ IGeometry2;
  230. struct __declspec(uuid("991f5c10-bc4c-11d0-8303-0000f8034032"))
  231. /* interface */ ICircularArc;
  232. struct __declspec(uuid("b5b8cda0-9d24-11d3-810d-0080c75e8a71"))
  233. /* interface */ IGeometryBag;
  234. struct __declspec(uuid("d12f81b4-d263-11d2-9f29-00c04f6bdd7f"))
  235. /* interface */ IAffineTransformation2D;
  236. struct __declspec(uuid("c06e0427-90d2-11d3-9f5c-00c04f6bc5f4"))
  237. /* interface */ ITransformation3D;
  238. struct __declspec(uuid("1b077911-38c5-11d0-92d2-00805f7c28b0"))
  239. /* interface */ ITopologicalOperator;
  240. typedef long TopologyHandle;
  241. struct __declspec(uuid("805aeeb0-1d4c-11d4-9f75-00c04f6bdd7f"))
  242. /* interface */ ITopologicalOperator2;
  243. struct __declspec(uuid("e91ae5c7-2c16-11d4-80e2-00c04fa0adf8"))
  244. /* interface */ IFunctionalSurface2;
  245. struct __declspec(uuid("ad6492fa-8902-4d83-acd1-418f476b306f"))
  246. /* interface */ IEnvelopeGEN;
  247. struct __declspec(uuid("64de4fd4-6e85-41ef-8401-8bde5e7beaab"))
  248. /* interface */ IBezierCurveGEN;
  249. struct __declspec(uuid("d034f81b-7137-40a6-90ea-d88968c33e60"))
  250. /* interface */ IGeometry3;
  251. struct __declspec(uuid("c4c70b7a-dfba-4892-86cd-a9100357409b"))
  252. /* interface */ IGeometry4;
  253. struct __declspec(uuid("3732f8b2-0f64-11d5-9fde-00c04f6bdd7f"))
  254. /* interface */ IMSnap;
  255. struct __declspec(uuid("1b9fa97e-66c8-477c-88c2-e87a96b56239"))
  256. /* interface */ ITransformation3DGEN;
  257. struct __declspec(uuid("20f586de-9b4b-47a2-a9a7-abc70ffd6e56"))
  258. /* interface */ IAffineTransformation2D3GEN;
  259. struct __declspec(uuid("d1f0124f-a469-4653-a360-d29bc023722d"))
  260. /* interface */ IAffineTransformation3DGEN;
  261. struct __declspec(uuid("c7a467a9-0374-4f1a-9cbd-7156fe7dacb9"))
  262. /* interface */ IProjectiveTransformation2DGEN;
  263. struct __declspec(uuid("0cd38cb9-1c89-11d4-9f5c-00c04f6bdf0d"))
  264. /* interface */ ISphere;
  265. struct __declspec(uuid("0cd38cba-1c89-11d4-9f5c-00c04f6bdf0d"))
  266. /* interface */ IRay;
  267. struct __declspec(uuid("2439619f-6516-4a91-a0b9-3cfc98d214d2"))
  268. /* interface */ IZShift;
  269. struct __declspec(uuid("9414e949-ffa0-11d3-9f56-00c04f6bdf0d"))
  270. /* interface */ ITransform3D;
  271. struct __declspec(uuid("f4737332-f6b7-11d3-9f6a-00c04f6bdd7f"))
  272. /* interface */ IPolycurve2;
  273. struct __declspec(uuid("48cf4c91-e3d5-11d2-9f2e-00c04f6bdf0d"))
  274. /* interface */ ISegmentM;
  275. struct __declspec(uuid("61b43a4b-e3d5-11d2-9f2e-00c04f6bdf0d"))
  276. /* interface */ ISegmentZ;
  277. struct __declspec(uuid("703052bd-25f1-11d3-9f3f-00c04f6bdf0d"))
  278. /* interface */ ISegmentID;
  279. struct __declspec(uuid("a1d604a8-7914-4435-9b26-43e1ea5baa99"))
  280. /* interface */ ILine2;
  281. struct __declspec(uuid("6011fa75-0c4a-11d6-9fa9-00c04f6bdf0d"))
  282. /* interface */ IRing2;
  283. struct __declspec(uuid("a532932f-26a6-11d4-9f5e-00c04f6bdf0d"))
  284. /* interface */ ITriangleStrip;
  285. struct __declspec(uuid("a5329330-26a6-11d4-9f5e-00c04f6bdf0d"))
  286. /* interface */ ITriangleFan;
  287. struct __declspec(uuid("5100f09f-cf23-11d5-9fa1-00c04f6bdf0d"))
  288. /* interface */ ITriangles;
  289. struct __declspec(uuid("6039e192-4cc8-11d1-834e-0000f8775be9"))
  290. /* interface */ IArea;
  291. struct __declspec(uuid("82a0b2f0-59bd-437e-9ead-cde15775f260"))
  292. /* interface */ IEnumVertex2;
  293. struct __declspec(uuid("847e3f3d-5ebb-43f1-848d-f3eefbc525ed"))
  294. /* interface */ IEnumCurve2;
  295. struct __declspec(uuid("032277b2-5704-11d1-8352-0000f8775be9"))
  296. /* interface */ IMultipoint;
  297. struct __declspec(uuid("7a5ae276-1230-11d4-9f72-00c04f6bdd7f"))
  298. /* interface */ IPolyline2;
  299. struct __declspec(uuid("88af3cf5-75b6-4ef2-91db-7e9eaff81f27"))
  300. /* interface */ IPolyline3;
  301. struct __declspec(uuid("5fa07d6c-d2b7-4a83-870a-0fb8155a4376"))
  302. /* interface */ IPolyline4;
  303. struct __declspec(uuid("55e67f71-30ff-11d4-9f5e-00c04f6bdf0d"))
  304. /* interface */ IPolygon2;
  305. struct __declspec(uuid("287370ce-b306-4892-8a4c-a7970b132b79"))
  306. /* interface */ IPolygon3;
  307. struct __declspec(uuid("5af81eb6-5616-49a0-b0a6-e265803e4bd2"))
  308. /* interface */ IPolygon4;
  309. struct __declspec(uuid("51cde393-03b4-11d4-9f56-00c04f6bdf0d"))
  310. /* interface */ IConstructMultiPatch;
  311. struct __declspec(uuid("6b256ae0-1cde-11d4-9f5c-00c04f6bdf0d"))
  312. /* interface */ IExtrude;
  313. struct __declspec(uuid("8c6e62ce-74fd-11d3-9f49-00c04f6bdd7f"))
  314. /* interface */ ISpatialIndex;
  315. struct __declspec(uuid("8d7948bc-8dca-4e81-a7d5-8c259f202bd3"))
  316. /* interface */ ISpatialIndex2;
  317. struct __declspec(uuid("52c59396-d744-11d2-9f34-00c04f6bdf06"))
  318. /* interface */ IMAware;
  319. struct __declspec(uuid("01faff20-5191-11d2-92f6-0000f875171d"))
  320. /* interface */ IMCollection;
  321. struct __declspec(uuid("fd5e17ec-d717-11d2-9f34-00c04f6bdf06"))
  322. /* interface */ IMSegmentation;
  323. struct __declspec(uuid("b80d4790-f452-11d3-9f69-00c04f6bdd7f"))
  324. /* interface */ IMSegmentation2;
  325. struct __declspec(uuid("58ad0d5d-393d-44aa-9797-6e50d06ed524"))
  326. /* interface */ IMSegmentation3;
  327. struct __declspec(uuid("040e3809-1106-11d6-9fa9-00c04f6bdf0d"))
  328. /* interface */ IMSegmentationInternal;
  329. struct __declspec(uuid("efeeb8b3-dc23-11d2-9f2e-00c04f6bdf0d"))
  330. /* interface */ IZAware;
  331. struct __declspec(uuid("efeeb8b4-dc23-11d2-9f2e-00c04f6bdf0d"))
  332. /* interface */ IZCollection;
  333. struct __declspec(uuid("fe5d57ef-3052-11d4-9f5e-00c04f6bdf0d"))
  334. /* interface */ IZ;
  335. struct __declspec(uuid("7767a6f1-69d1-11d4-9f66-00c04f6bdf0d"))
  336. /* interface */ IEncode3DProperties;
  337. struct __declspec(uuid("739a1669-e870-11d2-9f30-00c04f6bdf0d"))
  338. /* interface */ IPointIDAware;
  339. struct __declspec(uuid("e433a193-ceb0-11d3-9f50-00c04f6bdf0d"))
  340. /* interface */ ITextureAware;
  341. struct __declspec(uuid("e433a194-ceb0-11d3-9f50-00c04f6bdf0d"))
  342. /* interface */ INormalAware;
  343. struct __declspec(uuid("97fd6869-d4fe-11d3-9f50-00c04f6bdf0d"))
  344. /* interface */ IPartIDAware;
  345. struct __declspec(uuid("ab2a8c25-d660-11d2-9f2a-00c04f6bdf0d"))
  346. /* interface */ IVertexAttribute;
  347. struct __declspec(uuid("1b07790e-38c5-11d0-92d2-00805f7c28b0"))
  348. /* interface */ IRelationalOperator;
  349. struct __declspec(uuid("1b07790f-38c5-11d0-92d2-00805f7c28b0"))
  350. /* interface */ IProximityOperator;
  351. struct __declspec(uuid("d4dc3b12-88ea-42d8-87b7-4eb7460737c1"))
  352. /* interface */ ITopologicalOperator3;
  353. struct __declspec(uuid("7e9812d8-5ac6-11d1-8352-0000f8775be9"))
  354. /* interface */ IConstructAngle;
  355. struct __declspec(uuid("f4fd2ec0-990a-11d1-bc7d-0000f875bcce"))
  356. /* interface */ IConstructPath;
  357. struct __declspec(uuid("eaf5d48c-c666-11d0-8307-0000f8034032"))
  358. /* interface */ IConstructPoint;
  359. struct __declspec(uuid("affe2936-6d7d-4261-b391-0de4269dd4b3"))
  360. /* interface */ IConstructPoint2;
  361. struct __declspec(uuid("650cfdc0-d947-11d0-830d-0000f8034032"))
  362. /* interface */ IConstructCurve;
  363. struct __declspec(uuid("199120b6-c677-11d0-8307-0000f8034032"))
  364. /* interface */ IConstructLine;
  365. struct __declspec(uuid("b12317d5-16d7-11d2-aa7a-00c04fa37ba4"))
  366. /* interface */ IConstructEllipticArc;
  367. struct __declspec(uuid("91b6f492-c70a-11d0-8307-0000f8034032"))
  368. /* interface */ IConstructCircularArc;
  369. struct __declspec(uuid("f4ee06a7-7854-485d-9689-914be1b4e900"))
  370. /* interface */ IConstructCircularArc2;
  371. struct __declspec(uuid("252c0510-b381-11d1-a2d4-0000f8775fbf"))
  372. /* interface */ IConstructBezierCurve;
  373. struct __declspec(uuid("8680c0e0-377f-11d2-bcc5-0000f875bcce"))
  374. /* interface */ IConstructGeometryCollection;
  375. struct __declspec(uuid("e7a6280c-3e2f-11d3-9f41-00c04f6bdd7f"))
  376. /* interface */ IGeometryEnvironment;
  377. struct __declspec(uuid("6dded3b4-1f7c-11d4-9f7f-00c04f6bc8e8"))
  378. /* interface */ IGeometryEnvironment2;
  379. struct __declspec(uuid("923d59be-a083-44b3-b9a8-a01a580c4f2e"))
  380. /* interface */ IGeometryEnvironment3;
  381. struct __declspec(uuid("abb994f7-df63-46d5-80b5-57ec1e0bfc88"))
  382. /* interface */ IGeometryEnvironment4;
  383. struct __declspec(uuid("518cba93-621e-476a-824d-26a104a42902"))
  384. /* interface */ IGeometryBridge;
  385. struct __declspec(uuid("f71f8c16-ef07-11d0-8327-0000f8775be9"))
  386. /* interface */ IGeometryFactory;
  387. struct __declspec(uuid("8859da8a-64e0-4f2b-bdfc-46182248bf53"))
  388. /* interface */ IGeometryFactory2;
  389. struct __declspec(uuid("3f419d43-5486-11d2-aaeb-00c04fa33c20"))
  390. /* interface */ IConstructDomainExtent;
  391. struct __declspec(uuid("69656158-701d-408c-8b6a-a0b4c012c843"))
  392. /* interface */ IGeneralMultiPatchInfo;
  393. struct __declspec(uuid("c7ac18fb-782e-47f1-a9bc-cf7953dda963"))
  394. /* interface */ ILinePolygonHelper;
  395. struct /* coclass */ AffineTransformation2D;
  396. struct __declspec(uuid("8bedce87-6cee-4e7b-9d17-73b3562e9ae6"))
  397. /* interface */ IAffineTransformation2D2;
  398. struct __declspec(uuid("cd315758-16ae-4438-99b3-f5ffa6bcf3f3"))
  399. /* interface */ IAffineTransformation2D3;
  400. struct /* coclass */ ProjectiveTransformation2D;
  401. struct __declspec(uuid("1c8a72c4-5a43-48ef-938e-2119608d77d0"))
  402. /* interface */ IProjectiveTransformation2D;
  403. struct /* coclass */ AffineTransformation3D;
  404. struct __declspec(uuid("c3e86164-2f35-4068-8706-0a07614f6ac3"))
  405. /* interface */ IAffineTransformation3D;
  406. struct /* coclass */ Point;
  407. struct __declspec(uuid("0eb12c6e-18f6-11d1-8337-0000f8775be9"))
  408. /* interface */ IHitTest;
  409. struct /* coclass */ Vector3D;
  410. struct /* coclass */ Sphere;
  411. struct /* coclass */ Ray;
  412. struct /* coclass */ Line;
  413. struct __declspec(uuid("ea7ab50b-1a9d-11d6-9fa9-00c04f6bdf0d"))
  414. /* interface */ ICurve3;
  415. struct /* coclass */ EllipticArc;
  416. struct /* coclass */ CircularArc;
  417. struct /* coclass */ BezierCurve;
  418. struct __declspec(uuid("19b8936c-b159-11d1-a2d3-0000f8775fbf"))
  419. /* interface */ IBezierCurve;
  420. struct /* coclass */ Envelope;
  421. struct __declspec(uuid("6b256adf-1cde-11d4-9f5c-00c04f6bdf0d"))
  422. /* interface */ IEnvelope2;
  423. struct /* coclass */ Path;
  424. struct /* coclass */ Ring;
  425. struct /* coclass */ Multipoint;
  426. struct __declspec(uuid("be99e37a-14f8-11d1-8336-0000f8775be9"))
  427. /* interface */ IConstructMultipoint;
  428. struct /* coclass */ Polyline;
  429. struct /* coclass */ Polygon;
  430. struct /* coclass */ SegmentGraph;
  431. struct /* coclass */ GeometryBag;
  432. struct /* coclass */ MultiPatch;
  433. struct /* coclass */ TriangleFan;
  434. struct /* coclass */ Triangles;
  435. struct /* coclass */ TriangleStrip;
  436. struct /* coclass */ GeometryEnvironment;
  437. struct /* coclass */ LinePolygonHelper;
  438. struct esriOriginalSegmentMapping;
  439. struct __declspec(uuid("c90ee28c-01af-11d4-9f6c-00c04f6bdd7f"))
  440. /* interface */ IESRIShape2;
  441. struct __declspec(uuid("92e9489d-5a7a-4a82-b7a7-885df6e1ed5e"))
  442. /* interface */ IPolycurve3;
  443. struct __declspec(uuid("fe736c24-01da-11d4-9f6c-00c04f6bdd7f"))
  444. /* interface */ ITopologicalSegment2;
  445. struct __declspec(uuid("e057db88-e1af-11d0-830f-0000f8034032"))
  446. /* interface */ ISegmentFactory;
  447. struct __declspec(uuid("c1f45030-5836-11d0-a8f5-00608c85ede5"))
  448. /* interface */ IWin32Shape;
  449. struct __declspec(uuid("ab5eb1e9-90cc-11d4-9f6a-00c04f6bdf0d"))
  450. /* interface */ IWin32Shape2;
  451. //
  452. // Smart pointer typedef declarations
  453. //
  454. _COM_SMARTPTR_TYPEDEF(IGeometry, __uuidof(IGeometry));
  455. _COM_SMARTPTR_TYPEDEF(ISpatialReferenceInfo, __uuidof(ISpatialReferenceInfo));
  456. _COM_SMARTPTR_TYPEDEF(ISpatialReference, __uuidof(ISpatialReference));
  457. _COM_SMARTPTR_TYPEDEF(IUnit, __uuidof(IUnit));
  458. _COM_SMARTPTR_TYPEDEF(ILinearUnit, __uuidof(ILinearUnit));
  459. _COM_SMARTPTR_TYPEDEF(IEnvelope, __uuidof(IEnvelope));
  460. _COM_SMARTPTR_TYPEDEF(IPoint, __uuidof(IPoint));
  461. _COM_SMARTPTR_TYPEDEF(IParameter, __uuidof(IParameter));
  462. _COM_SMARTPTR_TYPEDEF(IProjection, __uuidof(IProjection));
  463. _COM_SMARTPTR_TYPEDEF(IGeographicCoordinateSystem, __uuidof(IGeographicCoordinateSystem));
  464. _COM_SMARTPTR_TYPEDEF(IDatum, __uuidof(IDatum));
  465. _COM_SMARTPTR_TYPEDEF(ISpheroid, __uuidof(ISpheroid));
  466. _COM_SMARTPTR_TYPEDEF(IPrimeMeridian, __uuidof(IPrimeMeridian));
  467. _COM_SMARTPTR_TYPEDEF(IAngularUnit, __uuidof(IAngularUnit));
  468. _COM_SMARTPTR_TYPEDEF(IProjectedCoordinateSystem, __uuidof(IProjectedCoordinateSystem));
  469. _COM_SMARTPTR_TYPEDEF(ITransformation, __uuidof(ITransformation));
  470. _COM_SMARTPTR_TYPEDEF(IGeoTransformationOperationSet, __uuidof(IGeoTransformationOperationSet));
  471. _COM_SMARTPTR_TYPEDEF(IGeoTransformation, __uuidof(IGeoTransformation));
  472. _COM_SMARTPTR_TYPEDEF(ISpatialReferenceFactory, __uuidof(ISpatialReferenceFactory));
  473. _COM_SMARTPTR_TYPEDEF(ITransformationGEN, __uuidof(ITransformationGEN));
  474. _COM_SMARTPTR_TYPEDEF(IMolodenskyBadekasTransformation, __uuidof(IMolodenskyBadekasTransformation));
  475. _COM_SMARTPTR_TYPEDEF(ICompositeGeoTransformation, __uuidof(ICompositeGeoTransformation));
  476. _COM_SMARTPTR_TYPEDEF(IGeocentricTranslation, __uuidof(IGeocentricTranslation));
  477. _COM_SMARTPTR_TYPEDEF(IPositionVectorTransformation, __uuidof(IPositionVectorTransformation));
  478. _COM_SMARTPTR_TYPEDEF(ICoordinateFrameTransformation, __uuidof(ICoordinateFrameTransformation));
  479. _COM_SMARTPTR_TYPEDEF(IMolodenskyTransformation, __uuidof(IMolodenskyTransformation));
  480. _COM_SMARTPTR_TYPEDEF(IGridTransformation, __uuidof(IGridTransformation));
  481. _COM_SMARTPTR_TYPEDEF(ILongitudeRotationTransformation, __uuidof(ILongitudeRotationTransformation));
  482. _COM_SMARTPTR_TYPEDEF(ISpatialReference2GEN, __uuidof(ISpatialReference2GEN));
  483. _COM_SMARTPTR_TYPEDEF(IProjectedCoordinateSystem4GEN, __uuidof(IProjectedCoordinateSystem4GEN));
  484. _COM_SMARTPTR_TYPEDEF(IAngularUnitEdit, __uuidof(IAngularUnitEdit));
  485. _COM_SMARTPTR_TYPEDEF(ILinearUnitEdit, __uuidof(ILinearUnitEdit));
  486. _COM_SMARTPTR_TYPEDEF(ISpheroidEdit, __uuidof(ISpheroidEdit));
  487. _COM_SMARTPTR_TYPEDEF(IDatumEdit, __uuidof(IDatumEdit));
  488. _COM_SMARTPTR_TYPEDEF(IPrimeMeridianEdit, __uuidof(IPrimeMeridianEdit));
  489. _COM_SMARTPTR_TYPEDEF(IGeographicCoordinateSystem2, __uuidof(IGeographicCoordinateSystem2));
  490. _COM_SMARTPTR_TYPEDEF(IGeographicCoordinateSystemEdit, __uuidof(IGeographicCoordinateSystemEdit));
  491. _COM_SMARTPTR_TYPEDEF(IUnknownCoordinateSystem, __uuidof(IUnknownCoordinateSystem));
  492. _COM_SMARTPTR_TYPEDEF(IParameterEdit, __uuidof(IParameterEdit));
  493. _COM_SMARTPTR_TYPEDEF(IProjectionGEN, __uuidof(IProjectionGEN));
  494. _COM_SMARTPTR_TYPEDEF(IESRISpatialReference, __uuidof(IESRISpatialReference));
  495. _COM_SMARTPTR_TYPEDEF(IPRJSpatialReference, __uuidof(IPRJSpatialReference));
  496. _COM_SMARTPTR_TYPEDEF(ISRPersistStream, __uuidof(ISRPersistStream));
  497. _COM_SMARTPTR_TYPEDEF(ISpatialReferenceSingletonManager, __uuidof(ISpatialReferenceSingletonManager));
  498. _COM_SMARTPTR_TYPEDEF(ISpatialReferenceFactory2, __uuidof(ISpatialReferenceFactory2));
  499. _COM_SMARTPTR_TYPEDEF(ISpatialReference2, __uuidof(ISpatialReference2));
  500. _COM_SMARTPTR_TYPEDEF(IProjectedCoordinateSystem2, __uuidof(IProjectedCoordinateSystem2));
  501. _COM_SMARTPTR_TYPEDEF(IProjectedCoordinateSystem3, __uuidof(IProjectedCoordinateSystem3));
  502. _COM_SMARTPTR_TYPEDEF(IProjectedCoordinateSystem4, __uuidof(IProjectedCoordinateSystem4));
  503. _COM_SMARTPTR_TYPEDEF(IProjectedCoordinateSystemEdit, __uuidof(IProjectedCoordinateSystemEdit));
  504. _COM_SMARTPTR_TYPEDEF(IControlPrecision, __uuidof(IControlPrecision));
  505. _COM_SMARTPTR_TYPEDEF(IWkb, __uuidof(IWkb));
  506. _COM_SMARTPTR_TYPEDEF(ICurve, __uuidof(ICurve));
  507. _COM_SMARTPTR_TYPEDEF(ILine, __uuidof(ILine));
  508. _COM_SMARTPTR_TYPEDEF(ISegment, __uuidof(ISegment));
  509. _COM_SMARTPTR_TYPEDEF(IPointCollection, __uuidof(IPointCollection));
  510. _COM_SMARTPTR_TYPEDEF(IEnumVertex, __uuidof(IEnumVertex));
  511. _COM_SMARTPTR_TYPEDEF(IPath, __uuidof(IPath));
  512. _COM_SMARTPTR_TYPEDEF(IRing, __uuidof(IRing));
  513. _COM_SMARTPTR_TYPEDEF(IESRIShape, __uuidof(IESRIShape));
  514. _COM_SMARTPTR_TYPEDEF(IESRISegment, __uuidof(IESRISegment));
  515. _COM_SMARTPTR_TYPEDEF(ISegmentCollection, __uuidof(ISegmentCollection));
  516. _COM_SMARTPTR_TYPEDEF(IEnumSegment, __uuidof(IEnumSegment));
  517. _COM_SMARTPTR_TYPEDEF(IEnumCurve, __uuidof(IEnumCurve));
  518. _COM_SMARTPTR_TYPEDEF(IPointCollection2, __uuidof(IPointCollection2));
  519. _COM_SMARTPTR_TYPEDEF(IPointCollection3, __uuidof(IPointCollection3));
  520. _COM_SMARTPTR_TYPEDEF(IPointCollection4, __uuidof(IPointCollection4));
  521. _COM_SMARTPTR_TYPEDEF(IPolycurve, __uuidof(IPolycurve));
  522. _COM_SMARTPTR_TYPEDEF(IPolyline, __uuidof(IPolyline));
  523. _COM_SMARTPTR_TYPEDEF(ITransform2D, __uuidof(ITransform2D));
  524. _COM_SMARTPTR_TYPEDEF(IVector, __uuidof(IVector));
  525. _COM_SMARTPTR_TYPEDEF(IVector3D, __uuidof(IVector3D));
  526. _COM_SMARTPTR_TYPEDEF(ITopologicalSegment, __uuidof(ITopologicalSegment));
  527. _COM_SMARTPTR_TYPEDEF(IEllipticArc, __uuidof(IEllipticArc));
  528. _COM_SMARTPTR_TYPEDEF(IPolygon, __uuidof(IPolygon));
  529. _COM_SMARTPTR_TYPEDEF(IFunctionalSurface, __uuidof(IFunctionalSurface));
  530. _COM_SMARTPTR_TYPEDEF(ISegmentGraph, __uuidof(ISegmentGraph));
  531. _COM_SMARTPTR_TYPEDEF(ISegmentGraphCursor, __uuidof(ISegmentGraphCursor));
  532. _COM_SMARTPTR_TYPEDEF(IEnumGeometry, __uuidof(IEnumGeometry));
  533. _COM_SMARTPTR_TYPEDEF(IGeometryCollection, __uuidof(IGeometryCollection));
  534. _COM_SMARTPTR_TYPEDEF(IMultiPatch, __uuidof(IMultiPatch));
  535. _COM_SMARTPTR_TYPEDEF(IEnumSplitPoint, __uuidof(IEnumSplitPoint));
  536. _COM_SMARTPTR_TYPEDEF(IEnumIntersection, __uuidof(IEnumIntersection));
  537. _COM_SMARTPTR_TYPEDEF(IEnumPointAndDistance, __uuidof(IEnumPointAndDistance));
  538. _COM_SMARTPTR_TYPEDEF(ICurve2, __uuidof(ICurve2));
  539. _COM_SMARTPTR_TYPEDEF(IGeometry2, __uuidof(IGeometry2));
  540. _COM_SMARTPTR_TYPEDEF(ICircularArc, __uuidof(ICircularArc));
  541. _COM_SMARTPTR_TYPEDEF(IGeometryBag, __uuidof(IGeometryBag));
  542. _COM_SMARTPTR_TYPEDEF(IAffineTransformation2D, __uuidof(IAffineTransformation2D));
  543. _COM_SMARTPTR_TYPEDEF(ITransformation3D, __uuidof(ITransformation3D));
  544. _COM_SMARTPTR_TYPEDEF(ITopologicalOperator, __uuidof(ITopologicalOperator));
  545. _COM_SMARTPTR_TYPEDEF(ITopologicalOperator2, __uuidof(ITopologicalOperator2));
  546. _COM_SMARTPTR_TYPEDEF(IFunctionalSurface2, __uuidof(IFunctionalSurface2));
  547. _COM_SMARTPTR_TYPEDEF(IEnvelopeGEN, __uuidof(IEnvelopeGEN));
  548. _COM_SMARTPTR_TYPEDEF(IBezierCurveGEN, __uuidof(IBezierCurveGEN));
  549. _COM_SMARTPTR_TYPEDEF(IGeometry3, __uuidof(IGeometry3));
  550. _COM_SMARTPTR_TYPEDEF(IGeometry4, __uuidof(IGeometry4));
  551. _COM_SMARTPTR_TYPEDEF(IMSnap, __uuidof(IMSnap));
  552. _COM_SMARTPTR_TYPEDEF(ITransformation3DGEN, __uuidof(ITransformation3DGEN));
  553. _COM_SMARTPTR_TYPEDEF(IAffineTransformation2D3GEN, __uuidof(IAffineTransformation2D3GEN));
  554. _COM_SMARTPTR_TYPEDEF(IAffineTransformation3DGEN, __uuidof(IAffineTransformation3DGEN));
  555. _COM_SMARTPTR_TYPEDEF(IProjectiveTransformation2DGEN, __uuidof(IProjectiveTransformation2DGEN));
  556. _COM_SMARTPTR_TYPEDEF(ISphere, __uuidof(ISphere));
  557. _COM_SMARTPTR_TYPEDEF(IRay, __uuidof(IRay));
  558. _COM_SMARTPTR_TYPEDEF(IZShift, __uuidof(IZShift));
  559. _COM_SMARTPTR_TYPEDEF(ITransform3D, __uuidof(ITransform3D));
  560. _COM_SMARTPTR_TYPEDEF(IPolycurve2, __uuidof(IPolycurve2));
  561. _COM_SMARTPTR_TYPEDEF(ISegmentM, __uuidof(ISegmentM));
  562. _COM_SMARTPTR_TYPEDEF(ISegmentZ, __uuidof(ISegmentZ));
  563. _COM_SMARTPTR_TYPEDEF(ISegmentID, __uuidof(ISegmentID));
  564. _COM_SMARTPTR_TYPEDEF(ILine2, __uuidof(ILine2));
  565. _COM_SMARTPTR_TYPEDEF(IRing2, __uuidof(IRing2));
  566. _COM_SMARTPTR_TYPEDEF(ITriangleStrip, __uuidof(ITriangleStrip));
  567. _COM_SMARTPTR_TYPEDEF(ITriangleFan, __uuidof(ITriangleFan));
  568. _COM_SMARTPTR_TYPEDEF(ITriangles, __uuidof(ITriangles));
  569. _COM_SMARTPTR_TYPEDEF(IArea, __uuidof(IArea));
  570. _COM_SMARTPTR_TYPEDEF(IEnumVertex2, __uuidof(IEnumVertex2));
  571. _COM_SMARTPTR_TYPEDEF(IEnumCurve2, __uuidof(IEnumCurve2));
  572. _COM_SMARTPTR_TYPEDEF(IMultipoint, __uuidof(IMultipoint));
  573. _COM_SMARTPTR_TYPEDEF(IPolyline2, __uuidof(IPolyline2));
  574. _COM_SMARTPTR_TYPEDEF(IPolyline3, __uuidof(IPolyline3));
  575. _COM_SMARTPTR_TYPEDEF(IPolyline4, __uuidof(IPolyline4));
  576. _COM_SMARTPTR_TYPEDEF(IPolygon2, __uuidof(IPolygon2));
  577. _COM_SMARTPTR_TYPEDEF(IPolygon3, __uuidof(IPolygon3));
  578. _COM_SMARTPTR_TYPEDEF(IPolygon4, __uuidof(IPolygon4));
  579. _COM_SMARTPTR_TYPEDEF(IConstructMultiPatch, __uuidof(IConstructMultiPatch));
  580. _COM_SMARTPTR_TYPEDEF(IExtrude, __uuidof(IExtrude));
  581. _COM_SMARTPTR_TYPEDEF(ISpatialIndex, __uuidof(ISpatialIndex));
  582. _COM_SMARTPTR_TYPEDEF(ISpatialIndex2, __uuidof(ISpatialIndex2));
  583. _COM_SMARTPTR_TYPEDEF(IMAware, __uuidof(IMAware));
  584. _COM_SMARTPTR_TYPEDEF(IMCollection, __uuidof(IMCollection));
  585. _COM_SMARTPTR_TYPEDEF(IMSegmentation, __uuidof(IMSegmentation));
  586. _COM_SMARTPTR_TYPEDEF(IMSegmentation2, __uuidof(IMSegmentation2));
  587. _COM_SMARTPTR_TYPEDEF(IMSegmentation3, __uuidof(IMSegmentation3));
  588. _COM_SMARTPTR_TYPEDEF(IMSegmentationInternal, __uuidof(IMSegmentationInternal));
  589. _COM_SMARTPTR_TYPEDEF(IZAware, __uuidof(IZAware));
  590. _COM_SMARTPTR_TYPEDEF(IZCollection, __uuidof(IZCollection));
  591. _COM_SMARTPTR_TYPEDEF(IZ, __uuidof(IZ));
  592. _COM_SMARTPTR_TYPEDEF(IEncode3DProperties, __uuidof(IEncode3DProperties));
  593. _COM_SMARTPTR_TYPEDEF(IPointIDAware, __uuidof(IPointIDAware));
  594. _COM_SMARTPTR_TYPEDEF(ITextureAware, __uuidof(ITextureAware));
  595. _COM_SMARTPTR_TYPEDEF(INormalAware, __uuidof(INormalAware));
  596. _COM_SMARTPTR_TYPEDEF(IPartIDAware, __uuidof(IPartIDAware));
  597. _COM_SMARTPTR_TYPEDEF(IVertexAttribute, __uuidof(IVertexAttribute));
  598. _COM_SMARTPTR_TYPEDEF(IRelationalOperator, __uuidof(IRelationalOperator));
  599. _COM_SMARTPTR_TYPEDEF(IProximityOperator, __uuidof(IProximityOperator));
  600. _COM_SMARTPTR_TYPEDEF(ITopologicalOperator3, __uuidof(ITopologicalOperator3));
  601. _COM_SMARTPTR_TYPEDEF(IConstructAngle, __uuidof(IConstructAngle));
  602. _COM_SMARTPTR_TYPEDEF(IConstructPath, __uuidof(IConstructPath));
  603. _COM_SMARTPTR_TYPEDEF(IConstructPoint, __uuidof(IConstructPoint));
  604. _COM_SMARTPTR_TYPEDEF(IConstructPoint2, __uuidof(IConstructPoint2));
  605. _COM_SMARTPTR_TYPEDEF(IConstructCurve, __uuidof(IConstructCurve));
  606. _COM_SMARTPTR_TYPEDEF(IConstructLine, __uuidof(IConstructLine));
  607. _COM_SMARTPTR_TYPEDEF(IConstructEllipticArc, __uuidof(IConstructEllipticArc));
  608. _COM_SMARTPTR_TYPEDEF(IConstructCircularArc, __uuidof(IConstructCircularArc));
  609. _COM_SMARTPTR_TYPEDEF(IConstructCircularArc2, __uuidof(IConstructCircularArc2));
  610. _COM_SMARTPTR_TYPEDEF(IConstructBezierCurve, __uuidof(IConstructBezierCurve));
  611. _COM_SMARTPTR_TYPEDEF(IConstructGeometryCollection, __uuidof(IConstructGeometryCollection));
  612. _COM_SMARTPTR_TYPEDEF(IGeometryEnvironment, __uuidof(IGeometryEnvironment));
  613. _COM_SMARTPTR_TYPEDEF(IGeometryEnvironment2, __uuidof(IGeometryEnvironment2));
  614. _COM_SMARTPTR_TYPEDEF(IGeometryEnvironment3, __uuidof(IGeometryEnvironment3));
  615. _COM_SMARTPTR_TYPEDEF(IGeometryEnvironment4, __uuidof(IGeometryEnvironment4));
  616. _COM_SMARTPTR_TYPEDEF(IGeometryBridge, __uuidof(IGeometryBridge));
  617. _COM_SMARTPTR_TYPEDEF(IGeometryFactory, __uuidof(IGeometryFactory));
  618. _COM_SMARTPTR_TYPEDEF(IGeometryFactory2, __uuidof(IGeometryFactory2));
  619. _COM_SMARTPTR_TYPEDEF(IConstructDomainExtent, __uuidof(IConstructDomainExtent));
  620. _COM_SMARTPTR_TYPEDEF(IGeneralMultiPatchInfo, __uuidof(IGeneralMultiPatchInfo));
  621. _COM_SMARTPTR_TYPEDEF(ILinePolygonHelper, __uuidof(ILinePolygonHelper));
  622. _COM_SMARTPTR_TYPEDEF(IAffineTransformation2D2, __uuidof(IAffineTransformation2D2));
  623. _COM_SMARTPTR_TYPEDEF(IAffineTransformation2D3, __uuidof(IAffineTransformation2D3));
  624. _COM_SMARTPTR_TYPEDEF(IProjectiveTransformation2D, __uuidof(IProjectiveTransformation2D));
  625. _COM_SMARTPTR_TYPEDEF(IAffineTransformation3D, __uuidof(IAffineTransformation3D));
  626. _COM_SMARTPTR_TYPEDEF(IHitTest, __uuidof(IHitTest));
  627. _COM_SMARTPTR_TYPEDEF(ICurve3, __uuidof(ICurve3));
  628. _COM_SMARTPTR_TYPEDEF(IBezierCurve, __uuidof(IBezierCurve));
  629. _COM_SMARTPTR_TYPEDEF(IEnvelope2, __uuidof(IEnvelope2));
  630. _COM_SMARTPTR_TYPEDEF(IConstructMultipoint, __uuidof(IConstructMultipoint));
  631. _COM_SMARTPTR_TYPEDEF(IESRIShape2, __uuidof(IESRIShape2));
  632. _COM_SMARTPTR_TYPEDEF(IPolycurve3, __uuidof(IPolycurve3));
  633. _COM_SMARTPTR_TYPEDEF(ITopologicalSegment2, __uuidof(ITopologicalSegment2));
  634. _COM_SMARTPTR_TYPEDEF(ISegmentFactory, __uuidof(ISegmentFactory));
  635. _COM_SMARTPTR_TYPEDEF(IWin32Shape, __uuidof(IWin32Shape));
  636. _COM_SMARTPTR_TYPEDEF(IWin32Shape2, __uuidof(IWin32Shape2));
  637. //
  638. // Type library items
  639. //
  640. struct __declspec(uuid("1b07790d-38c5-11d0-92d2-00805f7c28b0"))
  641. IGeometry : IUnknown
  642. {
  643.     //
  644.     // Raw methods provided by interface
  645.     //
  646.     virtual HRESULT __stdcall get_GeometryType (
  647.         enum esriGeometryType * shapeType ) = 0;
  648.     virtual HRESULT __stdcall get_Dimension (
  649.         enum esriGeometryDimension * Dimension ) = 0;
  650.     virtual HRESULT __stdcall get_SpatialReference (
  651.         struct ISpatialReference * * spatialRef ) = 0;
  652.     virtual HRESULT __stdcall putref_SpatialReference (
  653.         struct ISpatialReference * spatialRef ) = 0;
  654.     virtual HRESULT __stdcall get_IsEmpty (
  655.         VARIANT_BOOL * IsEmpty ) = 0;
  656.     virtual HRESULT __stdcall SetEmpty ( ) = 0;
  657.     virtual HRESULT __stdcall QueryEnvelope (
  658.         struct IEnvelope * outEnvelope ) = 0;
  659.     virtual HRESULT __stdcall get_Envelope (
  660.         struct IEnvelope * * newEnvelope ) = 0;
  661.     virtual HRESULT __stdcall Project (
  662.         struct ISpatialReference * newReferenceSystem ) = 0;
  663.     virtual HRESULT __stdcall SnapToSpatialReference ( ) = 0;
  664.     virtual HRESULT __stdcall GeoNormalize ( ) = 0;
  665.     virtual HRESULT __stdcall GeoNormalizeFromLongitude (
  666.         double Longitude ) = 0;
  667. };
  668. enum esriGeometryType
  669. {
  670.     esriGeometryNull = 0,
  671.     esriGeometryPoint = 1,
  672.     esriGeometryMultipoint = 2,
  673.     esriGeometryLine = 13,
  674.     esriGeometryCircularArc = 14,
  675.     esriGeometryEllipticArc = 16,
  676.     esriGeometryBezier3Curve = 15,
  677.     esriGeometryPath = 6,
  678.     esriGeometryPolyline = 3,
  679.     esriGeometryRing = 11,
  680.     esriGeometryPolygon = 4,
  681.     esriGeometryEnvelope = 5,
  682.     esriGeometryAny = 7,
  683.     esriGeometryBag = 17,
  684.     esriGeometryMultiPatch = 9,
  685.     esriGeometryTriangleStrip = 18,
  686.     esriGeometryTriangleFan = 19,
  687.     esriGeometryRay = 20,
  688.     esriGeometrySphere = 21,
  689.     esriGeometryTriangles = 22
  690. };
  691. enum esriGeometryDimension
  692. {
  693.     esriGeometry0Dimension = 1,
  694.     esriGeometry1Dimension = 2,
  695.     esriGeometry2Dimension = 4,
  696.     esriGeometry25Dimension = 5,
  697.     esriGeometry3Dimension = 6,
  698.     esriGeometryNoDimension = -1
  699. };
  700. struct __declspec(uuid("4da0fe00-1dd2-11b2-bf49-08002022f573"))
  701. ISpatialReferenceInfo : IUnknown
  702. {
  703.     //
  704.     // Raw methods provided by interface
  705.     //
  706.     virtual HRESULT __stdcall get_Name (
  707.         BSTR * Name ) = 0;
  708.     virtual HRESULT __stdcall get_Alias (
  709.         BSTR * Alias ) = 0;
  710.     virtual HRESULT __stdcall get_Abbreviation (
  711.         BSTR * Abbreviation ) = 0;
  712.     virtual HRESULT __stdcall get_Remarks (
  713.         BSTR * Remarks ) = 0;
  714.     virtual HRESULT __stdcall get_FactoryCode (
  715.         long * code ) = 0;
  716. };
  717. struct __declspec(uuid("4434d680-f4da-11d1-bca6-0000f875bcce"))
  718. ISpatialReference : ISpatialReferenceInfo
  719. {
  720.     //
  721.     // Raw methods provided by interface
  722.     //
  723.     virtual HRESULT __stdcall get_SpatialReferenceImpl (
  724.         esriSpatialReferenceImplHandle * srImpl ) = 0;
  725.     virtual HRESULT __stdcall get_PrecisionImpl (
  726.         esriPrecisionImplHandle * PrecisionImpl ) = 0;
  727.     virtual HRESULT __stdcall get_PrecisionExImpl (
  728.         esriPrecisionExImplHandle * PrecisionExImpl ) = 0;
  729.     virtual HRESULT __stdcall HasXYPrecision (
  730.         VARIANT_BOOL * HasXYPrecision ) = 0;
  731.     virtual HRESULT __stdcall HasZPrecision (
  732.         VARIANT_BOOL * HasZPrecision ) = 0;
  733.     virtual HRESULT __stdcall HasMPrecision (
  734.         VARIANT_BOOL * HasMPrecision ) = 0;
  735.     virtual HRESULT __stdcall IsPrecisionEqual (
  736.         struct ISpatialReference * otherSR,
  737.         VARIANT_BOOL * IsPrecisionEqual ) = 0;
  738.     virtual HRESULT __stdcall SetFalseOriginAndUnits (
  739.         double falseX,
  740.         double falseY,
  741.         double xyUnits ) = 0;
  742.     virtual HRESULT __stdcall SetZFalseOriginAndUnits (
  743.         double falseZ,
  744.         double zUnits ) = 0;
  745.     virtual HRESULT __stdcall SetMFalseOriginAndUnits (
  746.         double falseM,
  747.         double mUnits ) = 0;
  748.     virtual HRESULT __stdcall GetFalseOriginAndUnits (
  749.         double * falseX,
  750.         double * falseY,
  751.         double * xyUnits ) = 0;
  752.     virtual HRESULT __stdcall GetZFalseOriginAndUnits (
  753.         double * falseZ,
  754.         double * zUnits ) = 0;
  755.     virtual HRESULT __stdcall GetMFalseOriginAndUnits (
  756.         double * falseM,
  757.         double * mUnits ) = 0;
  758.     virtual HRESULT __stdcall GetDomain (
  759.         double * XMin,
  760.         double * XMax,
  761.         double * YMin,
  762.         double * YMax ) = 0;
  763.     virtual HRESULT __stdcall SetDomain (
  764.         double XMin,
  765.         double XMax,
  766.         double YMin,
  767.         double YMax ) = 0;
  768.     virtual HRESULT __stdcall GetZDomain (
  769.         double * outZMin,
  770.         double * outZMax ) = 0;
  771.     virtual HRESULT __stdcall SetZDomain (
  772.         double inZMin,
  773.         double inZMax ) = 0;
  774.     virtual HRESULT __stdcall GetMDomain (
  775.         double * outMMin,
  776.         double * outMMax ) = 0;
  777.     virtual HRESULT __stdcall SetMDomain (
  778.         double inMMin,
  779.         double inMMax ) = 0;
  780.     virtual HRESULT __stdcall get_ZCoordinateUnit (
  781.         struct ILinearUnit * * zunit ) = 0;
  782.     virtual HRESULT __stdcall put_ZCoordinateUnit (
  783.         struct ILinearUnit * zunit ) = 0;
  784.     virtual HRESULT __stdcall Changed ( ) = 0;
  785. };
  786. struct __declspec(uuid("0ae02580-1dd2-11b2-bf4a-08002022f573"))
  787. IUnit : ISpatialReferenceInfo
  788. {
  789.     //
  790.     // Raw methods provided by interface
  791.     //
  792.     virtual HRESULT __stdcall get_ConversionFactor (
  793.         double * ConversionFactor ) = 0;
  794. };
  795. struct __declspec(uuid("74ad43f1-d31c-11d1-bc9b-0000f875bcce"))
  796. ILinearUnit : IUnit
  797. {
  798.     //
  799.     // Raw methods provided by interface
  800.     //
  801.     virtual HRESULT __stdcall get_MetersPerUnit (
  802.         double * MetersPerUnit ) = 0;
  803. };
  804. struct __declspec(uuid("1b077914-38c5-11d0-92d2-00805f7c28b0"))
  805. IEnvelope : IGeometry
  806. {
  807.     //
  808.     // Raw methods provided by interface
  809.     //
  810.     virtual HRESULT __stdcall get_Width (
  811.         double * Width ) = 0;
  812.     virtual HRESULT __stdcall put_Width (
  813.         double Width ) = 0;
  814.     virtual HRESULT __stdcall get_Height (
  815.         double * Height ) = 0;
  816.     virtual HRESULT __stdcall put_Depth (
  817.         double Depth ) = 0;
  818.     virtual HRESULT __stdcall get_Depth (
  819.         double * Depth ) = 0;
  820.     virtual HRESULT __stdcall put_Height (
  821.         double Height ) = 0;
  822.     virtual HRESULT __stdcall get_LowerLeft (
  823.         struct IPoint * * LowerLeft ) = 0;
  824.     virtual HRESULT __stdcall put_LowerLeft (
  825.         struct IPoint * LowerLeft ) = 0;
  826.     virtual HRESULT __stdcall get_UpperLeft (
  827.         struct IPoint * * UpperLeft ) = 0;
  828.     virtual HRESULT __stdcall put_UpperLeft (
  829.         struct IPoint * UpperLeft ) = 0;
  830.     virtual HRESULT __stdcall get_UpperRight (
  831.         struct IPoint * * UpperRight ) = 0;
  832.     virtual HRESULT __stdcall put_UpperRight (
  833.         struct IPoint * UpperRight ) = 0;
  834.     virtual HRESULT __stdcall get_LowerRight (
  835.         struct IPoint * * LowerRight ) = 0;
  836.     virtual HRESULT __stdcall put_LowerRight (
  837.         struct IPoint * LowerRight ) = 0;
  838.     virtual HRESULT __stdcall get_XMin (
  839.         double * XMin ) = 0;
  840.     virtual HRESULT __stdcall put_XMin (
  841.         double XMin ) = 0;
  842.     virtual HRESULT __stdcall get_YMin (
  843.         double * YMin ) = 0;
  844.     virtual HRESULT __stdcall put_YMin (
  845.         double YMin ) = 0;
  846.     virtual HRESULT __stdcall get_XMax (
  847.         double * XMax ) = 0;
  848.     virtual HRESULT __stdcall put_XMax (
  849.         double XMax ) = 0;
  850.     virtual HRESULT __stdcall get_YMax (
  851.         double * YMax ) = 0;
  852.     virtual HRESULT __stdcall put_YMax (
  853.         double YMax ) = 0;
  854.     virtual HRESULT __stdcall get_MMin (
  855.         double * MMin ) = 0;
  856.     virtual HRESULT __stdcall put_MMin (
  857.         double MMin ) = 0;
  858.     virtual HRESULT __stdcall get_MMax (
  859.         double * MMax ) = 0;
  860.     virtual HRESULT __stdcall put_MMax (
  861.         double MMax ) = 0;
  862.     virtual HRESULT __stdcall get_ZMin (
  863.         double * ZMin ) = 0;
  864.     virtual HRESULT __stdcall put_ZMin (
  865.         double ZMin ) = 0;
  866.     virtual HRESULT __stdcall get_ZMax (
  867.         double * ZMax ) = 0;
  868.     virtual HRESULT __stdcall put_ZMax (
  869.         double ZMax ) = 0;
  870.     virtual HRESULT __stdcall Union (
  871.         struct IEnvelope * inEnvelope ) = 0;
  872.     virtual HRESULT __stdcall Intersect (
  873.         struct IEnvelope * inEnvelope ) = 0;
  874.     virtual HRESULT __stdcall Offset (
  875.         double X,
  876.         double Y ) = 0;
  877.     virtual HRESULT __stdcall OffsetZ (
  878.         double Z ) = 0;
  879.     virtual HRESULT __stdcall OffsetM (
  880.         double M ) = 0;
  881.     virtual HRESULT __stdcall Expand (
  882.         double dx,
  883.         double dy,
  884.         VARIANT_BOOL asRatio ) = 0;
  885.     virtual HRESULT __stdcall ExpandZ (
  886.         double dz,
  887.         VARIANT_BOOL asRatio ) = 0;
  888.     virtual HRESULT __stdcall ExpandM (
  889.         double dm,
  890.         VARIANT_BOOL asRatio ) = 0;
  891.     virtual HRESULT __stdcall DefineFromWKSPoints (
  892.         long Count,
  893.         WKSPoint * Points ) = 0;
  894.     virtual HRESULT __stdcall DefineFromPoints (
  895.         long Count,
  896.         struct IPoint * * Points ) = 0;
  897.     virtual HRESULT __stdcall QueryWKSCoords (
  898.         WKSEnvelope * e ) = 0;
  899.     virtual HRESULT __stdcall PutWKSCoords (
  900.         WKSEnvelope * e ) = 0;
  901.     virtual HRESULT __stdcall PutCoords (
  902.         double XMin,
  903.         double YMin,
  904.         double XMax,
  905.         double YMax ) = 0;
  906.     virtual HRESULT __stdcall QueryCoords (
  907.         double * XMin,
  908.         double * YMin,
  909.         double * XMax,
  910.         double * YMax ) = 0;
  911.     virtual HRESULT __stdcall CenterAt (
  912.         struct IPoint * p ) = 0;
  913.     virtual HRESULT __stdcall get_MinMaxAttributes (
  914.         esriPointAttributes * * MinMaxAttributes ) = 0;
  915.     virtual HRESULT __stdcall put_MinMaxAttributes (
  916.         esriPointAttributes * MinMaxAttributes ) = 0;
  917. };
  918. struct __declspec(uuid("1b077915-38c5-11d0-92d2-00805f7c28b0"))
  919. IPoint : IGeometry
  920. {
  921.     //
  922.     // Raw methods provided by interface
  923.     //
  924.     virtual HRESULT __stdcall QueryCoords (
  925.         double * X,
  926.         double * Y ) = 0;
  927.     virtual HRESULT __stdcall PutCoords (
  928.         double X,
  929.         double Y ) = 0;
  930.     virtual HRESULT __stdcall get_X (
  931.         double * X ) = 0;
  932.     virtual HRESULT __stdcall put_X (
  933.         double X ) = 0;
  934.     virtual HRESULT __stdcall get_Y (
  935.         double * Y ) = 0;
  936.     virtual HRESULT __stdcall put_Y (
  937.         double Y ) = 0;
  938.     virtual HRESULT __stdcall get_Z (
  939.         double * Z ) = 0;
  940.     virtual HRESULT __stdcall put_Z (
  941.         double Z ) = 0;
  942.     virtual HRESULT __stdcall get_M (
  943.         double * M ) = 0;
  944.     virtual HRESULT __stdcall put_M (
  945.         double M ) = 0;
  946.     virtual HRESULT __stdcall get_ID (
  947.         long * pointID ) = 0;
  948.     virtual HRESULT __stdcall put_ID (
  949.         long pointID ) = 0;
  950.     virtual HRESULT __stdcall get_VertexAttribute (
  951.         enum esriGeometryAttributes attributeType,
  952.         double * attributeValue ) = 0;
  953.     virtual HRESULT __stdcall put_VertexAttribute (
  954.         enum esriGeometryAttributes attributeType,
  955.         double attributeValue ) = 0;
  956.     virtual HRESULT __stdcall ConstrainDistance (
  957.         double constraintRadius,
  958.         struct IPoint * anchor ) = 0;
  959.     virtual HRESULT __stdcall ConstrainAngle (
  960.         double constraintAngle,
  961.         struct IPoint * anchor,
  962.         VARIANT_BOOL allowOpposite ) = 0;
  963.     virtual HRESULT __stdcall Compare (
  964.         struct IPoint * otherPoint,
  965.         int * result ) = 0;
  966. };
  967. enum esriGeometryAttributes
  968. {
  969.     esriAttributeNone = 0,
  970.     esriAttributeZ = 128,
  971.     esriAttributeM = 64,
  972.     esriAttributeID = 16,
  973.     esriAttributeNormal = 8,
  974.     esriAttributeTexture = 4,
  975.     esriAttributeAll = 255
  976. };
  977. enum esriSpatialReferenceError
  978. {
  979.     S_SPATIALREFERENCE_OK = 0,
  980.     E_SPATIALREFERENCE_NOPRECISION = 514,
  981.     E_SPATIALREFERENCE_INVALID_PARAMETER = 515,
  982.     E_SPATIALREFERENCE_CANTDEFINESR = 516
  983. };
  984. enum esriSRHorizonType
  985. {
  986.     esriSRHorizon_Envelope = 0,
  987.     esriSRHorizon_Polygon = 1,
  988.     esriSRHorizon_Polyline = 2,
  989.     esriSRHorizon_Point = 3
  990. };
  991. struct esriSRHorizon
  992. {
  993.     char Inclusive;
  994.     enum esriSRHorizonType Type;
  995.     long PointCount;
  996.     WKSPoint * Points;
  997. };
  998. enum esriSRLimitsEnum
  999. {
  1000.     esriSR_MaxParameterCount = 16
  1001. };
  1002. struct __declspec(uuid("dae75100-1dd1-11b2-bf4d-08002022f573"))
  1003. IParameter : ISpatialReferenceInfo
  1004. {
  1005.     //
  1006.     // Raw methods provided by interface
  1007.     //
  1008.     virtual HRESULT __stdcall put_Value (
  1009.         double Value ) = 0;
  1010.     virtual HRESULT __stdcall get_Value (
  1011.         double * Value ) = 0;
  1012.     virtual HRESULT __stdcall get_Index (
  1013.         long * i ) = 0;
  1014. };
  1015. struct __declspec(uuid("0ae32400-1dd2-11b2-bf4d-08002022f573"))
  1016. IProjection : ISpatialReferenceInfo
  1017. {
  1018.     //
  1019.     // Raw methods provided by interface
  1020.     //
  1021.     virtual HRESULT __stdcall get_Usage (
  1022.         BSTR * Usage ) = 0;
  1023.     virtual HRESULT __stdcall get_Classification (
  1024.         BSTR * Classification ) = 0;
  1025.     virtual HRESULT __stdcall GetDefaultParameters (
  1026.         struct IParameter * * parameters ) = 0;
  1027.     virtual HRESULT __stdcall get_ProjectionImpl (
  1028.         esriProjectionImplHandle * ProjectionImpl ) = 0;
  1029. };
  1030. struct __declspec(uuid("40870d80-1dd2-11b2-bf4c-08002022f573"))
  1031. IGeographicCoordinateSystem : ISpatialReference
  1032. {
  1033.     //
  1034.     // Raw methods provided by interface
  1035.     //
  1036.     virtual HRESULT __stdcall get_Usage (
  1037.         BSTR * Usage ) = 0;
  1038.     virtual HRESULT __stdcall get_Datum (
  1039.         struct IDatum * * Datum ) = 0;
  1040.     virtual HRESULT __stdcall get_PrimeMeridian (
  1041.         struct IPrimeMeridian * * prime ) = 0;
  1042.     virtual HRESULT __stdcall get_CoordinateUnit (
  1043.         struct IAngularUnit * * CoordinateUnit ) = 0;
  1044. };
  1045. struct __declspec(uuid("53004780-1dd2-11b2-bf4b-08002022f573"))
  1046. IDatum : ISpatialReferenceInfo
  1047. {
  1048.     //
  1049.     // Raw methods provided by interface
  1050.     //
  1051.     virtual HRESULT __stdcall get_Spheroid (
  1052.         struct ISpheroid * * Spheroid ) = 0;
  1053. };
  1054. struct __declspec(uuid("429b9d00-1dd2-11b2-bf4b-08002022f573"))
  1055. ISpheroid : ISpatialReferenceInfo
  1056. {
  1057.     //
  1058.     // Raw methods provided by interface
  1059.     //
  1060.     virtual HRESULT __stdcall get_SemiMajorAxis (
  1061.         double * axis ) = 0;
  1062.     virtual HRESULT __stdcall get_SemiMinorAxis (
  1063.         double * axis ) = 0;
  1064.     virtual HRESULT __stdcall get_Flattening (
  1065.         double * Flattening ) = 0;
  1066. };
  1067. struct __declspec(uuid("f05b7b80-1dd1-11b2-bf4c-08002022f573"))
  1068. IPrimeMeridian : ISpatialReferenceInfo
  1069. {
  1070.     //
  1071.     // Raw methods provided by interface
  1072.     //
  1073.     virtual HRESULT __stdcall get_Longitude (
  1074.         double * Longitude ) = 0;
  1075. };
  1076. struct __declspec(uuid("74ad43f0-d31c-11d1-bc9b-0000f875bcce"))
  1077. IAngularUnit : IUnit
  1078. {
  1079.     //
  1080.     // Raw methods provided by interface
  1081.     //
  1082.     virtual HRESULT __stdcall get_RadiansPerUnit (
  1083.         double * RadiansPerUnit ) = 0;
  1084. };
  1085. struct __declspec(uuid("f94e4c00-1dd1-11b2-bf4e-08002022f573"))
  1086. IProjectedCoordinateSystem : ISpatialReference
  1087. {
  1088.     //
  1089.     // Raw methods provided by interface
  1090.     //
  1091.     virtual HRESULT __stdcall get_Usage (
  1092.         BSTR * Usage ) = 0;
  1093.     virtual HRESULT __stdcall get_GeographicCoordinateSystem (
  1094.         struct IGeographicCoordinateSystem * * geographic ) = 0;
  1095.     virtual HRESULT __stdcall get_Projection (
  1096.         struct IProjection * * Projection ) = 0;
  1097.     virtual HRESULT __stdcall GetParameters (
  1098.         struct IParameter * * parameters ) = 0;
  1099.     virtual HRESULT __stdcall get_CoordinateUnit (
  1100.         struct ILinearUnit * * unit ) = 0;
  1101.     virtual HRESULT __stdcall Forward (
  1102.         long Count,
  1103.         WKSPoint * Points ) = 0;
  1104.     virtual HRESULT __stdcall Inverse (
  1105.         long Count,
  1106.         WKSPoint * Points ) = 0;
  1107.     virtual HRESULT __stdcall get_HorizonCount (
  1108.         long * HorizonCount ) = 0;
  1109.     virtual HRESULT __stdcall get_Horizon (
  1110.         long horizonIndex,
  1111.         struct esriSRHorizon * * Horizon ) = 0;
  1112.     virtual HRESULT __stdcall get_CentralMeridian (
  1113.         VARIANT_BOOL inDegrees,
  1114.         double * CentralMeridian ) = 0;
  1115.     virtual HRESULT __stdcall put_CentralMeridian (
  1116.         VARIANT_BOOL inDegrees,
  1117.         double CentralMeridian ) = 0;
  1118.     virtual HRESULT __stdcall get_LongitudeOfOrigin (
  1119.         double * LongitudeOfOrigin ) = 0;
  1120.     virtual HRESULT __stdcall put_LongitudeOfOrigin (
  1121.         double LongitudeOfOrigin ) = 0;
  1122.     virtual HRESULT __stdcall get_LatitudeOf1st (
  1123.         double * standardLongitude1 ) = 0;
  1124.     virtual HRESULT __stdcall put_LatitudeOf1st (
  1125.         double standardLongitude1 ) = 0;
  1126.     virtual HRESULT __stdcall get_LatitudeOf2nd (
  1127.         double * LatitudeOf2nd ) = 0;
  1128.     virtual HRESULT __stdcall put_LatitudeOf2nd (
  1129.         double LatitudeOf2nd ) = 0;
  1130.     virtual HRESULT __stdcall get_FalseEasting (
  1131.         double * FalseEasting ) = 0;
  1132.     virtual HRESULT __stdcall put_FalseEasting (
  1133.         double FalseEasting ) = 0;
  1134.     virtual HRESULT __stdcall get_FalseNorthing (
  1135.         double * FalseNorthing ) = 0;
  1136.     virtual HRESULT __stdcall put_FalseNorthing (
  1137.         double FalseNorthing ) = 0;
  1138.     virtual HRESULT __stdcall get_CentralParallel (
  1139.         double * CentralParallel ) = 0;
  1140.     virtual HRESULT __stdcall put_CentralParallel (
  1141.         double CentralParallel ) = 0;
  1142.     virtual HRESULT __stdcall get_StandardParallel1 (
  1143.         double * StandardParallel1 ) = 0;
  1144.     virtual HRESULT __stdcall put_StandardParallel1 (
  1145.         double StandardParallel1 ) = 0;
  1146.     virtual HRESULT __stdcall get_StandardParallel2 (
  1147.         double * StandardParallel2 ) = 0;
  1148.     virtual HRESULT __stdcall put_StandardParallel2 (
  1149.         double StandardParallel2 ) = 0;
  1150.     virtual HRESULT __stdcall get_LongitudeOf1st (
  1151.         double * LongitudeOf1st ) = 0;
  1152.     virtual HRESULT __stdcall put_LongitudeOf1st (
  1153.         double LongitudeOf1st ) = 0;
  1154.     virtual HRESULT __stdcall get_LongitudeOf2nd (
  1155.         double * LongitudeOf2nd ) = 0;
  1156.     virtual HRESULT __stdcall put_LongitudeOf2nd (
  1157.         double LongitudeOf2nd ) = 0;
  1158.     virtual HRESULT __stdcall get_ScaleFactor (
  1159.         double * ScaleFactor ) = 0;
  1160.     virtual HRESULT __stdcall put_ScaleFactor (
  1161.         double ScaleFactor ) = 0;
  1162.     virtual HRESULT __stdcall get_Azimuth (
  1163.         double * Azimuth ) = 0;
  1164.     virtual HRESULT __stdcall put_Azimuth (
  1165.         double Azimuth ) = 0;
  1166. };
  1167. struct __declspec(uuid("6f2cf924-7e00-11d0-82f4-0000f8034032"))
  1168. ITransformation : IUnknown
  1169. {
  1170.     //
  1171.     // Raw methods provided by interface
  1172.     //
  1173.     virtual HRESULT __stdcall TransformMeasuresFF (
  1174.         enum esriTransformDirection direction,
  1175.         long cMeasures,
  1176.         double * inMeasures,
  1177.         double * outMeasures ) = 0;
  1178.     virtual HRESULT __stdcall TransformMeasuresFI (
  1179.         enum esriTransformDirection direction,
  1180.         long cMeasures,
  1181.         double * inMeasures,
  1182.         long * outMeasures ) = 0;
  1183.     virtual HRESULT __stdcall TransformMeasuresIF (
  1184.         enum esriTransformDirection direction,
  1185.         long cMeasures,
  1186.         long * inMeasures,
  1187.         double * outMeasures ) = 0;
  1188.     virtual HRESULT __stdcall TransformMeasuresII (
  1189.         enum esriTransformDirection direction,
  1190.         long cMeasures,
  1191.         long * inMeasures,
  1192.         long * outMeasures ) = 0;
  1193.     virtual HRESULT __stdcall TransformPointsFF (
  1194.         enum esriTransformDirection direction,
  1195.         long cPoints,
  1196.         double * inPoints,
  1197.         double * outPoints ) = 0;
  1198.     virtual HRESULT __stdcall TransformPointsFI (
  1199.         enum esriTransformDirection direction,
  1200.         long cPoints,
  1201.         double * inPoints,
  1202.         long * outPoints ) = 0;
  1203.     virtual HRESULT __stdcall TransformPointsIF (
  1204.         enum esriTransformDirection direction,
  1205.         long cPoints,
  1206.         long * inPoints,
  1207.         double * outPoints ) = 0;
  1208.     virtual HRESULT __stdcall TransformPointsII (
  1209.         enum esriTransformDirection direction,
  1210.         long cPoints,
  1211.         long * inPoints,
  1212.         long * outPoints ) = 0;
  1213. };
  1214. enum esriTransformDirection
  1215. {
  1216.     esriTransformForward = 0,
  1217.     esriTransformReverse = 1
  1218. };
  1219. struct __declspec(uuid("0049530e-e3ec-11d3-9f62-00c04f6bdd7f"))
  1220. IGeoTransformationOperationSet : IUnknown
  1221. {
  1222.     //
  1223.     // Raw methods provided by interface
  1224.     //
  1225.     virtual HRESULT __stdcall Set (
  1226.         enum esriTransformDirection direction,
  1227.         struct IGeoTransformation * transformation ) = 0;
  1228.     virtual HRESULT __stdcall Get (
  1229.         struct IGeographicCoordinateSystem * pFromGCS,
  1230.         struct IGeographicCoordinateSystem * pToGCS,
  1231.         enum esriTransformDirection * direction,
  1232.         struct IGeoTransformation * * transformation ) = 0;
  1233.     virtual HRESULT __stdcall Find (
  1234.         enum esriTransformDirection direction,
  1235.         struct IGeoTransformation * GT,
  1236.         VARIANT_BOOL * found ) = 0;
  1237.     virtual HRESULT __stdcall Remove (
  1238.         enum esriTransformDirection direction,
  1239.         struct IGeoTransformation * transformation ) = 0;
  1240.     virtual HRESULT __stdcall RemoveByKey (
  1241.         struct IGeographicCoordinateSystem * pFromGCS,
  1242.         struct IGeographicCoordinateSystem * pToGCS ) = 0;
  1243.     virtual HRESULT __stdcall Next (
  1244.         enum esriTransformDirection * direction,
  1245.         struct IGeoTransformation * * GT ) = 0;
  1246.     virtual HRESULT __stdcall Reset ( ) = 0;
  1247.     virtual HRESULT __stdcall RemoveAll ( ) = 0;
  1248.     virtual HRESULT __stdcall get_Count (
  1249.         long * gtCount ) = 0;
  1250. };
  1251. struct __declspec(uuid("9273bb60-c611-11d2-bd08-0000f875bcce"))
  1252. IGeoTransformation : ITransformation
  1253. {
  1254.     //
  1255.     // Raw methods provided by interface
  1256.     //
  1257.     virtual HRESULT __stdcall get_Name (
  1258.         BSTR * Name ) = 0;
  1259.     virtual HRESULT __stdcall put_Name (
  1260.         BSTR Name ) = 0;
  1261.     virtual HRESULT __stdcall GetSpatialReferences (
  1262.         struct ISpatialReference * * from,
  1263.         struct ISpatialReference * * to ) = 0;
  1264.     virtual HRESULT __stdcall PutSpatialReferences (
  1265.         struct ISpatialReference * from,
  1266.         struct ISpatialReference * to ) = 0;
  1267. };
  1268. struct __declspec(uuid("6cd10b60-c4f6-11d1-bc92-0000f875bcce"))
  1269. ISpatialReferenceFactory : IUnknown
  1270. {
  1271.     //
  1272.     // Raw methods provided by interface
  1273.     //
  1274.     virtual HRESULT __stdcall CreateESRISpatialReference (
  1275.         BSTR spatRefInfo,
  1276.         struct ISpatialReference * * SpatialReference,
  1277.         long * cBytesRead ) = 0;
  1278.     virtual HRESULT __stdcall CreateESRISpatialReferenceFromPRJ (
  1279.         BSTR prj,
  1280.         struct ISpatialReference * * SpatialReference ) = 0;
  1281.     virtual HRESULT __stdcall CreateESRISpatialReferenceFromPRJFile (
  1282.         BSTR prjFile,
  1283.         struct ISpatialReference * * SpatialReference ) = 0;
  1284.     virtual HRESULT __stdcall ExportESRISpatialReferenceToPRJFile (
  1285.         BSTR prjFile,
  1286.         struct ISpatialReference * SpatialReference ) = 0;
  1287.     virtual HRESULT __stdcall CreateUnit (
  1288.         long unitType,
  1289.         struct IUnit * * unit ) = 0;
  1290.     virtual HRESULT __stdcall CreateSpheroid (
  1291.         long spheroidType,
  1292.         struct ISpheroid * * Spheroid ) = 0;
  1293.     virtual HRESULT __stdcall CreateDatum (
  1294.         long datumType,
  1295.         struct IDatum * * Datum ) = 0;
  1296.     virtual HRESULT __stdcall CreatePrimeMeridian (
  1297.         long primeMeridianType,
  1298.         struct IPrimeMeridian * * PrimeMeridian ) = 0;
  1299.     virtual HRESULT __stdcall CreateProjection (
  1300.         long projectionType,
  1301.         struct IProjection * * Projection ) = 0;
  1302.     virtual HRESULT __stdcall CreateParameter (
  1303.         long parameterType,
  1304.         struct IParameter * * newParameter ) = 0;
  1305.     virtual HRESULT __stdcall CreateProjectedCoordinateSystem (
  1306.         long pcsType,
  1307.         struct IProjectedCoordinateSystem * * pcs ) = 0;
  1308.     virtual HRESULT __stdcall CreateGeographicCoordinateSystem (
  1309.         long gcsType,
  1310.         struct IGeographicCoordinateSystem * * gcs ) = 0;
  1311.     virtual HRESULT __stdcall CreateGeoTransformation (
  1312.         long gTransformationType,
  1313.         struct ITransformation * * GeoTransformation ) = 0;
  1314.     virtual HRESULT __stdcall CreatePredefinedProjections (
  1315.         struct ISet * * projections ) = 0;
  1316.     virtual HRESULT __stdcall CreatePredefinedLinearUnits (
  1317.         struct ISet * * linearUnits ) = 0;
  1318.     virtual HRESULT __stdcall CreatePredefinedDatums (
  1319.         struct ISet * * datums ) = 0;
  1320.     virtual HRESULT __stdcall CreatePredefinedAngularUnits (
  1321.         struct ISet * * angularUnits ) = 0;
  1322.     virtual HRESULT __stdcall CreatePredefinedPrimeMeridians (
  1323.         struct ISet * * primeMeridians ) = 0;
  1324.     virtual HRESULT __stdcall CreatePredefinedSpheroids (
  1325.         struct ISet * * spheroids ) = 0;
  1326. };
  1327. enum esriSRPoleLocation
  1328. {
  1329.     esriSRPole_OutsideBoundary = 0,
  1330.     esriSRPole_OnBoundary = 1,
  1331.     esriSRPole_InsideBoundary = 2
  1332. };
  1333. enum esriSRPoleGeometry
  1334. {
  1335.     esriSRPole_None = 0,
  1336.     esriSRPole_IsPoint = 1,
  1337.     esriSRPole_IsStraightLine = 2,
  1338.     esriSRPole_IsCurvedLine = 3
  1339. };
  1340. struct __declspec(uuid("5f015fe6-38cf-451d-81cd-7e784b71add7"))
  1341. ITransformationGEN : IUnknown
  1342. {
  1343.     //
  1344.     // Raw methods provided by interface
  1345.     //
  1346.     virtual HRESULT __stdcall TransformMeasuresFF (
  1347.         enum esriTransformDirection direction,
  1348.         SAFEARRAY * * inMeasures,
  1349.         SAFEARRAY * * outMeasures ) = 0;
  1350.     virtual HRESULT __stdcall TransformMeasuresFI (
  1351.         enum esriTransformDirection direction,
  1352.         SAFEARRAY * * inMeasures,
  1353.         SAFEARRAY * * outMeasures ) = 0;
  1354.     virtual HRESULT __stdcall TransformMeasuresIF (
  1355.         enum esriTransformDirection direction,
  1356.         SAFEARRAY * * inMeasures,
  1357.         SAFEARRAY * * outMeasures ) = 0;
  1358.     virtual HRESULT __stdcall TransformMeasuresII (
  1359.         enum esriTransformDirection direction,
  1360.         SAFEARRAY * * inMeasures,
  1361.         SAFEARRAY * * outMeasures ) = 0;
  1362.     virtual HRESULT __stdcall TransformPointsFF (
  1363.         enum esriTransformDirection direction,
  1364.         SAFEARRAY * * inPoints,
  1365.         SAFEARRAY * * outPoints ) = 0;
  1366.     virtual HRESULT __stdcall TransformPointsFI (
  1367.         enum esriTransformDirection direction,
  1368.         SAFEARRAY * * inPoints,
  1369.         SAFEARRAY * * outPoints ) = 0;
  1370.     virtual HRESULT __stdcall TransformPointsIF (
  1371.         enum esriTransformDirection direction,
  1372.         SAFEARRAY * * inPoints,
  1373.         SAFEARRAY * * outPoints ) = 0;
  1374.     virtual HRESULT __stdcall TransformPointsII (
  1375.         enum esriTransformDirection direction,
  1376.         SAFEARRAY * * inPoints,
  1377.         SAFEARRAY * * outPoints ) = 0;
  1378. };
  1379. struct __declspec(uuid("62040069-0799-422f-b2a6-1ac5b63bcaa2"))
  1380. IMolodenskyBadekasTransformation : IGeoTransformation
  1381. {
  1382.     //
  1383.     // Raw methods provided by interface
  1384.     //
  1385.     virtual HRESULT __stdcall PutParameters (
  1386.         double dx,
  1387.         double dy,
  1388.         double dz,
  1389.         double rx,
  1390.         double ry,
  1391.         double rz,
  1392.         double s,
  1393.         double xcr,
  1394.         double ycr,
  1395.         double zcr ) = 0;
  1396.     virtual HRESULT __stdcall GetParameters (
  1397.         double * dx,
  1398.         double * dy,
  1399.         double * dz,
  1400.         double * rx,
  1401.         double * ry,
  1402.         double * rz,
  1403.         double * s,
  1404.         double * xcr,
  1405.         double * ycr,
  1406.         double * zcr ) = 0;
  1407. };
  1408. struct __declspec(uuid("3be52788-dda4-11d3-9f61-00c04f6bdd7f"))
  1409. ICompositeGeoTransformation : IGeoTransformation
  1410. {
  1411.     //
  1412.     // Raw methods provided by interface
  1413.     //
  1414.     virtual HRESULT __stdcall Add (
  1415.         enum esriTransformDirection direction,
  1416.         struct IGeoTransformation * pXForm ) = 0;
  1417.     virtual HRESULT __stdcall get_GeoTransformation (
  1418.         long i,
  1419.         struct IGeoTransformation * * geoXForm ) = 0;
  1420.     virtual HRESULT __stdcall get_TransformationDirection (
  1421.         long i,
  1422.         enum esriTransformDirection * direction ) = 0;
  1423.     virtual HRESULT __stdcall get_Count (
  1424.         long * geoTransformationElement ) = 0;
  1425.     virtual HRESULT __stdcall SetEmpty ( ) = 0;
  1426. };
  1427. struct __declspec(uuid("063954b0-c1fb-11d2-bd07-0000f875bcce"))
  1428. IGeocentricTranslation : IGeoTransformation
  1429. {
  1430.     //
  1431.     // Raw methods provided by interface
  1432.     //
  1433.     virtual HRESULT __stdcall GetParameters (
  1434.         double * dx,
  1435.         double * dy,
  1436.         double * dz ) = 0;
  1437.     virtual HRESULT __stdcall PutParameters (
  1438.         double dx,
  1439.         double dy,
  1440.         double dz ) = 0;
  1441. };
  1442. struct __declspec(uuid("063954b1-c1fb-11d2-bd07-0000f875bcce"))
  1443. IPositionVectorTransformation : IGeoTransformation
  1444. {
  1445.     //
  1446.     // Raw methods provided by interface
  1447.     //
  1448.     virtual HRESULT __stdcall PutParameters (
  1449.         double dx,
  1450.         double dy,
  1451.         double dz,
  1452.         double rx,
  1453.         double ry,
  1454.         double rz,
  1455.         double s ) = 0;
  1456.     virtual HRESULT __stdcall GetParameters (
  1457.         double * dx,
  1458.         double * dy,
  1459.         double * dz,
  1460.         double * rx,
  1461.         double * ry,
  1462.         double * rz,
  1463.         double * s ) = 0;
  1464. };
  1465. struct __declspec(uuid("0cdf92b2-c2a0-11d2-bd08-0000f875bcce"))
  1466. ICoordinateFrameTransformation : IGeoTransformation
  1467. {
  1468.     //
  1469.     // Raw methods provided by interface
  1470.     //
  1471.     virtual HRESULT __stdcall PutParameters (
  1472.         double dx,
  1473.         double dy,
  1474.         double dz,
  1475.         double rx,
  1476.         double ry,
  1477.         double rz,
  1478.         double s ) = 0;
  1479.     virtual HRESULT __stdcall GetParameters (
  1480.         double * dx,
  1481.         double * dy,
  1482.         double * dz,
  1483.         double * rx,
  1484.         double * ry,
  1485.         double * rz,
  1486.         double * s ) = 0;
  1487. };
  1488. struct __declspec(uuid("0cdf92b3-c2a0-11d2-bd08-0000f875bcce"))
  1489. IMolodenskyTransformation : IGeoTransformation
  1490. {
  1491.     //
  1492.     // Raw methods provided by interface
  1493.     //
  1494.     virtual HRESULT __stdcall GetParameters (
  1495.         double * dx,
  1496.         double * dy,
  1497.         double * dz ) = 0;
  1498.     virtual HRESULT __stdcall PutParameters (
  1499.         double dx,
  1500.         double dy,
  1501.         double dz ) = 0;
  1502. };
  1503. struct __declspec(uuid("b807845e-da8a-11d3-9f60-00c04f6bdd7f"))
  1504. IGridTransformation : IGeoTransformation
  1505. {
  1506.     //
  1507.     // Raw methods provided by interface
  1508.     //
  1509.     virtual HRESULT __stdcall put_GridDatasetName (
  1510.         BSTR datasetName ) = 0;
  1511.     virtual HRESULT __stdcall get_GridDatasetName (
  1512.         BSTR * datasetName ) = 0;
  1513.     virtual HRESULT __stdcall Load ( ) = 0;
  1514.     virtual HRESULT __stdcall Unload ( ) = 0;
  1515. };
  1516. struct __declspec(uuid("64c7c780-da8b-11d3-9f60-00c04f6bdd7f"))
  1517. ILongitudeRotationTransformation : IGeoTransformation
  1518. {
  1519.     //
  1520.     // Raw methods provided by interface
  1521.     //
  1522.     virtual HRESULT __stdcall get_Rotation (
  1523.         double * rz ) = 0;
  1524. };
  1525. struct __declspec(uuid("3b563182-cf62-4d40-9157-5022f7ae4561"))
  1526. ISpatialReference2GEN : IUnknown
  1527. {
  1528.     //
  1529.     // Raw methods provided by interface
  1530.     //
  1531.     virtual HRESULT __stdcall get_Name (
  1532.         BSTR * Name ) = 0;
  1533.     virtual HRESULT __stdcall get_Alias (
  1534.         BSTR * Alias ) = 0;
  1535.     virtual HRESULT __stdcall get_Abbreviation (
  1536.         BSTR * Abbreviation ) = 0;
  1537.     virtual HRESULT __stdcall get_Remarks (
  1538.         BSTR * Remarks ) = 0;
  1539.     virtual HRESULT __stdcall get_FactoryCode (
  1540.         long * code ) = 0;
  1541.     virtual HRESULT __stdcall get_SpatialReferenceImpl (
  1542.         esriSpatialReferenceImplHandle * srImpl ) = 0;
  1543.     virtual HRESULT __stdcall get_PrecisionImpl (
  1544.         esriPrecisionImplHandle * PrecisionImpl ) = 0;
  1545.     virtual HRESULT __stdcall get_PrecisionExImpl (
  1546.         esriPrecisionExImplHandle * PrecisionExImpl ) = 0;
  1547.     virtual HRESULT __stdcall HasXYPrecision (
  1548.         VARIANT_BOOL * HasXYPrecision ) = 0;
  1549.     virtual HRESULT __stdcall HasZPrecision (
  1550.         VARIANT_BOOL * HasZPrecision ) = 0;
  1551.     virtual HRESULT __stdcall HasMPrecision (
  1552.         VARIANT_BOOL * HasMPrecision ) = 0;
  1553.     virtual HRESULT __stdcall IsPrecisionEqual (
  1554.         struct ISpatialReference * otherSR,
  1555.         VARIANT_BOOL * IsPrecisionEqual ) = 0;
  1556.     virtual HRESULT __stdcall SetFalseOriginAndUnits (
  1557.         double falseX,
  1558.         double falseY,
  1559.         double xyUnits ) = 0;
  1560.     virtual HRESULT __stdcall SetZFalseOriginAndUnits (
  1561.         double falseZ,
  1562.         double zUnits ) = 0;
  1563.     virtual HRESULT __stdcall SetMFalseOriginAndUnits (
  1564.         double falseM,
  1565.         double mUnits ) = 0;
  1566.     virtual HRESULT __stdcall GetFalseOriginAndUnits (
  1567.         double * falseX,
  1568.         double * falseY,
  1569.         double * xyUnits ) = 0;
  1570.     virtual HRESULT __stdcall GetZFalseOriginAndUnits (
  1571.         double * falseZ,
  1572.         double * zUnits ) = 0;
  1573.     virtual HRESULT __stdcall GetMFalseOriginAndUnits (
  1574.         double * falseM,
  1575.         double * mUnits ) = 0;
  1576.     virtual HRESULT __stdcall GetDomain (
  1577.         double * XMin,
  1578.         double * XMax,
  1579.         double * YMin,
  1580.         double * YMax ) = 0;
  1581.     virtual HRESULT __stdcall SetDomain (
  1582.         double XMin,
  1583.         double XMax,
  1584.         double YMin,
  1585.         double YMax ) = 0;
  1586.     virtual HRESULT __stdcall GetZDomain (
  1587.         double * outZMin,
  1588.         double * outZMax ) = 0;
  1589.     virtual HRESULT __stdcall SetZDomain (
  1590.         double inZMin,
  1591.         double inZMax ) = 0;
  1592.     virtual HRESULT __stdcall GetMDomain (
  1593.         double * outMMin,
  1594.         double * outMMax ) = 0;
  1595.     virtual HRESULT __stdcall SetMDomain (
  1596.         double inMMin,
  1597.         double inMMax ) = 0;
  1598.     virtual HRESULT __stdcall get_ZCoordinateUnit (
  1599.         struct ILinearUnit * * zunit ) = 0;
  1600.     virtual HRESULT __stdcall put_ZCoordinateUnit (
  1601.         struct ILinearUnit * zunit ) = 0;
  1602.     virtual HRESULT __stdcall Changed ( ) = 0;
  1603.     virtual HRESULT __stdcall IsXYPrecisionEqual (
  1604.         struct ISpatialReference * otherSR,
  1605.         VARIANT_BOOL * IsXYPrecisionEqual ) = 0;
  1606.     virtual HRESULT __stdcall IsMPrecisionEqual (
  1607.         struct ISpatialReference * otherSR,
  1608.         VARIANT_BOOL * IsMPrecisionEqual ) = 0;
  1609.     virtual HRESULT __stdcall IsZPrecisionEqual (
  1610.         struct ISpatialReference * otherSR,
  1611.         VARIANT_BOOL * IsZPrecisionEqual ) = 0;
  1612.     virtual HRESULT __stdcall ApplyXYPrecision (
  1613.         SAFEARRAY * * Points ) = 0;
  1614.     virtual HRESULT __stdcall ApplyPrecision (
  1615.         SAFEARRAY * * Points,
  1616.         SAFEARRAY * * ms,
  1617.         SAFEARRAY * * zs ) = 0;
  1618. };
  1619. struct __declspec(uuid("d44edb15-8866-4641-872d-3c81f73ac8aa"))
  1620. IProjectedCoordinateSystem4GEN : IUnknown
  1621. {
  1622.     //
  1623.     // Raw methods provided by interface
  1624.     //
  1625.     virtual HRESULT __stdcall get_Name (
  1626.         BSTR * Name ) = 0;
  1627.     virtual HRESULT __stdcall get_Alias (
  1628.         BSTR * Alias ) = 0;
  1629.     virtual HRESULT __stdcall get_Abbreviation (
  1630.         BSTR * Abbreviation ) = 0;
  1631.     virtual HRESULT __stdcall get_Remarks (
  1632.         BSTR * Remarks ) = 0;
  1633.     virtual HRESULT __stdcall get_FactoryCode (
  1634.         long * code ) = 0;
  1635.     virtual HRESULT __stdcall get_SpatialReferenceImpl (
  1636.         esriSpatialReferenceImplHandle * srImpl ) = 0;
  1637.     virtual HRESULT __stdcall get_PrecisionImpl (
  1638.         esriPrecisionImplHandle * PrecisionImpl ) = 0;
  1639.     virtual HRESULT __stdcall get_PrecisionExImpl (
  1640.         esriPrecisionExImplHandle * PrecisionExImpl ) = 0;
  1641.     virtual HRESULT __stdcall HasXYPrecision (
  1642.         VARIANT_BOOL * HasXYPrecision ) = 0;
  1643.     virtual HRESULT __stdcall HasZPrecision (
  1644.         VARIANT_BOOL * HasZPrecision ) = 0;
  1645.     virtual HRESULT __stdcall HasMPrecision (
  1646.         VARIANT_BOOL * HasMPrecision ) = 0;
  1647.     virtual HRESULT __stdcall IsPrecisionEqual (
  1648.         struct ISpatialReference * otherSR,
  1649.         VARIANT_BOOL * IsPrecisionEqual ) = 0;
  1650.     virtual HRESULT __stdcall SetFalseOriginAndUnits (
  1651.         double falseX,
  1652.         double falseY,
  1653.         double xyUnits ) = 0;
  1654.     virtual HRESULT __stdcall SetZFalseOriginAndUnits (
  1655.         double falseZ,
  1656.         double zUnits ) = 0;
  1657.     virtual HRESULT __stdcall SetMFalseOriginAndUnits (
  1658.         double falseM,
  1659.         double mUnits ) = 0;
  1660.     virtual HRESULT __stdcall GetFalseOriginAndUnits (
  1661.         double * falseX,
  1662.         double * falseY,
  1663.         double * xyUnits ) = 0;
  1664.     virtual HRESULT __stdcall GetZFalseOriginAndUnits (
  1665.         double * falseZ,
  1666.         double * zUnits ) = 0;
  1667.     virtual HRESULT __stdcall GetMFalseOriginAndUnits (
  1668.         double * falseM,
  1669.         double * mUnits ) = 0;
  1670.     virtual HRESULT __stdcall GetDomain (
  1671.         double * XMin,
  1672.         double * XMax,
  1673.         double * YMin,
  1674.         double * YMax ) = 0;
  1675.     virtual HRESULT __stdcall SetDomain (
  1676.         double XMin,
  1677.         double XMax,
  1678.         double YMin,
  1679.         double YMax ) = 0;
  1680.     virtual HRESULT __stdcall GetZDomain (
  1681.         double * outZMin,
  1682.         double * outZMax ) = 0;
  1683.     virtual HRESULT __stdcall SetZDomain (
  1684.         double inZMin,
  1685.         double inZMax ) = 0;
  1686.     virtual HRESULT __stdcall GetMDomain (
  1687.         double * outMMin,
  1688.         double * outMMax ) = 0;
  1689.     virtual HRESULT __stdcall SetMDomain (
  1690.         double inMMin,
  1691.         double inMMax ) = 0;
  1692.     virtual HRESULT __stdcall get_ZCoordinateUnit (
  1693.         struct ILinearUnit * * zunit ) = 0;
  1694.     virtual HRESULT __stdcall put_ZCoordinateUnit (
  1695.         struct ILinearUnit * zunit ) = 0;
  1696.     virtual HRESULT __stdcall Changed ( ) = 0;
  1697.     virtual HRESULT __stdcall get_Usage (
  1698.         BSTR * Usage ) = 0;
  1699.     virtual HRESULT __stdcall get_GeographicCoordinateSystem (
  1700.         struct IGeographicCoordinateSystem * * geographic ) = 0;
  1701.     virtual HRESULT __stdcall get_Projection (
  1702.         struct IProjection * * Projection ) = 0;
  1703.     virtual HRESULT __stdcall GetParameters (
  1704.         SAFEARRAY * * parameters ) = 0;
  1705.     virtual HRESULT __stdcall get_CoordinateUnit (
  1706.         struct ILinearUnit * * unit ) = 0;
  1707.     virtual HRESULT __stdcall Forward (
  1708.         SAFEARRAY * * Points ) = 0;
  1709.     virtual HRESULT __stdcall Inverse (
  1710.         SAFEARRAY * * Points ) = 0;
  1711.     virtual HRESULT __stdcall get_HorizonCount (
  1712.         long * HorizonCount ) = 0;
  1713.     virtual HRESULT __stdcall get_Horizon (
  1714.         long horizonIndex,
  1715.         struct esriSRHorizon * * Horizon ) = 0;
  1716.     virtual HRESULT __stdcall get_CentralMeridian (
  1717.         VARIANT_BOOL inDegrees,
  1718.         double * CentralMeridian ) = 0;
  1719.     virtual HRESULT __stdcall put_CentralMeridian (
  1720.         VARIANT_BOOL inDegrees,
  1721.         double CentralMeridian ) = 0;
  1722.     virtual HRESULT __stdcall get_LongitudeOfOrigin (
  1723.         double * LongitudeOfOrigin ) = 0;
  1724.     virtual HRESULT __stdcall put_LongitudeOfOrigin (
  1725.         double LongitudeOfOrigin ) = 0;
  1726.     virtual HRESULT __stdcall get_LatitudeOf1st (
  1727.         double * standardLongitude1 ) = 0;
  1728.     virtual HRESULT __stdcall put_LatitudeOf1st (
  1729.         double standardLongitude1 ) = 0;
  1730.     virtual HRESULT __stdcall get_LatitudeOf2nd (
  1731.         double * LatitudeOf2nd ) = 0;
  1732.     virtual HRESULT __stdcall put_LatitudeOf2nd (
  1733.         double LatitudeOf2nd ) = 0;
  1734.     virtual HRESULT __stdcall get_FalseEasting (
  1735.         double * FalseEasting ) = 0;
  1736.     virtual HRESULT __stdcall put_FalseEasting (
  1737.         double FalseEasting ) = 0;
  1738.     virtual HRESULT __stdcall get_FalseNorthing (
  1739.         double * FalseNorthing ) = 0;
  1740.     virtual HRESULT __stdcall put_FalseNorthing (
  1741.         double FalseNorthing ) = 0;
  1742.     virtual HRESULT __stdcall get_CentralParallel (
  1743.         double * CentralParallel ) = 0;
  1744.     virtual HRESULT __stdcall put_CentralParallel (
  1745.         double CentralParallel ) = 0;
  1746.     virtual HRESULT __stdcall get_StandardParallel1 (
  1747.         double * StandardParallel1 ) = 0;
  1748.     virtual HRESULT __stdcall put_StandardParallel1 (
  1749.         double StandardParallel1 ) = 0;
  1750.     virtual HRESULT __stdcall get_StandardParallel2 (
  1751.         double * StandardParallel2 ) = 0;
  1752.     virtual HRESULT __stdcall put_StandardParallel2 (
  1753.         double StandardParallel2 ) = 0;
  1754.     virtual HRESULT __stdcall get_LongitudeOf1st (
  1755.         double * LongitudeOf1st ) = 0;
  1756.     virtual HRESULT __stdcall put_LongitudeOf1st (
  1757.         double LongitudeOf1st ) = 0;
  1758.     virtual HRESULT __stdcall get_LongitudeOf2nd (
  1759.         double * LongitudeOf2nd ) = 0;
  1760.     virtual HRESULT __stdcall put_LongitudeOf2nd (
  1761.         double LongitudeOf2nd ) = 0;
  1762.     virtual HRESULT __stdcall get_ScaleFactor (
  1763.         double * ScaleFactor ) = 0;
  1764.     virtual HRESULT __stdcall put_ScaleFactor (
  1765.         double ScaleFactor ) = 0;
  1766.     virtual HRESULT __stdcall get_Azimuth (
  1767.         double * Azimuth ) = 0;
  1768.     virtual HRESULT __stdcall put_Azimuth (
  1769.         double Azimuth ) = 0;
  1770.     virtual HRESULT __stdcall get_LongitudeOfCenter (
  1771.         double * LongitudeOfCenter ) = 0;
  1772.     virtual HRESULT __stdcall put_LongitudeOfCenter (
  1773.         double LongitudeOfCenter ) = 0;
  1774.     virtual HRESULT __stdcall get_LatitudeOfCenter (
  1775.         double * LatitudeOfCenter ) = 0;
  1776.     virtual HRESULT __stdcall put_LatitudeOfCenter (
  1777.         double LatitudeOfCenter ) = 0;
  1778.     virtual HRESULT __stdcall GetGCSParams (
  1779.         double * p_180,
  1780.         double * pDelta ) = 0;
  1781.     virtual HRESULT __stdcall GetHorizon (
  1782.         WKSEnvelope * horizonEnvelope,
  1783.         VARIANT_BOOL * Inclusive,
  1784.         struct IGeometry * * ppHorizon ) = 0;
  1785.     virtual HRESULT __stdcall GetShiftedHorizon (
  1786.         int shift,
  1787.         struct IGeometry * * ppHorizon ) = 0;
  1788.     virtual HRESULT __stdcall get_PseudoStandardParallel1 (
  1789.         double * psp1 ) = 0;
  1790.     virtual HRESULT __stdcall put_PseudoStandardParallel1 (
  1791.         double psp1 ) = 0;
  1792.     virtual HRESULT __stdcall get_XScaleFactor (
  1793.         double * xs ) = 0;
  1794.     virtual HRESULT __stdcall put_XScaleFactor (
  1795.         double xs ) = 0;
  1796.     virtual HRESULT __stdcall get_YScaleFactor (
  1797.         double * ys ) = 0;
  1798.     virtual HRESULT __stdcall put_YScaleFactor (
  1799.         double ys ) = 0;
  1800.     virtual HRESULT __stdcall get_Rotation (
  1801.         double * r ) = 0;
  1802.     virtual HRESULT __stdcall put_Rotation (
  1803.         double r ) = 0;
  1804.     virtual HRESULT __stdcall InverseWithShift (
  1805.         double shift,
  1806.         SAFEARRAY * * Points ) = 0;
  1807.     virtual HRESULT __stdcall PutLinearAndAngularUnits (
  1808.         struct ILinearUnit * LinearUnit,
  1809.         struct IAngularUnit * AngularUnit ) = 0;
  1810.     virtual HRESULT __stdcall get_LatitudeOfOrigin (
  1811.         double * LatitudeOfOrigin ) = 0;
  1812.     virtual HRESULT __stdcall put_LatitudeOfOrigin (
  1813.         double LatitudeOfOrigin ) = 0;
  1814.     virtual HRESULT __stdcall IsEqualNoNames (
  1815.         struct IProjectedCoordinateSystem * pOther,
  1816.         VARIANT_BOOL * equalNoNames ) = 0;
  1817.     virtual HRESULT __stdcall get_Height (
  1818.         double * Height ) = 0;
  1819.     virtual HRESULT __stdcall put_Height (
  1820.         double Height ) = 0;
  1821.     virtual HRESULT __stdcall GetPCSHorizon (
  1822.         WKSEnvelope * horizonEnvelope,
  1823.         VARIANT_BOOL * Inclusive,
  1824.         struct IGeometry * * Horizon ) = 0;
  1825.     virtual HRESULT __stdcall GetCentralLongitude (
  1826.         double * centralLongitude ) = 0;
  1827.     virtual HRESULT __stdcall GetNorthPole (
  1828.         WKSPoint * pole ) = 0;
  1829.     virtual HRESULT __stdcall GetSouthPole (
  1830.         WKSPoint * pole ) = 0;
  1831.     virtual HRESULT __stdcall GetNorthPoleLocation (
  1832.         enum esriSRPoleLocation * poleLocation ) = 0;
  1833.     virtual HRESULT __stdcall GetSouthPoleLocation (
  1834.         enum esriSRPoleLocation * poleLocation ) = 0;
  1835.     virtual HRESULT __stdcall GetNorthPoleGeometry (
  1836.         enum esriSRPoleGeometry * poleGeometry ) = 0;
  1837.     virtual HRESULT __stdcall GetSouthPoleGeometry (
  1838.         enum esriSRPoleGeometry * poleGeometry ) = 0;
  1839.     virtual HRESULT __stdcall IsHorizonEdgeDuplicated (
  1840.         VARIANT_BOOL * isEdgeDuplicated ) = 0;
  1841.     virtual HRESULT __stdcall IsHorizonConvexHull (
  1842.         VARIANT_BOOL * isConvexHull ) = 0;
  1843.     virtual HRESULT __stdcall IsHorizonEntireWorld (
  1844.         VARIANT_BOOL * isWorld ) = 0;
  1845. };
  1846. struct __declspec(uuid("3b219f22-d3ff-11d1-bc9b-0000f875bcce"))
  1847. IAngularUnitEdit : IUnknown
  1848. {
  1849.     //
  1850.     // Raw methods provided by interface
  1851.     //
  1852.     virtual HRESULT __stdcall DefineEx (
  1853.         BSTR Name,
  1854.         BSTR Alias,
  1855.         BSTR Abbreviation,
  1856.         BSTR Remarks,
  1857.         double * RadiansPerUnit ) = 0;
  1858.     virtual HRESULT __stdcall Define (
  1859.         VARIANT * Name = &vtMissing,
  1860.         VARIANT * Alias = &vtMissing,
  1861.         VARIANT * Abbreviation = &vtMissing,
  1862.         VARIANT * Remarks = &vtMissing,
  1863.         VARIANT * RadiansPerUnit = &vtMissing ) = 0;
  1864. };
  1865. struct __declspec(uuid("3b219f23-d3ff-11d1-bc9b-0000f875bcce"))
  1866. ILinearUnitEdit : IUnknown
  1867. {
  1868.     //
  1869.     // Raw methods provided by interface
  1870.     //
  1871.     virtual HRESULT __stdcall DefineEx (
  1872.         BSTR Name,
  1873.         BSTR Alias,
  1874.         BSTR Abbreviation,
  1875.         BSTR Remarks,
  1876.         double * MetersPerUnit ) = 0;
  1877.     virtual HRESULT __stdcall Define (
  1878.         VARIANT * Name = &vtMissing,
  1879.         VARIANT * Alias = &vtMissing,
  1880.         VARIANT * Abbreviation = &vtMissing,
  1881.         VARIANT * Remarks = &vtMissing,
  1882.         VARIANT * MetersPerUnit = &vtMissing ) = 0;
  1883. };
  1884. struct __declspec(uuid("3b219f20-d3ff-11d1-bc9b-0000f875bcce"))
  1885. ISpheroidEdit : IUnknown
  1886. {
  1887.     //
  1888.     // Raw methods provided by interface
  1889.     //
  1890.     virtual HRESULT __stdcall DefineEx (
  1891.         BSTR Name,
  1892.         BSTR Alias,
  1893.         BSTR Abbreviation,
  1894.         BSTR Remarks,
  1895.         double * majorAxis,
  1896.         double * Flattening ) = 0;
  1897.     virtual HRESULT __stdcall Define (
  1898.         VARIANT * Name = &vtMissing,
  1899.         VARIANT * Alias = &vtMissing,
  1900.         VARIANT * Abbreviation = &vtMissing,
  1901.         VARIANT * Remarks = &vtMissing,
  1902.         VARIANT * majorAxis = &vtMissing,
  1903.         VARIANT * Flattening = &vtMissing ) = 0;
  1904. };
  1905. struct __declspec(uuid("3b219f21-d3ff-11d1-bc9b-0000f875bcce"))
  1906. IDatumEdit : IUnknown
  1907. {
  1908.     //
  1909.     // Raw methods provided by interface
  1910.     //
  1911.     virtual HRESULT __stdcall DefineEx (
  1912.         BSTR Name,
  1913.         BSTR Alias,
  1914.         BSTR Abbreviation,
  1915.         BSTR Remarks,
  1916.         struct ISpheroid * Spheroid ) = 0;
  1917.     virtual HRESULT __stdcall Define (
  1918.         VARIANT * Name = &vtMissing,
  1919.         VARIANT * Alias = &vtMissing,
  1920.         VARIANT * Abbreviation = &vtMissing,
  1921.         VARIANT * Remarks = &vtMissing,
  1922.         VARIANT * Spheroid = &vtMissing ) = 0;
  1923. };
  1924. struct __declspec(uuid("228d7221-d335-11d1-bc9b-0000f875bcce"))
  1925. IPrimeMeridianEdit : IUnknown
  1926. {
  1927.     //
  1928.     // Raw methods provided by interface
  1929.     //
  1930.     virtual HRESULT __stdcall DefineEx (
  1931.         BSTR Name,
  1932.         BSTR Alias,
  1933.         BSTR Abbreviation,
  1934.         BSTR Remarks,
  1935.         double * Longitude ) = 0;
  1936.     virtual HRESULT __stdcall Define (
  1937.         VARIANT * Name = &vtMissing,
  1938.         VARIANT * Alias = &vtMissing,
  1939.         VARIANT * Abbreviation = &vtMissing,
  1940.         VARIANT * Remarks = &vtMissing,
  1941.         VARIANT * Longitude = &vtMissing ) = 0;
  1942. };
  1943. struct __declspec(uuid("f78b2a38-89c4-11d4-9f9f-00c04f6bc8e8"))
  1944. IGeographicCoordinateSystem2 : IGeographicCoordinateSystem
  1945. {
  1946.     //
  1947.     // Raw methods provided by interface
  1948.     //
  1949.     virtual HRESULT __stdcall GetGCSParams (
  1950.         double * p_180,
  1951.         double * pDelta ) = 0;
  1952.     virtual HRESULT __stdcall GetHorizon (
  1953.         WKSEnvelope * horizonEnvelope ) = 0;
  1954.     virtual HRESULT __stdcall get_AngularConversionFactor (
  1955.         struct IGeographicCoordinateSystem2 * pDstGCS,
  1956.         double * pFactor ) = 0;
  1957.     virtual HRESULT __stdcall get_LeftLongitude (
  1958.         VARIANT_BOOL inDegrees,
  1959.         double * LeftLongitude ) = 0;
  1960.     virtual HRESULT __stdcall put_LeftLongitude (
  1961.         VARIANT_BOOL inDegrees,
  1962.         double LeftLongitude ) = 0;
  1963.     virtual HRESULT __stdcall get_RightLongitude (
  1964.         VARIANT_BOOL inDegrees,
  1965.         double * RightLongitude ) = 0;
  1966.     virtual HRESULT __stdcall put_RightLongitude (
  1967.         VARIANT_BOOL inDegrees,
  1968.         double RightLongitude ) = 0;
  1969.     virtual HRESULT __stdcall put_ExtentHint (
  1970.         WKSEnvelope * _arg1 ) = 0;
  1971. };
  1972. struct __declspec(uuid("3b219f24-d3ff-11d1-bc9b-0000f875bcce"))
  1973. IGeographicCoordinateSystemEdit : IUnknown
  1974. {
  1975.     //
  1976.     // Raw methods provided by interface
  1977.     //
  1978.     virtual HRESULT __stdcall DefineEx (
  1979.         BSTR Name,
  1980.         BSTR Alias,
  1981.         BSTR Abbreviation,
  1982.         BSTR Remarks,
  1983.         BSTR useage,
  1984.         struct IDatum * Datum,
  1985.         struct IPrimeMeridian * PrimeMeridian,
  1986.         struct IAngularUnit * geographicUnit ) = 0;
  1987.     virtual HRESULT __stdcall Define (
  1988.         VARIANT * Name = &vtMissing,
  1989.         VARIANT * Alias = &vtMissing,
  1990.         VARIANT * Abbreviation = &vtMissing,
  1991.         VARIANT * Remarks = &vtMissing,
  1992.         VARIANT * useage = &vtMissing,
  1993.         VARIANT * Datum = &vtMissing,
  1994.         VARIANT * PrimeMeridian = &vtMissing,
  1995.         VARIANT * geographicUnit = &vtMissing ) = 0;
  1996. };
  1997. struct __declspec(uuid("b6ea1e3b-15e5-11d2-aacd-00c04fa33c20"))
  1998. IUnknownCoordinateSystem : ISpatialReference
  1999. {};
  2000. struct __declspec(uuid("06b20118-3cfb-4e1e-b984-d94b0fe262af"))
  2001. IParameterEdit : IParameter
  2002. {
  2003.     //
  2004.     // Raw methods provided by interface
  2005.     //
  2006.     virtual HRESULT __stdcall put_Name (
  2007.         BSTR _arg1 ) = 0;
  2008.     virtual HRESULT __stdcall put_Index (
  2009.         long _arg1 ) = 0;
  2010. };
  2011. struct __declspec(uuid("b6bb6277-7c88-4c70-9e36-ceb3e00fd190"))
  2012. IProjectionGEN : ISpatialReferenceInfo
  2013. {
  2014.     //
  2015.     // Raw methods provided by interface
  2016.     //
  2017.     virtual HRESULT __stdcall get_Usage (
  2018.         BSTR * Usage ) = 0;
  2019.     virtual HRESULT __stdcall get_Classification (
  2020.         BSTR * Classification ) = 0;
  2021.     virtual HRESULT __stdcall GetDefaultParameters (
  2022.         SAFEARRAY * * parameters ) = 0;
  2023. };
  2024. struct __declspec(uuid("e78f2cd0-c9b2-11d1-bc93-0000f875bcce"))
  2025. IESRISpatialReference : IUnknown
  2026. {
  2027.     //
  2028.     // Raw methods provided by interface
  2029.     //
  2030.     virtual HRESULT __stdcall get_ESRISpatialReferenceSize (
  2031.         long * cBytes ) = 0;
  2032.     virtual HRESULT __stdcall ImportFromESRISpatialReference (
  2033.         BSTR str,
  2034.         long * cBytesRead ) = 0;
  2035.     virtual HRESULT __stdcall ExportToESRISpatialReference (
  2036.         BSTR str,
  2037.         long * cBytesWrote ) = 0;
  2038. };
  2039. struct __declspec(uuid("be52f1b6-7bae-4bab-9e92-aad9dd9331de"))
  2040. IPRJSpatialReference : IUnknown
  2041. {
  2042.     //
  2043.     // Raw methods provided by interface
  2044.     //
  2045.     virtual HRESULT __stdcall get_PRJSpatialReferenceSize (
  2046.         long * cBytes ) = 0;
  2047.     virtual HRESULT __stdcall ImportSpatialReferenceFromPRJ (
  2048.         BSTR str,
  2049.         long * cBytesRead ) = 0;
  2050.     virtual HRESULT __stdcall ExportSpatialReferenceToPRJ (
  2051.         BSTR str,
  2052.         long * cBytesWrote ) = 0;
  2053. };
  2054. struct __declspec(uuid("e88c7db0-9e84-11d2-bd00-0000f875bcce"))
  2055. ISRPersistStream : IPersistStream
  2056. {
  2057.     //
  2058.     // Raw methods provided by interface
  2059.     //
  2060.     virtual HRESULT __stdcall GetPrecisionSizeMax (
  2061.         long * byteCount ) = 0;
  2062.     virtual HRESULT __stdcall LoadPrecision (
  2063.         struct IStream * pStream ) = 0;
  2064.     virtual HRESULT __stdcall SavePrecision (
  2065.         struct IStream * pStream,
  2066.         long fClearDirty ) = 0;
  2067. };
  2068. struct __declspec(uuid("58ab2690-5981-11d2-bcda-0000f875bcce"))
  2069. ISpatialReferenceSingletonManager : IUnknown
  2070. {
  2071.     //
  2072.     // Raw methods provided by interface
  2073.     //
  2074.     virtual HRESULT __stdcall CreateOwnedCS (
  2075.         esriSpatialReferenceImplHandle * ppInOutCoordSys ) = 0;
  2076.     virtual HRESULT __stdcall CommitIdentity (
  2077.         esriSpatialReferenceImplHandle * ppInOutCoordSys ) = 0;
  2078.     virtual HRESULT __stdcall FindFactoryCS (
  2079.         long factoryCSCode,
  2080.         esriSpatialReferenceImplHandle * ppOutCoordSys ) = 0;
  2081.     virtual HRESULT __stdcall ReleaseCoordSys (
  2082.         esriSpatialReferenceImplHandle pInCoordSys ) = 0;
  2083. };
  2084. struct __declspec(uuid("1f050200-da7f-11d3-9f60-00c04f6bdd7f"))
  2085. ISpatialReferenceFactory2 : ISpatialReferenceFactory
  2086. {
  2087.     //
  2088.     // Raw methods provided by interface
  2089.     //
  2090.     virtual HRESULT __stdcall CreatePredefinedGeographicTransformations (
  2091.         struct ISet * * geotransformations ) = 0;
  2092.     virtual HRESULT __stdcall CreateSpatialReference (
  2093.         long srID,
  2094.         struct ISpatialReference * * SR ) = 0;
  2095.     virtual HRESULT __stdcall get_GeoTransformationDefaults (
  2096.         struct IGeoTransformationOperationSet * * GTDefaults ) = 0;
  2097.     virtual HRESULT __stdcall GetPredefinedGeographicTransformations (
  2098.         struct ISet * * predefinedGTs ) = 0;
  2099. };
  2100. struct __declspec(uuid("de162780-1dd1-11b2-bf4f-08002022f573"))
  2101. LinearUnit;
  2102.     // [ default ] interface IUnknown
  2103.     // interface ILinearUnit
  2104.     // interface IUnit
  2105.     // interface ILinearUnitEdit
  2106.     // interface ISpatialReferenceInfo
  2107.     // interface IClone
  2108.     // interface IPersist
  2109.     // interface IPersistStream
  2110.     // interface IESRISpatialReference
  2111.     // interface ISupportErrorInfo
  2112. struct __declspec(uuid("74ad43f4-d31c-11d1-bc9b-0000f875bcce"))
  2113. AngularUnit;
  2114.     // [ default ] interface IUnknown
  2115.     // interface IAngularUnit
  2116.     // interface IUnit
  2117.     // interface IAngularUnitEdit
  2118.     // interface ISpatialReferenceInfo
  2119.     // interface IClone
  2120.     // interface IPersist
  2121.     // interface IPersistStream
  2122.     // interface IESRISpatialReference
  2123.     // interface ISupportErrorInfo
  2124. struct __declspec(uuid("2b929480-1dd2-11b2-bf4f-08002022f573"))
  2125. Spheroid;
  2126.     // [ default ] interface IUnknown
  2127.     // interface ISpheroid
  2128.     // interface ISpheroidEdit
  2129.     // interface ISpatialReferenceInfo
  2130.     // interface IClone
  2131.     // interface IPersist
  2132.     // interface IPersistStream
  2133.     // interface IESRISpatialReference
  2134.     // interface ISupportErrorInfo
  2135. struct __declspec(uuid("862bf080-1dd2-11b2-bf4f-08002022f573"))
  2136. Datum;
  2137.     // [ default ] interface IUnknown
  2138.     // interface IDatum
  2139.     // interface IDatumEdit
  2140.     // interface ISpatialReferenceInfo
  2141.     // interface IClone
  2142.     // interface IPersist
  2143.     // interface IPersistStream
  2144.     // interface IESRISpatialReference
  2145.     // interface ISupportErrorInfo
  2146. struct __declspec(uuid("c55a4180-1dd1-11b2-bf50-08002022f573"))
  2147. PrimeMeridian;
  2148.     // [ default ] interface IUnknown
  2149.     // interface IPrimeMeridian
  2150.     // interface IPrimeMeridianEdit
  2151.     // interface ISpatialReferenceInfo
  2152.     // interface IClone
  2153.     // interface IPersist
  2154.     // interface IPersistStream
  2155.     // interface IESRISpatialReference
  2156.     // interface ISupportErrorInfo
  2157. struct __declspec(uuid("a6a87a80-1dd1-11b2-bf51-08002022f573"))
  2158. GeographicCoordinateSystem;
  2159.     // [ default ] interface IUnknown
  2160.     // interface ISpatialReference2GEN
  2161.     // interface IGeographicCoordinateSystem
  2162.     // interface IGeographicCoordinateSystem2
  2163.     // interface IGeographicCoordinateSystemEdit
  2164.     // interface ISpatialReference
  2165.     // interface ISpatialReference2
  2166.     // interface ISpatialReferenceInfo
  2167.     // interface IESRISpatialReference
  2168.     // interface IPRJSpatialReference
  2169.     // interface IClone
  2170.     // interface IPersist
  2171.     // interface IPersistStream
  2172.     // interface ISRPersistStream
  2173.     // interface ISupportErrorInfo
  2174. struct __declspec(uuid("3267d410-f5d9-11d3-9f69-00c04f6bdd7f"))
  2175. ISpatialReference2 : ISpatialReference
  2176. {
  2177.     //
  2178.     // Raw methods provided by interface
  2179.     //
  2180.     virtual HRESULT __stdcall IsXYPrecisionEqual (
  2181.         struct ISpatialReference * otherSR,
  2182.         VARIANT_BOOL * IsXYPrecisionEqual ) = 0;
  2183.     virtual HRESULT __stdcall IsMPrecisionEqual (
  2184.         struct ISpatialReference * otherSR,
  2185.         VARIANT_BOOL * IsMPrecisionEqual ) = 0;
  2186.     virtual HRESULT __stdcall IsZPrecisionEqual (
  2187.         struct ISpatialReference * otherSR,
  2188.         VARIANT_BOOL * IsZPrecisionEqual ) = 0;
  2189.     virtual HRESULT __stdcall ApplyXYPrecision (
  2190.         long cPoints,
  2191.         WKSPoint * Points ) = 0;
  2192.     virtual HRESULT __stdcall ApplyPrecision (
  2193.         long cPoints,
  2194.         WKSPoint * Points,
  2195.         double * ms,
  2196.         double * zs ) = 0;
  2197. };
  2198. struct __declspec(uuid("e2dbdb00-1dd1-11b2-bf51-08002022f573"))
  2199. Parameter;
  2200.     // [ default ] interface IUnknown
  2201.     // interface IParameter
  2202.     // interface IParameterEdit
  2203.     // interface ISpatialReferenceInfo
  2204.     // interface IClone
  2205.     // interface IPersistStream
  2206.     // interface IESRISpatialReference
  2207.     // interface ISupportErrorInfo
  2208. struct __declspec(uuid("2a626700-1dd2-11b2-bf51-08002022f573"))
  2209. ProjectedCoordinateSystem;
  2210.     // [ default ] interface IUnknown
  2211.     // interface IProjectedCoordinateSystem4GEN
  2212.     // interface ISpatialReference2GEN
  2213.     // interface IProjectedCoordinateSystem
  2214.     // interface IProjectedCoordinateSystem2
  2215.     // interface IProjectedCoordinateSystem3
  2216.     // interface IProjectedCoordinateSystem4
  2217.     // interface IProjectedCoordinateSystemEdit
  2218.     // interface ISpatialReference
  2219.     // interface ISpatialReference2
  2220.     // interface ISpatialReferenceInfo
  2221.     // interface IESRISpatialReference
  2222.     // interface IPRJSpatialReference
  2223.     // interface IClone
  2224.     // interface IPersist
  2225.     // interface IPersistStream
  2226.     // interface ISRPersistStream
  2227.     // interface ISupportErrorInfo
  2228. struct __declspec(uuid("a690307d-6c11-43a1-966a-9e8db0672033"))
  2229. IProjectedCoordinateSystem2 : IProjectedCoordinateSystem
  2230. {
  2231.     //
  2232.     // Raw methods provided by interface
  2233.     //
  2234.     virtual HRESULT __stdcall get_LongitudeOfCenter (
  2235.         double * LongitudeOfCenter ) = 0;
  2236.     virtual HRESULT __stdcall put_LongitudeOfCenter (
  2237.         double LongitudeOfCenter ) = 0;
  2238.     virtual HRESULT __stdcall get_LatitudeOfCenter (
  2239.         double * LatitudeOfCenter ) = 0;
  2240.     virtual HRESULT __stdcall put_LatitudeOfCenter (
  2241.         double LatitudeOfCenter ) = 0;
  2242.     virtual HRESULT __stdcall GetGCSParams (
  2243.         double * p_180,
  2244.         double * pDelta ) = 0;
  2245.     virtual HRESULT __stdcall GetHorizon (
  2246.         WKSEnvelope * horizonEnvelope,
  2247.         VARIANT_BOOL * Inclusive,
  2248.         struct IGeometry * * ppHorizon ) = 0;
  2249.     virtual HRESULT __stdcall GetShiftedHorizon (
  2250.         int shift,
  2251.         struct IGeometry * * ppHorizon ) = 0;
  2252.     virtual HRESULT __stdcall get_PseudoStandardParallel1 (
  2253.         double * psp1 ) = 0;
  2254.     virtual HRESULT __stdcall put_PseudoStandardParallel1 (
  2255.         double psp1 ) = 0;
  2256.     virtual HRESULT __stdcall get_XScaleFactor (
  2257.         double * xs ) = 0;
  2258.     virtual HRESULT __stdcall put_XScaleFactor (
  2259.         double xs ) = 0;
  2260.     virtual HRESULT __stdcall get_YScaleFactor (
  2261.         double * ys ) = 0;
  2262.     virtual HRESULT __stdcall put_YScaleFactor (
  2263.         double ys ) = 0;
  2264.     virtual HRESULT __stdcall get_Rotation (
  2265.         double * r ) = 0;
  2266.     virtual HRESULT __stdcall put_Rotation (
  2267.         double r ) = 0;
  2268.     virtual HRESULT __stdcall InverseWithShift (
  2269.         double shift,
  2270.         long Count,
  2271.         WKSPoint * Points ) = 0;
  2272.     virtual HRESULT __stdcall PutLinearAndAngularUnits (
  2273.         struct ILinearUnit * LinearUnit,
  2274.         struct IAngularUnit * AngularUnit ) = 0;
  2275.     virtual HRESULT __stdcall get_LatitudeOfOrigin (
  2276.         double * LatitudeOfOrigin ) = 0;
  2277.     virtual HRESULT __stdcall put_LatitudeOfOrigin (
  2278.         double LatitudeOfOrigin ) = 0;
  2279.     virtual HRESULT __stdcall IsEqualNoNames (
  2280.         struct IProjectedCoordinateSystem * pOther,
  2281.         VARIANT_BOOL * equalNoNames ) = 0;
  2282. };
  2283. struct __declspec(uuid("d9b13c10-5c5e-11d5-9fee-00c04f6bdd7f"))
  2284. IProjectedCoordinateSystem3 : IProjectedCoordinateSystem2
  2285. {
  2286.     //
  2287.     // Raw methods provided by interface
  2288.     //
  2289.     virtual HRESULT __stdcall get_Height (
  2290.         double * Height ) = 0;
  2291.     virtual HRESULT __stdcall put_Height (
  2292.         double Height ) = 0;
  2293. };
  2294. struct __declspec(uuid("d765fb6b-05d3-4398-86ac-79430de530e5"))
  2295. IProjectedCoordinateSystem4 : IProjectedCoordinateSystem3
  2296. {
  2297.     //
  2298.     // Raw methods provided by interface
  2299.     //
  2300.     virtual HRESULT __stdcall GetPCSHorizon (
  2301.         WKSEnvelope * horizonEnvelope,
  2302.         VARIANT_BOOL * Inclusive,
  2303.         struct IGeometry * * Horizon ) = 0;
  2304.     virtual HRESULT __stdcall GetCentralLongitude (
  2305.         double * centralLongitude ) = 0;
  2306.     virtual HRESULT __stdcall GetNorthPole (
  2307.         WKSPoint * pole ) = 0;
  2308.     virtual HRESULT __stdcall GetSouthPole (
  2309.         WKSPoint * pole ) = 0;
  2310.     virtual HRESULT __stdcall GetNorthPoleLocation (
  2311.         enum esriSRPoleLocation * poleLocation ) = 0;
  2312.     virtual HRESULT __stdcall GetSouthPoleLocation (
  2313.         enum esriSRPoleLocation * poleLocation ) = 0;
  2314.     virtual HRESULT __stdcall GetNorthPoleGeometry (
  2315.         enum esriSRPoleGeometry * poleGeometry ) = 0;
  2316.     virtual HRESULT __stdcall GetSouthPoleGeometry (
  2317.         enum esriSRPoleGeometry * poleGeometry ) = 0;
  2318.     virtual HRESULT __stdcall IsHorizonEdgeDuplicated (
  2319.         VARIANT_BOOL * isEdgeDuplicated ) = 0;
  2320.     virtual HRESULT __stdcall IsHorizonConvexHull (
  2321.         VARIANT_BOOL * isConvexHull ) = 0;
  2322.     virtual HRESULT __stdcall IsHorizonEntireWorld (
  2323.         VARIANT_BOOL * isWorld ) = 0;
  2324. };
  2325. struct __declspec(uuid("228d7220-d335-11d1-bc9b-0000f875bcce"))
  2326. IProjectedCoordinateSystemEdit : IUnknown
  2327. {
  2328.     //
  2329.     // Raw methods provided by interface
  2330.     //
  2331.     virtual HRESULT __stdcall DefineEx (
  2332.         BSTR Name,
  2333.         BSTR Alias,
  2334.         BSTR Abbreviation,
  2335.         BSTR Remarks,
  2336.         BSTR useage,
  2337.         struct IGeographicCoordinateSystem * gcs,
  2338.         struct ILinearUnit * projectedXYUnit,
  2339.         struct IProjection * Projection,
  2340.         struct IParameter * * parameters ) = 0;
  2341.     virtual HRESULT __stdcall Define (
  2342.         VARIANT * Name = &vtMissing,
  2343.         VARIANT * Alias = &vtMissing,
  2344.         VARIANT * Abbreviation = &vtMissing,
  2345.         VARIANT * Remarks = &vtMissing,
  2346.         VARIANT * useage = &vtMissing,
  2347.         VARIANT * gcs = &vtMissing,
  2348.         VARIANT * projectedUnit = &vtMissing,
  2349.         VARIANT * Projection = &vtMissing,
  2350.         VARIANT * parameters = &vtMissing ) = 0;
  2351. };
  2352. struct __declspec(uuid("7b5b7020-c4f6-11d1-bc92-0000f875bcce"))
  2353. SpatialReferenceEnvironment;
  2354.     // [ default ] interface ISpatialReferenceFactory
  2355.     // interface ISpatialReferenceFactory2
  2356.     // interface ISpatialReferenceSingletonManager
  2357.     // interface IClassFactory
  2358.     // interface ISupportErrorInfo
  2359. struct __declspec(uuid("38ac4b99-a4c9-41e8-88e0-ceea37888932"))
  2360. GeoTransformationOperationSet;
  2361.     // [ default ] interface IUnknown
  2362.     // interface IGeoTransformationOperationSet
  2363.     // interface ISupportErrorInfo
  2364. struct __declspec(uuid("7ca36480-c8f4-11d1-bc93-0000f875bcce"))
  2365. Projection;
  2366.     // [ default ] interface IUnknown
  2367.     // interface IProjectionGEN
  2368.     // interface IProjection
  2369.     // interface IClone
  2370.     // interface IPersist
  2371.     // interface IPersistStream
  2372.     // interface IESRISpatialReference
  2373.     // interface ISupportErrorInfo
  2374. struct __declspec(uuid("0f024430-c1f8-11d2-bd07-0000f875bcce"))
  2375. GeocentricTranslation;
  2376.     // [ default ] interface IUnknown
  2377.     // interface ITransformationGEN
  2378.     // interface ITransformation
  2379.     // interface IGeocentricTranslation
  2380.     // interface IClone
  2381.     // interface IPersist
  2382.     // interface IPersistStream
  2383.     // interface ISupportErrorInfo
  2384. struct __declspec(uuid("0f024431-c1f8-11d2-bd07-0000f875bcce"))
  2385. CoordinateFrameTransformation;
  2386.     // [ default ] interface IUnknown
  2387.     // interface ITransformationGEN
  2388.     // interface ITransformation
  2389.     // interface ICoordinateFrameTransformation
  2390.     // interface IClone
  2391.     // interface IPersist
  2392.     // interface IPersistStream
  2393.     // interface ISupportErrorInfo
  2394. struct __declspec(uuid("0cdf92b1-c2a0-11d2-bd08-0000f875bcce"))
  2395. PositionVectorTransformation;
  2396.     // [ default ] interface IUnknown
  2397.     // interface ITransformationGEN
  2398.     // interface ITransformation
  2399.     // interface IPositionVectorTransformation
  2400.     // interface IClone
  2401.     // interface IPersist
  2402.     // interface IPersistStream
  2403.     // interface ISupportErrorInfo
  2404. struct __declspec(uuid("0cdf92b0-c2a0-11d2-bd08-0000f875bcce"))
  2405. MolodenskyTransformation;
  2406.     // [ default ] interface IUnknown
  2407.     // interface ITransformationGEN
  2408.     // interface ITransformation
  2409.     // interface IGeoTransformation
  2410.     // interface IMolodenskyTransformation
  2411.     // interface IClone
  2412.     // interface IPersist
  2413.     // interface IPersistStream
  2414.     // interface ISupportErrorInfo
  2415. struct __declspec(uuid("e739e629-0d22-48f7-841c-54111ca6d666"))
  2416. MolodenskyBadekasTransformation;
  2417.     // [ default ] interface IUnknown
  2418.     // interface ITransformationGEN
  2419.     // interface ITransformation
  2420.     // interface IGeoTransformation
  2421.     // interface IMolodenskyBadekasTransformation
  2422.     // interface IClone
  2423.     // interface IPersist
  2424.     // interface IPersistStream
  2425.     // interface ISupportErrorInfo
  2426. struct __declspec(uuid("dd2f68d0-c6b0-11d2-bd09-0000f875bcce"))
  2427. AbridgedMolodenskyTransformation;
  2428.     // [ default ] interface IUnknown
  2429.     // interface ITransformationGEN
  2430.     // interface ITransformation
  2431.     // interface IGeoTransformation
  2432.     // interface IMolodenskyTransformation
  2433.     // interface IClone
  2434.     // interface IPersist
  2435.     // interface IPersistStream
  2436.     // interface ISupportErrorInfo
  2437. struct __declspec(uuid("6f3c0002-da7f-11d3-9f60-00c04f6bdd7f"))
  2438. LongitudeRotationTransformation;