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

GIS编程

开发平台:

Visual C++

  1.     // Raw methods provided by interface
  2.     //
  3.     virtual HRESULT __stdcall FindExtension (
  4.         struct IUID * pGUID,
  5.         long * Index ) = 0;
  6.     virtual HRESULT __stdcall get_ExtensionCount (
  7.         long * Count ) = 0;
  8.     virtual HRESULT __stdcall get_Extension (
  9.         long Index,
  10.         struct IReplicaDescriptionExtension * * rdExtension ) = 0;
  11.     virtual HRESULT __stdcall RegisterExtension (
  12.         struct IReplicaDescriptionExtension * rdExtension ) = 0;
  13.     virtual HRESULT __stdcall UnRegisterExtension (
  14.         struct IUID * pGUID ) = 0;
  15. };
  16. struct __declspec(uuid("56df3b04-8684-4432-9a21-cb5e72d73e56"))
  17. IWorkspaceReplicaEvents : IUnknown
  18. {
  19.     //
  20.     // Raw methods provided by interface
  21.     //
  22.     virtual HRESULT __stdcall BeforeCreateChildReplica (
  23.         BSTR Name,
  24.         enum esriReplicaType parentReplicaType,
  25.         struct IReplicaDescription * rDescription,
  26.         struct IWorkspace * childWorkspace ) = 0;
  27.     virtual HRESULT __stdcall AfterCreateChildReplica (
  28.         BSTR Name,
  29.         enum esriReplicaType parentReplicaType,
  30.         struct IReplicaDescription * rDescription,
  31.         struct IWorkspace * childWorkspace ) = 0;
  32. };
  33. struct __declspec(uuid("6ab1120f-81df-4c11-b255-c5dd15690939"))
  34. IWorkspaceReplicaSyncEvents : IUnknown
  35. {
  36.     //
  37.     // Raw methods provided by interface
  38.     //
  39.     virtual HRESULT __stdcall BeforeExportingDataChanges (
  40.         struct IReplica * sourceReplica,
  41.         IUnknown * dataChangesSource,
  42.         IUnknown * deltaFile ) = 0;
  43.     virtual HRESULT __stdcall AfterExportingDataChanges (
  44.         struct IReplica * sourceReplica,
  45.         IUnknown * dataChangesSource,
  46.         IUnknown * deltaFile ) = 0;
  47.     virtual HRESULT __stdcall BeforeSynchronizingDataChanges (
  48.         struct IReplica * targetReplica,
  49.         IUnknown * dataChangesSource ) = 0;
  50.     virtual HRESULT __stdcall AfterSynchronizingDataChanges (
  51.         struct IReplica * targetReplica,
  52.         IUnknown * dataChangesSource,
  53.         struct ITable * oidMappingTable,
  54.         struct ITable * changesTable ) = 0;
  55. };
  56. struct __declspec(uuid("92008893-9e26-46eb-baf7-fdf8beac848e"))
  57. Replica;
  58.     // [ default ] interface IUnknown
  59.     // interface IReplica
  60.     // interface IReplicaEdit
  61. struct __declspec(uuid("27036541-b2e8-4862-8cea-1cf49bc37266"))
  62. ReplicaDataset;
  63.     // [ default ] interface IUnknown
  64.     // interface IReplicaDataset
  65. struct __declspec(uuid("1858b629-9870-49f1-ad2e-947c7cf5d47a"))
  66. ReplicaDescription;
  67.     // [ default ] interface IUnknown
  68.     // interface IPersist
  69.     // interface IPersistStream
  70.     // interface IReplicaDescription
  71.     // interface IReplicaFilterDescription
  72.     // interface IReplicaFilterDescriptionEdit
  73.     // interface IReplicaDescriptionExtensionManager
  74. struct __declspec(uuid("f964b93c-bc66-4982-b415-3051465b5da4"))
  75. ReplicaDescriptionExtension;
  76.     // [ default ] interface IUnknown
  77.     // interface IReplicaDescriptionExtension
  78. struct __declspec(uuid("9b6b1ad3-e0e7-11d3-8118-00c04f686238"))
  79. IGeoDBDataTransfer : IUnknown
  80. {
  81.     //
  82.     // Raw methods provided by interface
  83.     //
  84.     virtual HRESULT __stdcall GenerateNameMapping (
  85.         struct IEnumName * from,
  86.         struct IName * toName,
  87.         struct IEnumNameMapping * * to,
  88.         VARIANT_BOOL * conflicts ) = 0;
  89.     virtual HRESULT __stdcall Transfer (
  90.         struct IEnumNameMapping * from,
  91.         struct IName * toName ) = 0;
  92.     virtual HRESULT __stdcall NumberObjectsToTransfer (
  93.         struct IEnumNameMapping * from,
  94.         long * nObjects ) = 0;
  95. };
  96. struct __declspec(uuid("69ebda67-d1fc-4f5a-829f-3e73098cd6d7"))
  97. IGeoDBDataTransfer2 : IGeoDBDataTransfer
  98. {
  99.     //
  100.     // Raw methods provided by interface
  101.     //
  102.     virtual HRESULT __stdcall Delete (
  103.         struct IEnumNameMapping * from,
  104.         struct IName * toName ) = 0;
  105. };
  106. struct __declspec(uuid("5f0a6da5-e0e7-11d3-8118-00c04f686238"))
  107. GeoDBDataTransfer;
  108.     // [ default ] interface IUnknown
  109.     // interface IGeoDBDataTransfer
  110.     // interface IGeoDBDataTransfer2
  111.     // interface IConnectionPointContainer
  112.     // [ default, source ] interface IFeatureProgress
  113. struct __declspec(uuid("e0f10b77-eb7c-11d2-9f47-00c04f8ed1c4"))
  114. ILocatorUI : IUnknown
  115. {
  116.     //
  117.     // Raw methods provided by interface
  118.     //
  119.     virtual HRESULT __stdcall CreateLocator (
  120.         OLE_HANDLE parentWindow,
  121.         struct ILocatorStyle * locatorStyle,
  122.         struct ILocatorWorkspace * locWks,
  123.         BSTR connectionName,
  124.         struct ILocator * * locator ) = 0;
  125.     virtual HRESULT __stdcall LocatorProperties (
  126.         OLE_HANDLE parentWindow,
  127.         struct ILocator * locator,
  128.         BSTR title,
  129.         VARIANT_BOOL * ok ) = 0;
  130.     virtual HRESULT __stdcall MatchTable (
  131.         OLE_HANDLE parentWindow,
  132.         struct ITable * tableOfLocations,
  133.         struct ILocator * locator,
  134.         BSTR * pathForGxBrowser,
  135.         struct IName * * resultDatasetName ) = 0;
  136. };
  137. struct __declspec(uuid("cfc5ef8c-4fcc-40de-928a-21b354eae9bd"))
  138. ILocatorStyle : IUnknown
  139. {};
  140. struct __declspec(uuid("ae5a3a08-f756-11d2-9f4f-00c04f8ed1c4"))
  141. ILocatorWorkspace : IUnknown
  142. {
  143.     //
  144.     // Raw methods provided by interface
  145.     //
  146.     virtual HRESULT __stdcall get_Name (
  147.         struct ILocatorWorkspaceName * * LocatorWorkspaceName ) = 0;
  148.     virtual HRESULT __stdcall get_LocatorNames (
  149.         enum esriLocatorQuery queryType,
  150.         BSTR Category,
  151.         struct IEnumLocatorName * * enumLocatorNames ) = 0;
  152.     virtual HRESULT __stdcall get_Locators (
  153.         enum esriLocatorQuery queryType,
  154.         BSTR Category,
  155.         struct IEnumLocator * * enumLocators ) = 0;
  156.     virtual HRESULT __stdcall GetLocatorName (
  157.         BSTR Name,
  158.         struct ILocatorName * * outLocatorName ) = 0;
  159.     virtual HRESULT __stdcall GetLocator (
  160.         BSTR Name,
  161.         struct ILocator * * locator ) = 0;
  162.     virtual HRESULT __stdcall GetLocatorStyle (
  163.         BSTR Name,
  164.         struct ILocatorStyle * * aLocatorStyle ) = 0;
  165.     virtual HRESULT __stdcall AddLocator (
  166.         BSTR Name,
  167.         struct ILocator * locator,
  168.         BSTR ConfigKeyword,
  169.         struct ITrackCancel * CancelTracker,
  170.         struct ILocator * * newLocator ) = 0;
  171.     virtual HRESULT __stdcall AddLocatorStyle (
  172.         BSTR Name,
  173.         BSTR Category,
  174.         struct ILocatorStyle * locatorStyle ) = 0;
  175.     virtual HRESULT __stdcall UpdateLocator (
  176.         struct ILocator * locator ) = 0;
  177.     virtual HRESULT __stdcall DeleteLocator (
  178.         BSTR Name ) = 0;
  179.     virtual HRESULT __stdcall RenameLocator (
  180.         BSTR oldName,
  181.         BSTR newName ) = 0;
  182.     virtual HRESULT __stdcall CopyLocator (
  183.         BSTR srcName,
  184.         BSTR dstName ) = 0;
  185. };
  186. struct __declspec(uuid("fc747401-39c0-4842-8635-6db6f96717e5"))
  187. ILocatorWorkspaceName : IUnknown
  188. {
  189.     //
  190.     // Raw methods provided by interface
  191.     //
  192.     virtual HRESULT __stdcall get_Path (
  193.         BSTR * Path ) = 0;
  194.     virtual HRESULT __stdcall put_Path (
  195.         BSTR Path ) = 0;
  196.     virtual HRESULT __stdcall get_WorkspaceName (
  197.         struct IWorkspaceName * * wksName ) = 0;
  198.     virtual HRESULT __stdcall putref_WorkspaceName (
  199.         struct IWorkspaceName * wksName ) = 0;
  200.     virtual HRESULT __stdcall get_Type (
  201.         enum esriLocatorWorkspaceType * locWksType ) = 0;
  202. };
  203. enum esriLocatorWorkspaceType
  204. {
  205.     esriLocalSystemLocatorWorkspace = 0,
  206.     esriFileSystemLocatorWorkspace = 1,
  207.     esriRemoteDatabaseLocatorWorkspace = 2,
  208.     esriExtensionLocatorWorkspace = 3,
  209.     esriArcGISServerLocatorWorkspace = 4
  210. };
  211. enum esriLocatorQuery
  212. {
  213.     esriLocatorStyle = 0,
  214.     esriLocator = 1,
  215.     esriAllTypes = 2
  216. };
  217. struct __declspec(uuid("8ddaeee6-8b07-11d3-9f69-00c04f6bdf06"))
  218. IEnumLocatorName : IUnknown
  219. {
  220.     //
  221.     // Raw methods provided by interface
  222.     //
  223.     virtual HRESULT __stdcall Next (
  224.         struct ILocatorName * * outLocatorName ) = 0;
  225.     virtual HRESULT __stdcall Previous (
  226.         struct ILocatorName * * outLocatorName ) = 0;
  227.     virtual HRESULT __stdcall Reset ( ) = 0;
  228.     virtual HRESULT __stdcall Clone (
  229.         struct IEnumLocatorName * * outNameEnumerator ) = 0;
  230.     virtual HRESULT __stdcall get_Count (
  231.         long * Count ) = 0;
  232. };
  233. struct __declspec(uuid("837a9cf2-88c9-11d3-9f66-00c04f6bdf06"))
  234. ILocatorName : IUnknown
  235. {
  236.     //
  237.     // Raw methods provided by interface
  238.     //
  239.     virtual HRESULT __stdcall get_Name (
  240.         BSTR * Name ) = 0;
  241.     virtual HRESULT __stdcall put_Name (
  242.         BSTR Name ) = 0;
  243.     virtual HRESULT __stdcall get_Description (
  244.         BSTR * Description ) = 0;
  245.     virtual HRESULT __stdcall put_Description (
  246.         BSTR Description ) = 0;
  247.     virtual HRESULT __stdcall get_Category (
  248.         BSTR * Category ) = 0;
  249.     virtual HRESULT __stdcall put_Category (
  250.         BSTR Category ) = 0;
  251.     virtual HRESULT __stdcall get_Style (
  252.         VARIANT_BOOL * isStyle ) = 0;
  253.     virtual HRESULT __stdcall put_Style (
  254.         VARIANT_BOOL isStyle ) = 0;
  255.     virtual HRESULT __stdcall get_LocatorWorkspaceName (
  256.         struct ILocatorWorkspaceName * * LocatorWorkspaceName ) = 0;
  257.     virtual HRESULT __stdcall putref_LocatorWorkspaceName (
  258.         struct ILocatorWorkspaceName * LocatorWorkspaceName ) = 0;
  259. };
  260. struct __declspec(uuid("e0f10b78-eb7c-11d2-9f47-00c04f8ed1c4"))
  261. IEnumLocator : IUnknown
  262. {
  263.     //
  264.     // Raw methods provided by interface
  265.     //
  266.     virtual HRESULT __stdcall Next (
  267.         struct ILocator * * outLocator ) = 0;
  268.     virtual HRESULT __stdcall Previous (
  269.         struct ILocator * * outLocator ) = 0;
  270.     virtual HRESULT __stdcall Reset ( ) = 0;
  271.     virtual HRESULT __stdcall Clone (
  272.         struct IEnumLocator * * outEnumerator ) = 0;
  273.     virtual HRESULT __stdcall get_Count (
  274.         long * Count ) = 0;
  275. };
  276. struct __declspec(uuid("655c5c62-6478-11d3-9f57-00c04f6bdf06"))
  277. ILocator : IUnknown
  278. {
  279.     //
  280.     // Raw methods provided by interface
  281.     //
  282.     virtual HRESULT __stdcall get_Name (
  283.         BSTR * Name ) = 0;
  284.     virtual HRESULT __stdcall get_Description (
  285.         BSTR * Description ) = 0;
  286.     virtual HRESULT __stdcall put_Description (
  287.         BSTR Description ) = 0;
  288.     virtual HRESULT __stdcall get_Category (
  289.         BSTR * Category ) = 0;
  290.     virtual HRESULT __stdcall get_UserInterface (
  291.         struct ILocatorUI * * outLocatorUI ) = 0;
  292. };
  293. struct __declspec(uuid("fdadfae4-939d-11d3-9f6b-00c04f6bdf06"))
  294. ILocatorDataset : IUnknown
  295. {
  296.     //
  297.     // Raw methods provided by interface
  298.     //
  299.     virtual HRESULT __stdcall get_FullName (
  300.         struct ILocatorName * * ppLocName ) = 0;
  301.     virtual HRESULT __stdcall get_LocatorWorkspace (
  302.         struct ILocatorWorkspace * * LocatorWorkspace ) = 0;
  303. };
  304. enum esriLocatingError
  305. {
  306.     LOCATING_OK = 0,
  307.     LOCATING_E_INVALIDRID = 1,
  308.     LOCATING_E_INVALIDMEASURE = 2,
  309.     LOCATING_E_CANT_FIND_ROUTE = 3,
  310.     LOCATING_E_ROUTE_SHAPE_EMPTY = 4,
  311.     LOCATING_E_CANT_FIND_LOCATION = 5,
  312.     LOCATING_E_CANT_FIND_EXTENT = 6,
  313.     LOCATING_E_FROM_PARTIAL_MATCH = 7,
  314.     LOCATING_E_TO_PARTIAL_MATCH = 8,
  315.     LOCATING_E_ROUTE_MS_NULL = 9,
  316.     LOCATING_E_ROUTE_NOT_MAWARE = 10,
  317.     LOCATING_E_FROM_TO_PARTIAL_MATCH = 11,
  318.     LOCATING_E_MULTIPLE_LOCATION = 12,
  319.     LOCATING_E_NULL_EXTENT = 13
  320. };
  321. struct __declspec(uuid("a9eb56e2-7452-11d4-9fe4-00c04f6bdf06"))
  322. IEnumEventError : IUnknown
  323. {
  324.     //
  325.     // Raw methods provided by interface
  326.     //
  327.     virtual HRESULT __stdcall Next (
  328.         struct IRow * * eventRow,
  329.         enum esriLocatingError * locatingError ) = 0;
  330. };
  331. struct __declspec(uuid("a9eb56e1-7452-11d4-9fe4-00c04f6bdf06"))
  332. IEventSourceErrors : IUnknown
  333. {
  334.     //
  335.     // Raw methods provided by interface
  336.     //
  337.     virtual HRESULT __stdcall GetErrors (
  338.         struct IEnumEventError * * eventErrors ) = 0;
  339.     virtual HRESULT __stdcall GetErrorCursor (
  340.         struct IQueryFilter * filter,
  341.         struct ICursor * * Cursor ) = 0;
  342.     virtual HRESULT __stdcall GetLocatingErrorOID (
  343.         long OID,
  344.         enum esriLocatingError * locatingError ) = 0;
  345.     virtual HRESULT __stdcall GetLocatingErrorRow (
  346.         struct IRow * Row,
  347.         enum esriLocatingError * locatingError ) = 0;
  348. };
  349. struct __declspec(uuid("59e43823-7f5a-11d4-9fe6-00c04f6bdf06"))
  350. IEventSource : IUnknown
  351. {};
  352. struct __declspec(uuid("d03a61a0-2070-11d4-9fc1-00c04f6bdf06"))
  353. IRouteLocatorName : IUnknown
  354. {
  355.     //
  356.     // Raw methods provided by interface
  357.     //
  358.     virtual HRESULT __stdcall putref_RouteFeatureClassName (
  359.         struct IName * Name ) = 0;
  360.     virtual HRESULT __stdcall get_RouteFeatureClassName (
  361.         struct IName * * Name ) = 0;
  362.     virtual HRESULT __stdcall put_RouteIDFieldName (
  363.         BSTR RouteIDFieldName ) = 0;
  364.     virtual HRESULT __stdcall get_RouteIDFieldName (
  365.         BSTR * RouteIDFieldName ) = 0;
  366.     virtual HRESULT __stdcall put_RouteIDIsUnique (
  367.         VARIANT_BOOL RouteIDIsUnique ) = 0;
  368.     virtual HRESULT __stdcall get_RouteIDIsUnique (
  369.         VARIANT_BOOL * RouteIDIsUnique ) = 0;
  370.     virtual HRESULT __stdcall put_RouteMeasureUnit (
  371.         enum esriUnits units ) = 0;
  372.     virtual HRESULT __stdcall get_RouteMeasureUnit (
  373.         enum esriUnits * units ) = 0;
  374.     virtual HRESULT __stdcall put_RouteWhereClause (
  375.         BSTR WhereClause ) = 0;
  376.     virtual HRESULT __stdcall get_RouteWhereClause (
  377.         BSTR * WhereClause ) = 0;
  378. };
  379. struct __declspec(uuid("35bdf2ed-3b21-11d4-9fcb-00c04f6bdf06"))
  380. IRouteEventProperties : IUnknown
  381. {
  382.     //
  383.     // Raw methods provided by interface
  384.     //
  385.     virtual HRESULT __stdcall put_EventRouteIDFieldName (
  386.         BSTR FieldName ) = 0;
  387.     virtual HRESULT __stdcall get_EventRouteIDFieldName (
  388.         BSTR * FieldName ) = 0;
  389.     virtual HRESULT __stdcall put_EventMeasureUnit (
  390.         enum esriUnits units ) = 0;
  391.     virtual HRESULT __stdcall get_EventMeasureUnit (
  392.         enum esriUnits * units ) = 0;
  393.     virtual HRESULT __stdcall put_LateralOffsetFieldName (
  394.         BSTR FieldName ) = 0;
  395.     virtual HRESULT __stdcall get_LateralOffsetFieldName (
  396.         BSTR * FieldName ) = 0;
  397.     virtual HRESULT __stdcall get_IsALineEvent (
  398.         VARIANT_BOOL * lineEvent ) = 0;
  399.     virtual HRESULT __stdcall GetSettingError ( ) = 0;
  400. };
  401. struct __declspec(uuid("5ae87432-a9c0-42c4-8dfa-03e5c93785e9"))
  402. IRouteEventProperties2 : IRouteEventProperties
  403. {
  404.     //
  405.     // Raw methods provided by interface
  406.     //
  407.     virtual HRESULT __stdcall put_AddErrorField (
  408.         VARIANT_BOOL Value ) = 0;
  409.     virtual HRESULT __stdcall get_AddErrorField (
  410.         VARIANT_BOOL * Value ) = 0;
  411.     virtual HRESULT __stdcall put_ErrorFieldName (
  412.         BSTR FieldName ) = 0;
  413.     virtual HRESULT __stdcall get_ErrorFieldName (
  414.         BSTR * FieldName ) = 0;
  415.     virtual HRESULT __stdcall put_MDirectionOffsetting (
  416.         VARIANT_BOOL Value ) = 0;
  417.     virtual HRESULT __stdcall get_MDirectionOffsetting (
  418.         VARIANT_BOOL * Value ) = 0;
  419. };
  420. struct __declspec(uuid("7f9c0d54-b8c7-11d3-9f7c-00c04f6bdf06"))
  421. IRouteEventSourceName : IUnknown
  422. {
  423.     //
  424.     // Raw methods provided by interface
  425.     //
  426.     virtual HRESULT __stdcall putref_RouteLocatorName (
  427.         struct IRouteLocatorName * locatorName ) = 0;
  428.     virtual HRESULT __stdcall get_RouteLocatorName (
  429.         struct IRouteLocatorName * * locatorName ) = 0;
  430.     virtual HRESULT __stdcall putref_EventTableName (
  431.         struct IName * aName ) = 0;
  432.     virtual HRESULT __stdcall get_EventTableName (
  433.         struct IName * * aName ) = 0;
  434.     virtual HRESULT __stdcall putref_EventProperties (
  435.         struct IRouteEventProperties * EventProperties ) = 0;
  436.     virtual HRESULT __stdcall get_EventProperties (
  437.         struct IRouteEventProperties * * EventProperties ) = 0;
  438. };
  439. struct __declspec(uuid("71045ca3-7902-11d4-9fe5-00c04f6bdf06"))
  440. IXYEventProperties : IUnknown
  441. {};
  442. struct __declspec(uuid("07f0ce74-eaeb-11d3-9f8a-00c04f6bdf06"))
  443. IXYEventSourceName : IUnknown
  444. {
  445.     //
  446.     // Raw methods provided by interface
  447.     //
  448.     virtual HRESULT __stdcall putref_EventTableName (
  449.         struct IName * aName ) = 0;
  450.     virtual HRESULT __stdcall get_EventTableName (
  451.         struct IName * * aName ) = 0;
  452.     virtual HRESULT __stdcall putref_EventProperties (
  453.         struct IXYEventProperties * xyProperties ) = 0;
  454.     virtual HRESULT __stdcall get_EventProperties (
  455.         struct IXYEventProperties * * xyProperties ) = 0;
  456.     virtual HRESULT __stdcall putref_SpatialReference (
  457.         struct ISpatialReference * SpatialReference ) = 0;
  458.     virtual HRESULT __stdcall get_SpatialReference (
  459.         struct ISpatialReference * * SpatialReference ) = 0;
  460. };
  461. enum esriGPMessageSeverity
  462. {
  463.     esriGPMessageSeverityInformative = 0,
  464.     esriGPMessageSeverityWarning = 1,
  465.     esriGPMessageSeverityError = 2,
  466.     esriGPMessageSeverityAbort = 3
  467. };
  468. struct __declspec(uuid("1264c9a8-0afe-4903-87ba-a39b1f72779d"))
  469. IGPMessagesCallback : IUnknown
  470. {
  471.     //
  472.     // Raw methods provided by interface
  473.     //
  474.     virtual HRESULT __stdcall MessageAdded (
  475.         struct IGPMessage * Message ) = 0;
  476. };
  477. struct __declspec(uuid("0696aa9d-c26b-4a3e-89b7-3763ea11f16c"))
  478. IGPMessages : IUnknown
  479. {
  480.     //
  481.     // Raw methods provided by interface
  482.     //
  483.     virtual HRESULT __stdcall putref_Callback (
  484.         struct IGPMessagesCallback * messagesCallback ) = 0;
  485.     virtual HRESULT __stdcall get_Callback (
  486.         struct IGPMessagesCallback * * messagesCallback ) = 0;
  487.     virtual HRESULT __stdcall Clear ( ) = 0;
  488.     virtual HRESULT __stdcall Add (
  489.         struct IGPMessage * msg ) = 0;
  490.     virtual HRESULT __stdcall AddWarning (
  491.         BSTR Message ) = 0;
  492.     virtual HRESULT __stdcall AddAbort (
  493.         BSTR Message ) = 0;
  494.     virtual HRESULT __stdcall AddError (
  495.         long ErrorCode,
  496.         BSTR Message ) = 0;
  497.     virtual HRESULT __stdcall AddMessage (
  498.         BSTR Message ) = 0;
  499.     virtual HRESULT __stdcall AddMessages (
  500.         struct IGPMessages * Messages ) = 0;
  501.     virtual HRESULT __stdcall InitializeMessages (
  502.         long nMessages ) = 0;
  503.     virtual HRESULT __stdcall Replace (
  504.         long Index,
  505.         struct IGPMessage * msg ) = 0;
  506.     virtual HRESULT __stdcall ReplaceError (
  507.         long Index,
  508.         long ErrorCode,
  509.         BSTR Message ) = 0;
  510.     virtual HRESULT __stdcall ReplaceWarning (
  511.         long Index,
  512.         BSTR Message ) = 0;
  513.     virtual HRESULT __stdcall ReplaceAbort (
  514.         long Index,
  515.         BSTR Message ) = 0;
  516.     virtual HRESULT __stdcall ReplaceMessage (
  517.         long Index,
  518.         BSTR Message ) = 0;
  519.     virtual HRESULT __stdcall get_Count (
  520.         long * Count ) = 0;
  521.     virtual HRESULT __stdcall GetMessage (
  522.         long Index,
  523.         struct IGPMessage * * msg ) = 0;
  524.     virtual HRESULT __stdcall get_Messages (
  525.         struct IArray * * msgs ) = 0;
  526.     virtual HRESULT __stdcall get_MaxSeverity (
  527.         enum esriGPMessageSeverity * severity ) = 0;
  528. };
  529. struct __declspec(uuid("06414895-d64d-46b0-856c-f7b7ece73d36"))
  530. IEnumGPValue : IUnknown
  531. {
  532.     //
  533.     // Raw methods provided by interface
  534.     //
  535.     virtual HRESULT __stdcall Next (
  536.         struct IGPValue * * Value ) = 0;
  537.     virtual HRESULT __stdcall Reset ( ) = 0;
  538. };
  539. struct __declspec(uuid("17a47938-e1ed-4d82-a1d1-d274465fcbc4"))
  540. IGPName : IUnknown
  541. {
  542.     //
  543.     // Raw methods provided by interface
  544.     //
  545.     virtual HRESULT __stdcall get_Name (
  546.         BSTR * Name ) = 0;
  547.     virtual HRESULT __stdcall put_Name (
  548.         BSTR Name ) = 0;
  549.     virtual HRESULT __stdcall get_DisplayName (
  550.         BSTR * Name ) = 0;
  551.     virtual HRESULT __stdcall put_DisplayName (
  552.         BSTR Name ) = 0;
  553.     virtual HRESULT __stdcall get_Description (
  554.         BSTR * Description ) = 0;
  555.     virtual HRESULT __stdcall put_Description (
  556.         BSTR Description ) = 0;
  557.     virtual HRESULT __stdcall get_Category (
  558.         BSTR * Path ) = 0;
  559.     virtual HRESULT __stdcall put_Category (
  560.         BSTR Path ) = 0;
  561.     virtual HRESULT __stdcall get_Factory (
  562.         IUnknown * * Factory ) = 0;
  563.     virtual HRESULT __stdcall putref_Factory (
  564.         IUnknown * Factory ) = 0;
  565. };
  566. struct __declspec(uuid("4daa55f1-b959-4c53-990b-a871b19ba3d6"))
  567. IEnumGPName : IUnknown
  568. {
  569.     //
  570.     // Raw methods provided by interface
  571.     //
  572.     virtual HRESULT __stdcall Next (
  573.         struct IGPName * * Name ) = 0;
  574.     virtual HRESULT __stdcall Reset ( ) = 0;
  575. };
  576. struct __declspec(uuid("df228952-8e0a-408e-9873-ce8341ef7d57"))
  577. IGPDataTypeName : IUnknown
  578. {};
  579. struct __declspec(uuid("1aff0d88-e9b8-4571-8df1-217dcaf48a50"))
  580. IGPDataTypeFactory : IUnknown
  581. {
  582.     //
  583.     // Raw methods provided by interface
  584.     //
  585.     virtual HRESULT __stdcall get_CLSID (
  586.         struct IUID * * CLSID ) = 0;
  587.     virtual HRESULT __stdcall GetDataType (
  588.         BSTR Name,
  589.         struct IGPDataType * * Type ) = 0;
  590.     virtual HRESULT __stdcall GetDataTypeName (
  591.         BSTR Name,
  592.         struct IGPName * * datatypename ) = 0;
  593.     virtual HRESULT __stdcall GetDataTypeNames (
  594.         struct IEnumGPName * * datatypenames ) = 0;
  595. };
  596. struct __declspec(uuid("91290e84-b518-43e3-8e7a-9ee8e0cef5c9"))
  597. IGPVariable : IUnknown
  598. {
  599.     //
  600.     // Raw methods provided by interface
  601.     //
  602.     virtual HRESULT __stdcall get_Name (
  603.         BSTR * Name ) = 0;
  604.     virtual HRESULT __stdcall put_Name (
  605.         BSTR Name ) = 0;
  606.     virtual HRESULT __stdcall get_Value (
  607.         struct IGPValue * * Value ) = 0;
  608.     virtual HRESULT __stdcall putref_Value (
  609.         struct IGPValue * Value ) = 0;
  610.     virtual HRESULT __stdcall get_DataType (
  611.         struct IGPDataType * * DataType ) = 0;
  612.     virtual HRESULT __stdcall putref_DataType (
  613.         struct IGPDataType * DataType ) = 0;
  614.     virtual HRESULT __stdcall get_Derived (
  615.         VARIANT_BOOL * Derived ) = 0;
  616.     virtual HRESULT __stdcall put_Derived (
  617.         VARIANT_BOOL Derived ) = 0;
  618. };
  619. struct __declspec(uuid("41dc44a0-d2eb-11d5-933f-0080c71a3226"))
  620. IGPCodedValueDomain : IUnknown
  621. {
  622.     //
  623.     // Raw methods provided by interface
  624.     //
  625.     virtual HRESULT __stdcall get_CodeCount (
  626.         long * values ) = 0;
  627.     virtual HRESULT __stdcall get_Name (
  628.         long Index,
  629.         BSTR * Name ) = 0;
  630.     virtual HRESULT __stdcall get_Value (
  631.         long Index,
  632.         struct IGPValue * * Value ) = 0;
  633.     virtual HRESULT __stdcall FindValue (
  634.         BSTR Name,
  635.         struct IGPValue * * Value ) = 0;
  636.     virtual HRESULT __stdcall AddCode (
  637.         struct IGPValue * Value,
  638.         BSTR Name ) = 0;
  639.     virtual HRESULT __stdcall AddStringCode (
  640.         BSTR Value,
  641.         BSTR Name ) = 0;
  642.     virtual HRESULT __stdcall DeleteCode (
  643.         struct IGPValue * Value ) = 0;
  644.     virtual HRESULT __stdcall Empty ( ) = 0;
  645.     virtual HRESULT __stdcall PopulateDomain (
  646.         BSTR values,
  647.         BSTR Names,
  648.         struct IGPDataType * pGPDataType ) = 0;
  649.     virtual HRESULT __stdcall FindName (
  650.         struct IGPValue * pValue,
  651.         BSTR * Name ) = 0;
  652. };
  653. struct __declspec(uuid("1a4b7a52-e1d9-4ab8-a741-70467cbf9f5f"))
  654. IGPChoiceList : IUnknown
  655. {
  656.     //
  657.     // Raw methods provided by interface
  658.     //
  659.     virtual HRESULT __stdcall MakeChoiceList (
  660.         struct IArray * pValue,
  661.         struct IGPDomain * pDomain,
  662.         struct IGPCodedValueDomain * * ppDomain ) = 0;
  663. };
  664. enum esriDEExpandType
  665. {
  666.     esriDEExpandNone = 0,
  667.     esriDEExpandChildren = 1,
  668.     esriDEExpandDescendants = 2
  669. };
  670. struct __declspec(uuid("25e52c75-56a2-4631-9ca3-2de46103ebfb"))
  671. IDEBrowseOptions : IUnknown
  672. {
  673.     //
  674.     // Raw methods provided by interface
  675.     //
  676.     virtual HRESULT __stdcall get_ExpandType (
  677.         enum esriDEExpandType * pExpandType ) = 0;
  678.     virtual HRESULT __stdcall put_ExpandType (
  679.         enum esriDEExpandType pExpandType ) = 0;
  680.     virtual HRESULT __stdcall get_RetrieveFullProperties (
  681.         VARIANT_BOOL * pFullProp ) = 0;
  682.     virtual HRESULT __stdcall put_RetrieveFullProperties (
  683.         VARIANT_BOOL pFullProp ) = 0;
  684.     virtual HRESULT __stdcall get_RetrieveMetadata (
  685.         VARIANT_BOOL * pFullProp ) = 0;
  686.     virtual HRESULT __stdcall put_RetrieveMetadata (
  687.         VARIANT_BOOL pFullProp ) = 0;
  688. };
  689. struct __declspec(uuid("e2c87df0-33d9-4a47-9b67-fa54b2fd7966"))
  690. IDataElement : IUnknown
  691. {
  692.     //
  693.     // Raw methods provided by interface
  694.     //
  695.     virtual HRESULT __stdcall get_Type (
  696.         BSTR * pType ) = 0;
  697.     virtual HRESULT __stdcall put_Type (
  698.         BSTR pType ) = 0;
  699.     virtual HRESULT __stdcall get_Name (
  700.         BSTR * pName ) = 0;
  701.     virtual HRESULT __stdcall put_Name (
  702.         BSTR pName ) = 0;
  703.     virtual HRESULT __stdcall get_CatalogPath (
  704.         BSTR * Path ) = 0;
  705.     virtual HRESULT __stdcall put_CatalogPath (
  706.         BSTR Path ) = 0;
  707.     virtual HRESULT __stdcall get_Children (
  708.         struct IArray * * ppDataElements ) = 0;
  709.     virtual HRESULT __stdcall putref_Children (
  710.         struct IArray * ppDataElements ) = 0;
  711.     virtual HRESULT __stdcall get_ChildrenExpanded (
  712.         VARIANT_BOOL * pChildrenExpanded ) = 0;
  713.     virtual HRESULT __stdcall put_ChildrenExpanded (
  714.         VARIANT_BOOL pChildrenExpanded ) = 0;
  715.     virtual HRESULT __stdcall get_MetadataRetrieved (
  716.         VARIANT_BOOL * pMetadataRetrieved ) = 0;
  717.     virtual HRESULT __stdcall put_MetadataRetrieved (
  718.         VARIANT_BOOL pMetadataRetrieved ) = 0;
  719.     virtual HRESULT __stdcall get_FullPropsRetrieved (
  720.         VARIANT_BOOL * pFullPropsRetrieved ) = 0;
  721.     virtual HRESULT __stdcall put_FullPropsRetrieved (
  722.         VARIANT_BOOL pFullPropsRetrieved ) = 0;
  723.     virtual HRESULT __stdcall GetPath (
  724.         BSTR * pPath ) = 0;
  725.     virtual HRESULT __stdcall GetFile (
  726.         BSTR * pFile ) = 0;
  727.     virtual HRESULT __stdcall GetBaseName (
  728.         BSTR * pBaseName ) = 0;
  729.     virtual HRESULT __stdcall GetExtension (
  730.         BSTR * pExtension ) = 0;
  731. };
  732. struct __declspec(uuid("27cd2023-223c-4942-9db0-4e4e83bcf906"))
  733. IEnumDataElement : IUnknown
  734. {
  735.     //
  736.     // Raw methods provided by interface
  737.     //
  738.     virtual HRESULT __stdcall Next (
  739.         struct IDataElement * * ppDataElement ) = 0;
  740.     virtual HRESULT __stdcall Reset ( ) = 0;
  741. };
  742. struct __declspec(uuid("d9ed1335-8e1d-40ca-9ee2-e54772ee500d"))
  743. IDataElementInfo : IUnknown
  744. {
  745.     //
  746.     // Raw methods provided by interface
  747.     //
  748.     virtual HRESULT __stdcall GetDataElement (
  749.         struct IDEBrowseOptions * pBrowseOptions,
  750.         struct IDataElement * * ppDataElement ) = 0;
  751. };
  752. struct __declspec(uuid("5ed64e50-a2f2-11d5-931b-0080c71a3226"))
  753. IDEGeoDataset : IUnknown
  754. {
  755.     //
  756.     // Raw methods provided by interface
  757.     //
  758.     virtual HRESULT __stdcall get_Extent (
  759.         struct IEnvelope * * Extent ) = 0;
  760.     virtual HRESULT __stdcall putref_Extent (
  761.         struct IEnvelope * Extent ) = 0;
  762.     virtual HRESULT __stdcall get_SpatialReference (
  763.         struct ISpatialReference * * SpatialReference ) = 0;
  764.     virtual HRESULT __stdcall putref_SpatialReference (
  765.         struct ISpatialReference * SpatialReference ) = 0;
  766. };
  767. struct __declspec(uuid("c7b1fc10-308f-4fb5-890c-8b5293ead096"))
  768. IDEWorkspace : IUnknown
  769. {
  770.     //
  771.     // Raw methods provided by interface
  772.     //
  773.     virtual HRESULT __stdcall get_WorkspaceType (
  774.         enum esriWorkspaceType * pWorkspaceType ) = 0;
  775.     virtual HRESULT __stdcall put_WorkspaceType (
  776.         enum esriWorkspaceType pWorkspaceType ) = 0;
  777.     virtual HRESULT __stdcall get_WorkspaceFactoryProgID (
  778.         BSTR * pProgID ) = 0;
  779.     virtual HRESULT __stdcall put_WorkspaceFactoryProgID (
  780.         BSTR pProgID ) = 0;
  781.     virtual HRESULT __stdcall get_ConnectionString (
  782.         BSTR * pConnection ) = 0;
  783.     virtual HRESULT __stdcall put_ConnectionString (
  784.         BSTR pConnection ) = 0;
  785.     virtual HRESULT __stdcall get_ConnectionProperties (
  786.         struct IPropertySet * * ppConnectionProperties ) = 0;
  787.     virtual HRESULT __stdcall putref_ConnectionProperties (
  788.         struct IPropertySet * ppConnectionProperties ) = 0;
  789.     virtual HRESULT __stdcall get_Domains (
  790.         struct IArray * * ppDomains ) = 0;
  791.     virtual HRESULT __stdcall putref_Domains (
  792.         struct IArray * ppDomains ) = 0;
  793. };
  794. struct __declspec(uuid("4f1d89ce-c93a-4733-9926-7022a7576d2a"))
  795. IWorkspaceDefinition : IUnknown
  796. {
  797.     //
  798.     // Raw methods provided by interface
  799.     //
  800.     virtual HRESULT __stdcall get_WorkspaceType (
  801.         enum esriWorkspaceType * pWorkspaceType ) = 0;
  802.     virtual HRESULT __stdcall put_WorkspaceType (
  803.         enum esriWorkspaceType pWorkspaceType ) = 0;
  804.     virtual HRESULT __stdcall get_Version (
  805.         BSTR * workspaceVersion ) = 0;
  806.     virtual HRESULT __stdcall put_Version (
  807.         BSTR workspaceVersion ) = 0;
  808.     virtual HRESULT __stdcall get_Domains (
  809.         struct IArray * * ppDomains ) = 0;
  810.     virtual HRESULT __stdcall putref_Domains (
  811.         struct IArray * ppDomains ) = 0;
  812.     virtual HRESULT __stdcall get_Children (
  813.         struct IArray * * ppDataElements ) = 0;
  814.     virtual HRESULT __stdcall putref_Children (
  815.         struct IArray * ppDataElements ) = 0;
  816. };
  817. struct __declspec(uuid("29fbed10-a332-11d5-931b-0080c71a3226"))
  818. IDEDataset : IUnknown
  819. {
  820.     //
  821.     // Raw methods provided by interface
  822.     //
  823.     virtual HRESULT __stdcall get_DatasetType (
  824.         enum esriDatasetType * pType ) = 0;
  825.     virtual HRESULT __stdcall put_DatasetType (
  826.         enum esriDatasetType pType ) = 0;
  827.     virtual HRESULT __stdcall get_Versioned (
  828.         VARIANT_BOOL * Versioned ) = 0;
  829.     virtual HRESULT __stdcall put_Versioned (
  830.         VARIANT_BOOL Versioned ) = 0;
  831.     virtual HRESULT __stdcall get_DSID (
  832.         long * DSID ) = 0;
  833.     virtual HRESULT __stdcall put_DSID (
  834.         long DSID ) = 0;
  835.     virtual HRESULT __stdcall get_CanVersion (
  836.         VARIANT_BOOL * canersion ) = 0;
  837.     virtual HRESULT __stdcall put_CanVersion (
  838.         VARIANT_BOOL canersion ) = 0;
  839. };
  840. struct __declspec(uuid("d7fcbb04-8e59-4ffb-9ee5-ec670aa892e0"))
  841. IDETable : IUnknown
  842. {
  843.     //
  844.     // Raw methods provided by interface
  845.     //
  846.     virtual HRESULT __stdcall get_HasOID (
  847.         VARIANT_BOOL * HasOID ) = 0;
  848.     virtual HRESULT __stdcall put_HasOID (
  849.         VARIANT_BOOL HasOID ) = 0;
  850.     virtual HRESULT __stdcall get_OIDFieldName (
  851.         BSTR * OIDFieldName ) = 0;
  852.     virtual HRESULT __stdcall put_OIDFieldName (
  853.         BSTR OIDFieldName ) = 0;
  854.     virtual HRESULT __stdcall get_Indexes (
  855.         struct IIndexes * * ppIndexes ) = 0;
  856.     virtual HRESULT __stdcall putref_Indexes (
  857.         struct IIndexes * ppIndexes ) = 0;
  858.     virtual HRESULT __stdcall get_Fields (
  859.         struct IFields * * ppFields ) = 0;
  860.     virtual HRESULT __stdcall putref_Fields (
  861.         struct IFields * ppFields ) = 0;
  862. };
  863. struct __declspec(uuid("f35fe0cf-d9fc-4172-81f8-20ce5a553ab1"))
  864. IDEGdbTable : IDETable
  865. {
  866.     //
  867.     // Raw methods provided by interface
  868.     //
  869.     virtual HRESULT __stdcall get_CLSID (
  870.         BSTR * ClassID ) = 0;
  871.     virtual HRESULT __stdcall put_CLSID (
  872.         BSTR ClassID ) = 0;
  873.     virtual HRESULT __stdcall get_EXTCLSID (
  874.         BSTR * ClassID ) = 0;
  875.     virtual HRESULT __stdcall put_EXTCLSID (
  876.         BSTR ClassID ) = 0;
  877.     virtual HRESULT __stdcall get_ExtensionProperties (
  878.         struct IPropertySet * * ppPropertySet ) = 0;
  879.     virtual HRESULT __stdcall putref_ExtensionProperties (
  880.         struct IPropertySet * ppPropertySet ) = 0;
  881.     virtual HRESULT __stdcall get_SubtypeFieldName (
  882.         BSTR * FieldName ) = 0;
  883.     virtual HRESULT __stdcall put_SubtypeFieldName (
  884.         BSTR FieldName ) = 0;
  885.     virtual HRESULT __stdcall get_DefaultSubtypeCode (
  886.         long * SubtypeCode ) = 0;
  887.     virtual HRESULT __stdcall put_DefaultSubtypeCode (
  888.         long SubtypeCode ) = 0;
  889.     virtual HRESULT __stdcall get_Subtypes (
  890.         struct IArray * * ppSubtypes ) = 0;
  891.     virtual HRESULT __stdcall putref_Subtypes (
  892.         struct IArray * ppSubtypes ) = 0;
  893.     virtual HRESULT __stdcall get_AliasName (
  894.         BSTR * pAliasName ) = 0;
  895.     virtual HRESULT __stdcall put_AliasName (
  896.         BSTR pAliasName ) = 0;
  897.     virtual HRESULT __stdcall get_ModelName (
  898.         BSTR * pModelName ) = 0;
  899.     virtual HRESULT __stdcall put_ModelName (
  900.         BSTR pModelName ) = 0;
  901.     virtual HRESULT __stdcall get_RelationshipClassNames (
  902.         struct IStringArray * * RelationshipClassNames ) = 0;
  903.     virtual HRESULT __stdcall putref_RelationshipClassNames (
  904.         struct IStringArray * RelationshipClassNames ) = 0;
  905.     virtual HRESULT __stdcall get_ControllerMemberships (
  906.         struct IArray * * ppControllerMemberships ) = 0;
  907.     virtual HRESULT __stdcall putref_ControllerMemberships (
  908.         struct IArray * ppControllerMemberships ) = 0;
  909.     virtual HRESULT __stdcall get_HasGlobalID (
  910.         VARIANT_BOOL * HasGlobalID ) = 0;
  911.     virtual HRESULT __stdcall put_HasGlobalID (
  912.         VARIANT_BOOL HasGlobalID ) = 0;
  913.     virtual HRESULT __stdcall get_GlobalIDFieldName (
  914.         BSTR * GlobalIDFieldName ) = 0;
  915.     virtual HRESULT __stdcall put_GlobalIDFieldName (
  916.         BSTR GlobalIDFieldName ) = 0;
  917.     virtual HRESULT __stdcall get_RasterFieldName (
  918.         BSTR * FieldName ) = 0;
  919.     virtual HRESULT __stdcall put_RasterFieldName (
  920.         BSTR FieldName ) = 0;
  921. };
  922. struct __declspec(uuid("0111d945-785c-4e4d-88fb-bf925644a959"))
  923. IDEFeatureDataset : IUnknown
  924. {};
  925. struct __declspec(uuid("2c944211-d17c-45f4-89da-ab37e95e6411"))
  926. IDEFeatureClass : IUnknown
  927. {
  928.     //
  929.     // Raw methods provided by interface
  930.     //
  931.     virtual HRESULT __stdcall get_ShapeType (
  932.         enum esriGeometryType * pGeometryType ) = 0;
  933.     virtual HRESULT __stdcall put_ShapeType (
  934.         enum esriGeometryType pGeometryType ) = 0;
  935.     virtual HRESULT __stdcall get_FeatureType (
  936.         enum esriFeatureType * pFeatureType ) = 0;
  937.     virtual HRESULT __stdcall put_FeatureType (
  938.         enum esriFeatureType pFeatureType ) = 0;
  939.     virtual HRESULT __stdcall get_ShapeFieldName (
  940.         BSTR * pShapeFieldName ) = 0;
  941.     virtual HRESULT __stdcall put_ShapeFieldName (
  942.         BSTR pShapeFieldName ) = 0;
  943.     virtual HRESULT __stdcall get_HasSpatialIndex (
  944.         VARIANT_BOOL * HasSpatialIndex ) = 0;
  945.     virtual HRESULT __stdcall put_HasSpatialIndex (
  946.         VARIANT_BOOL HasSpatialIndex ) = 0;
  947.     virtual HRESULT __stdcall get_HasZ (
  948.         VARIANT_BOOL * pHasZ ) = 0;
  949.     virtual HRESULT __stdcall put_HasZ (
  950.         VARIANT_BOOL pHasZ ) = 0;
  951.     virtual HRESULT __stdcall get_HasM (
  952.         VARIANT_BOOL * pHasM ) = 0;
  953.     virtual HRESULT __stdcall put_HasM (
  954.         VARIANT_BOOL pHasM ) = 0;
  955. };
  956. struct __declspec(uuid("1ffd96a0-1158-4fb1-9081-1e8f0f801761"))
  957. IDEGdbFeatureClass : IDEFeatureClass
  958. {
  959.     //
  960.     // Raw methods provided by interface
  961.     //
  962.     virtual HRESULT __stdcall get_AreaFieldName (
  963.         BSTR * FieldName ) = 0;
  964.     virtual HRESULT __stdcall put_AreaFieldName (
  965.         BSTR FieldName ) = 0;
  966.     virtual HRESULT __stdcall get_LengthFieldName (
  967.         BSTR * FieldName ) = 0;
  968.     virtual HRESULT __stdcall put_LengthFieldName (
  969.         BSTR FieldName ) = 0;
  970. };
  971. struct __declspec(uuid("8f9c9dc8-9ab1-49ed-b1cc-c6fbfde09567"))
  972. IDERasterCatalog : IUnknown
  973. {
  974.     //
  975.     // Raw methods provided by interface
  976.     //
  977.     virtual HRESULT __stdcall get_RasterFieldName (
  978.         BSTR * FieldName ) = 0;
  979.     virtual HRESULT __stdcall put_RasterFieldName (
  980.         BSTR FieldName ) = 0;
  981. };
  982. struct __declspec(uuid("ac1bd3a5-aa1d-4b24-bb64-0554d59af1fd"))
  983. IGPControllerMembership : IUnknown
  984. {};
  985. struct __declspec(uuid("e8d97cae-9362-4e48-aa85-aba1d8fd628d"))
  986. IGPTopologyMembership : IUnknown
  987. {
  988.     //
  989.     // Raw methods provided by interface
  990.     //
  991.     virtual HRESULT __stdcall get_TopologyName (
  992.         BSTR * pTopologyName ) = 0;
  993.     virtual HRESULT __stdcall put_TopologyName (
  994.         BSTR pTopologyName ) = 0;
  995.     virtual HRESULT __stdcall get_Weight (
  996.         double * Weight ) = 0;
  997.     virtual HRESULT __stdcall put_Weight (
  998.         double Weight ) = 0;
  999.     virtual HRESULT __stdcall get_XYRank (
  1000.         long * pXYRank ) = 0;
  1001.     virtual HRESULT __stdcall put_XYRank (
  1002.         long pXYRank ) = 0;
  1003.     virtual HRESULT __stdcall get_ZRank (
  1004.         long * pZRank ) = 0;
  1005.     virtual HRESULT __stdcall put_ZRank (
  1006.         long pZRank ) = 0;
  1007.     virtual HRESULT __stdcall get_EventNotificationOnValidate (
  1008.         VARIANT_BOOL * pEventNotification ) = 0;
  1009.     virtual HRESULT __stdcall put_EventNotificationOnValidate (
  1010.         VARIANT_BOOL pEventNotification ) = 0;
  1011. };
  1012. struct __declspec(uuid("d012d66d-49f4-409e-bf48-1da710a8d414"))
  1013. IGPGeometricNetworkMembership : IUnknown
  1014. {
  1015.     //
  1016.     // Raw methods provided by interface
  1017.     //
  1018.     virtual HRESULT __stdcall get_GeometricNetworkName (
  1019.         BSTR * pGeometricNetworkName ) = 0;
  1020.     virtual HRESULT __stdcall put_GeometricNetworkName (
  1021.         BSTR pGeometricNetworkName ) = 0;
  1022.     virtual HRESULT __stdcall get_NetworkAncillaryRole (
  1023.         enum esriNetworkClassAncillaryRole * role ) = 0;
  1024.     virtual HRESULT __stdcall put_NetworkAncillaryRole (
  1025.         enum esriNetworkClassAncillaryRole role ) = 0;
  1026.     virtual HRESULT __stdcall get_EnabledFieldName (
  1027.         BSTR * FieldName ) = 0;
  1028.     virtual HRESULT __stdcall put_EnabledFieldName (
  1029.         BSTR FieldName ) = 0;
  1030.     virtual HRESULT __stdcall get_AncillaryRoleFieldName (
  1031.         BSTR * FieldName ) = 0;
  1032.     virtual HRESULT __stdcall put_AncillaryRoleFieldName (
  1033.         BSTR FieldName ) = 0;
  1034. };
  1035. struct __declspec(uuid("da5f6014-afe5-4f1b-9e9c-ba117cd4e594"))
  1036. IDERelationshipClassEx : IUnknown
  1037. {
  1038.     //
  1039.     // Raw methods provided by interface
  1040.     //
  1041.     virtual HRESULT __stdcall get_OriginClassNames (
  1042.         struct IStringArray * * OriginClassNames ) = 0;
  1043.     virtual HRESULT __stdcall putref_OriginClassNames (
  1044.         struct IStringArray * OriginClassNames ) = 0;
  1045.     virtual HRESULT __stdcall get_DestinationClassNames (
  1046.         struct IStringArray * * DestinationClassNames ) = 0;
  1047.     virtual HRESULT __stdcall putref_DestinationClassNames (
  1048.         struct IStringArray * DestinationClassNames ) = 0;
  1049.     virtual HRESULT __stdcall get_OriginClassKeys (
  1050.         struct IArray * * OriginClassKeys ) = 0;
  1051.     virtual HRESULT __stdcall putref_OriginClassKeys (
  1052.         struct IArray * OriginClassKeys ) = 0;
  1053.     virtual HRESULT __stdcall get_DestinationClassKeys (
  1054.         struct IArray * * DestinationClassNames ) = 0;
  1055.     virtual HRESULT __stdcall putref_DestinationClassKeys (
  1056.         struct IArray * DestinationClassNames ) = 0;
  1057.     virtual HRESULT __stdcall get_KeyType (
  1058.         enum esriRelKeyType * KeyType ) = 0;
  1059.     virtual HRESULT __stdcall put_KeyType (
  1060.         enum esriRelKeyType KeyType ) = 0;
  1061.     virtual HRESULT __stdcall get_ClassKey (
  1062.         enum esriRelClassKey * ClassKey ) = 0;
  1063.     virtual HRESULT __stdcall put_ClassKey (
  1064.         enum esriRelClassKey ClassKey ) = 0;
  1065.     virtual HRESULT __stdcall get_IsReflexive (
  1066.         VARIANT_BOOL * reflexive ) = 0;
  1067.     virtual HRESULT __stdcall put_IsReflexive (
  1068.         VARIANT_BOOL reflexive ) = 0;
  1069.     virtual HRESULT __stdcall get_ForwardPathLabel (
  1070.         BSTR * label ) = 0;
  1071.     virtual HRESULT __stdcall put_ForwardPathLabel (
  1072.         BSTR label ) = 0;
  1073.     virtual HRESULT __stdcall get_BackwardPathLabel (
  1074.         BSTR * label ) = 0;
  1075.     virtual HRESULT __stdcall put_BackwardPathLabel (
  1076.         BSTR label ) = 0;
  1077.     virtual HRESULT __stdcall get_Cardinality (
  1078.         enum esriRelCardinality * relCardinality ) = 0;
  1079.     virtual HRESULT __stdcall put_Cardinality (
  1080.         enum esriRelCardinality relCardinality ) = 0;
  1081.     virtual HRESULT __stdcall get_Notification (
  1082.         enum esriRelNotification * Notification ) = 0;
  1083.     virtual HRESULT __stdcall put_Notification (
  1084.         enum esriRelNotification Notification ) = 0;
  1085.     virtual HRESULT __stdcall get_IsAttributed (
  1086.         VARIANT_BOOL * attributed ) = 0;
  1087.     virtual HRESULT __stdcall put_IsAttributed (
  1088.         VARIANT_BOOL attributed ) = 0;
  1089.     virtual HRESULT __stdcall get_IsComposite (
  1090.         VARIANT_BOOL * composite ) = 0;
  1091.     virtual HRESULT __stdcall put_IsComposite (
  1092.         VARIANT_BOOL composite ) = 0;
  1093.     virtual HRESULT __stdcall get_RelationshipRules (
  1094.         struct IArray * * Rules ) = 0;
  1095.     virtual HRESULT __stdcall putref_RelationshipRules (
  1096.         struct IArray * Rules ) = 0;
  1097. };
  1098. struct __declspec(uuid("7c2c531e-4882-40f5-bace-323ef546d33c"))
  1099. IGPRelationshipClassKey : IUnknown
  1100. {
  1101.     //
  1102.     // Raw methods provided by interface
  1103.     //
  1104.     virtual HRESULT __stdcall put_KeyRole (
  1105.         enum esriRelKeyRole role ) = 0;
  1106.     virtual HRESULT __stdcall get_KeyRole (
  1107.         enum esriRelKeyRole * role ) = 0;
  1108.     virtual HRESULT __stdcall put_ObjectKeyName (
  1109.         BSTR Name ) = 0;
  1110.     virtual HRESULT __stdcall get_ObjectKeyName (
  1111.         BSTR * Name ) = 0;
  1112.     virtual HRESULT __stdcall put_ClassKeyName (
  1113.         BSTR Name ) = 0;
  1114.     virtual HRESULT __stdcall get_ClassKeyName (
  1115.         BSTR * Name ) = 0;
  1116. };
  1117. struct __declspec(uuid("4926a958-7885-484c-811b-2c8b12b0c1a2"))
  1118. IDataElementType : IUnknown
  1119. {
  1120.     //
  1121.     // Raw methods provided by interface
  1122.     //
  1123.     virtual HRESULT __stdcall CreateOutputDataElement (
  1124.         BSTR CatalogPath,
  1125.         BSTR optionalWorkspace,
  1126.         struct IDataElement * * ppDataElement ) = 0;
  1127. };
  1128. struct __declspec(uuid("d23fdd2b-1986-4359-ac2b-d7bf7d582c5e"))
  1129. IDEWorkspaceType : IUnknown
  1130. {};
  1131. struct __declspec(uuid("694b287c-7297-4b99-bb59-c2dfaf48f6a0"))
  1132. IDETableType : IUnknown
  1133. {};
  1134. struct __declspec(uuid("a60642f3-a6cc-472c-aaed-1bd5c0248e1f"))
  1135. IFieldType : IUnknown
  1136. {};
  1137. struct __declspec(uuid("d8d57ce0-a6f3-11d5-931e-0080c71a3226"))
  1138. IIndexType : IUnknown
  1139. {};
  1140. struct __declspec(uuid("2ea85780-a626-11d5-931d-0080c71a3226"))
  1141. IDEDatasetType : IUnknown
  1142. {};
  1143. struct __declspec(uuid("691be63c-024f-4958-8f9b-d8252342e915"))
  1144. IGxFilterInfo : IUnknown
  1145. {
  1146.     //
  1147.     // Raw methods provided by interface
  1148.     //
  1149.     virtual HRESULT __stdcall get_OpenGxObjectFilters (
  1150.         struct IArray * * ppFilters ) = 0;
  1151.     virtual HRESULT __stdcall get_SaveGxObjectFilters (
  1152.         struct IArray * * ppFilters ) = 0;
  1153. };
  1154. struct __declspec(uuid("264d4c00-a628-11d5-931d-0080c71a3226"))
  1155. IDEGeoDatasetType : IUnknown
  1156. {};
  1157. struct __declspec(uuid("ba97439e-9387-49f7-a43b-88abb81ce0c0"))
  1158. IDEFeatureDatasetType : IUnknown
  1159. {};
  1160. struct __declspec(uuid("47a096bb-f338-428a-a403-ff6e8de9ef94"))
  1161. IDEFeatureClassType : IUnknown
  1162. {};
  1163. struct __declspec(uuid("294e86c0-b012-4c11-9bd7-2db0c2bbe637"))
  1164. IDERelationshipClassType : IUnknown
  1165. {};
  1166. struct __declspec(uuid("b4789b1d-fc20-446b-9a84-964491c6f6ba"))
  1167. IDEGeometricNetworkType : IUnknown
  1168. {};
  1169. struct __declspec(uuid("acdbe3c0-e303-43e1-8038-8b391692f267"))
  1170. IDEGeometricNetwork : IUnknown
  1171. {
  1172.     //
  1173.     // Raw methods provided by interface
  1174.     //
  1175.     virtual HRESULT __stdcall get_Rules (
  1176.         struct IArray * * Rules ) = 0;
  1177.     virtual HRESULT __stdcall putref_Rules (
  1178.         struct IArray * Rules ) = 0;
  1179.     virtual HRESULT __stdcall get_NetworkType (
  1180.         enum esriNetworkType * Type ) = 0;
  1181.     virtual HRESULT __stdcall put_NetworkType (
  1182.         enum esriNetworkType Type ) = 0;
  1183.     virtual HRESULT __stdcall get_OrphanJunctionFeatureClassName (
  1184.         BSTR * FeatureClass ) = 0;
  1185.     virtual HRESULT __stdcall put_OrphanJunctionFeatureClassName (
  1186.         BSTR FeatureClass ) = 0;
  1187.     virtual HRESULT __stdcall get_FeatureClassNames (
  1188.         struct IStringArray * * FeatureClassNames ) = 0;
  1189.     virtual HRESULT __stdcall putref_FeatureClassNames (
  1190.         struct IStringArray * FeatureClassNames ) = 0;
  1191.     virtual HRESULT __stdcall get_NetworkWeights (
  1192.         struct IArray * * netWeights ) = 0;
  1193.     virtual HRESULT __stdcall putref_NetworkWeights (
  1194.         struct IArray * netWeights ) = 0;
  1195.     virtual HRESULT __stdcall get_WeightAssociations (
  1196.         struct IArray * * WeightAssociations ) = 0;
  1197.     virtual HRESULT __stdcall putref_WeightAssociations (
  1198.         struct IArray * WeightAssociations ) = 0;
  1199. };
  1200. struct __declspec(uuid("2f5817ab-5c2f-4250-b515-d2bdcdb5fa84"))
  1201. IDETopology : IUnknown
  1202. {
  1203.     //
  1204.     // Raw methods provided by interface
  1205.     //
  1206.     virtual HRESULT __stdcall get_ClusterTolerance (
  1207.         double * clusterTol ) = 0;
  1208.     virtual HRESULT __stdcall put_ClusterTolerance (
  1209.         double clusterTol ) = 0;
  1210.     virtual HRESULT __stdcall get_ZClusterTolerance (
  1211.         double * clusterTol ) = 0;
  1212.     virtual HRESULT __stdcall put_ZClusterTolerance (
  1213.         double clusterTol ) = 0;
  1214.     virtual HRESULT __stdcall get_MaximumGeneratedErrorCount (
  1215.         long * maxErrorCount ) = 0;
  1216.     virtual HRESULT __stdcall put_MaximumGeneratedErrorCount (
  1217.         long maxErrorCount ) = 0;
  1218.     virtual HRESULT __stdcall get_Rules (
  1219.         struct IArray * * Rules ) = 0;
  1220.     virtual HRESULT __stdcall putref_Rules (
  1221.         struct IArray * Rules ) = 0;
  1222.     virtual HRESULT __stdcall get_FeatureClassNames (
  1223.         struct IStringArray * * FeatureClassNames ) = 0;
  1224.     virtual HRESULT __stdcall putref_FeatureClassNames (
  1225.         struct IStringArray * FeatureClassNames ) = 0;
  1226. };
  1227. struct __declspec(uuid("924fd381-f8f0-45c5-aaea-34f2959770e6"))
  1228. IDETopologyType : IUnknown
  1229. {};
  1230. struct __declspec(uuid("d3a432e3-8922-4835-9d23-400abe0d36f6"))
  1231. IDERasterCatalogType : IUnknown
  1232. {};
  1233. struct __declspec(uuid("0592f426-4f2c-4016-adc7-0a84ed2e1bc0"))
  1234. DEBrowseOptions;
  1235.     // [ default ] interface IUnknown
  1236.     // interface IDEBrowseOptions
  1237.     // interface IXMLSerialize
  1238. struct __declspec(uuid("de546f38-3266-48d2-bfe8-61fa0baef5d1"))
  1239. DEWorkspaceType;
  1240.     // [ default ] interface IUnknown
  1241.     // interface IDEWorkspaceType
  1242.     // interface IGxFilterInfo
  1243.     // interface IDataElementType
  1244.     // interface IGPDataType
  1245.     // interface IClone
  1246. struct __declspec(uuid("d19dd6fc-2460-42c0-9197-5d2e840ac485"))
  1247. DETableType;
  1248.     // [ default ] interface IUnknown
  1249.     // interface IDETableType
  1250.     // interface IDEDatasetType
  1251.     // interface IGxFilterInfo
  1252.     // interface IDataElementType
  1253.     // interface IGPDataType
  1254.     // interface IClone
  1255. struct __declspec(uuid("b44ef553-fa9f-4987-804c-fcaa537024ed"))
  1256. FieldType;
  1257.     // [ default ] interface IUnknown
  1258.     // interface IFieldType
  1259.     // interface IGPDataType
  1260.     // interface IClone
  1261.     // interface IGPChoiceList
  1262. struct __declspec(uuid("37b22058-107e-4bce-9a52-81b31fb2f0a4"))
  1263. IndexType;
  1264.     // [ default ] interface IUnknown
  1265.     // interface IIndexType
  1266.     // interface IGPDataType
  1267.     // interface IClone
  1268. struct __declspec(uuid("b073022c-969e-4e42-bcb4-8ce637ca2332"))
  1269. DEFeatureDatasetType;
  1270.     // [ default ] interface IUnknown
  1271.     // interface IDEFeatureDatasetType
  1272.     // interface IDEGeoDatasetType
  1273.     // interface IDEDatasetType
  1274.     // interface IGxFilterInfo
  1275.     // interface IDataElementType
  1276.     // interface IGPDataType
  1277.     // interface IClone
  1278. struct __declspec(uuid("e87c2f50-7758-4a34-bd92-d66beb2df03e"))
  1279. DEFeatureClassType;
  1280.     // [ default ] interface IUnknown
  1281.     // interface IDEFeatureClassType
  1282.     // interface IDETableType
  1283.     // interface IDEGeoDatasetType
  1284.     // interface IDEDatasetType
  1285.     // interface IGxFilterInfo
  1286.     // interface IDataElementType
  1287.     // interface IGPDataType
  1288.     // interface IClone
  1289. struct __declspec(uuid("7693bf47-9e32-40a3-b643-0b093c2a6cfc"))
  1290. DERelationshipClassType;
  1291.     // [ default ] interface IUnknown
  1292.     // interface IDERelationshipClassType
  1293.     // interface IDETableType
  1294.     // interface IDEDatasetType
  1295.     // interface IGxFilterInfo
  1296.     // interface IDataElementType
  1297.     // interface IGPDataType
  1298.     // interface IClone
  1299. struct __declspec(uuid("bade4285-63ed-495c-ac57-435dd4687b31"))
  1300. WorkspaceDefinition;
  1301.     // [ default ] interface IUnknown
  1302.     // interface IWorkspaceDefinition
  1303.     // interface IXMLSerialize
  1304.     // interface IMetadata
  1305. struct __declspec(uuid("2127af36-cae1-427e-b1a8-bf0f1ad19f6e"))
  1306. DEWorkspace;
  1307.     // [ default ] interface IUnknown
  1308.     // interface IDEWorkspace
  1309.     // interface IDataElement
  1310.     // interface IMetadata
  1311.     // interface IGPValue
  1312.     // interface IXMLSerialize
  1313.     // interface IClone
  1314.     // interface IPersistStream
  1315.     // interface IGPDescribe
  1316. struct __declspec(uuid("9c8405db-bb87-4bd6-932d-7ffb35b04ba0"))
  1317. DETable;
  1318.     // [ default ] interface IUnknown
  1319.     // interface IDETable
  1320.     // interface IDEGdbTable
  1321.     // interface IDEDataset
  1322.     // interface IDataElement
  1323.     // interface IMetadata
  1324.     // interface IGPValue
  1325.     // interface IXMLSerialize
  1326.     // interface IClone
  1327.     // interface IPersistStream
  1328.     // interface IGPDescribe
  1329. struct __declspec(uuid("6ac619fe-191f-432d-b1a3-28ce85a591af"))
  1330. DEFeatureDataset;
  1331.     // [ default ] interface IUnknown
  1332.     // interface IDEFeatureDataset
  1333.     // interface IDEGeoDataset
  1334.     // interface IDEDataset
  1335.     // interface IDataElement
  1336.     // interface IMetadata
  1337.     // interface IGPValue
  1338.     // interface IXMLSerialize
  1339.     // interface IClone
  1340.     // interface IPersistStream
  1341.     // interface IGPDescribe
  1342. struct __declspec(uuid("00bb7f40-3e51-4864-a66c-7f0c8ee9a842"))
  1343. DEFeatureClass;
  1344.     // [ default ] interface IUnknown
  1345.     // interface IDEFeatureClass
  1346.     // interface IDETable
  1347.     // interface IDEGdbFeatureClass
  1348.     // interface IDEGdbTable
  1349.     // interface IDEGeoDataset
  1350.     // interface IDEDataset
  1351.     // interface IDataElement
  1352.     // interface IMetadata
  1353.     // interface IGPValue
  1354.     // interface IXMLSerialize
  1355.     // interface IClone
  1356.     // interface IPersistStream
  1357.     // interface IGPDescribe
  1358. struct __declspec(uuid("7ee891d6-6acd-4687-9bf4-fce49fc47157"))
  1359. GPGeometricNetworkMembership;
  1360.     // [ default ] interface IUnknown
  1361.     // interface IGPControllerMembership
  1362.     // interface IGPGeometricNetworkMembership
  1363.     // interface IXMLSerialize
  1364.     // interface IClone
  1365.     // interface IPersist
  1366.     // interface IPersistStream
  1367. struct __declspec(uuid("5da78ff6-546b-4af0-84b8-50b68484d9d5"))
  1368. GPTopologyMembership;
  1369.     // [ default ] interface IUnknown
  1370.     // interface IGPControllerMembership
  1371.     // interface IGPTopologyMembership
  1372.     // interface IXMLSerialize
  1373.     // interface IClone
  1374.     // interface IPersist
  1375.     // interface IPersistStream
  1376. struct __declspec(uuid("d41f5487-6b16-42fd-ab61-63a55b519b71"))
  1377. DERelationshipClass;
  1378.     // [ default ] interface IUnknown
  1379.     // interface IDERelationshipClassEx
  1380.     // interface IDETable
  1381.     // interface IDEGdbTable
  1382.     // interface IDataElement
  1383.     // interface IDEDataset
  1384.     // interface IMetadata
  1385.     // interface IGPValue
  1386.     // interface IXMLSerialize
  1387.     // interface IClone
  1388.     // interface IPersistStream
  1389.     // interface IGPDescribe
  1390. struct __declspec(uuid("960cb02a-8caf-442b-acf7-6b6256fc19f9"))
  1391. GPDataTypeName;
  1392.     // [ default ] interface IUnknown
  1393.     // interface IName
  1394.     // interface IGPName
  1395.     // interface IGPDataTypeName
  1396.     // interface IXMLSerialize
  1397.     // interface IPersistStream
  1398. struct __declspec(uuid("fd0bb2d3-6c4e-43af-b084-a806a6c8e66e"))
  1399. GPMessage;
  1400.     // [ default ] interface IDispatch
  1401.     // interface IGPMessage
  1402.     // interface IClone
  1403.     // interface IPersistStream
  1404.     // interface IXMLSerialize
  1405. struct __declspec(uuid("6d59957c-ead2-491b-963c-2c41feb79c2f"))
  1406. GPMessages;
  1407.     // [ default ] interface IDispatch
  1408.     // interface IGPMessage
  1409.     // interface IGPMessages
  1410.     // interface IClone
  1411.     // interface IPersistStream
  1412.     // interface IXMLSerialize
  1413. struct __declspec(uuid("d2ba94ef-a424-4fcf-a6d2-5015a1b2080e"))
  1414. DEGeometricNetworkType;
  1415.     // [ default ] interface IUnknown
  1416.     // interface IDEGeometricNetworkType
  1417.     // interface IDEGeoDatasetType
  1418.     // interface IDEDatasetType
  1419.     // interface IGxFilterInfo
  1420.     // interface IGPDataType
  1421.     // interface IClone
  1422.     // interface IDataElementType
  1423. struct __declspec(uuid("fe68ba8c-935d-4f6f-80d5-7957f8dbefdf"))
  1424. DEGeometricNetwork;
  1425.     // [ default ] interface IUnknown
  1426.     // interface IDEGeometricNetwork
  1427.     // interface IDEGeoDataset
  1428.     // interface IDEDataset
  1429.     // interface IDataElement
  1430.     // interface IMetadata
  1431.     // interface IGPValue
  1432.     // interface IXMLSerialize
  1433.     // interface IClone
  1434.     // interface IPersistStream
  1435.     // interface IGPDescribe
  1436. struct __declspec(uuid("acc4637d-d5e0-47d5-abcd-9f25ab326e6f"))
  1437. DETopology;
  1438.     // [ default ] interface IUnknown
  1439.     // interface IDETopology
  1440.     // interface IDEGeoDataset
  1441.     // interface IDEDataset
  1442.     // interface IDataElement
  1443.     // interface IMetadata
  1444.     // interface IGPValue
  1445.     // interface IXMLSerialize
  1446.     // interface IClone
  1447.     // interface IPersistStream
  1448.     // interface IGPDescribe
  1449. struct __declspec(uuid("4c008436-c283-408f-b5f9-f6804c7e3635"))
  1450. DETopologyType;
  1451.     // [ default ] interface IUnknown
  1452.     // interface IDETopologyType
  1453.     // interface IDEGeoDatasetType
  1454.     // interface IDEDatasetType
  1455.     // interface IDataElementType
  1456.     // interface IGxFilterInfo
  1457.     // interface IGPDataType
  1458.     // interface IClone
  1459. struct __declspec(uuid("80207192-7ce8-4d06-9542-763e78518ffb"))
  1460. DERasterCatalog;
  1461.     // [ default ] interface IUnknown
  1462.     // interface IDERasterCatalog
  1463.     // interface IDEFeatureClass
  1464.     // interface IDETable
  1465.     // interface IDEGdbFeatureClass
  1466.     // interface IDEGdbTable
  1467.     // interface IDEGeoDataset
  1468.     // interface IDEDataset
  1469.     // interface IDataElement
  1470.     // interface IMetadata
  1471.     // interface IGPValue
  1472.     // interface IXMLSerialize
  1473.     // interface IClone
  1474.     // interface IPersistStream
  1475.     // interface IGPDescribe
  1476. struct __declspec(uuid("46ee5b40-1292-4c56-b27c-a1f6dfbc0287"))
  1477. DERasterCatalogType;
  1478.     // [ default ] interface IUnknown
  1479.     // interface IDERasterCatalogType
  1480.     // interface IDEFeatureClassType
  1481.     // interface IDETableType
  1482.     // interface IDEGeoDatasetType
  1483.     // interface IDEDatasetType
  1484.     // interface IGxFilterInfo
  1485.     // interface IDataElementType
  1486.     // interface IGPDataType
  1487.     // interface IClone
  1488. struct __declspec(uuid("bd65b611-aa51-462f-a11a-b0ba223d9e9c"))
  1489. IDEGdbUtilities : IUnknown
  1490. {
  1491.     //
  1492.     // Raw methods provided by interface
  1493.     //
  1494.     virtual HRESULT __stdcall GetDatasetTypeFromString (
  1495.         BSTR desc,
  1496.         enum esriDatasetType * Type ) = 0;
  1497.     virtual HRESULT __stdcall GetDatasetTypeDescription (
  1498.         enum esriDatasetType Type,
  1499.         BSTR * desc ) = 0;
  1500.     virtual HRESULT __stdcall GetGeometryTypeFromString (
  1501.         BSTR desc,
  1502.         enum esriGeometryType * Type ) = 0;
  1503.     virtual HRESULT __stdcall GetGeometryTypeDescription (
  1504.         enum esriGeometryType Type,
  1505.         BSTR * desc ) = 0;
  1506.     virtual HRESULT __stdcall GetFeatureTypeFromString (
  1507.         BSTR desc,
  1508.         enum esriFeatureType * Type ) = 0;
  1509.     virtual HRESULT __stdcall GetFeatureTypeDescription (
  1510.         enum esriFeatureType Type,
  1511.         BSTR * desc ) = 0;
  1512.     virtual HRESULT __stdcall GetExpandTypeFromString (
  1513.         BSTR desc,
  1514.         enum esriDEExpandType * Type ) = 0;
  1515.     virtual HRESULT __stdcall GetExpandTypeDescription (
  1516.         enum esriDEExpandType Type,
  1517.         BSTR * desc ) = 0;
  1518.     virtual HRESULT __stdcall GetFieldTypeFromString (
  1519.         BSTR desc,
  1520.         enum esriFieldType * Type ) = 0;
  1521.     virtual HRESULT __stdcall GetFieldTypeDescription (
  1522.         enum esriFieldType Type,
  1523.         BSTR * desc ) = 0;
  1524.     virtual HRESULT __stdcall GetWorkspaceTypeFromString (
  1525.         BSTR desc,
  1526.         enum esriWorkspaceType * Type ) = 0;
  1527.     virtual HRESULT __stdcall GetWorkspaceTypeDescription (
  1528.         enum esriWorkspaceType Type,
  1529.         BSTR * desc ) = 0;
  1530.     virtual HRESULT __stdcall GetNetworkClassAncillaryRoleFromString (
  1531.         BSTR desc,
  1532.         enum esriNetworkClassAncillaryRole * role ) = 0;
  1533.     virtual HRESULT __stdcall GetNetworkClassAncillaryRoleDescription (
  1534.         enum esriNetworkClassAncillaryRole role,
  1535.         BSTR * desc ) = 0;
  1536.     virtual HRESULT __stdcall GetRelationshipKeyTypeFromString (
  1537.         BSTR desc,
  1538.         enum esriRelKeyType * KeyType ) = 0;
  1539.     virtual HRESULT __stdcall GetRelationshipKeyTypeDescription (
  1540.         enum esriRelKeyType KeyType,
  1541.         BSTR * desc ) = 0;
  1542.     virtual HRESULT __stdcall GetRelationshipClassKeyFromString (
  1543.         BSTR desc,
  1544.         enum esriRelClassKey * ClassKey ) = 0;
  1545.     virtual HRESULT __stdcall GetRelationshipClassKeyDescription (
  1546.         enum esriRelClassKey ClassKey,
  1547.         BSTR * desc ) = 0;
  1548.     virtual HRESULT __stdcall GetRelationshipKeyRoleFromString (
  1549.         BSTR desc,
  1550.         enum esriRelKeyRole * KeyRole ) = 0;
  1551.     virtual HRESULT __stdcall GetRelationshipKeyRoleDescription (
  1552.         enum esriRelKeyRole KeyRole,
  1553.         BSTR * desc ) = 0;
  1554.     virtual HRESULT __stdcall GetRelationshipCardinalityFromString (
  1555.         BSTR desc,
  1556.         enum esriRelCardinality * card ) = 0;
  1557.     virtual HRESULT __stdcall GetRelationshipCardinalityDescription (
  1558.         enum esriRelCardinality card,
  1559.         BSTR * desc ) = 0;
  1560.     virtual HRESULT __stdcall GetRelationshipNotificationFromString (
  1561.         BSTR desc,
  1562.         enum esriRelNotification * Notification ) = 0;
  1563.     virtual HRESULT __stdcall GetRelationshipNotificationDescription (
  1564.         enum esriRelNotification Notification,
  1565.         BSTR * desc ) = 0;
  1566.     virtual HRESULT __stdcall GetNetworkTypeFromString (
  1567.         BSTR desc,
  1568.         enum esriNetworkType * netType ) = 0;
  1569.     virtual HRESULT __stdcall GetNetworkTypeDescription (
  1570.         enum esriNetworkType netType,
  1571.         BSTR * desc ) = 0;
  1572.     virtual HRESULT __stdcall IsEqualDEGeoDataset (
  1573.         struct IDEGeoDataset * pDEGeoDataset1,
  1574.         struct IDEGeoDataset * pDEGeoDataset2,
  1575.         VARIANT_BOOL * pEqual ) = 0;
  1576. };
  1577. struct __declspec(uuid("48f71b4d-72ce-42aa-a45c-5c180f6e78e8"))
  1578. DEGdbUtilities;
  1579.     // [ default ] interface IUnknown
  1580.     // interface IDEGdbUtilities
  1581. struct __declspec(uuid("60cc7230-e78d-4e22-b3c2-069e8fe8ac42"))
  1582. IGPSubtype : IUnknown
  1583. {
  1584.     //
  1585.     // Raw methods provided by interface
  1586.     //
  1587.     virtual HRESULT __stdcall put_SubtypeName (
  1588.         BSTR pSubtypeName ) = 0;
  1589.     virtual HRESULT __stdcall get_SubtypeName (
  1590.         BSTR * pSubtypeName ) = 0;
  1591.     virtual HRESULT __stdcall put_SubtypeCode (
  1592.         long pSubtypeCode ) = 0;
  1593.     virtual HRESULT __stdcall get_SubtypeCode (
  1594.         long * pSubtypeCode ) = 0;
  1595.     virtual HRESULT __stdcall put_DefaultValue (
  1596.         BSTR FieldName,
  1597.         VARIANT Value ) = 0;
  1598.     virtual HRESULT __stdcall get_DefaultValue (
  1599.         BSTR FieldName,
  1600.         VARIANT * Value ) = 0;
  1601.     virtual HRESULT __stdcall put_DomainName (
  1602.         BSTR FieldName,
  1603.         BSTR DomainName ) = 0;
  1604.     virtual HRESULT __stdcall get_DomainName (
  1605.         BSTR FieldName,
  1606.         BSTR * DomainName ) = 0;
  1607. };
  1608. struct __declspec(uuid("5dca4e1f-81a4-41c3-b160-818d22fc50b0"))
  1609. GPRelationshipClassKey;
  1610.     // [ default ] interface IUnknown
  1611.     // interface IGPRelationshipClassKey
  1612.     // interface IClone
  1613.     // interface IXMLSerialize
  1614.     // interface IPersist
  1615.     // interface IPersistStream
  1616. struct __declspec(uuid("741b5302-2917-4aab-952a-df5f0e019eb6"))
  1617. GPSubtype;
  1618.     // [ default ] interface IUnknown
  1619.     // interface IGPSubtype
  1620.     // interface IPersistStream
  1621.     // interface IXMLSerialize
  1622.     // interface IClone
  1623. struct __declspec(uuid("94dde7ce-aa25-4682-8290-f7ddffee5d98"))
  1624. IWorkspaceDataElements : IUnknown
  1625. {
  1626.     //
  1627.     // Raw methods provided by interface
  1628.     //
  1629.     virtual HRESULT __stdcall GetWorkspaceDataElement (
  1630.         struct IDEBrowseOptions * pBrowseOptions,
  1631.         struct IDataElement * * ppWorkspaceDataElement ) = 0;
  1632.     virtual HRESULT __stdcall GetDatasetDataElement (
  1633.         IUnknown * pDatasetSpec,
  1634.         struct IDEBrowseOptions * pBrowseOptions,
  1635.         struct IDataElement * * ppDataElement ) = 0;
  1636. };
  1637. struct __declspec(uuid("e141c7af-1c30-4b67-99a1-2ddd2ff2c04d"))
  1638. Names;
  1639.     // [ default ] interface IUnknown
  1640.     // interface IStringArray
  1641.     // interface IXMLSerialize
  1642.     // interface IClone
  1643.     // interface IPersistStream
  1644. struct __declspec(uuid("1ae253d9-675e-48eb-958f-68554cbf26d3"))
  1645. IOleDBConnectionInfo : IUnknown
  1646. {
  1647.     //
  1648.     // Raw methods provided by interface
  1649.     //
  1650.     virtual HRESULT __stdcall SetParameters (
  1651.         BSTR ConnectionString,
  1652.         BSTR password ) = 0;
  1653.     virtual HRESULT __stdcall ClearParameters (
  1654.         BSTR ConnectionString ) = 0;
  1655. };
  1656. struct __declspec(uuid("897bda47-2bf9-420f-886f-e0f49e2d570f"))
  1657. IPlugInWorkspaceHelper : IUnknown
  1658. {
  1659.     //
  1660.     // Raw methods provided by interface
  1661.     //
  1662.     virtual HRESULT __stdcall get_RowCountIsCalculated (
  1663.         VARIANT_BOOL * rowCountCalculated ) = 0;
  1664.     virtual HRESULT __stdcall get_OIDIsRecordNumber (
  1665.         VARIANT_BOOL * OIDIsRecordNumber ) = 0;
  1666.     virtual HRESULT __stdcall get_NativeType (
  1667.         enum esriDatasetType DatasetType,
  1668.         BSTR localName,
  1669.         struct INativeType * * ppNativeType ) = 0;
  1670.     virtual HRESULT __stdcall get_DatasetNames (
  1671.         enum esriDatasetType DatasetType,
  1672.         struct IArray * * DatasetNames ) = 0;
  1673.     virtual HRESULT __stdcall OpenDataset (
  1674.         BSTR localName,
  1675.         struct IPlugInDatasetHelper * * datasetHelper ) = 0;
  1676. };
  1677. struct __declspec(uuid("d22b5232-eb1b-44a1-b2ca-b0d085059cfb"))
  1678. IPlugInDatasetHelper : IUnknown
  1679. {
  1680.     //
  1681.     // Raw methods provided by interface
  1682.     //
  1683.     virtual HRESULT __stdcall get_ClassCount (
  1684.         long * Count ) = 0;
  1685.     virtual HRESULT __stdcall get_ClassName (
  1686.         long Index,
  1687.         BSTR * Name ) = 0;
  1688.     virtual HRESULT __stdcall get_ClassIndex (
  1689.         BSTR Name,
  1690.         long * Index ) = 0;
  1691.     virtual HRESULT __stdcall get_Bounds (
  1692.         struct IEnvelope * * Bounds ) = 0;
  1693.     virtual HRESULT __stdcall get_Fields (
  1694.         long ClassIndex,
  1695.         struct IFields * * FieldSet ) = 0;
  1696.     virtual HRESULT __stdcall get_OIDFieldIndex (
  1697.         long ClassIndex,
  1698.         long * OIDFieldIndex ) = 0;
  1699.     virtual HRESULT __stdcall get_ShapeFieldIndex (
  1700.         long ClassIndex,
  1701.         long * ShapeFieldIndex ) = 0;
  1702.     virtual HRESULT __stdcall FetchByID (
  1703.         long ClassIndex,
  1704.         long ID,
  1705.         VARIANT FieldMap,
  1706.         struct IPlugInCursorHelper * * cursorHelper ) = 0;
  1707.     virtual HRESULT __stdcall FetchAll (
  1708.         long ClassIndex,
  1709.         BSTR WhereClause,
  1710.         VARIANT FieldMap,
  1711.         struct IPlugInCursorHelper * * cursorHelper ) = 0;
  1712.     virtual HRESULT __stdcall FetchByEnvelope (
  1713.         long ClassIndex,
  1714.         struct IEnvelope * env,
  1715.         VARIANT_BOOL strictSearch,
  1716.         BSTR WhereClause,
  1717.         VARIANT FieldMap,
  1718.         struct IPlugInCursorHelper * * cursorHelper ) = 0;
  1719. };
  1720. struct __declspec(uuid("b91a4256-1d0a-46dd-b8a1-a237dedd539f"))
  1721. IPlugInCursorHelper : IUnknown
  1722. {
  1723.     //
  1724.     // Raw methods provided by interface
  1725.     //
  1726.     virtual HRESULT __stdcall NextRecord ( ) = 0;
  1727.     virtual HRESULT __stdcall IsFinished (
  1728.         VARIANT_BOOL * finished ) = 0;
  1729.     virtual HRESULT __stdcall QueryValues (
  1730.         struct IRowBuffer * Row,
  1731.         long * OID ) = 0;
  1732.     virtual HRESULT __stdcall QueryShape (
  1733.         struct IGeometry * pGeometry ) = 0;
  1734. };
  1735. struct __declspec(uuid("ee190b37-11b4-414a-bd25-43c49caa6433"))
  1736. IPlugInDatasetInfo : IUnknown
  1737. {
  1738.     //
  1739.     // Raw methods provided by interface
  1740.     //
  1741.     virtual HRESULT __stdcall get_LocalDatasetName (
  1742.         BSTR * localName ) = 0;
  1743.     virtual HRESULT __stdcall get_DatasetType (
  1744.         enum esriDatasetType * DatasetType ) = 0;
  1745.     virtual HRESULT __stdcall get_GeometryType (
  1746.         enum esriGeometryType * GeometryType ) = 0;
  1747.     virtual HRESULT __stdcall get_ShapeFieldName (
  1748.         BSTR * ShapeFieldName ) = 0;
  1749. };
  1750. struct __declspec(uuid("a08cf453-1acc-440d-9dae-5a110a0a94d2"))
  1751. IPlugInLicense : IUnknown
  1752. {
  1753.     //
  1754.     // Raw methods provided by interface
  1755.     //
  1756.     virtual HRESULT __stdcall CheckExtensionLicense ( ) = 0;
  1757.     virtual HRESULT __stdcall AddLicenseRef ( ) = 0;
  1758.     virtual HRESULT __stdcall ReleaseLicenseRef ( ) = 0;
  1759. };
  1760. struct __declspec(uuid("a5e6e3fc-3a5c-42e4-b058-273f3bc57734"))
  1761. IPlugInWorkspaceFactoryHelper : IUnknown
  1762. {
  1763.     //
  1764.     // Raw methods provided by interface
  1765.     //
  1766.     virtual HRESULT __stdcall get_DataSourceName (
  1767.         BSTR * Name ) = 0;
  1768.     virtual HRESULT __stdcall get_DatasetDescription (
  1769.         enum esriDatasetType DatasetType,
  1770.         BSTR * dsDesc ) = 0;
  1771.     virtual HRESULT __stdcall get_WorkspaceDescription (
  1772.         VARIANT_BOOL plural,
  1773.         BSTR * wksDesc ) = 0;
  1774.     virtual HRESULT __stdcall get_WorkspaceFactoryTypeID (
  1775.         struct IUID * * wksFactID ) = 0;
  1776.     virtual HRESULT __stdcall get_WorkspaceType (
  1777.         enum esriWorkspaceType * wksType ) = 0;
  1778.     virtual HRESULT __stdcall get_CanSupportSQL (
  1779.         VARIANT_BOOL * CanSupportSQL ) = 0;
  1780.     virtual HRESULT __stdcall IsWorkspace (
  1781.         BSTR wksString,
  1782.         VARIANT_BOOL * isWks ) = 0;
  1783.     virtual HRESULT __stdcall ContainsWorkspace (
  1784.         BSTR parentDirectory,
  1785.         struct IFileNames * fileNames,
  1786.         VARIANT_BOOL * ContainsWorkspace ) = 0;
  1787.     virtual HRESULT __stdcall GetWorkspaceString (
  1788.         BSTR parentDirectory,
  1789.         struct IFileNames * fileNames,
  1790.         BSTR * wksString ) = 0;
  1791.     virtual HRESULT __stdcall OpenWorkspace (
  1792.         BSTR wksString,
  1793.         struct IPlugInWorkspaceHelper * * wksHelper ) = 0;
  1794. };
  1795. struct __declspec(uuid("697ffbd6-7d45-48c2-9810-7131183edcaf"))
  1796. IPlugInCreateWorkspace : IUnknown
  1797. {
  1798.     //
  1799.     // Raw methods provided by interface
  1800.     //
  1801.     virtual HRESULT __stdcall MakeWorkspaceString (
  1802.         BSTR parentDirectory,
  1803.         BSTR file,
  1804.         struct IPropertySet * ConnectionProperties,
  1805.         BSTR * workspaceString ) = 0;
  1806.     virtual HRESULT __stdcall CreateWorkspace (
  1807.         BSTR workspaceString ) = 0;
  1808. };
  1809. struct __declspec(uuid("d4ce2db3-e5d8-4aba-b11e-39d47646339d"))
  1810. IPlugInWorkspaceHelper2 : IUnknown
  1811. {
  1812.     //
  1813.     // Raw methods provided by interface
  1814.     //
  1815.     virtual HRESULT __stdcall get_CanAddIndex (
  1816.         VARIANT_BOOL * CanAddIndex ) = 0;
  1817.     virtual HRESULT __stdcall get_CanDeleteIndex (
  1818.         VARIANT_BOOL * CanDeleteIndex ) = 0;
  1819.     virtual HRESULT __stdcall get_IsReadOnly (
  1820.         VARIANT_BOOL * IsReadOnly ) = 0;
  1821. };
  1822. struct __declspec(uuid("62e8c42d-1b76-497e-8865-d53e2b65c98c"))
  1823. IPlugInMetadataPath : IUnknown
  1824. {
  1825.     //
  1826.     // Raw methods provided by interface
  1827.     //
  1828.     virtual HRESULT __stdcall get_MetadataPath (
  1829.         BSTR localName,
  1830.         BSTR * MetadataPath ) = 0;
  1831. };
  1832. struct __declspec(uuid("a21946ce-11a9-4241-84f5-7b10c1d6d8b9"))
  1833. IPlugInMetadata : IUnknown
  1834. {
  1835.     //
  1836.     // Raw methods provided by interface
  1837.     //
  1838.     virtual HRESULT __stdcall get_CanEditMetadata (
  1839.         VARIANT_BOOL * CanEdit ) = 0;
  1840.     virtual HRESULT __stdcall get_Metadata (
  1841.         BSTR localName,
  1842.         struct IPropertySet * * Metadata ) = 0;
  1843.     virtual HRESULT __stdcall put_Metadata (
  1844.         BSTR localName,
  1845.         struct IPropertySet * Metadata ) = 0;
  1846. };
  1847. struct __declspec(uuid("c3dd33fe-6447-4472-8898-693ab4acfcfc"))
  1848. IPlugInFastRowCount : IUnknown
  1849. {
  1850.     //
  1851.     // Raw methods provided by interface
  1852.     //
  1853.     virtual HRESULT __stdcall get_RowCount (
  1854.         long * numRows ) = 0;
  1855. };
  1856. struct __declspec(uuid("a860dd65-a3b4-4cfe-be56-47e8afdb7cbd"))
  1857. IPlugInRowCount : IUnknown
  1858. {
  1859.     //
  1860.     // Raw methods provided by interface
  1861.     //
  1862.     virtual HRESULT __stdcall get_RowCount (
  1863.         long Index,
  1864.         long * numRows ) = 0;
  1865. };
  1866. struct __declspec(uuid("a553189f-79f4-4647-9d5c-898d69dc59ae"))
  1867. IPlugInFileSystemDataset : IUnknown
  1868. {
  1869.     //
  1870.     // Raw methods provided by interface
  1871.     //
  1872.     virtual HRESULT __stdcall get_FullPath (
  1873.         BSTR * Path ) = 0;
  1874.     virtual HRESULT __stdcall get_Size (
  1875.         long * Size ) = 0;
  1876. };
  1877. struct __declspec(uuid("32f25f5b-a97c-489f-90d9-e93dc84494c0"))
  1878. IPlugInIndexInfo : IUnknown
  1879. {
  1880.     //
  1881.     // Raw methods provided by interface
  1882.     //
  1883.     virtual HRESULT __stdcall get_Indexes (
  1884.         long ClassIndex,
  1885.         struct IIndexes * * Indexes ) = 0;
  1886. };
  1887. struct __declspec(uuid("9bd2fee7-beec-4b70-9f18-ad16b6e7d2d5"))
  1888. IPlugInIndexManager : IUnknown
  1889. {
  1890.     //
  1891.     // Raw methods provided by interface
  1892.     //
  1893.     virtual HRESULT __stdcall AddIndex (
  1894.         long ClassIndex,
  1895.         struct IIndex * Index ) = 0;
  1896.     virtual HRESULT __stdcall DeleteIndex (
  1897.         long ClassIndex,
  1898.         struct IIndex * Index ) = 0;
  1899. };
  1900. struct __declspec(uuid("cab44598-68f6-490e-9f32-6d5fd06d22d2"))
  1901. IPlugInFileOperations : IUnknown
  1902. {
  1903.     //
  1904.     // Raw methods provided by interface
  1905.     //
  1906.     virtual HRESULT __stdcall CanCopy (
  1907.         VARIANT_BOOL * CanCopy ) = 0;
  1908.     virtual HRESULT __stdcall Copy (
  1909.         BSTR copyName,
  1910.         struct IWorkspace * copyWorkspace ) = 0;
  1911.     virtual HRESULT __stdcall CanDelete (
  1912.         VARIANT_BOOL * CanDelete ) = 0;
  1913.     virtual HRESULT __stdcall Delete ( ) = 0;
  1914.     virtual HRESULT __stdcall CanRename (
  1915.         VARIANT_BOOL * CanRename ) = 0;
  1916.     virtual HRESULT __stdcall Rename (
  1917.         BSTR Name,
  1918.         BSTR * newName ) = 0;
  1919. };
  1920. struct __declspec(uuid("0936597f-ebe1-4b29-bac4-47dafce72a36"))
  1921. IPlugInFileOperationsClass : IUnknown
  1922. {
  1923.     //
  1924.     // Raw methods provided by interface
  1925.     //
  1926.     virtual HRESULT __stdcall CanCopy (
  1927.         long ClassIndex,
  1928.         VARIANT_BOOL * CanCopy ) = 0;
  1929.     virtual HRESULT __stdcall Copy (
  1930.         long ClassIndex,
  1931.         BSTR copyName,
  1932.         struct IWorkspace * copyWorkspace ) = 0;
  1933.     virtual HRESULT __stdcall CanDelete (
  1934.         long ClassIndex,
  1935.         VARIANT_BOOL * CanDelete ) = 0;
  1936.     virtual HRESULT __stdcall Delete (
  1937.         long ClassIndex ) = 0;
  1938.     virtual HRESULT __stdcall CanRename (
  1939.         long ClassIndex,
  1940.         VARIANT_BOOL * CanRename ) = 0;
  1941.     virtual HRESULT __stdcall Rename (
  1942.         long ClassIndex,
  1943.         BSTR Name,
  1944.         BSTR * newName ) = 0;
  1945. };
  1946. struct __declspec(uuid("865271a7-61c1-41e8-9f6e-31d825b37b57"))
  1947. IPlugInFastQueryValues : IUnknown
  1948. {
  1949.     //
  1950.     // Raw methods provided by interface
  1951.     //
  1952.     virtual HRESULT __stdcall FastQueryValues (
  1953.         FieldValue * values ) = 0;
  1954. };
  1955. struct __declspec(uuid("13ba0a70-7fe3-4a24-bb0b-750b44e72ad6"))
  1956. PlugInWorkspaceFactory;
  1957.     // [ default ] interface IUnknown
  1958.     // interface IWorkspaceFactory
  1959.     // interface IWorkspaceFactory2
  1960. enum esriDataConverterError
  1961. {
  1962.     S_DATACONVERTER_OK = 0,
  1963.     E_DATACONVERTER_OPENFEATURECLASSFAILED = 513,
  1964.     E_DATACONVERTER_OPENTABLEFAILED = 514,
  1965.     E_DATACONVERTER_OPENFEATUREDATASETFAILED = 515,
  1966.     E_DATACONVERTER_OPENFEATUREWORKSPACEFAILED = 516,
  1967.     E_DATACONVERTER_CREATEFEATURECLASSFAILED = 517,
  1968.     E_DATACONVERTER_CREATETABLEFAILED = 518,
  1969.     E_DATACONVERTER_WRITEFEATURESFAILED = 519,
  1970.     E_DATACONVERTER_WRITEROWSFAILED = 520,
  1971.     E_DATACONVERTER_UNLOADFAILED = 521,
  1972.     E_DATACONVERTER_OPENCURSORFAILED = 522,
  1973.     E_DATACONVERTER_OPENINSERTCURSORFAILED = 523,
  1974.     E_DATACONVERTER_INSERTCURSORFAILED = 524,
  1975.     E_DATACONVERTER_CANCELLED = 525,
  1976.     E_DATACONVERTER_MATCHINPUTFIELDSETFAILED = 526,
  1977.     E_DATACONVERTER_FLUSHINSERTCURSORFAILED = 527,
  1978.     E_DATACONVERTER_ACQUIRESCHEMALOCKFAILED = 528,
  1979.     E_DATACONVERTER_INVALID_INPUT_DATASET_NAME = 529,
  1980.     E_DATACONVERTER_CANNOT_CREATE_FEATURE_DATASET = 530,
  1981.     E_DATACONVERTER_ERROR_READ_ROWS = 531,
  1982.     E_DATACONVERTER_ERROR_READ_ALL_ROWS = 532
  1983. };
  1984. struct __declspec(uuid("4ed85a73-7054-11d2-aafe-00c04fa33c20"))
  1985. IFeatureDataConverter : IUnknown
  1986. {
  1987.     //
  1988.     // Raw methods provided by interface
  1989.     //
  1990.     virtual HRESULT __stdcall ConvertFeatureDataset (
  1991.         struct IFeatureDatasetName * inputFDatasetName,
  1992.         struct IFeatureDatasetName * outputFDatasetName,
  1993.         struct IGeometryDef * OutputGeometryDef,
  1994.         BSTR configKey,
  1995.         long FlushInterval,
  1996.         OLE_HANDLE parentHWND ) = 0;
  1997.     virtual HRESULT __stdcall ConvertFeatureClass (
  1998.         struct IFeatureClassName * InputDatasetName,
  1999.         struct IQueryFilter * InputQueryFilter,
  2000.         struct IFeatureDatasetName * outputFDatasetName,
  2001.         struct IFeatureClassName * outputFClassName,
  2002.         struct IGeometryDef * OutputGeometryDef,
  2003.         struct IFields * OutputFields,
  2004.         BSTR configKey,
  2005.         long FlushInterval,
  2006.         OLE_HANDLE parentHWND,
  2007.         struct IEnumInvalidObject * * EnumInvalidObject ) = 0;
  2008.     virtual HRESULT __stdcall ConvertTable (
  2009.         struct IDatasetName * InputDatasetName,
  2010.         struct IQueryFilter * InputQueryFilter,
  2011.         struct IDatasetName * OutputDatasetName,
  2012.         struct IFields * OutputFields,
  2013.         BSTR configKey,
  2014.         long FlushInterval,
  2015.         OLE_HANDLE parentHWND,
  2016.         struct IEnumInvalidObject * * EnumInvalidObject ) = 0;
  2017. };
  2018. struct __declspec(uuid("5c37086d-ee25-11d3-a0a1-00c04f6bc626"))
  2019. IFeatureDataConverter2 : IUnknown
  2020. {
  2021.     //
  2022.     // Raw methods provided by interface
  2023.     //
  2024.     virtual HRESULT __stdcall ConvertFeatureDataset (
  2025.         struct IFeatureDatasetName * inputFDatasetName,
  2026.         struct IFeatureDatasetName * outputFDatasetName,
  2027.         struct IGeometryDef * OutputGeometryDef,
  2028.         BSTR configKey,
  2029.         long FlushInterval,
  2030.         OLE_HANDLE parentHWND ) = 0;
  2031.     virtual HRESULT __stdcall ConvertFeatureClass (
  2032.         struct IDatasetName * inputFClassName,
  2033.         struct IQueryFilter * InputQueryFilter,
  2034.         struct ISelectionSet * InputSelectionSet,
  2035.         struct IFeatureDatasetName * outputFDatasetName,
  2036.         struct IFeatureClassName * outputFClassName,
  2037.         struct IGeometryDef * OutputGeometryDef,
  2038.         struct IFields * OutputFields,
  2039.         BSTR configKey,
  2040.         long FlushInterval,
  2041.         OLE_HANDLE parentHWND,
  2042.         struct IEnumInvalidObject * * EnumInvalidObject ) = 0;
  2043.     virtual HRESULT __stdcall ConvertTable (
  2044.         struct IDatasetName * InputDatasetName,
  2045.         struct IQueryFilter * InputQueryFilter,
  2046.         struct ISelectionSet * InputSelectionSet,
  2047.         struct IDatasetName * OutputDatasetName,
  2048.         struct IFields * OutputFields,
  2049.         BSTR configKey,
  2050.         long FlushInterval,
  2051.         OLE_HANDLE parentHWND,
  2052.         struct IEnumInvalidObject * * EnumInvalidObject ) = 0;
  2053. };
  2054. struct __declspec(uuid("78b08005-7054-11d2-aafe-00c04fa33c20"))
  2055. FeatureDataConverter;
  2056.     // [ default ] interface IUnknown
  2057.     // interface IFeatureDataConverter
  2058.     // interface IFeatureDataConverter2
  2059.     // interface ISupportErrorInfo
  2060.     // interface IConnectionPointContainer
  2061.     // [ default, source ] interface IFeatureProgress
  2062. struct __declspec(uuid("3e541320-1132-11d2-92f7-444553540000"))
  2063. ITinElement : IUnknown
  2064. {
  2065.     //
  2066.     // Raw methods provided by interface
  2067.     //
  2068.     virtual HRESULT __stdcall get_IsEmpty (
  2069.         VARIANT_BOOL * pbIsEmpty ) = 0;
  2070.     virtual HRESULT __stdcall get_TheTin (
  2071.         struct ITin * * ppTin ) = 0;
  2072.     virtual HRESULT __stdcall get_Index (
  2073.         long * pIndex ) = 0;
  2074.     virtual HRESULT __stdcall get_TagValue (
  2075.         long * pValue ) = 0;
  2076.     virtual HRESULT __stdcall SetEmpty ( ) = 0;
  2077.     virtual HRESULT __stdcall Init (
  2078.         struct ITin * pTin,
  2079.         long Index ) = 0;
  2080.     virtual HRESULT __stdcall get_IsInsideDataArea (
  2081.         VARIANT_BOOL * pbIsInside ) = 0;
  2082.     virtual HRESULT __stdcall get_HasVoidZ (
  2083.         VARIANT_BOOL * pbHasVoidZ ) = 0;
  2084.     virtual HRESULT __stdcall get_IsInsideExtent (
  2085.         struct IEnvelope * pExtent,
  2086.         VARIANT_BOOL * pbIsInside ) = 0;
  2087. };
  2088. struct __declspec(uuid("73b80fbb-ff33-11d1-a549-0000f8774f0f"))
  2089. ITin : IUnknown
  2090. {
  2091.     //
  2092.     // Raw methods provided by interface
  2093.     //
  2094.     virtual HRESULT __stdcall get_IsEmpty (
  2095.         VARIANT_BOOL * pbIsEmpty ) = 0;
  2096.     virtual HRESULT __stdcall get_IsDelaunay (
  2097.         VARIANT_BOOL * pbIsEmpty ) = 0;
  2098.     virtual HRESULT __stdcall SaveAs (
  2099.         BSTR newName,
  2100.         VARIANT * pOverWrite = &vtMissing ) = 0;
  2101.     virtual HRESULT __stdcall get_Extent (
  2102.         struct IEnvelope * * ppExtent ) = 0;
  2103.     virtual HRESULT __stdcall get_DataNodeCount (
  2104.         long * pcNodes ) = 0;
  2105.     virtual HRESULT __stdcall get_DataEdgeCount (
  2106.         long * pcEdges ) = 0;
  2107.     virtual HRESULT __stdcall get_DataTriangleCount (
  2108.         long * pcTriangles ) = 0;
  2109.     virtual HRESULT __stdcall get_ZFactor (
  2110.         double * pFactor ) = 0;
  2111.     virtual HRESULT __stdcall put_ZFactor (
  2112.         double pFactor ) = 0;
  2113.     virtual HRESULT __stdcall get_Version (
  2114.         long * pVer ) = 0;
  2115.     virtual HRESULT __stdcall get_HasNodeTagValues (
  2116.         VARIANT_BOOL * pbHasNodeValues ) = 0;
  2117.     virtual HRESULT __stdcall get_HasEdgeTagValues (
  2118.         VARIANT_BOOL * pbHasEdgeValues ) = 0;
  2119.     virtual HRESULT __stdcall get_HasTriangleTagValues (
  2120.         VARIANT_BOOL * pbHasTriangleValues ) = 0;
  2121.     virtual HRESULT __stdcall get_Fields (
  2122.         struct IFields * * Fields ) = 0;
  2123. };
  2124. struct __declspec(uuid("3e541321-1132-11d2-92f7-444553540000"))
  2125. ITinNode : ITinElement
  2126. {
  2127.     //
  2128.     // Raw methods provided by interface
  2129.     //
  2130.     virtual HRESULT __stdcall get_X (
  2131.         double * X ) = 0;
  2132.     virtual HRESULT __stdcall get_Y (
  2133.         double * Y ) = 0;
  2134.     virtual HRESULT __stdcall get_Z (
  2135.         double * Z ) = 0;
  2136.     virtual HRESULT __stdcall QueryAsPoint (
  2137.         struct IPoint * pPoint ) = 0;
  2138.     virtual HRESULT __stdcall QueryAsWKSPointZ (
  2139.         WKSPointZ * pPoint ) = 0;
  2140.     virtual HRESULT __stdcall GetAdjacentNodes (
  2141.         struct ITinNodeArray * * ppNodes ) = 0;
  2142.     virtual HRESULT __stdcall GetIncidentEdges (
  2143.         struct ITinEdgeArray * * ppEdges ) = 0;
  2144.     virtual HRESULT __stdcall GetIncidentTriangles (
  2145.         struct ITinTriangleArray * * ppTriangles ) = 0;
  2146.     virtual HRESULT __stdcall GetVoronoiRegion (
  2147.         struct IPolygon * pClippingPolygon,
  2148.         struct IPolygon * * ppRegion ) = 0;
  2149.     virtual HRESULT __stdcall IsSameNode (
  2150.         struct ITinNode * pNode,
  2151.         VARIANT_BOOL * pbIsTheSame ) = 0;
  2152. };
  2153. struct __declspec(uuid("c0e04940-b08c-11d2-9f6a-00c04f8ece27"))
  2154. ITinNodeArray : IUnknown
  2155. {
  2156.     //
  2157.     // Raw methods provided by interface
  2158.     //
  2159.     virtual HRESULT __stdcall get_Count (
  2160.         long * pCount ) = 0;
  2161.     virtual HRESULT __stdcall Remove (
  2162.         long Index ) = 0;
  2163.     virtual HRESULT __stdcall RemoveAll ( ) = 0;
  2164.     virtual HRESULT __stdcall get_Element (
  2165.         long Index,
  2166.         struct ITinNode * * ppNode ) = 0;
  2167.     virtual HRESULT __stdcall Add (
  2168.         struct ITinNode * pNode ) = 0;
  2169.     virtual HRESULT __stdcall Insert (
  2170.         long Index,
  2171.         struct ITinNode * pNode ) = 0;
  2172. };
  2173. struct __declspec(uuid("c0e04941-b08c-11d2-9f6a-00c04f8ece27"))
  2174. ITinEdgeArray : IUnknown
  2175. {
  2176.     //
  2177.     // Raw methods provided by interface
  2178.     //
  2179.     virtual HRESULT __stdcall get_Count (
  2180.         long * pCount ) = 0;
  2181.     virtual HRESULT __stdcall Remove (
  2182.         long Index ) = 0;
  2183.     virtual HRESULT __stdcall RemoveAll ( ) = 0;
  2184.     virtual HRESULT __stdcall get_Element (
  2185.         long Index,
  2186.         struct ITinEdge * * ppEdge ) = 0;
  2187.     virtual HRESULT __stdcall Add (
  2188.         struct ITinEdge * pEdge ) = 0;
  2189.     virtual HRESULT __stdcall Insert (
  2190.         long Index,
  2191.         struct ITinEdge * pEdge ) = 0;
  2192. };
  2193. struct __declspec(uuid("3e541322-1132-11d2-92f7-444553540000"))
  2194. ITinEdge : ITinElement
  2195. {
  2196.     //
  2197.     // Raw methods provided by interface
  2198.     //
  2199.     virtual HRESULT __stdcall get_Type (
  2200.         enum esriTinEdgeType * pType ) = 0;
  2201.     virtual HRESULT __stdcall get_FromNode (
  2202.         struct ITinNode * * ppNode ) = 0;
  2203.     virtual HRESULT __stdcall get_ToNode (
  2204.         struct ITinNode * * ppNode ) = 0;
  2205.     virtual HRESULT __stdcall get_LeftTriangle (
  2206.         struct ITinTriangle * * ppTriangle ) = 0;
  2207.     virtual HRESULT __stdcall get_RightTriangle (
  2208.         struct ITinTriangle * * ppTriangle ) = 0;
  2209.     virtual HRESULT __stdcall get_Length (
  2210.         double * pLength ) = 0;
  2211.     virtual HRESULT __stdcall get_Length3D (
  2212.         double * pLength ) = 0;
  2213.     virtual HRESULT __stdcall get_AzimuthRadians (
  2214.         double * pAzimuth ) = 0;
  2215.     virtual HRESULT __stdcall get_AzimuthDegrees (
  2216.         double * pAzimuth ) = 0;
  2217.     virtual HRESULT __stdcall QueryAsLine (
  2218.         struct ILine * pLine ) = 0;
  2219.     virtual HRESULT __stdcall QueryAsWKSPointZs (
  2220.         WKSPointZ * pFrom,
  2221.         WKSPointZ * pTo ) = 0;
  2222.     virtual HRESULT __stdcall GetNextInTriangle (
  2223.         struct ITinEdge * * ppEdge ) = 0;
  2224.     virtual HRESULT __stdcall GetPreviousInTriangle (
  2225.         struct ITinEdge * * ppEdge ) = 0;
  2226.     virtual HRESULT __stdcall GetNeighbor (
  2227.         struct ITinEdge * * ppEdge ) = 0;
  2228.     virtual HRESULT __stdcall GetNextCW (
  2229.         struct ITinEdge * * ppEdge ) = 0;
  2230.     virtual HRESULT __stdcall GetNextCCW (
  2231.         struct ITinEdge * * ppEdge ) = 0;
  2232.     virtual HRESULT __stdcall IsSameEdge (
  2233.         struct ITinEdge * pEdge,
  2234.         VARIANT_BOOL * pbIsTheSame ) = 0;
  2235. };
  2236. enum esriTinEdgeType
  2237. {
  2238.     esriTinRegularEdge = 0,
  2239.     esriTinSoftEdge = 1,
  2240.     esriTinHardEdge = 2
  2241. };
  2242. struct __declspec(uuid("3e541323-1132-11d2-92f7-444553540000"))
  2243. ITinTriangle : ITinElement
  2244. {
  2245.     //
  2246.     // Raw methods provided by interface
  2247.     //
  2248.     virtual HRESULT __stdcall get_Node (
  2249.         long Index,
  2250.         struct ITinNode * * ppNode ) = 0;
  2251.     virtual HRESULT __stdcall get_Edge (
  2252.         long Index,
  2253.         struct ITinEdge * * ppEdge ) = 0;
  2254.     virtual HRESULT __stdcall get_Area (
  2255.         double * pArea ) = 0;
  2256.     virtual HRESULT __stdcall get_Perimeter (
  2257.         double * pPerimeter ) = 0;
  2258.     virtual HRESULT __stdcall get_Area3D (
  2259.         double * pArea ) = 0;
  2260.     virtual HRESULT __stdcall get_Perimeter3D (
  2261.         double * pPerimeter ) = 0;
  2262.     virtual HRESULT __stdcall get_Normal (
  2263.         WKSPointZ * pNormal ) = 0;
  2264.     virtual HRESULT __stdcall get_UnitNormal (
  2265.         WKSPointZ * pNormal ) = 0;
  2266.     virtual HRESULT __stdcall QueryNormal (
  2267.         struct IVector3D * pNormal ) = 0;
  2268.     virtual HRESULT __stdcall get_SlopeRadians (
  2269.         double * pSlope ) = 0;
  2270.     virtual HRESULT __stdcall get_SlopeDegrees (
  2271.         double * pSlope ) = 0;
  2272.     virtual HRESULT __stdcall get_SlopePercent (
  2273.         double * pSlope ) = 0;
  2274.     virtual HRESULT __stdcall get_AspectRadians (
  2275.         double * pAspect ) = 0;
  2276.     virtual HRESULT __stdcall get_AspectDegrees (
  2277.         double * pAspect ) = 0;
  2278.     virtual HRESULT __stdcall get_Intensity (
  2279.         double * pIntensity ) = 0;
  2280.     virtual HRESULT __stdcall QueryVertices (
  2281.         WKSPointZ * pPi,
  2282.         WKSPointZ * pPj,
  2283.         WKSPointZ * pPk ) = 0;
  2284.     virtual HRESULT __stdcall QueryAsRing (
  2285.         struct IRing * pRing ) = 0;
  2286.     virtual HRESULT __stdcall QueryCentroid (
  2287.         struct IPoint * pCentroid ) = 0;
  2288.     virtual HRESULT __stdcall QueryCircumCircle (
  2289.         struct IPoint * pCenter,
  2290.         double * pRadius ) = 0;
  2291.     virtual HRESULT __stdcall QueryElevationBand (
  2292.         double zLowerBound,
  2293.         double zUpperBound,
  2294.         long * pCount,
  2295.         WKSPointZ * pRegion ) = 0;
  2296.     virtual HRESULT __stdcall QueryAdjacentTriangles (
  2297.         struct ITinTriangle * pTi,
  2298.         struct ITinTriangle * pTj,
  2299.         struct ITinTriangle * pTk ) = 0;
  2300.     virtual HRESULT __stdcall QueryAdjacentTriangleIndices (
  2301.         long * pTi,
  2302.         long * pTj,
  2303.         long * pTk ) = 0;
  2304.     virtual HRESULT __stdcall IsSameTriangle (
  2305.         struct ITinTriangle * pTriangle,
  2306.         VARIANT_BOOL * pbIsTheSame ) = 0;
  2307. };
  2308. struct __declspec(uuid("c0e04942-b08c-11d2-9f6a-00c04f8ece27"))
  2309. ITinTriangleArray : IUnknown
  2310. {
  2311.     //
  2312.     // Raw methods provided by interface
  2313.     //
  2314.     virtual HRESULT __stdcall get_Count (
  2315.         long * pCount ) = 0;
  2316.     virtual HRESULT __stdcall Remove (
  2317.         long Index ) = 0;
  2318.     virtual HRESULT __stdcall RemoveAll ( ) = 0;
  2319.     virtual HRESULT __stdcall get_Element (
  2320.         long Index,
  2321.         struct ITinTriangle * * ppTriangle ) = 0;
  2322.     virtual HRESULT __stdcall Add (
  2323.         struct ITinTriangle * pTriangle ) = 0;
  2324.     virtual HRESULT __stdcall Insert (
  2325.         long Index,
  2326.         struct ITinTriangle * pTriangle ) = 0;
  2327. };
  2328. struct __declspec(uuid("3d212052-ad4b-11d5-abb8-0008c73fd50c"))
  2329. ITinNode2 : ITinNode
  2330. {
  2331.     //
  2332.     // Raw methods provided by interface
  2333.     //
  2334.     virtual HRESULT __stdcall get_Source (
  2335.         enum esriTinNodeSourceType * pSource ) = 0;
  2336.     virtual HRESULT __stdcall get_Degree (
  2337.         VARIANT_BOOL bEnforcedEdgesOnly,
  2338.         long * pDegree ) = 0;
  2339.     virtual HRESULT __stdcall get_IsOnDomainBoundary (
  2340.         VARIANT_BOOL * pbIsOn ) = 0;
  2341.     virtual HRESULT __stdcall QueryAdjacentNodeIndices (
  2342.         struct ILongArray * pNodes ) = 0;
  2343.     virtual HRESULT __stdcall QueryIncidentEdgeIndices (
  2344.         struct ILongArray * pEdges ) = 0;
  2345.     virtual HRESULT __stdcall QueryIncidentTriangleIndices (
  2346.         struct ILongArray * pTriangles ) = 0;
  2347.     virtual HRESULT __stdcall IncidentTriangle (
  2348.         struct ITinTriangle * * ppTriangle ) = 0;
  2349.     virtual HRESULT __stdcall IncidentTriangleIndex (
  2350.         long * pTriangle ) = 0;
  2351. };
  2352. enum esriTinNodeSourceType
  2353. {
  2354.     esriTinUnknown = 1,
  2355.     esriTinSuperNode = 2,
  2356.     esriTinOriginal = 4,
  2357.     esriTinDensified = 8,
  2358.     esriTinIntersection = 32
  2359. };
  2360. struct __declspec(uuid("bb5dbc74-b9ca-11d5-abbb-0008c73fd50c"))
  2361. ITinFeatureSeed : IUnknown
  2362. {
  2363.     //
  2364.     // Raw methods provided by interface
  2365.     //
  2366.     virtual HRESULT __stdcall get_Index (
  2367.         long * pIndex ) = 0;
  2368.     virtual HRESULT __stdcall get_TagValue (
  2369.         long * pValue ) = 0;
  2370.     virtual HRESULT __stdcall get_UseTagValue (
  2371.         VARIANT_BOOL * pbUseTagValue ) = 0;
  2372.     virtual HRESULT __stdcall put_UseTagValue (
  2373.         VARIANT_BOOL pbUseTagValue ) = 0;
  2374. };
  2375. struct __declspec(uuid("addda5ca-a214-11d3-ab4b-0008c73fd50c"))
  2376. ITinPolygon : IUnknown
  2377. {
  2378.     //
  2379.     // Raw methods provided by interface
  2380.     //
  2381.     virtual HRESULT __stdcall AsNodes (
  2382.         struct IEnumTinNode * * ppNodes ) = 0;
  2383.     virtual HRESULT __stdcall AsEdges (
  2384.         struct IEnumTinEdge * * ppEdges ) = 0;
  2385.     virtual HRESULT __stdcall AsTriangles (
  2386.         struct IEnumTinTriangle * * ppTriangles ) = 0;
  2387.     virtual HRESULT __stdcall AsPolygon (
  2388.         struct ITinFilter * pNodeFilter,
  2389.         VARIANT_BOOL bGetZ,
  2390.         struct IPolygon * * ppPolygon ) = 0;
  2391.     virtual HRESULT __stdcall GetBoundaryEdgeType (
  2392.         enum esriTinEdgeType * pType ) = 0;
  2393. };
  2394. struct __declspec(uuid("6bfa889c-bf0d-11d3-ab4f-0008c73fd50c"))
  2395. IEnumTinNode : IUnknown
  2396. {
  2397.     //
  2398.     // Raw methods provided by interface
  2399.     //
  2400.     virtual HRESULT __stdcall Reset ( ) = 0;
  2401.     virtual HRESULT __stdcall Next (
  2402.         struct ITinNode * * ppNode ) = 0;
  2403.     virtual HRESULT __stdcall QueryNext (
  2404.         struct ITinNode * pNode ) = 0;
  2405.     virtual HRESULT __stdcall QueryNextAsWKSPointZ (
  2406.         WKSPointZ * pPoint,
  2407.         VARIANT_BOOL * pbIsEnd ) = 0;
  2408.     virtual HRESULT __stdcall QueryNextAsWKSPointZ2 (
  2409.         long * pTriangleIndex,
  2410.         WKSPointZ * pPoint,
  2411.         VARIANT_BOOL * pbIsEnd ) = 0;
  2412. };
  2413. struct __declspec(uuid("6bfa889d-bf0d-11d3-ab4f-0008c73fd50c"))
  2414. IEnumTinEdge : IUnknown
  2415. {
  2416.     //
  2417.     // Raw methods provided by interface
  2418.     //
  2419.     virtual HRESULT __stdcall Reset ( ) = 0;
  2420.     virtual HRESULT __stdcall Next (
  2421.         struct ITinEdge * * ppEdge ) = 0;
  2422.     virtual HRESULT __stdcall QueryNext (
  2423.         struct ITinEdge * pEdge ) = 0;
  2424.     virtual HRESULT __stdcall QueryNextAsWKSPointZs (
  2425.         WKSPointZ * pFrom,
  2426.         WKSPointZ * pTo,
  2427.         VARIANT_BOOL * pbIsEnd ) = 0;
  2428.     virtual HRESULT __stdcall QueryNextAsWKSPointZs2 (
  2429.         long * pTriangleIndex,
  2430.         long * pEdgeIndex,
  2431.         WKSPointZ * pFrom,
  2432.         WKSPointZ * pTo,
  2433.         VARIANT_BOOL * pbIsEnd ) = 0;
  2434. };
  2435. struct __declspec(uuid("6bfa889e-bf0d-11d3-ab4f-0008c73fd50c"))
  2436. IEnumTinTriangle : IUnknown
  2437. {
  2438.     //
  2439.     // Raw methods provided by interface
  2440.     //
  2441.     virtual HRESULT __stdcall Reset ( ) = 0;
  2442.     virtual HRESULT __stdcall Next (
  2443.         struct ITinTriangle * * ppTriangle ) = 0;
  2444.     virtual HRESULT __stdcall QueryNext (
  2445.         struct ITinTriangle * pTriangle ) = 0;
  2446.     virtual HRESULT __stdcall QueryNextAsWKSPointZs (
  2447.         WKSPointZ * pPi,
  2448.         WKSPointZ * pPj,
  2449.         WKSPointZ * pPk,
  2450.         VARIANT_BOOL * pbIsEnd ) = 0;
  2451.     virtual HRESULT __stdcall QueryNextAsWKSPointZs2 (
  2452.         long * pTriangleIndex,
  2453.         WKSPointZ * pPi,
  2454.         WKSPointZ * pPj,
  2455.         WKSPointZ * pPk,
  2456.         VARIANT_BOOL * pbIsEnd ) = 0;
  2457.     virtual HRESULT __stdcall NextTriangleStrip (
  2458.         long maxSize,
  2459.         struct ITinNodeArray * * ppNodes ) = 0;
  2460.     virtual HRESULT __stdcall NextTriangleStripIndices (
  2461.         long maxSize,
  2462.         struct ILongArray * * ppNodes ) = 0;
  2463. };
  2464. struct __declspec(uuid("4eee3270-fa94-11d2-ae10-000000000000"))
  2465. ITinFilter : IUnknown
  2466. {
  2467.     //
  2468.     // Raw methods provided by interface
  2469.     //
  2470.     virtual HRESULT __stdcall CanPass (
  2471.         struct ITinElement * pElement,
  2472.         VARIANT_BOOL * pbCanPass ) = 0;
  2473.     virtual HRESULT __stdcall put_DataElementsOnly (
  2474.         VARIANT_BOOL pbDataElementsOnly ) = 0;
  2475.     virtual HRESULT __stdcall get_DataElementsOnly (
  2476.         VARIANT_BOOL * pbDataElementsOnly ) = 0;
  2477. };
  2478. struct __declspec(uuid("83a9e75c-a212-11d3-ab4b-0008c73fd50c"))
  2479. ITinPolyline : IUnknown
  2480. {
  2481.     //
  2482.     // Raw methods provided by interface
  2483.     //
  2484.     virtual HRESULT __stdcall AsNodes (
  2485.         struct IEnumTinNode * * ppNodes ) = 0;
  2486.     virtual HRESULT __stdcall AsEdges (
  2487.         struct IEnumTinEdge * * ppEdges ) = 0;
  2488.     virtual HRESULT __stdcall AsPolyline (
  2489.         struct ITinFilter * pNodeFilter,
  2490.         VARIANT_BOOL bGetZ,
  2491.         struct IPolyline * * ppPolyline ) = 0;
  2492. };
  2493. struct __declspec(uuid("0122c788-fd32-11d3-a0d6-00c04f8ece27"))
  2494. ITinDynamicFilter : ITinFilter
  2495. {
  2496.     //
  2497.     // Raw methods provided by interface
  2498.     //
  2499.     virtual HRESULT __stdcall Init (
  2500.         struct ITinElement * pElement,
  2501.         long * pID ) = 0;
  2502. };
  2503. struct __declspec(uuid("4eee3277-fa94-11d2-ae10-000000000000"))
  2504. ITinValueFilter : ITinFilter
  2505. {
  2506.     //
  2507.     // Raw methods provided by interface
  2508.     //
  2509.     virtual HRESULT __stdcall put_LowerBound (
  2510.         long pLowerBound ) = 0;
  2511.     virtual HRESULT __stdcall get_LowerBound (
  2512.         long * pLowerBound ) = 0;
  2513.     virtual HRESULT __stdcall put_UpperBound (
  2514.         long pUpperBound ) = 0;
  2515.     virtual HRESULT __stdcall get_UpperBound (
  2516.         long * pUpperBound ) = 0;
  2517.     virtual HRESULT __stdcall putref_ClassBreaks (
  2518.         struct ILongArray * ppBreaks ) = 0;
  2519.     virtual HRESULT __stdcall get_ClassBreaks (
  2520.         struct ILongArray * * ppBreaks ) = 0;
  2521.     virtual HRESULT __stdcall putref_ClassBreakCodes (
  2522.         struct ILongArray * ppCodes ) = 0;
  2523.     virtual HRESULT __stdcall get_ClassBreakCodes (
  2524.         struct ILongArray * * ppCodes ) = 0;
  2525.     virtual HRESULT __stdcall put_UniqueValue (
  2526.         long pValue ) = 0;
  2527.     virtual HRESULT __stdcall get_UniqueValue (
  2528.         long * pValue ) = 0;
  2529.     virtual HRESULT __stdcall put_ActiveBound (
  2530.         enum esriTinBoundType pType ) = 0;
  2531.     virtual HRESULT __stdcall get_ActiveBound (
  2532.         enum esriTinBoundType * pType ) = 0;
  2533. };
  2534. enum esriTinBoundType
  2535. {
  2536.     esriTinClassBreaks = 0,
  2537.     esriTinSimpleBounds = 1,
  2538.     esriTinUniqueValue = 2,
  2539.     esriTinSimpleBoundsExclude = 3
  2540. };
  2541. struct __declspec(uuid("3110a889-298b-4849-8abb-7a3383fd1a4e"))
  2542. ITinValueFilter2 : ITinValueFilter
  2543. {
  2544.     //
  2545.     // Raw methods provided by interface
  2546.     //
  2547.     virtual HRESULT __stdcall put_ZeroTagValueExcluded (
  2548.         VARIANT_BOOL pbExcludeZeroTagValue ) = 0;
  2549.     virtual HRESULT __stdcall get_ZeroTagValueExcluded (
  2550.         VARIANT_BOOL * pbExcludeZeroTagValue ) = 0;
  2551. };
  2552. struct __declspec(uuid("4eee3279-fa94-11d2-ae10-000000000000"))
  2553. ITinTriangleFilter : ITinFilter
  2554. {
  2555.     //
  2556.     // Raw methods provided by interface
  2557.     //
  2558.     virtual HRESULT __stdcall put_PropertyType (
  2559.         enum esriTinTrianglePropertyType pType ) = 0;
  2560.     virtual HRESULT __stdcall get_PropertyType (
  2561.         enum esriTinTrianglePropertyType * pType ) = 0;
  2562.     virtual HRESULT __stdcall put_LowerBound (
  2563.         double pBound ) = 0;
  2564.     virtual HRESULT __stdcall get_LowerBound (
  2565.         double * pBound ) = 0;
  2566.     virtual HRESULT __stdcall put_UpperBound (
  2567.         double pBound ) = 0;
  2568.     virtual HRESULT __stdcall get_UpperBound (
  2569.         double * pBound ) = 0;
  2570.     virtual HRESULT __stdcall putref_ClassBreaks (
  2571.         struct IDoubleArray * ppBreaks ) = 0;
  2572.     virtual HRESULT __stdcall get_ClassBreaks (
  2573.         struct IDoubleArray * * ppBreaks ) = 0;
  2574.     virtual HRESULT __stdcall putref_ClassBreakCodes (
  2575.         struct ILongArray * ppCodes ) = 0;
  2576.     virtual HRESULT __stdcall get_ClassBreakCodes (
  2577.         struct ILongArray * * ppCodes ) = 0;
  2578.     virtual HRESULT __stdcall put_UniqueValue (
  2579.         double pValue ) = 0;
  2580.     virtual HRESULT __stdcall get_UniqueValue (
  2581.         double * pValue ) = 0;
  2582.     virtual HRESULT __stdcall put_ActiveBound (
  2583.         enum esriTinBoundType pType ) = 0;
  2584.     virtual HRESULT __stdcall get_ActiveBound (
  2585.         enum esriTinBoundType * pType ) = 0;
  2586. };
  2587. enum esriTinTrianglePropertyType
  2588. {
  2589.     esriTinDegreeSlope = 0,
  2590.     esriTinPercentageSlope = 1,
  2591.     esriTinDegreeAspect = 2,
  2592.     esriTinArea = 3,
  2593.     esriTinSurfaceArea = 4,
  2594.     esriTinPerimeter = 5,
  2595.     esriTinSurfacePerimeter = 6
  2596. };
  2597. struct __declspec(uuid("f9b595ae-a9a6-11d3-ab4b-0008c73fd50c"))
  2598. ITinEdgeTypeFilter : ITinFilter
  2599. {
  2600.     //
  2601.     // Raw methods provided by interface
  2602.     //
  2603.     virtual HRESULT __stdcall put_Type (
  2604.         enum esriTinEdgeType pType ) = 0;
  2605.     virtual HRESULT __stdcall get_Type (
  2606.         enum esriTinEdgeType * pType ) = 0;
  2607. };
  2608. struct __declspec(uuid("d462b2cc-b2ab-11d5-abb9-0008c73fd50c"))
  2609. ITinNodeSourceFilter : ITinFilter
  2610. {
  2611.     //
  2612.     // Raw methods provided by interface
  2613.     //
  2614.     virtual HRESULT __stdcall put_Criteria (
  2615.         long pCriteria ) = 0;
  2616.     virtual HRESULT __stdcall get_Criteria (
  2617.         long * pCriteria ) = 0;
  2618. };
  2619. struct __declspec(uuid("4eee3271-fa94-11d2-ae10-000000000000"))
  2620. IEnumTinElement : IUnknown
  2621. {
  2622.     //
  2623.     // Raw methods provided by interface
  2624.     //
  2625.     virtual HRESULT __stdcall Reset ( ) = 0;
  2626.     virtual HRESULT __stdcall Next (
  2627.         struct ITinElement * * ppElement ) = 0;
  2628.     virtual HRESULT __stdcall QueryNext (
  2629.         struct ITinElement * pElement ) = 0;
  2630. };
  2631. struct __declspec(uuid("a8523ee8-7b16-11d2-9f4b-00c04f8ece27"))
  2632. ITinAdvanced : ITin
  2633. {
  2634.     //
  2635.     // Raw methods provided by interface
  2636.     //
  2637.     virtual HRESULT __stdcall get_TrackCancel (
  2638.         struct ITrackCancel * * ppTrackCancle ) = 0;
  2639.     virtual HRESULT __stdcall putref_TrackCancel (
  2640.         struct ITrackCancel * ppTrackCancle ) = 0;
  2641.     virtual HRESULT __stdcall get_ProcessCancelled (
  2642.         VARIANT_BOOL * pbCancelled ) = 0;
  2643.     virtual HRESULT __stdcall put_ProcessCancelled (
  2644.         VARIANT_BOOL pbCancelled ) = 0;
  2645.     virtual HRESULT __stdcall get_Surface (
  2646.         struct ISurface * * ppSurface ) = 0;
  2647.     virtual HRESULT __stdcall SetEmpty ( ) = 0;
  2648.     virtual HRESULT __stdcall Init (
  2649.         BSTR Name ) = 0;
  2650.     virtual HRESULT __stdcall put_Flag (
  2651.         long pFlag ) = 0;
  2652.     virtual HRESULT __stdcall get_Flag (
  2653.         long * pFlag ) = 0;
  2654.     virtual HRESULT __stdcall get_FullExtent (
  2655.         struct IEnvelope * * ppExtent ) = 0;
  2656.     virtual HRESULT __stdcall get_SuperNodeExtent (
  2657.         struct IEnvelope * * ppExtent ) = 0;
  2658.     virtual HRESULT __stdcall IsVoidZ (
  2659.         double Value,
  2660.         VARIANT_BOOL * pbIsVoid ) = 0;
  2661.     virtual HRESULT __stdcall MakeNodeEnumerator (
  2662.         struct IEnvelope * pAreaOfInterest,
  2663.         long Criteria,
  2664.         struct ITinFilter * pFilter,
  2665.         struct IEnumTinNode * * ppEnumerator ) = 0;
  2666.     virtual HRESULT __stdcall MakeEdgeEnumerator (
  2667.         struct IEnvelope * pAreaOfInterest,
  2668.         long Criteria,
  2669.         struct ITinFilter * pFilter,
  2670.         struct IEnumTinEdge * * ppEnumerator ) = 0;
  2671.     virtual HRESULT __stdcall MakeTriangleEnumerator (
  2672.         struct IEnvelope * pAreaOfInterest,
  2673.         long Criteria,
  2674.         struct ITinFilter * pFilter,
  2675.         struct IEnumTinTriangle * * ppEnumerator ) = 0;
  2676.     virtual HRESULT __stdcall get_NodeCount (
  2677.         long * pcNodes ) = 0;
  2678.     virtual HRESULT __stdcall GetNode (
  2679.         long Index,
  2680.         struct ITinNode * * ppNode ) = 0;
  2681.     virtual HRESULT __stdcall QueryNode (
  2682.         long Index,
  2683.         struct ITinNode * pNode ) = 0;
  2684.     virtual HRESULT __stdcall QueryNodeAsPoint (
  2685.         long Index,
  2686.         struct IPoint * pPoint ) = 0;
  2687.     virtual HRESULT __stdcall QueryNodeAsWKSPointZ (
  2688.         long Index,
  2689.         WKSPointZ * pPoint ) = 0;
  2690.     virtual HRESULT __stdcall GetNodeZ (
  2691.         long Index,
  2692.         double * pZ ) = 0;
  2693.     virtual HRESULT __stdcall GetNodeTagValue (
  2694.         long Index,
  2695.         long * pValue ) = 0;
  2696.     virtual HRESULT __stdcall get_EdgeCount (
  2697.         long * pcEdges ) = 0;
  2698.     virtual HRESULT __stdcall GetEdge (
  2699.         long Index,
  2700.         struct ITinEdge * * ppEdge ) = 0;
  2701.     virtual HRESULT __stdcall QueryEdge (
  2702.         long Index,
  2703.         struct ITinEdge * pEdge ) = 0;
  2704.     virtual HRESULT __stdcall QueryEdgeAsLine (
  2705.         long Index,
  2706.         struct ILine * pLine ) = 0;
  2707.     virtual HRESULT __stdcall QueryEdgeAsWKSPointZs (
  2708.         long Index,
  2709.         WKSPointZ * pFrom,
  2710.         WKSPointZ * pTo ) = 0;
  2711.     virtual HRESULT __stdcall GetEdgeTagValue (
  2712.         long Index,
  2713.         long * pValue ) = 0;
  2714.     virtual HRESULT __stdcall GetEdgeType (
  2715.         long edgeIndex,
  2716.         enum esriTinEdgeType * pType ) = 0;
  2717.     virtual HRESULT __stdcall get_TriangleCount (
  2718.         long * pcTriangles ) = 0;
  2719.     virtual HRESULT __stdcall GetTriangle (
  2720.         long Index,
  2721.         struct ITinTriangle * * ppTriangle ) = 0;
  2722.     virtual HRESULT __stdcall QueryTriangle (
  2723.         long Index,
  2724.         struct ITinTriangle * pTriangle ) = 0;
  2725.     virtual HRESULT __stdcall QueryTriangleAsRing (
  2726.         long Index,
  2727.         struct IRing * pRing ) = 0;
  2728.     virtual HRESULT __stdcall QueryTriangleAsWKSPointZs (
  2729.         long Index,
  2730.         WKSPointZ * pPi,
  2731.         WKSPointZ * pPj,
  2732.         WKSPointZ * pPk ) = 0;
  2733.     virtual HRESULT __stdcall GetTriangleTagValue (
  2734.         long Index,
  2735.         long * pValue ) = 0;
  2736.     virtual HRESULT __stdcall QueryNearestNode (
  2737.         struct IPoint * pPoint,
  2738.         struct ITinNode * pNode,
  2739.         double * pDistance ) = 0;
  2740.     virtual HRESULT __stdcall QueryNearestEdge (
  2741.         struct IPoint * pPoint,
  2742.         struct ITinEdge * pEdge,
  2743.         double * pDistance ) = 0;
  2744.     virtual HRESULT __stdcall FindTriangle (
  2745.         struct IPoint * pPoint,
  2746.         struct ITinTriangle * * ppTriangle ) = 0;
  2747.     virtual HRESULT __stdcall FindNaturalNeighbors (
  2748.         struct IPoint * pPoint,
  2749.         struct ITinNodeArray * * ppNodes ) = 0;
  2750.     virtual HRESULT __stdcall FindTriangleNeighborhood (
  2751.         struct IPoint * pPoint,
  2752.         struct ITinTriangleArray * * ppTriangles ) = 0;
  2753.     virtual HRESULT __stdcall ExtractPolyline (
  2754.         struct ITinEdge * pSeed,
  2755.         struct ITinFilter * pFilter,
  2756.         struct ITinPolyline * * ppPolyline ) = 0;
  2757.     virtual HRESULT __stdcall ExtractPolygon (
  2758.         struct ITinElement * pSeed,
  2759.         struct ITinFilter * pFilter,
  2760.         VARIANT_BOOL bStopAtEnforcedEdge,
  2761.         struct ITinPolygon * * ppPolygon ) = 0;
  2762.     virtual HRESULT __stdcall GetTriangleSeeds (
  2763.         struct ITinDynamicFilter * pFilter,
  2764.         VARIANT_BOOL bStopAtEnforcedEdge,
  2765.         struct IEnumTinTriangle * * ppTriangles ) = 0;
  2766.     virtual HRESULT __stdcall ConvertToPolygons (
  2767.         struct IFeatureClass * pFeatureClass,
  2768.         struct ITinDynamicFilter * pFilter,
  2769.         VARIANT_BOOL bStopAtEnforcedEdge,
  2770.         VARIANT * pFieldName = &vtMissing ) = 0;
  2771.     virtual HRESULT __stdcall GetDataArea (
  2772.         struct IPolygon * * ppArea ) = 0;
  2773.     virtual HRESULT __stdcall get_UniqueTagValueCount (
  2774.         enum esriTinElementType Type,
  2775.         long * pCount ) = 0;
  2776.     virtual HRESULT __stdcall GetUniqueTagValues (
  2777.         enum esriTinElementType Type,
  2778.         struct ILongArray * * ppValues ) = 0;
  2779.     virtual HRESULT __stdcall GenerateUniqueTagValue (
  2780.         enum esriTinElementType Type,
  2781.         long * pValue ) = 0;
  2782. };
  2783. struct __declspec(uuid("73b80fbc-ff33-11d1-a549-0000f8774f0f"))
  2784. ISurface : IFunctionalSurface
  2785. {
  2786.     //
  2787.     // Raw methods provided by interface
  2788.     //
  2789.     virtual HRESULT __stdcall get_ZFactor (
  2790.         double * pFactor ) = 0;
  2791.     virtual HRESULT __stdcall put_ZFactor (
  2792.         double pFactor ) = 0;
  2793.     virtual HRESULT __stdcall GetProjectedArea (
  2794.         double referenceHeight,
  2795.         enum esriPlaneReferenceType Type,
  2796.         double * pArea ) = 0;
  2797.     virtual HRESULT __stdcall GetSurfaceArea (
  2798.         double referenceHeight,
  2799.         enum esriPlaneReferenceType Type,
  2800.         double * pArea ) = 0;
  2801.     virtual HRESULT __stdcall GetVolume (
  2802.         double reference,
  2803.         enum esriPlaneReferenceType Type,