import "oaidl.idl";
import "ocidl.idl";
import "CoverageIdl.idl";


[
    uuid(699a2820-3f74-11d3-b406-0080c8e62564),
    version(1.0),
    helpstring("OGRCoverage 1.0 Type Library")
]
library OGRCoverage
{
    importlib("stdole32.tlb");
    importlib("stdole2.tlb");

    interface IDimension;               // "Meta" information about values in one dimension of a vector of numberic values.
    interface IColorTable;              // Color palette
    interface IColorTableFactory;       // Create color tables.
    interface ICoverage;                // Multi-valued function over a spatial domain.
    interface   IGridCoverage;          // Coverage based on Grid data.
    interface IGeoReference;            // Describe relationship between Grid coordinates, and spatial reference system.
    interface   IAffineGeoReference;    // Shift, scale, rotate and shear grid into SRS.
    interface   ITiepointGeoReference;  // tiepoints tie grid to SRS
    interface     IPolynomialTPGeoReference; // specific tiepoint form with order.
    interface IGeoReferenceFactory;     // Create objects supporting IGeoReference.
    interface ITiepoint;                // interface to a single tiepoint.
    interface ITiepointFactory;         // create tiepoints. 
    interface IGridAnalysis;            // Analyse IGridCoverage objects, e.g. get average pixel values.
    interface IGridAnalysisFactory;     // Create objects supporting IGridAnalysis
    interface IGridCoverageFactory;     // Create IGridCoverage from a filename, or other name.
    interface IGridCoverageAdaptor;     // Create IGridCoverage by adapting an existing IGridCoverage.
    interface IGridGeometry;            // Locate image in world, and set grid bounds.
    interface IHistogram;               // Graph produced by IGridAnalysis.
    interface IGridInfo;                // Describe pixel ordering and coloring of raster.
    interface IRasterModifier;          // Convert one IGridCoverage into another IGridCoverage.
    interface   IBandRationing;         // ?
    interface   IDensitySlice;          // ?
    interface   IEnhanceRasterModifier; // ?
    interface   IFilterRasterModifier;  // ?
    interface   IGrayScaleThreshold;    // ?
    interface IRasterModifierFactory;   // Create objects supporting IRasterModifier.

    [
        uuid(699a2821-3f74-11d3-b406-0080c8e62564),
        helpstring("DimensionImpl Class")
    ]
        coclass DimensionImpl
	{
            [default] interface IDimension;
	};
    [
        uuid(699a2822-3f74-11d3-b406-0080c8e62564),
        helpstring("ColorTableImpl Class")
    ]
        coclass ColorTableImpl
	{
            [default] interface IColorTable;
	};
    [
        uuid(699a2823-3f74-11d3-b406-0080c8e62564),
        helpstring("GridCoverageImpl Class")
    ]
	coclass OGRRealGC
	{
            [default] interface IGridCoverage;
	};
    [
        uuid(699a2824-3f74-11d3-b406-0080c8e62564),
        helpstring("GeoReferenceFactoryImpl Class")
    ]
	coclass GeoReferenceFactoryImpl
	{
            [default] interface IGeoReferenceFactory;
	};
    [
        uuid(699a2825-3f74-11d3-b406-0080c8e62564),
        helpstring("GridCoverageFactoryImpl Class")
    ]
	coclass GridCoverageFactoryImpl
	{
            [default] interface IGridCoverageFactory;
	};
    [
        uuid(699a2826-3f74-11d3-b406-0080c8e62564),
        helpstring("GridGeometryImpl Class")
    ]
	coclass GridGeometryImpl
	{
            [default] interface IGridGeometry;
	};
    [
        uuid(699a2827-3f74-11d3-b406-0080c8e62564),
        helpstring("GridInfoImpl Class")
    ]
	coclass GridInfoImpl
	{
            [default] interface IGridInfo;
	};

    [
        uuid(699a2828-3f74-11d3-b406-0080c8e62564),
        helpstring("AffineGeoReferenceImpl Class")
    ]
	coclass AffineGeoReferenceImpl
	{
            [default] interface IAffineGeoReference;
	};
    [
        uuid(699a2829-3f74-11d3-b406-0080c8e62564),
        helpstring("GridGeometryFactoryImpl Class")
    ]
	coclass GridGeometryFactoryImpl
	{
            [default] interface IGridGeometryFactory;
	};
};
